Wystąpiła awaria dysku na serwerze i wymieniliśmy go przed usunięciem dysku z LVM.
Serwer ma 4 dyski fizyczne (PV), każdy z własną grupą woluminów (VG). Każdy VG ma 2 lub więcej woluminów logicznych (LV). Teraz LVM narzeka na brakujący dysk. Mamy więc VG (vg04) z dwoma LV, które stały się sierotami, niż musimy usunąć z systemu.
Problem polega na tym, że za każdym razem, gdy uruchamiamy dowolne polecenie LVM, pojawiają się następujące błędy „nieudanego odczytu”:
# 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
Brakujące VG i LV nie są ważne, chcemy je tylko usunąć.
Jak widać, wypróbowaliśmy wszystkie zgłoszone sugestie, jak dotąd bez powodzenia.
Dane wyjściowe z „lvm dumpconfig” można sprawdzić na stronie http://pastebin.com/MHiBzrLJ
remove_all --force --deferred --retry
zdmuchną każdy dysk zarządzany przez LVM w zasięgu. Będzie próbował i nie poddawał się, jak Terminator. Jestem bardzo ciekawy, dlaczego taka strzelba była uzasadniona.# dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>
Jest to szczególnie prawdziwe, jeśli na przykład wisiało urządzenie iscsi i usunąłeś je# iscsiadm -m node -U all -T <FQDN>
Podobnie było po usunięciu dysku VMware
/dev/sdb
.Użyj,
lsscsi
aby określić, które urządzenie jest używane (może być konieczne zainstalowanie programu), a następnie uruchomlsscsi
:Teraz napisz plik do usunięcia za pomocą
Urządzenie natychmiast zniknęło.
źródło
Jeśli nadal masz aktywne woluminy logiczne, być może będziesz musiał
itp.
źródło
lvchange -a n <VGNAME>
działa perfekt!