Reconstruir el software RAID (Linux)

En este artículo le explicamos cómo reconstruir un software RAID después de reemplazar un disco duro defectuoso.

Nota

Después de reemplazar el disco duro, puede suceder que este se reconozca como sdc. Esto siempre ocurre cuando se intercambian datos mediantehot-swap. En este caso, es necesario realizar un reinicio, para que así el disco duro sea reconocido de nuevo como sda o sdb.

Ejemplo de una posible situación

En esta guía se asume la siguiente configuración:

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda1[0] sdb1[1]
4194240 blocks [2/2] [UU]

md3 : active raid1 sda3[0] sdb3[1]
1458846016 blocks [2/2] [UU]

Existen dos arrays:

/dev/md1 como /

/dev/md3 paralas particiones lógicas /var /usr /home

Normalmente con sda2 y sdb2 hay dos particiones swap que no pertenecen al RAID.

Reconstruir el RAID

Este procedimiento depende de si se ha sustituido el disco duro 1 (sda) o el disco duro 2 (sdb):

El disco duro 1 (sda) fue reemplazado

Si se ha cambiado el disco duro 1 (sda), compruebe que este se reconozca como tal. De lo contrario, reinicie el servidor. A continuación, inicie el servidor en el sistema de rescate (Rescue System) y proceda con los pasos que se indican a continuación.

  • Antes que nada, copie las tablas de particiones al nuevo disco duro (vacío):
    [root@host ~]# sfdisk -d /dev/sdb | sfdisk /dev/sda
    (Puede que necesite usar la opción --force).

  • Añada las particiones al RAID:
    [root@host ~]# mdadm /dev/md1 -a /dev/sda1
    [root@host ~]# mdadm /dev/md3 -a /dev/sda3
    Puede observar la reconstrucción del RAID con cat /proc/mdstat.

  • Luego, monte las particiones var, usr y home:[root@host ~]# mount /dev/md1 /mnt
    [root@host ~]# mount /dev/mapper/vg00-var /mnt/var
    [root@host ~]# mount /dev/mapper/vg00-usr /mnt/usr
    [root@host ~]# mount /dev/mapper/vg00-home /mnt/home

  • Para que se pueda instalar Grub correctamente más tarde, monte también proc, sys y dev:
    [root@host ~]# mount -o bind /proc /mnt/proc
    [root@host ~]# mount -o bind /sys /mnt/sys
    [root@host ~]# mount -o bind /dev /mnt/dev

  • Una vez montadas las particiones, acceda al entorno chroot e instale el bootloader de Grub:
    [root@host ~]# chroot /mnt
    [root@host ~]# grub-install /dev/sda

  • Salga de chroot con Exit y desmonte todos los discos duros:
    [root@host ~]# umount -a
    Espere hasta que el proceso de reconstrucción finalice. Luego, reinicie el servidor en el sistema normal.

  • Por último, active la partición swap con los siguientes comandos:
    [root@host ~]# mkswap /dev/sda2
    [root@host ~]# swapon -a

El disco duro 2 (sdb) ha sido reemplazado

Si el disco duro 2 (sdb) ha sido reemplazado, proceda de la siguiente manera:

  • Realice un reinicio para que se reconozca el disco duro 2 (sdb).

  • En el sistema local, copie las tablas de particiones al nuevo disco (vacío):
    [root@host ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
    (Es posible que tenga que usar la opción --force).

  • Añada las particiones al RAID:

    [root@host ~]# mdadm /dev/md1 -a /dev/sdb1
    [root@host ~]# mdadm /dev/md3 -a /dev/sdb3
    Ahora puede continuar con la reconstrucción del RAID con cat /proc/mdstat.

  • Una vez finalizada la reconstrucción, puede activar la partición swap utilizando los siguientes comandos:
    [root@host ~]# mkswap /dev/sdb2