Wie stoppe ich eine Linux LVM-Volume-Gruppe?

7

Ich habe derzeit mit einem Ausfall mehrerer Festplatten auf einer Linux-LVM-Volume-Gruppe zu tun, die von einem RAID-5- mdGerät gesichert wird. Eine Festplatte wurde vollständig herausgenommen, und eine andere zeigt eine begrenzte Anzahl beschädigter Sektoren, da sich die Stromversorgung anscheinend schlecht verhalten hat.

Das Problem ist, dass mddas Array nach einem E / A-Fehler heruntergefahren wird, da es nicht über genügend Geräte verfügt, um betriebsbereit zu sein. Wo mdder einzige beteiligt war, konnte ich mdadm --stopdas Array und dann neu erstellen, um alle Geräte wieder aktiv zu machen.

Leider ist das Array ein PV in einer LVM-Volume-Gruppe, und ich kann den Kernel anscheinend nicht dazu bringen, es freizugeben. vgchange -anscheint nichts zu tun, spuckt ein paar E / A-Fehler aus.

Ich vermisse offensichtlich etwas, aber wie kann ich LVM im Namen von -insert-favourite-godeity dazu bringen, die zugrunde liegende PV freizugeben, ohne den Server neu zu starten ?

thkala
quelle

Antworten:

6

Ich würde sagen, dass Sie in einer ziemlich schlechten Verfassung sind. Wenn Sie einfach nur verzweifelt versuchen, einige Ihrer Daten wiederherzustellen, und sich nicht besonders für das LVM interessieren (dessen Metadaten nach den vgchange -anE / A- Fehlern von wahrscheinlich bereits beschädigt sind ), würde ich empfehlen, auf ein niedriges Niveau zu gehen. Denken Sie daran, dass LVM nur ein Wrapper um den Kernel-Geräte-Mapper ist, sodass Sie dmsetupIhre logischen Volumes bearbeiten können . dmsetup tableSie erhalten eine Liste der derzeit aktiven logischen Datenträger. Es empfiehlt sich daher, die Ausgabe zu sichern, falls Sie später nicht einmal auf Ihr LVM zugreifen können. Dann können Sie versuchen, die Geräte zu stoppen, mit denen Sie dmsetup removeoder sogar stoppen möchten dmsetup remove_all. Stellen Sie jedoch sicher, dass sie zuerst nicht montiert sind.

Und natürlich kopieren Sie so viele Daten wie möglich an einen sicheren Ort.

Chutz
quelle
Eigentlich ist das LVM in Ordnung - solange mdnicht entschieden wird, eine der Festplatten wegzuwerfen. In diesem Fall führt jeder einzelne Zugriff auf das System zu einem E / A-Fehler. Übrigens dmsetup remove_all --forcescheint es nicht möglich zu sein, das Hindernis zu überwinden, das LVM auf seine Weise gesetzt hat ...
Thkala
3

Wenn vgchange -an(auf einem Ubuntu-System) nichts zu tun scheint, sollten Sie nach dem Lesen dieses Fehlerberichts (ich fand es googeln nach " dmsetup remove lvm vgchange") die Schuld an udev-Regeln geben : https://bugs.launchpad.net/ubuntu/+source/lvm2/ + Bug / 1088081

Die Problemumgehung ist wie folgt (danke an Martin):

sudo umount /mnt # asume the drive in question is mounted under /mnt  
sudo service udev stop
sudo lvchange -a n <LV-name>
sudo cryptsetup luksClose <LUKS-devicename>  
sudo service udev start
Smalcolm
quelle