Vuelva a ensamblar la matriz RAID0 a pesar del error

Vuelva a ensamblar la matriz RAID0 a pesar del error

Mi antiguo Synology CS407 estaba configurado (deliberadamente) con RAID0 y todavía no tenía configurado un sistema de respaldo. Hay cuatro unidades de 1 TB que forman un volumen de 4 TB. Una unidad tuvo una falla que provocó que el software integrado se negara a usar/montar el volumen. Entiendo que esto es una falla grave y que en general el volumen en las 4 unidades tiene una falla, ya que no hay redundancia con RAID0. Sin embargo, me gustaría intentar volver a ensamblar la matriz en Ubuntu, ignorar el error/omitir los datos incorrectos y ver en qué estado se encuentra el volumen. No es sorprendente que tenga problemas con el único disco que falló. Ubuntu ve su tabla de particiones e informa un sector defectuoso.

Aquí está el resultado de/proc/mdstat

Personalities : 
md2 : inactive dm-3[3](S) dm-2[2](S) dm-1[1](S) dm-0[0](S)
      3901770794 blocks super 1.1
       
unused devices: <none>

Ymdadm --examine --scan

ARRAY /dev/md/2  metadata=1.1 UUID=442ee8f0:7c679b96:de0a0544:f72b1167 name=2

Los datos de LVM están en la partición 3 de cada disco. Reensamblar con mdadm --assemble --run --force --verbose /dev/md2 /dev/sd[cdef]3hace esto:

mdadm: looking for devices for /dev/md2
mdadm: /dev/sdc3 is identified as a member of /dev/md2, slot 0.
mdadm: /dev/sdd3 is identified as a member of /dev/md2, slot 32769.
mdadm: /dev/sde3 is identified as a member of /dev/md2, slot 2.
mdadm: /dev/sdf3 is identified as a member of /dev/md2, slot 3.
mdadm: no uptodate device for slot 1 of /dev/md2
mdadm: added /dev/sde3 to /dev/md2 as 2
mdadm: added /dev/sdf3 to /dev/md2 as 3
mdadm: added /dev/sdc3 to /dev/md2 as 0
mdadm: failed to RUN_ARRAY /dev/md2: Invalid argument
mdadm: Not enough devices to start the array.

Esto me da un archivo inútil /dev/md2, que se muestra como un dispositivo RAID en Ubuntu. Tengo que stophacerlo antes de poder intentar volver a montarlo. Lo que parece extraño es el número de ranura para /dev/sdd3.

Tengo dos cosas más que podría probar. Estoy buscando consejos sobre si alguna de ellas puede ayudar:

  • Fallar y eliminarlo /dev/sdd3y luego volver a agregarlo
  • Tengo un disco de 1TB de repuesto. Podría hacer una copia del disco ddy fallar el disco antiguo y agregar el nuevo. Me pregunto si hago una copia sector por sector, ¿el nuevo disco tendrá mayores posibilidades de éxito? ¿Lo intentará basándose en los diferentes UUID?

EDITAR - salida de mdadm --examine /dev/sdd3:

/dev/sdd3:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x0
     Array UUID : 442ee8f0:7c679b96:de0a0544:f72b1167
           Name : 2
  Creation Time : Sun Feb 13 00:14:43 2022
     Raid Level : raid0
   Raid Devices : 4

 Avail Dev Size : 1950885397 (930.25 GiB 998.85 GB)
    Data Offset : 8 sectors
   Super Offset : 0 sectors
          State : active
    Device UUID : 23292ce9:221ebbfa:ea131c60:7888bc0c

    Update Time : Sun Feb 20 19:02:34 2022
       Checksum : e4ebe933 - correct
         Events : 1

     Chunk Size : 64K

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

Respuesta1

Este no es un problema grave. Este es un problema catastrófico. RAID0 (cuando se utiliza como RAID de eliminación) almacena fragmentos de datos en todas las unidades. Por tanto, partes de un archivo se pueden ubicar en los 4 discos.
Si la información es muy valiosa puedes intentar contactar con empresas especializadas que puedan recuperar alguna información. Pero esto puede costar una fortuna.

Existe una pequeña probabilidad de que RAID utilice un algoritmo de concatenación para crear una matriz. En tal caso podrá recuperar una buena cantidad de información. Pero repito, ésta no es una tarea doméstica.

Respuesta2

No estoy seguro de qué tan solucionable sea este problema.

Lo primero que intentaría sería apagar Synology, eliminar la unidad fallida y luego usar ddrescue en una máquina Linux para clonar esa unidad lo mejor que pueda. Luego colocaría la unidad clonada en Synology.

Entonces es posible que pueda "forzar el ensamblaje" de la matriz. Nunca he tenido que intentarlo, pero tal vez con un comando como

mdadm --force --assemble /dev/md2 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3

La clave es, según la página LUKS MAN que (para una Asamblea)

"--force Ensamble la matriz incluso si los metadatos en algunos dispositivos parecen estar desactualizados. Si mdadm no puede encontrar suficientes dispositivos que funcionen para iniciar la matriz, pero puede encontrar algunos dispositivos que están registrados como fallidos, entonces lo hará marque esos dispositivos como funcionando para que se pueda iniciar la matriz. Esto funciona solo para metadatos nativos, permite iniciar RAID 4, 5, 6 sucios y degradados. Una matriz que requiere el inicio de --force puede contener datos dañados. Úselo con cuidado.""

Posiblemente podría hacer esto sin hacer un ddrescue, pero pasará de hacer la vida difícil a hacerla muy difícil al intentar trabajar en una unidad con una falla de hardware.

No debes confiar en tus datos. Es probable que haya corrupción/inconsistencia en alguna parte.

Si esto falla, es posible que pueda obtener fragmentos de sus datos de las unidades en buen estado restantes utilizando Photorec o equivalente.

Respuesta3

Su mejor opción sería intentar copiar la mayor cantidad posible del disco en el nuevo disco. No usar dd, usar ddrescue. ddse detendrá ante el primer error. He restaurado discos casi completos con ddrescue, por lo que es posible recuperar la mayoría de los datos. ddrescuepuede llevar mucho tiempo.

Luego, con el disco copiado, prueba la solución de @davidgo.

Ahora ha experimentado las desventajas del raid 0. A menos que tenga mucho espacio en el disco, considere pasar al raid 5.

información relacionada