Cambiar un disco de RAID 1 en Linux (Ubuntu)

En este caso he simulado que deja de funcionar un disco duro. El sistema es Ubuntu con mdadm para gestionar el RAID 1, el cual consta de dos discos duros de 20GB conectados por USB en cajas externas (es un entorno de pruebas). Para generar el error he apagado la caja externa de uno de los dos.

El RAID 1 está degradado (no funciona un disco)

El sistema puede funcionar normalmente si falla un disco. Se pueden escribir datos, leer datos y hacer cualquier tipo de operación como si no hubiese pasado nada (ésta es la ventaja principal del RAID 1).

Aquí está la salida de mdadm viendo los detalles del RAID /dev/md2:

root@wasge-raid:~# mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Fri Apr 10 22:40:11 2015
     Raid Level : raid1
     Array Size : 20047744 (19.12 GiB 20.53 GB)
  Used Dev Size : 20047744 (19.12 GiB 20.53 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Apr 27 22:55:08 2015
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           Name : wasge-raid:2  (local to host wasge-raid)
           UUID : 6e2e74f4:4e62cad7:b809e8f3:027accf8
         Events : 93

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       81        1      active sync   /dev/sdf1
root@wasge-raid:~#

Falta un disco y eso puede afectar al rendimiento o a la fiabilidad. Cuando un RAID no está en buen estado, se considera degradado.

Como se puede observar al final de la lista, la partición usada en el RAID del disco número 0 aparece como "removed". Esto es porque el dispositivo no se encuentra presente en el sistema.

La partición del otro disco (/dev/sdf1) continúa activa y sincronizada.

La salida de cat /proc/mdstat también indica que falta algo.

root@wasge-raid:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sde1[2](F) sdf1[1]
      20047744 blocks super 1.2 [2/1] [_U]


unused devices: <none>
root@wasge-raid:~#

Aparece la partición sde1 (que ha fallado) marcado con una (F). Además, en vez de aparecer las dos [UU] simbolizando las dos particiones, aparece que sólo hay una [_U].

Añadir un nuevo disco duro

Esto es mucho más sencillo de lo que en un principio puede parecer. La partición del disco duro tiene que ser de tamaño idéntico o superior a la partición del disco que está funcionando actualmente en el RAID 1.

Una vez conectado el disco al sistema e identificado (en mi caso es sdg), el comando para añadir su primera partición (sdg1) al RAID es el siguiente.

root@wasge-raid:~# mdadm --manage /dev/md2 --add /dev/sdg1
mdadm: added /dev/sdg1
root@wasge-raid:~#

Al añadirlo, mdadm empezará a sincornizar ambos discos y volverá a marcar el RAID /dev/md2 como limpio (clean) cuando termine.

Comprobar el estado

Justo después de ejecutar el último comando, el sistema ya debería estar reconstruyendo el disco. Se puede comprobar como siempre, con mdadm

oot@wasge-raid:~# mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Fri Apr 10 22:40:11 2015
     Raid Level : raid1
     Array Size : 20047744 (19.12 GiB 20.53 GB)
  Used Dev Size : 20047744 (19.12 GiB 20.53 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Apr 27 23:12:57 2015
          State : clean, degraded, recovering
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 20% complete

           Name : wasge-raid:2  (local to host wasge-raid)
           UUID : 6e2e74f4:4e62cad7:b809e8f3:027accf8
         Events : 98

    Number   Major   Minor   RaidDevice State
       3       8       97        0      spare rebuilding   /dev/sdg1
       1       8       81        1      active sync   /dev/sdf1
root@wasge-raid:~#

Y también se puede comprobar con cat /proc/mdstat:

root@wasge-raid:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdg1[3] sde1[2](F) sdf1[1]
      20047744 blocks super 1.2 [2/1] [_U]
      [=====>...............]  recovery = 25.9% (5209344/20047744) finish=12.2min speed=20110K/sec
      
unused devices: <none>
root@wasge-raid:~#

Fecha de creación: 27/4/2015 22:44:47 | Última modificación: 26/11/2020 18:33:49 | Hora del servidor: 19/4/2024 11:58:59