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

Atención:

Estas instrucciones solo son válidas para Servidores Dedicados que utilizan BIOS como interfaz entre el hardware y el sistema operativo. Si utilizas un Servidor Dedicado que usa UEFI como interfaz entre el hardware y el sistema operativo, consulta el siguiente artículo para obtener información sobre cómo reconstruir el RAID por software:

Reconstruir el software RAID (Linux/Servidor Dedicado con UEFI)

Comprobar si un Servidor Dedicado 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

Información importante sobre la partición de tu Servidor Dedicado

En los Servidores Dedicados gestionados en el Cloud Panel, a partir del 20/10/2021 solamente se configurará una partición al configurar y reinstalar el sistema operativo. En los Servidores Dedicados que se configuraron antes de esta fecha y en los Servidores Dedicados de nuestra gama de servidores a precio especial, las imágenes del sistema operativo están equipadas con el Gestor de Volúmenes Lógicos (LVM). El Gestor de Volúmenes Lógicos establece una capa lógica entre el sistema de archivos y las particiones del almacenamiento de datos utilizado. Esto permite crear un sistema de archivos que abarca varias particiones y/o soportes de almacenamiento de datos. De este modo, se puede combinar, por ejemplo, el espacio de almacenamiento de varias particiones o soportes de datos.

Determinar la información necesaria para reconstruir el RAID

Ver el listado de discos duros y particiones existentes

Para listar los discos duros y particiones existentes, procede de la siguiente manera:

  • Inicia sesión en el servidor con tu cuenta de Root.

  • Para ver el listado de los discos duros y particiones, introduce el comando fdisk -l. Se trata de un programa de línea de comandos para la partición de discos duros. Puedes utilizar este programa para visualizar, crear o eliminar particiones.

    [root@localhost ~]# fdisk -l

  • Anota los discos duros existentes, las particiones y las rutas de los archivos de intercambio.

Nota

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

Determinar de los puntos de montaje (Mountpoints)
  • Para mostrar los puntos de montaje de los dispositivos y particiones que utilizas, introduce el siguiente comando:

    [root@localhost ~]# lsblk

    A continuación se mostrará, por ejemplo, la siguiente información:

    root@s20776641:~# lsblk
    NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    loop1             7:1    0  54.9M  1 loop  /snap/lxd/12631
    loop2             7:2    0 110.6M  1 loop  /snap/core/12834
    loop3             7:3    0  61.9M  1 loop  /snap/core20/1434
    loop4             7:4    0  80.4M  1 loop  /snap/lxd/23037
    sda               8:0    0 931.5G  0 disk
    ├─sda1            8:1    0     4G  0 part
    │ └─md1           9:1    0     4G  0 raid1 /
    ├─sda2            8:2    0     2G  0 part  [SWAP]
    └─sda3            8:3    0 925.5G  0 part
      └─md3           9:3    0 925.5G  0 raid1
        ├─vg00-usr  253:0    0     5G  0 lvm   /usr
        ├─vg00-var  253:1    0     5G  0 lvm   /var
        └─vg00-home 253:2    0     5G  0 lvm   /home
    sdb               8:16   0 931.5G  0 disk
    ├─sdb1            8:17   0     4G  0 part
    │ └─md1           9:1    0     4G  0 raid1 /
    ├─sdb2            8:18   0     2G  0 part  [SWAP]
    └─sdb3            8:19   0 925.5G  0 part
      └─md3           9:3    0 925.5G  0 raid1
        ├─vg00-usr  253:0    0     5G  0 lvm   /usr
        ├─vg00-var  253:1    0     5G  0 lvm   /var
        └─vg00-home 253:2    0     5G  0 lvm   /home
    root@s20776641:~# cat /proc/mdstat

  • Anota los dispositivos y particiones, así como los puntos de montaje.

Ejemplo de una posible situación

En estas instrucciones, se asume la siguiente configuración:

root@s20776641:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md3 : active raid1 sdb3[1] sda3[0]
      970470016 blocks [2/2] [UU]
 
md1 : active raid1 sdb1[1] sda1[0]
      4194240 blocks [2/2] [UU]

 

# 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 para las 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 reemplazó el disco duro 1 (sda) o el disco duro 2 (sdb):

Se ha reemplazado el disco duro 1 (sda)

Si se ha reemplazado el disco duro 1 (sda), comprueba que este se reconozca como tal. De lo contrario, reinicia el servidor. A continuación, inicia el servidor en el sistema de rescate (Rescue System) y procede con los pasos que se indican a continuación.

  • En primer lugar, copia las tablas de particiones al nuevo disco duro (vacío):

    [root@host ~]# sfdisk -d /dev/sdb | sfdisk /dev/sda

    (Puede que necesites utilizar la opción --force).

  • Añade las particiones al RAID:

    [root@host ~]# mdadm/dev/md1 -a /dev/sda1

    [root@host ~]# mdadm /dev/md3 -a /dev/sda3

    Puedes observar la reconstrucción del RAID con cat /proc/mdstat.

  • Luego, monta 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, monta 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, accede al entorno chroot e instala el bootloader de Grub:

    [root@host ~]# chroot /mnt
    [root@host ~]# grub-install /dev/sda

  • Sal de chroot con Exit y desmonta todos los discos duros:

    [root@host ~]# umount -a

    Espera hasta que el proceso de reconstrucción finalice. Luego, reinicia el servidor en el sistema normal.

  • Por último, activa la partición swap con los siguientes comandos:
     

    [root@host ~]# mkswap /dev/sda2

    [root@host ~]# swapon -a


     
Se ha reemplazado el disco duro 2 (sdb)

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

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

  • En el sistema local, copia las tablas de particiones al nuevo disco (vacío):

    [root@host ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb

    (Es posible que tengas que usar la opción --force).

  • Añade las particiones al RAID:

    [root@host ~]# mdadm/dev/md1 -a /dev/sdb1

    [root@host ~]# mdadm /dev/md3 -a /dev/sdb3

    Ahora puedes continuar con la reconstrucción del RAID con cat /proc/mdstat.

  • Una vez finalizada la reconstrucción, puedes activar la partición swap utilizando los siguientes comandos:

    [root@host ~]# mkswap /dev/sdb2