GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ubuntu - Recuperación de Raid5 ¿Intentando con "mdadm -create... Missing"?

Primero cómo llegué a esta situación:

Tenía una matriz RAID5 con discos de 2 TB cada uno (discos USB externos), luego quería crear una matriz cifrada más grande. Por lo tanto, obtuve 2 discos adicionales (también de 2 TB cada uno) y el plan era ejecutar el arreglo original en modo degradado, configurar el nuevo arreglo cifrado, copiar parte de los datos, luego reducir el arreglo original a 2 discos en modo degradado, ampliar el nuevo, copiar el resto de datos y finalmente ampliarlo a 7 discos RAID5 no degradados. Hice todo el procedimiento con /dev/loopX dispositivos de 2 GB cada uno para comprobar si mi plan tiene alguna advertencia.

Todo salió bien con la matriz real hasta el punto en que uno de los nuevos discos falló. Cuando reemplacé este, el orden en que el kernel reconoce los discos cambió después del siguiente reinicio (/dev/sdb , /dev/sdc , … eran todos discos diferentes a los anteriores). Todo se arruinó y no me di cuenta hasta que uno de los discos se volvió a sincronizar como miembro de la matriz incorrecta. Me ahorro los detalles de esta historia y voy directo al grano:

Ahora tengo una matriz cifrada, RAID5 de 3 discos, degradada en /dev/sdc1 y /dev/sdd1 , funcionando perfectamente bien, todos los datos allí y un sistema de archivos saludable de acuerdo con fsck -f .
Hasta ahora todo bien.

Todo el problema ahora se reduce a 3 discos:no puedo hacer que esta matriz no cifrada vuelva a funcionar. Estoy bastante seguro de que los datos TIENE estar allí en /dev/sdf1 , /dev/sdg1 , /dev/sdh1 , ya que esta era una matriz en funcionamiento justo antes de que UNO de los discos se estropeara (accidentalmente se volvió a sincronizar como miembro de la otra matriz cifrada, como se dijo antes). Entonces, uno de estos tres discos puede tener datos de matriz incorrectos, pero ¿cuál? Y dos de ellos tienen que ser buenos, pero ¿cómo lo descubro?

Probé todas las permutaciones de mdadm --create … con /dev/sdf1 , /dev/sdg1 , /dev/sdh1 y "faltante" como:

mdadm --create /dev/md0 --level=5 --raid-devices=3  /dev/sdf1 /dev/sdg1 missing

mdadm --create /dev/md0 --level=5 --raid-devices=3  /dev/sdf1 missing /dev/sdg1

...

y por supuesto comprobado cada vez con

fsck /dev/md0

que se quejaba de una supermanzana no válida.

Cada vez que mdadm creaba la matriz, pero no había ningún sistema de archivos legible, solo contenía basura, ninguna de las permutaciones utilizadas con mdadm finalmente funcionó.
Entonces mi pregunta ahora es:¿Qué opciones me quedan? Además de perder mis datos y reconstruir la matriz desde cero, por supuesto.

Aquí alguna información adicional (todos los discos):

