Wiederherstellen des LVM Raid-5-Arrays

Wiederherstellen des LVM Raid-5-Arrays

Ich habe ein ausgefallenes RAID-5-Array, das ich nicht wiederherstellen kann. Im Grunde ist es so, dass ich diese Daten in RAID 5 hatte und LVM verwendete, das jetzt über integriertes RAID verfügt. Ich bemerkte, dass eine der Festplatten defekt war, also besorgte ich mir eine neue und gab ein Problem, pvmoveum die Extents von der defekten Festplatte auf die neue Festplatte zu verschieben. Irgendwann während der Migration fiel die alte Festplatte aus und reagierte überhaupt nicht mehr (ich bin mir nicht sicher, warum das die Ursache war). Also startete ich sie neu und jetzt startet das Array überhaupt nicht mehr. Alles sieht gut genug aus, z. B. funktionieren 3/4 Festplatten, und ich bin ziemlich sicher, dass sogar die ausgefallene vorübergehend wieder funktioniert (traue ihr aber nicht). Aber wenn ich ein Problem auslöse, lvchange -a y vg-array/array-dataerhalte ich eine Fehlermeldung mit folgendem in 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.

Ich bin mir ziemlich sicher, dass es Möglichkeiten gibt, den Start mit mdadm zu erzwingen, aber ich habe nichts für lvm gesehen. Aber da ich drei Festplatten habe, sind alle meine DatenDortalso muss es wiederherstellbar sein. Weiß jemand, wie das geht?

Antwort1

Die Lösung hierfür besteht darin, den Kernel-Boot-Parameter hinzuzufügen

md-mod.start_dirty_degraded=1

/etc/default/grubDann zu Ihrem update-grubNeustart. Ich musste das Volume immer noch manuell aktivieren, aber nach dem Hinzufügen dieses Parameters werden Dirty Degraded Arrays jetzt als Warnung und nicht als Fehler angezeigt.

Dies ist dokumentiert unterhttps://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time-assembly-of-degraded-dirty-arrays

Antwort2

Nachdem ich ein neues Gerät hinzugefügt, ein PV darauf erstellt, das PV mit zur Volumegruppe hinzugefügt vgextendund fehlende PVs mit entfernt hatte vgreduce --remove --force, konnte ich mein RAID6-Array auf LVM mit dem folgenden Befehl reparieren.

lvconvert --repair <vgname>/<lvname>

Wir können den Fortschritt der Reparatur verfolgen lvs, indem wir ihn in Cpy%Sync anzeigen.

verwandte Informationen