Permítanme reconocer en primer lugar que he cometido errores y que tengo una copia de seguridad para la mayoría de los datos de este RAID, pero no para todos . Todavía tengo la esperanza de recuperar el resto de los datos. No tengo el dinero para llevar los discos a una empresa experta en recuperación.
Error # 0, no tener una copia de seguridad del 100%. Lo sé.
Tengo un mdadm
sistema RAID5 de 4x3TB. Drives / dev / sd [be], todos con una partición /dev/sd[b-e]1
. Soy consciente de que RAID5 en unidades muy grandes es arriesgado, pero lo hice de todos modos.
Eventos recientes
El RAID se degrada después de una falla de dos unidades. Una unidad [/ dev / sdc] realmente desapareció, la otra [/ dev / sde] volvió a funcionar después de un ciclo de encendido, pero no se volvió a agregar automáticamente al RAID. Así que me quedé con un RAID de 4 dispositivos con solo 2 unidades activas [/ dev / sdb y / dev / sdd].
Error # 1, no utilizar copias dd de las unidades para restaurar el RAID. No tenía los discos ni el tiempo. Error # 2, no hacer una copia de seguridad del superbloque y mdadm -E
de las unidades restantes.
Intento de recuperación
Remonté el RAID en modo degradado con
mdadm --assemble --force /dev/md0, using /dev/sd[bde]1.
Entonces podría acceder a mis datos. Lo reemplacé /dev/sdc
con un repuesto; vacío; unidad idéntica
Quité el viejo /dev/sdc1
del RAID
mdadm --fail /dev/md0 /dev/sdc1
Error # 3, no hacer esto antes de reemplazar la unidad
Luego particioné el nuevo /dev/sdc
y lo agregué al RAID.
mdadm --add /dev/md0 /dev/sdc1
Luego comenzó a restaurar el RAID. ETA 300 min. Seguí el proceso /proc/mdstat
hasta el 2% y luego fui a hacer otras cosas.
Comprobando el resultado
Varias horas (pero menos de 300 minutos) más tarde, verifiqué el proceso. Se había detenido debido a un error de lectura /dev/sde1
.
Aquí es donde realmente comienza el problema
Luego lo eliminé /dev/sde1
del RAID y lo volví a agregar. No recuerdo por qué hice esto; era tarde.
mdadm --manage /dev/md0 --remove /dev/sde1
mdadm --manage /dev/md0 --add /dev/sde1
Sin embargo, /dev/sde1
ahora estaba marcado como de repuesto. Así que decidí recrear toda la matriz usando --assume-clean usando lo que pensé que era el orden correcto y con la /dev/sdc1
falta.
mdadm --create /dev/md0 --assume-clean -l5 -n4 /dev/sdb1 missing /dev/sdd1 /dev/sde1
Eso funcionó, pero el sistema de archivos no fue reconocido al intentar montar. (Debería haber sido EXT4).
Orden del dispositivo
Luego verifiqué una copia de seguridad reciente que tenía /proc/mdstat
y encontré el orden de la unidad.
md0 : active raid5 sdb1[0] sde1[4] sdd1[2] sdc1[1]
8790402048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
Entonces recordé que este RAID había sufrido una pérdida de unidad hace aproximadamente un año, y me recuperé reemplazando la unidad defectuosa por una de repuesto. Eso puede haber codificado un poco el orden del dispositivo ... así que no había unidad [3] sino solo [0], [1], [2] y [4].
Traté de encontrar el orden de la unidad con el script Permute_array: https://raid.wiki.kernel.org/index.php/Permute_array.pl pero no encontré el orden correcto.
Preguntas
Ahora tengo dos preguntas principales:
Arruiné todos los superbloques en las unidades, pero solo di:
mdadm --create --assume-clean
comandos (por lo que no debería haber sobrescrito los datos en sí
/dev/sd[bde]1
. ¿Tengo razón en que, en teoría, el RAID se puede restaurar [suponiendo por un momento que/dev/sde1
está bien] si solo encuentro el orden correcto del dispositivo?¿Es importante que
/dev/sde1
se le dé el número de dispositivo [4] en el RAID? Cuando lo creo conmdadm --create /dev/md0 --assume-clean -l5 -n4 \ /dev/sdb1 missing /dev/sdd1 /dev/sde1
se le asigna el número [3]. Me pregunto si eso es relevante para el cálculo de los bloques de paridad. Si resulta ser importante, ¿cómo puedo recrear la matriz con la
/dev/sdb1[0]
falta [1]/dev/sdd1[2]
/dev/sde1[4]
? Si pudiera hacer que eso funcione, podría iniciarlo en modo degradado y agregar la nueva unidad/dev/sdc1
y dejar que se vuelva a sincronizar.
Está bien si quisieras señalarme que este puede no haber sido el mejor curso de acción, pero verás que me di cuenta de esto. Sería genial si alguien tiene alguna sugerencia.