Tengo una matriz raid-5 fallida que parece que no puedo recuperar. Básicamente, la historia es que tenía estos datos en raid 5 y estaba usando LVM que ahora tiene raid integrado. Noté que uno de los discos estaba funcionando mal, así que compré uno nuevo y pedí pvmove
mover las extensiones del disco defectuoso al nuevo disco. En algún momento durante la migración, el disco antiguo falló y dejó de responder por completo (no estoy seguro de por qué causaría eso). Así que lo reinicié y ahora la matriz no aparece en absoluto. Todo se ve bastante bien, por ejemplo, 3/4 de los discos funcionan, y estoy bastante seguro de que incluso el que falló tiene una copia de seguridad temporal (aunque no confíe). Pero cuando lo emito, lvchange -a y vg-array/array-data
aparece un error con lo siguiente en dmesg
not clean -- starting background reconstruction
device dm-12 operational as raid disk 1
device dm-14 operational as raid disk 2
device dm-16 operational as raid disk 3
cannot start dirty degraded array.
Estoy bastante seguro de que hay formas de forzar el inicio usando mdadm pero no he visto nada para lvm. Pero como tengo tres discos, todos mis datos estánallápor lo que debe ser recuperable. Alguien sabe como hacerlo?
Respuesta1
La solución a esto es agregar el parámetro de arranque del kernel.
md-mod.start_dirty_degraded=1
A tu /etc/default/grub
entonces update-grub
y reinicia. Todavía tenía que activar el volumen manualmente, pero después de agregar ese parámetro, las matrices sucias y degradadas ahora son una advertencia y no un error.
Esto está documentado enhttps://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time-assembly-of-degraded-dirty-arrays
Respuesta2
Después de agregar un nuevo dispositivo, crear un PV en él, agregar el PV al grupo de volúmenes con vgextend
y eliminar los PV faltantes usando vgreduce --remove --force
, podría reparar mi matriz raid6 en LVM usando el siguiente comando
lvconvert --repair <vgname>/<lvname>
Podemos ver el progreso de la reparación mediante lvs
, que lo mostrará en Cpy%Sync.