Raid 5 se bloquea después de reemplazar un disco

Raid 5 se bloquea después de reemplazar un disco

Mi servidor me envió un correo electrónico diciendo que uno de mis discos no pudo leer un bloque. Entonces decido reemplazarlo antes de que falle por completo. Agregué un disco nuevo y reemplacé el que fallaba.

sudo mdadm --manage /dev/md0 --add /dev/sdg1
sudo mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/dbg1

después de la sincronización quería eliminar el /dev/sdb1 fallido y lo eliminé de la matriz con:

sudo mdadm --manage /dev/md0 --remove /dev/sdb1

pero cuando quiero sacar el disco de la caja, primero quito otros 2 pero los vuelvo a colocar inmediatamente. Después de esto pruebo si mi raid sigue funcionando y no fue así. Intenté reiniciar, con la esperanza de que se cure solo. En el pasado esto nunca fue un problema, pero tampoco reemplacé un disco.

Después de que esto no funciona, miro qué hacer e intenté volver a agregar el disco, pero esto no ayudó y el ensamblaje no funcionó:

sudo mdadm --assamble --scan

detecta solo 2 discos, así que intenté decirle el nombre de los discos

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1

pero dime que todos los discos están ocupados:

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1 
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is busy - skipping
mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sdc1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping

sdg1 obtiene sdf1 después del reinicio.

mdstat parece detectar los discos correctamente (inserté sdb1 nuevamente con la esperanza de que ayude y probé con y sin):

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : inactive sdd1[3](S) sdb1[1](S) sdc1[2](S) sda1[0](S) sdf1[4](S)
      14650670080 blocks super 1.2
       
unused devices: <none>

Si consulto solo los discos /dev/sda1y /dev/sdf1me muestra el mismo estado de matrizAA..

sudo mdadm --query --examine /dev/sda1 
/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : 3e912563:b10b74d0:a49faf2d:e14db558

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:06:33 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : c7d96490 - correct
         Events : 303045

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdd1 
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : bf303286:5889dc0c:a6a1824a:4fe1ae03

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:05:58 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : ef1f16fd - correct
         Events : 303036

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AA.A ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdc1 
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
           Name : lianli:0  (local to host lianli)
  Creation Time : Sat Oct 29 18:52:27 2016
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
     Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : b29aba8f:f92c2b65:d155a3a8:40f41859

Internal Bitmap : 8 sectors from superblock
    Update Time : Sat Jan  9 10:04:33 2021
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 47feb45 - correct
         Events : 303013

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

Seguiré intentándolo pero actualmente se me acaban las ideas, además es la primera vez que reemplazo un disco en el raid. Ojalá alguien pueda ayudarme.

Al menos yo también tengo una copia de seguridad, pero no quiero restablecer los discos duros para que me den cuenta de que la copia de seguridad tampoco funciona...

Actualizar: Después de agregar todos los discos para ensamblar obtuve:

sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdf1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdd1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.

Respuesta1

Encontré una solución:

Después de más investigaciones y la información de "posible desactualización" que obtuve en modo detallado ( sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1), encontré esta página:https://raid.wiki.kernel.org/index.php/RAID_Recovery

En la sección 'Intentar ensamblar usando --force', describen cómo usar la fuerza si el recuento de eventos diferente es inferior a 50. El mío era mucho menor, así que lo intenté, la matriz raid se conecta nuevamente y detecta que uno de los discos aún está fuera de fecha, pero espero que pueda sincronizarlo con la información de los demás. Entonces, podría ser que perdí algunos datos, pero aprendí que si quitaba el disco incorrecto de la matriz debía esperar hasta que la matriz estuviera en snyc...

El comando que utilicé para que mi raid volviera a funcionar:

sudo mdadm --stop /dev/md0
sudo mdadm -v -A --force /dev/md0 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sdf1

Actualizar: Probablemente no se agregó una unidad, por lo que la fuerza solo agregó un controlador para que la matriz volviera a estar en un estado funcional. El dispositivo con la diferencia de evento más grande tuvo que agregarse más tarde con --re-add:

sudo mdadm --manage /dev/md0 --re-add /dev/sdc1

Ahora mi matriz vuelve a estar sincronizada y puedo intentar quitar el disco duro defectuoso nuevamente.

información relacionada