mdadm --examine /dev/sdb1
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : cfee26c0:414eee94:e470810c:17141589
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:38:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3906759680 (3725.78 GiB 4000.52 GB)
  Used Dev Size : 3906759680 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : f4f0753e:56b8d6a5:84ec2ce8:dbc933f0

    Update Time : Sun Oct 28 11:38:32 2012
       Checksum : 60093b72 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdc1
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
           Name : merlin:1  (local to host merlin)
  Creation Time : Wed Sep 26 07:32:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 9e2f9ae6:6c95d05e:8d83970b:f1308de0

    Update Time : Fri Oct 26 03:26:37 2012
       Checksum : 79d4964b - correct
         Events : 220

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdd1
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
           Name : merlin:1  (local to host merlin)
  Creation Time : Wed Sep 26 07:32:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 98b07c41:ff4bea98:2a765a6b:63d820e0

    Update Time : Fri Oct 26 03:26:37 2012
       Checksum : 6e2767e8 - correct
         Events : 220

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sde1
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 6db9959d:3cdd4bc3:32a241ad:a9f37a0c
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 12:12:59 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 677a4410:8931e239:2c789f83:e130e6f7

    Update Time : Sun Oct 28 12:12:59 2012
       Checksum : 98cb1950 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdf1
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 3700a0a6:3fadfd73:bc74b618:a5526767
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:28:30 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905392640 (1862.24 GiB 1999.56 GB)
     Array Size : 3905391616 (3724.47 GiB 3999.12 GB)
  Used Dev Size : 3905391616 (1862.24 GiB 1999.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 5a8a5423:10b7a542:26b5e2b3:f0887121

    Update Time : Sun Oct 28 11:28:30 2012
       Checksum : 8e90495f - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdg1
/dev/sdg1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 202255c9:786f474d:ba928527:68425dd6
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:24:36 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 4605c729:c290febb:92901971:9a3ed814

    Update Time : Sun Oct 28 11:24:36 2012
       Checksum : 38ba4d0a - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdh1
/dev/sdh1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 682356f5:da2c442e:7bfc85f7:53aa9ea7
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 12:13:44 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906761858 (1862.89 GiB 2000.26 GB)
     Array Size : 3906760704 (3725.78 GiB 4000.52 GB)
  Used Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 489943b3:d5e35022:f52c917a:9ca6ff2a

    Update Time : Sun Oct 28 12:13:44 2012
       Checksum : f6947a7d - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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



cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sdc1[0] sdd1[1]
      3905299456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

unused devices: <none>

¡Cualquier ayuda sería muy apreciada!

Relacionado:¿Por qué rsync no permite un tamaño de bloque> 128K?

Respuesta aceptada:

Si acaba de perder un disco, debería he podido recuperarme de eso usando el mucho más seguro --assemble .

Ha ejecutado crear ahora tantas veces que todos los UUID son diferentes. sdc1 y sdd1 compartir un UUID (esperado, ya que esa es su matriz de trabajo)... el resto de los discos comparten un nombre, pero todos tienen diferentes UUID. Así que supongo que ninguno de esos son los supermanzanas originales. Lástima…

Relacionado:¿Cómo instalar y mantenerse actualizado con las versiones más recientes de Blender en Ubuntu?

De todos modos, supongo que está intentando usar los discos incorrectos o está tratando de usar el tamaño de fragmento incorrecto (creo que el valor predeterminado ha cambiado con el tiempo). Es posible que su matriz anterior también haya usado una versión de superbloque diferente (ese valor predeterminado definitivamente ha cambiado), lo que podría compensar todos los sectores (y también destruir algunos de los datos). Finalmente, es posible que esté usando el diseño incorrecto, aunque eso es menos probable.

También es posible que su matriz de prueba sea de lectura y escritura (desde el punto de vista de md) que intenta usar ext3 en realidad hizo algunas escrituras. Por ejemplo, la repetición de un diario. Pero eso es solo si encontró una supermanzana en algún momento, creo.

Por cierto:creo que realmente deberías usar --assume-clean , aunque, por supuesto, una matriz degradada no intentará comenzar a reconstruir. Entonces probablemente desee configurar inmediatamente el modo de solo lectura.


Ubuntu
  1. Instalación de mod_pagespeed con Apache en Ubuntu/CentOS

  2. Configuración inicial del servidor con Ubuntu 14.04

  3. ¿Arranque muy lento con Ubuntu 15.04?

  4. ¿Intentando poner Kik en Ubuntu 13.04?

  5. Reconstruya la matriz mdadm RAID5 con menos discos

Instale Ubuntu 16.04 – Con capturas de pantalla

Gestión de paquetes de Ubuntu con apt

Asegure Ubuntu con ClamAV Antivirus

Instalar Portainer con Docker en Ubuntu

¿Problemas con la instalación de Ubuntu en Virtualbox?

¿Problema con Libre Office en Ubuntu 13.04?