我們在伺服器中出現磁碟故障並在從 LVM 移除磁碟機之前更換了它。
伺服器有 4 個實體磁碟機 (PV),每個磁碟機都有自己的磁碟區組 (VG)。每個 VG 有 2 個或更多邏輯磁碟區 (LV)。因此,我們有一個 VG (vg04),其中有兩個已成為孤兒的 LV,我們需要將其從系統中清除。
問題是每次我們執行任何 LVM 命令時,我們都會收到這些「讀取失敗」錯誤:
# 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
遺失的 VG 和 LV 並不重要,我們只是想刪除它們。
正如您所看到的,我們已經嘗試了所有提出的建議,但到目前為止還沒有成功。
可以在以下位置檢查“lvm dumpconfig”的輸出http://pastebin.com/MHiBzrLJ
答案1
解決方案是執行 dmsetup,在本例中是兩個指令
dmsetup remove vg04-vz
dmsetup remove vg04-swap
在執行此操作之前,我使用命令“dmsetup info”檢查了兩個 LV 的“打開計數”是否為零。
警告:dmsetup 可能會對您的磁碟造成嚴重破壞,因此將來使用此資訊的任何人請確保閱讀手冊頁。
答案2
我在移除 VMware 磁碟後也經歷過類似的情況/dev/sdb
。
用於lsscsi
確定正在使用哪個裝置(您可能需要安裝程式)然後執行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
現在透過重新導向寫入刪除檔案1
。
# echo 1 > '/sys/class/scsi_device/2:0:1:0/device/delete'
該設備立即消失。
答案3
vgchange -an /dev/vg04
如果您的邏輯磁碟區仍然處於活動狀態,您可能必須
lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz
ETC。