Frage Entfernen von vg und lv, nachdem das physische Laufwerk entfernt wurde


Wir hatten einen Festplattenfehler auf einem Server und ersetzten ihn, bevor wir das Laufwerk aus LVM entfernten.

Der Server verfügt über 4 physische Laufwerke (PVs) mit jeweils eigener Volume-Gruppe (VG). Jedes VG hat 2 oder mehr logische Volumes (LV's). Jetzt beschweren sich LVM über das fehlende Laufwerk. Wir haben also eine VG (vg04) mit zwei LVs, die Waisen geworden sind, als wir aus dem System entfernen müssen.

Das Problem ist, dass wir jedes Mal, wenn wir einen LVM-Befehl ausführen, diese "Read Failed" -Fehler bekommen:

# 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 VG und LVs sind nicht wichtig, wir wollen sie nur entfernen.

Wie Sie sehen können, haben wir alle Vorschläge ausprobiert, bisher ohne Glück.

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


27
2017-08-27 21:02


Ursprung




Antworten:


Die Lösung war dmsetup, in diesem Fall die beiden Befehle

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Zuvor habe ich mit dem Befehl 'dmsetup info' überprüft, dass die 'open count' für beide LV's gleich Null ist.

WARNUNG: dmsetup kann ernsthafte Verwüstungen mit Ihren Datenträgern verursachen, so dass jeder, der diese Informationen in Zukunft verwendet, bitte sicherstellen, dass Sie die Manpage lesen.


39
2017-09-02 03:16



Das hat den Trick gemacht. Es ist schade, LVM ist so eine undichte Abstraktion, aber ich denke, das ist so gut wie es geht. - Navin
Guter Ruf mit dieser Warnung. Wenn ich das richtig verstehe, heißt das ähnlich remove_all --force --deferred --retry würde jedes LVM gesteuerte Laufwerk in Reichweite bringen. Es würde weiter versuchen und nicht aufgeben, wie der Terminator. Ich bin super neugierig, warum eine solche Fußfeuerwaffe gerechtfertigt ist. - Dan Ross
Es gibt auch ein einzelnes Gerät "beenden mit extremen Vorurteilen" (und / oder Rache, wenn das Gerät beschäftigt Sie die ganze Nacht): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV> Dies gilt insbesondere dann, wenn beispielsweise ein iscsi-Gerät hängen geblieben ist und Sie es mit entfernt haben # iscsiadm -m node -U all -T <FQDN> - AdamKalisz


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

Benutzen lsscsi um festzustellen, welches Gerät verwendet wird (möglicherweise müssen Sie das Programm installieren) dann renne 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.


7
2018-06-24 08:53



Vielen Dank!! Dies funktionierte perfekt für mich, um Fehler wie "/ dev / sdb: lesen fehlgeschlagen nach 0 von 4096 bei 0: Eingabe / Ausgabe-Fehler" nach dem Entfernen eines veralteten vg1-xyz über dmsetup. - cat pants
Nur dieser funktioniert für mich. Du hast meinen Tag gerettet. - odiszapc


vgchange -a n / dev / vg04

Wenn Sie logische Volumes noch aktiv haben, müssen Sie möglicherweise

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

usw.


1
2017-08-28 13:39



Leider repariert das auch nicht, es wirft immer den gleichen Fehler auf: - RCD
Auf meinem System lvchange -a n <VGNAME> funktioniert perfekt! - zzeroo