Entfernen von vg und lv nach dem Entfernen des physischen Laufwerks

32

Wir hatten einen Datenträgerfehler in einem Server und haben ihn ausgetauscht, bevor wir das Laufwerk aus LVM entfernt haben.

Der Server verfügt über 4 physische Laufwerke (PVs) mit jeweils einer eigenen Volumengruppe (VG). Jede VG hat 2 oder mehr logische Volumes (LVs). Jetzt beschwert sich LVM über das fehlende Laufwerk. Wir haben also eine VG (vg04) mit zwei LVs, die verwaist sind, als wir aus dem System entfernen müssen.

Das Problem ist, dass jedes Mal, wenn wir einen LVM-Befehl ausführen, die folgenden "Lesefehler" auftreten:

# lvscan
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error

# vgreduce vg04 --removemissing --force
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found

# vgchange -a n /dev/vg04
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found

# lvchange -a n /dev/vg04/vz
  /dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
  /dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
  Volume group "vg04" not found
  Skipping volume group vg04

Die fehlenden VGs und LVs sind nicht wichtig, wir wollen sie nur entfernen.

Wie Sie sehen, haben wir alle Vorschläge ausprobiert, bisher ohne Erfolg.

Die Ausgabe von 'lvm dumpconfig' kann unter http://pastebin.com/MHiBzrLJ überprüft werden

RCD
quelle

Antworten:

46

Die Lösung bestand darin, dmsetup auszuführen, in diesem Fall die beiden Befehle

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Zuvor habe ich mit dem Befehl 'dmsetup info' überprüft, ob die Anzahl der offenen Stellen für beide LVs Null ist.

WARNUNG: dmsetup kann ernsthafte Schäden an Ihren Festplatten anrichten. Wenn Sie diese Informationen in Zukunft verwenden, lesen Sie bitte unbedingt die Manpage.

RCD
quelle
3
Das hat den Trick gemacht. Es ist schade, dass LVM eine so undichte Abstraktion ist, aber ich denke, das ist so gut wie es nur geht.
Navin
1
Guter Anruf mit dieser Warnung. Wenn ich das richtig verstehe, remove_all --force --deferred --retrywürde der gleichnamige Datenträger jedes von LVM verwaltete Laufwerk in greifbare Nähe rücken. Es würde weiter versuchen und nicht aufgeben, wie der Terminator. Ich bin super neugierig, warum so eine Fußwaffe gerechtfertigt war.
Dan Ross
Es gibt auch ein einzelnes Gerät, das "mit extremen Vorurteilen beendet" wird (und / oder Rache, wenn das Gerät Sie die ganze Nacht beschäftigt hat): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>Dies gilt insbesondere, wenn zum Beispiel ein iscsi-Gerät hängt und Sie es mit# iscsiadm -m node -U all -T <FQDN>
AdamKalisz
9

Ähnliches erlebte ich nach dem Entfernen einer VMware-Festplatte /dev/sdb.

Verwenden lsscsiSie diese Option, um festzustellen, welches Gerät verwendet wird (möglicherweise müssen Sie das Programm installieren), und führen Sie dann Folgendes aus lsscsi:

# lsscsi
[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0
[2:0:0:0]    disk    VMware   Virtual disk     1.0   /dev/sda
[2:0:1:0]    disk    VMware   Virtual disk     1.0   /dev/sdb <== the removed physical disk
[2:0:2:0]    disk    VMware   Virtual disk     1.0   /dev/sdc

Schreiben Sie nun die Löschdatei mit

# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete

Das Gerät ist sofort weg.

Effendi
quelle
1
Vielen Dank!! Dies funktionierte perfekt für mich, um Fehler wie "/ dev / sdb: Lesevorgang fehlgeschlagen nach 0 von 4096 bei 0: Eingabe / Ausgabefehler" nach dem Entfernen eines veralteten vg1-xyz über dmsetup zu beseitigen.
Katze Hosen
1
Nur dieser arbeitet für mich. Du hast meinen Tag gerettet.
Odiszapc
2

vgchange -an / dev / vg04

Wenn Sie noch aktive logische Volumes haben, müssen Sie dies möglicherweise tun

lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz

etc.

Rob Shinn
quelle
2
Leider behebt das auch nicht, es wirft immer wieder den gleichen Fehler:
RCD
Auf meinem System lvchange -a n <VGNAME>funktioniert das einwandfrei!
Zoo