Das System startet nicht von der Root-LVM-RAID1-Partition, wenn eines der zugrunde liegenden PVs fehlt

Das System startet nicht von der Root-LVM-RAID1-Partition, wenn eines der zugrunde liegenden PVs fehlt

Ich habe LVM RAID 1 (nicht mdadm RAID 1, sondern genau LVM2 RAID 1) für meine Root-Partition. Ich möchte mein System ohne die Festplatten booten lassen, auf denen sich die zugrunde liegenden PVs der Root-LVM-Partition befinden.

Die Kernel-Startzeile in grub.cfg (automatisch generiert von GRUB2) sieht folgendermaßen aus:

linux   /kernel-genkernel-x86-3.11.7-hardened-r1-3 root=/dev/mapper/vg-root ro dolvm

Wenn beide Festplatten aktiviert sind, sieht es einwandfrei aus und das System verfügt über eine HDD-fehlertolerante Laufzeit, d. h. es funktioniert ordnungsgemäß, wenn eine der HDDs während der Laufzeit ausfällt.

Wenn ich jedoch versuche, ohne eine der Festplatten zu booten, erhalte ich

Refusing activation of partial LV root. Use --partial to override.

während des Bootens und Kernel Panic. Einerseits scheint es vernünftig, da es kein normales Verhalten ist, dass LVM startet, wenn einer der PVs fehlt. Es ist jedoch absolut notwendig, um den Server zu booten. Die mögliche Problemumgehung, die mir einfällt, ist das Hinzufügen einer zusätzlichen Option zur Kernel-Startzeile.

Wissen Sie, wie Sie LVM RAID 1 für die Root-Partition zum Laufen bringen, wenn eine der Festplatten nicht funktioniert?

Antwort1

Das Problem wurde gelöst in derLVM Version 2.02.108im Juni 2014.

AerniedrigtDer LV-Aktivierungsmodus wurde dem LVM hinzugefügt und wurde zum Standardaktivierungsmodus. Grundsätzlich aktiviert er einen LV, wenn dies ohne Datenverlust möglich ist, aber auch, wenn der LV unvollständig ist (wie im Fall von RAID1 LVM ohne ein Bein).

Eine ausführlichere Beschreibung finden Sie hier:LVM: Aktivierung: „Degraded“-Aktivierungsmodus hinzufügen.

Antwort2

Ich habe das noch nicht ausprobiert und bin nicht sicher, ob es die beste Lösung ist, aber es sollte Ihnen helfen, loszulegen ... Ich würde Ihnen dringend empfehlen, zumindest die Quellen unten durchzusehen, um zu überprüfen, ob das, was ich hier habe, auch stimmt ... :)

Grundsätzlich müssen Sie vom Rettungsmedium booten und die PVs, VGs und LVs erneut scannen.

lvm pvscan
lvm vgscan    
lvm lvscan

Dann sollten Sie die VG-Aktivierung erzwingen können:

lvm vgchange -ay --partial VolGroup00

Sobald dies erledigt ist, können Sie die fehlende Spiegelkopie aus der VG entfernen:

lvm vgreduce --removemissing --force VolGroup00

Sobald dies erledigt ist, sollten Sie mit dem Neustart in eine nicht gespiegelte Konfiguration fertig sein.

Wenn Sie wieder einsatzbereit und zufrieden sind und die fehlerhaften Laufwerke repariert bzw. ersetzt haben, müssen Sie sie wieder zum System hinzufügen und dann etwa Folgendes tun (vorausgesetzt, dass /dev/sdb das ausgefallene Laufwerk ist und Sie darauf mit fdisk eine LVM-Partition als /dev/sdb1 erstellt haben und dass sich das fehlerfreie Spiegellaufwerk in /dev/sda1 befindet):

pvcreate /dev/sdb1
lvm vgextend VolGroup00 /dev/sdb1

Anschließend müssen Sie jeden der LV-Spiegel mit etwas wie dem folgenden neu erstellen:

lvm lvconvert -m 1 /dev/VolGroup00/usr /dev/sda1 /dev/sdb1
lvm lvconvert -m 1 /dev/VolGroup00/var /dev/sda1 /dev/sdb1
lvm lvconvert -m 1 /dev/VolGroup00/root /dev/sda1 /dev/sdb1
...

Quellen:

verwandte Informationen