Reconstruir un software RAID (Linux/Servidor Dedicado y Bare Metal Server con UEFI)
Utilice la función «Imprimir» al final de la página para crear un PDF.
Para Servidor Dedicado y Servidor Bare Metal
En este artículo se explica cómo reconstruir un software RAID tras sustituir un disco defectuoso (por ejemplo, un disco duro, un SSD o una unidad NVMe) en un Servidor Dedicado o un Servidor Bare Metal. Esta guía tiene en cuenta tanto las configuraciones con RAID 1 como los sistemas con software RAID adicional 5 o 6 para las particiones de datos.
Advertencia
Estas instrucciones solo son válidas para Servidor Dedicado y Servidor Bare Metal que utilizan UEFI como interfaz entre el hardware y el sistema operativo. Si utilizas un Servidor Dedicado que emplea la BIOS como interfaz entre el hardware y el sistema operativo, encontrarás información para reconstruir el software RAID en el siguiente artículo: reconstruir el software RAID (Linux/servidor dedicado con BIOS).
Sigue al pie de la letra el orden de los pasos descritos.
Comprobar si un servidor utiliza UEFI o BIOS
Para comprobar si tu servidor utiliza BIOS o UEFI como interfaz entre el hardware y el sistema operativo, introduce el siguiente comando:
[root@localhost ~]# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Más información sobre UEFI
Encontrarás más información sobre UEFI en el siguiente artículo: información general sobre UEFI
Información importante sobre el particionamiento de tu Servidor Dedicado
En Servidor Dedicado que se gestiona en Cloud Panel, desde el 20 de octubre de 2021 solo se configura una partición al configurar o reinstalar el sistema operativo. En Servidor Dedicado configurado antes de esa fecha y en los adquiridos en el marco de Servidor a precio especial, las imágenes del sistema operativo están equipadas con un gestor de volúmenes lógicos (LVM). Este LVM establece una capa lógica entre el sistema de archivos y las particiones de los discos utilizados, lo cual permite crear un sistema de archivos que se extienda a lo largo de varias particiones y/o discos. De este modo, por ejemplo, se puede agrupar el espacio de almacenamiento de varias particiones o discos.
Determinación de la información necesaria para reconstruir el software RAID
Antes de empezar, debes comprobar la estructura RAID actual y el estado de las particiones.
Mostrar una lista de los discos y particiones existentes
Para ver la lista de discos y particiones existentes, sigue estos pasos:
Inicia sesión en el servidor con tu cuenta de root.
Para ver la lista de discos y particiones existentes, introduce el comando fdisk -l. fdisk es un programa de línea de comandos para particionar discos. Con este programa se pueden mostrar, crear o eliminar particiones.
[root@localhost ~]# fdisk -l
Anota los nombres de las unidades (por ejemplo, /dev/sda, /dev/sdb, /dev/nvme0n1).
Nota
Tras un intercambio en caliente, el nuevo dispositivo de almacenamiento suele detectarse como «sdc». Es imprescindible reiniciar el sistema para que el dispositivo vuelva a identificarse correctamente como «sda» o «sdb».
Determinar los puntos de montaje
Para ver los puntos de montaje de los dispositivos y las particiones que utilizas, introduce el siguiente comando:
[root@localhost ~]# lsblk
A continuación, se mostrará, por ejemplo, la siguiente información:
[root@2A2E3A1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 511M 0 part
│ └─md1 9:1 0 511M 0 raid1 /boot/efi
├─sda2 8:2 0 1.4G 0 part
│ └─md2 9:2 0 1.4G 0 raid1 /boot
├─sda3 8:3 0 3.7G 0 part [SWAP]
└─sda4 8:4 0 1.8T 0 part
└─md4 9:4 0 1.8T 0 raid1 /
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 511M 0 part
│ └─md1 9:1 0 511M 0 raid1 /boot/efi
├─sdb2 8:18 0 1.4G 0 part
│ └─md2 9:2 0 1.4G 0 raid1 /boot
├─sdb3 8:19 0 3.7G 0 part [SWAP]
└─sdb4 8:20 0 1.8T 0 part
└─md4 9:4 0 1.8T 0 raid1 /- Anota los dispositivos y las particiones, así como sus puntos de montaje. Por ejemplo:
/md4 está montado en / (Root)
/md2 está montado en /boot
/md1 está montado en /boot/efi
sda3 y sdb3 son particiones de swap (sin matriz RAID)
Vista ampliada de la estructura RAID con lsblk --inverse
Para obtener una representación aún más clara de la estructura RAID, también puedes utilizar el siguiente comando:
[root@localhost ~]# lsblk --inverse
Con este comando, la salida se muestra en orden inverso. De este modo, la estructura no comienza por los discos individuales, sino por los dispositivos md o dispositivos lógicos. Debajo se muestran las particiones y los discos correspondientes.
Esta vista resulta especialmente útil cuando hay varios dispositivos RAID. Este es el caso, por ejemplo, cuando se utilizan matrices separadas para /boot, /, swap o áreas de datos adicionales. De este modo, para cada dispositivo md se ven directamente las particiones correspondientes y los puntos de montaje en una vista conjunta. Por ejemplo:
[root@localhost ~]# lsblk --inverse
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda1 8:1 0 1M 0 part
└─sda 8:0 0 3,6T 0 disk
sdb1 8:17 0 1M 0 part
└─sdb 8:16 0 3,6T 0 disk
md2 9:2 0 487M 0 raid1 /boot
├─sda2 8:2 0 488M 0 part
│ └─sda 8:0 0 3,6T 0 disk
└─sdb2 8:18 0 488M 0 part
└─sdb 8:16 0 3,6T 0 disk
md3 9:3 0 3,9G 0 raid1 [SWAP]
├─sda3 8:3 0 3,9G 0 part
│ └─sda 8:0 0 3,6T 0 disk
└─sdb3 8:19 0 3,9G 0 part
└─sdb 8:16 0 3,6T 0 disk
md4 9:4 0 19,5G 0 raid1 /
├─sda4 8:4 0 19,5G 0 part
│ └─sda 8:0 0 3,6T 0 disk
└─sdb4 8:20 0 19,5G 0 part
└─sdb 8:16 0 3,6T 0 disk
vg-kunden 253:1 0 3,3T 0 lvm /kunden
└─md5 9:5 0 3,6T 0 raid1
├─sda5 8:5 0 3,6T 0 part
│ └─sda 8:0 0 3,6T 0 disk
└─sdb5 8:21 0 3,6T 0 part
└─sdb 8:16 0 3,6T 0 disk
Nota
Si no falla todo el disco, es posible que solo se vean afectadas algunas particiones. En ese caso, es posible que no todos los dispositivos md estén degradados. Por lo tanto, puede ocurrir que una matriz RAID esté defectuosa, mientras que otras matrices del mismo disco sigan intactas. Con el comando lsblk --inverse suele detectarse esto más rápidamente.
Mostrar el contenido del archivo fstab e identificar los archivos de dispositivo
En algunas configuraciones de servidor, los directorios del sistema como /usr, /var o /home se encuentran en particiones independientes. Es necesario montarlas también para que los comandos funcionen en el sistema. Para ello, comprueba el archivo fstab en tu sistema montado. Para visualizar el contenido del archivo fstab e identificar los archivos de dispositivo correspondientes, introduce el siguiente comando:
[root@localhost ~]# cat /etc/fstab
Analiza el resultado.
Caso A (sistema de archivos plano, p. ej., Debian 13): si se muestran entradas en las que /usr, /var y /proc no aparecen por separado, no es necesario montar más particiones. En este caso, puedes saltar los dos pasos siguientes y colocar las particiones montadas en un entorno chroot.
Caso B (sistema particionado / LVM): si aparecen las entradas /usr, /var y /proc, deberás montarlas como parte de la recuperación del RAID. El procedimiento se describe en la sección «Recuperar RAID».Anota además si los dispositivos están montados mediante UUID o directamente (por ejemplo, como /dev/md0).
Comprobar el estado del RAID
Comprueba qué unidad falta en el RAID. Para ello, introduce el siguiente comando:
[root@localhost ~]# cat /proc/mdstat
Nota
Además de cat /proc/mdstat, también puedes utilizar el comando lsblk --inverse. Con este comando podrás ver los dispositivos md junto con sus particiones y puntos de montaje correspondientes en una vista conjunta. Esto resulta especialmente útil cuando solo algunos conjuntos RAID se encuentran en estado degradado.
RAID 1: una matriz en buen estado muestra [UU]. La «U» significa «Up»: el disco está activo, sincronizado y forma parte de la matriz. Una matriz defectuosa muestra [_U] o [U_].
RAID 5 y RAID 6: la ausencia de particiones en la lista (por ejemplo, solo sdb5 y sdc5 en lugar de sda5 también) o las marcas con (F) indican un fallo.
Tras el nivel RAID (p. ej.: «active raid5») se enumeran las particiones que forman parte del RAID. Un número entre corchetes tras el nombre de la partición (p. ej.: «sda4[0]») indica la función en la matriz. La ausencia de una entrada o la presencia de una «(F)» adicional, que significa «Failed», indica un fallo.
Ejemplos:
RAID 1 (duplicación) – Un disco ha fallado
[root@2A2E3A1 ~]# cat /proc/mdstat
Personalities : [raid1]
md4 : active raid1 sdb4[2] sda4[0]
1947653952 blocks super 1.0 [2/1] [U_]
md2 : active raid1 sdb2[2] sda2[0]
1428416 blocks super 1.0 [2/2] [UU]
md1 : active raid1 sdb1[1] sda1[0]
523200 blocks [2/2] [UU]
unused devices: <none>
RAID 5 (datos) – Falta un disco por completo
El RAID 5 se utiliza a menudo para grandes volúmenes de datos. Soporta el fallo de un máximo de un disco.
md5 : active raid5 sdc1[0] sde1[2] [3/2] [U_U]
sdc1[0] y sde1[2]: solo aparecen dos particiones en la lista. Falta por completo un disco en la lista. Esto puede ocurrir, por ejemplo, tras un fallo de hardware en el que el controlador ya no reconoce el disco duro
[3/2]: la matriz espera 3 discos, pero solo hay 2 disponibles
[_UU]: falta el primer disco
RAID 6 (datos) – Dos discos averiados
El RAID 6 soporta el fallo simultáneo de hasta dos discos.
md6 : active raid6 sdc1[0] sdf1[3] 3895307904 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/2] [U__U]
[4/2]: de los 4 discos, solo 2 están activos
[U__U]: los dos discos del centro (sdd1 y sde1) han fallado o se han retirado. El RAID sigue funcionando («degraded»), pero es necesario actuar con urgencia.
Nota
En los servidores con RAID 1 y RAID 5 se utilizan, por ejemplo, los siguientes dispositivos y particiones:
[root@B2E14658 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md11 : active raid5 sdb1[1] sde1[0] sdc1[2] sdf1[3]
23442074112 blocks super 1.0 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
bitmap: 2/59 pages [8KB], 65536KB chunk
md125 : active raid1 sda4[0] sdd4[2]
462991168 blocks super 1.0 [2/2] [UU]
bitmap: 2/4 pages [8KB], 65536KB chunk
md126 : active raid1 sda1[0] sdd1[1]
523200 blocks [2/2] [UU]
md127 : active raid1 sda2[0] sdd2[2]
1428416 blocks super 1.0 [2/2] [UU]
Recuperar RAID (RAID 1)
Los pasos a seguir varían en función del disco que se haya sustituido. Distinguimos entre el disco 1 (sda/primario) y el disco 2 (sdb/secundario). En el caso de RAID 5/6, el procedimiento es similar.
Advertencia
En el apartado «Se ha sustituido el disco 1 (sda)», se da por hecho que se ha sustituido el disco 1 con la denominación sda. En el apartado «Se ha sustituido el disco 2 (sdb)», se da por hecho que se ha sustituido el disco 2 con la denominación sdb. Adapta siempre los comandos de esta guía antes de introducirlos y sustituye las designaciones de las unidades. Para ello, utiliza la información que hayas determinado previamente.
Se ha sustituido el disco 1 (sda)
Si se ha sustituido el disco 1 (sda), debes comprobar si se ha detectado correctamente. Es posible que tengas que reiniciar el sistema. Dado que el cargador de arranque principal suele encontrarse en sda, es frecuente que el sistema deje de arrancar de forma normal. Por lo tanto, inicia el servidor en el sistema de rescate y sigue los pasos que se indican a continuación.
Copia las tablas de particiones del disco 2 (en este caso: sdb) al nuevo disco (vacío) (en este caso: sda).
rescue:~# sfdisk -d /dev/sdb | sfdisk --force /dev/sda
Nota
En el caso de los dispositivos NVMe, comprueba con atención la denominación (por ejemplo, sfdisk -d /dev/nvme0n1 | sfdisk --force /dev/nvme1n1).
Añade las particiones al conjunto RAID correspondiente. Para ello, adapta los siguientes comandos y, a continuación, ejecútalos:
RAID 1
rescue:~# mdadm /dev/md4 -a /dev/sda4 (Root-Partition)
rescue:~# mdadm /dev/md2 -a /dev/sda2 (Boot-Partition)
rescue:~# mdadm /dev/md1 -a /dev/sda1 (EFI-Partition)
La reconstrucción se iniciará en segundo plano. Para monitorizar la reconstrucción, introduce el siguiente comando:
rescue:~# cat /proc/mdstat
Monta primero el sistema de archivos raíz. Solo después se podrán montar las demás particiones en la estructura de directorios.
rescue:~# mount /dev/md4 /mnt
Monta las particiones de arranque y EFI.
rescue:~# mount /dev/md2 /mnt/boot
rescue:~# mount /dev/md1 /mnt/boot/efi
Nota
Si aparecen mensajes de error indicando que los puntos de montaje no existen, créalos con los comandos mkdir /mnt/boot y mkdir /mnt/boot/efi.
Solo es aplicable a Servidor Dedicado con un sistema particionado mediante LVM: crea los siguientes puntos de montaje:
rescue:~# mkdir /mnt/var
rescue:~# mkdir /mnt/usr
rescue:~# mkdir /mnt/home
Solo para Servidor Dedicado con un sistema particionado con LVM: si es necesario, monta las particiones var, usr y home.
rescue:~# mount /dev/mapper/vg00-var /mnt/var
rescue:~# mount /dev/mapper/vg00-usr /mnt/usr
rescue:~# mount /dev/mapper/vg00-home /mnt/home
Válido para Debian 13, AlmaLinux 9 y 10, así como para Rocky Linux 9 y 10: para montar los directorios del sistema en el entorno chroot, introduce el siguiente comando:
rescue:~# for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done
Accede al entorno chroot:
rescue:~# chroot /mnt
Instala el gestor de arranque. Por ejemplo:
Debian (11/12/13) / Ubuntu (24.04/26.04)rescue:/# grub-install --efi-directory=/boot/efi /dev/sda
AlmaLinux 9 y 10, así como Rocky Linux 9 y 10
Intenta primero la recuperación mediante dnf.
rescue:/# dnf reinstall shim-x64 grub2-efi-x64
rescue:/# grub2-mkconfig -o /boot/grub2/grub.cfg
Si este comando falla, utiliza grub2-install.
rescue:/# grub2-install --efi-directory=/boot/efi /dev/sda
rescue:/# grub2-mkconfig -o /boot/grub2/grub.cfg
Solo para Debian (11/12/13) / Ubuntu (24.04/ 26.04): Para actualizar la configuración, introduce el siguiente comando:
rescue:/# update-grub
Sal del entorno chroot con exit.
rescue:/# exit
Desmonta todos los dispositivos de almacenamiento:
rescue:~# umount -R /mnt
Espera a que finalice el proceso de reconstrucción y reinicia el servidor en el sistema normal.
- Vuelve a iniciar sesión tras el reinicio.
Para configurar la partición /dev/sda3 como área de intercambio de Linux, introduce el siguiente comando:
[root@host ~]# mkswap /dev/sda3
Advertencia
El comando mkswap modifica el UUID de la partición. Si en tu archivo /etc/fstab la partición de swap está montada mediante el UUID (por defecto en AlmaLinux/Rocky/Debian), deberás editar el archivo /etc/fstab tras reiniciar el sistema e introducir el nuevo UUID; de lo contrario, el espacio de swap no se activará automáticamente. Si la partición de swap de tu servidor no está montada mediante el UUID, solo tiene que activar la partición de swap. En ese caso, omite la edición del archivo fstab.
Para averiguar el UUID, introduce el siguiente comando:
[root@host ~]# lsblk -f | grep sda3
Esto solo es aplicable si la partición de swap está montada mediante UUID: para editar el archivo /etc/fstab, introduce el siguiente comando:
[root@host ~]# vi /etc/fstab
Nota
El editor vi dispone de un modo de inserción y un modo de comandos. Puedes acceder al modo de inserción pulsando la tecla [i]. En este modo, los caracteres introducidos se insertan inmediatamente en el texto. Para acceder al modo de comando, pulsa a continuación [ESC]. Cuando utilices el modo de comando, lo que teclees se interpretará como un comando.
- Ve a la línea que contiene «swap» y sustituye el UUID antiguo por el nuevo en la configuración de /etc/fstab.
- Para salir de vi y guardar el archivo, introduce el comando :wq y, a continuación, pulsa Intro.
Por último, activa la partición de swap con el siguiente comando:
[root@host ~]# swapon -a
Para comprobar si la memoria swap está activa, introduce el siguiente comando:
[root@host ~]# cat /proc/swaps
Se ha sustituido el disco 2 (sdb)
Si se ha sustituido el disco 2 (sdb), procede de la siguiente manera:
- Reinicia el sistema para que se detecte el disco 2 (sdb).
Copia en el sistema local las tablas de particiones al nuevo disco (vacío). Si es necesario, utiliza la opción --force
[root@host ~]# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Añade las particiones al RAID. Por ejemplo:
RAID 1
[root@host ~]# mdadm /dev/md1 -a /dev/sdb1
[root@host ~]# mdadm /dev/md2 -a /dev/sdb2
[root@host ~]# mdadm /dev/md4 -a /dev/sdb4
Para monitorizar la reconstrucción, introduce el siguiente comando:
[root@host ~]# cat /proc/mdstat
Para que el servidor pueda arrancar aunque sda falle en el futuro, también hay que escribir el gestor de arranque en sdb. Para ello, instala el gestor de arranque:
Debian (11/12/13) / Ubuntu (24.04/ 26.04)
[root@host ~]# grub-install --efi-directory=/boot/efi /dev/sdb
AlmaLinux 9 y 10, así como Rocky Linux 9 y 10
Intenta primero la restauración mediante dnf:
[root@host ~]# dnf reinstall shim-x64 grub2-efi-x64
[root@host ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Si este comando falla, utiliza el siguiente:
[root@host ~]# grub2-install --efi-directory=/boot/efi /dev/sdb
[root@host ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Para actualizar la configuración, introduce el siguiente comando:
Debian (11/12/13) /Ubuntu (24.04/ 26.04)
[root@host ~]# update-grub
AlmaLinux 9 y 10, así como Rocky Linux 9 y 10
[root@host ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Asegúrate de que el espacio de intercambio no sea un RAID. Para ello, introduce el siguiente comando:
[root@host ~]# cat /proc/mdstat
Para configurar la partición como área de intercambio de Linux, adapta el siguiente comando y, a continuación, ejecútalo. En este caso, se trata del área de intercambio de Linux /dev/sdb3.
[root@host ~]# mkswap /dev/sdb3
Advertencia
El comando mkswap modifica el UUID de la partición. Si en tu archivo /etc/fstab la partición de swap está montada mediante UUID (por defecto en Alma/Rocky/Debian), deberás editar el archivo /etc/fstab tras reiniciar el sistema e introducir el nuevo UUID; de lo contrario, el espacio de swap no se activará automáticamente. Si la partición de swap de tu servidor no está montada mediante UUID, solo tienes que activar la partición de swap. En ese caso, omite la edición del archivo fstab.
Para averiguar el UUID, adapta el siguiente comando y, a continuación, introdúcelo:
[root@host ~]# lsblk -f | grep sdb3
Esto solo es aplicable si la partición de swap está montada mediante UUID: para editar el archivo /etc/fstab, introduce el siguiente comando:
[root@host ~]# vi /etc/fstab
- Sustituye el UUID en la configuración de /etc/fstab.
- Para salir de vi y guardar el archivo, introduce el comando :wq y, a continuación, pulsa Intro.
Activa la partición de swap. Para ello, introduce el siguiente comando:
[root@host ~]# swapon -a
Para comprobar si la memoria de intercambio está activa, introduce el siguiente comando:
[root@host ~]# cat /proc/swaps
Recuperar un RAID (RAID 5 o RAID 6)
Si utilizas un RAID 5 o 6, la matriz está formada por al menos 3 (RAID 5) o 4 (RAID 6) discos. Si sustituyes un disco, debes asegurarte de que la tabla de particiones se copia exactamente desde uno de los discos restantes que estén en buen estado. La sustitución del disco (sdc, sdd, sde, etc.) puede realizarse sin interrumpir el funcionamiento del sistema. No es necesario instalar ningún gestor de arranque en estos discos.
En este ejemplo, partimos de la base de que se ha sustituido sdd y que sdc y sdf están en buen estado.
Copia la estructura de uno de los discos en buen estado al nuevo disco. Para ello, adapta el siguiente comando y, a continuación, ejecútalo. Por ejemplo:
[root@host ~]# sfdisk -d /dev/sdc | sfdisk --force /dev/sdd
Añade la nueva partición al conjunto RAID (por ejemplo, md11). Para ello, adapta el siguiente comando y, a continuación, ejecútalo.
[root@host ~]# mdadm /dev/md11 -a /dev/sdd1
La reconstrucción en RAID 5/6 puede tardar varias horas si hay grandes cantidades de datos. Con este comando puedes monitorizar el progreso:
[root@host ~]# watch -n 5 cat /proc/mdstat