Menghapus vg dan lv setelah drive fisik telah dihapus

32

Kami mengalami kerusakan pada server dan menggantinya sebelum melepaskan drive dari LVM.

Server memiliki 4 drive fisik (PV), masing-masing dengan grup volumenya sendiri (VG). Setiap VG memiliki 2 atau lebih volume logis (LV's.) Sekarang LVM mengeluh tentang drive yang hilang. Jadi kami memiliki VG (vg04) dengan dua LV yang telah menjadi yatim piatu daripada yang perlu kami hapus dari sistem.

Masalahnya adalah setiap kali kita menjalankan perintah LVM, kita mendapatkan kesalahan 'baca gagal' ini:

# 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 dan LV yang hilang tidak penting, kami hanya ingin menghapusnya.

Seperti yang Anda lihat, kami sudah mencoba semua saran yang dibuat, sejauh ini tidak berhasil.

Output dari 'lvm dumpconfig' dapat diperiksa di http://pastebin.com/MHiBzrLJ

RCD
sumber

Jawaban:

46

Solusinya adalah menjalankan dmsetup, dalam hal ini dua perintah

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Sebelum melakukan ini, saya memeriksa dengan perintah 'info dmsetup' bahwa 'perhitungan terbuka' untuk kedua LV adalah nol.

PERINGATAN: dmsetup dapat menghancurkan kekacauan serius dengan disk Anda sehingga siapa pun yang menggunakan informasi ini di masa depan pastikan Anda membaca halaman manual.

RCD
sumber
3
Itu berhasil. LVM terlalu buruk adalah abstraksi yang bocor, tapi saya kira ini sebagus yang didapat.
Navin
1
Panggilan bagus dengan peringatan itu. Jika saya mengerti benar, nama yang sama remove_all --force --deferred --retryakan menerbangkan setiap drive yang dikelola LVM dalam jangkauan. Itu akan terus berusaha dan tidak menyerah, seperti Terminator. Saya sangat ingin tahu mengapa alas kaki seperti ini dibenarkan.
Dan Ross
Ada juga satu perangkat "berakhir dengan prasangka ekstrem" (dan / atau pembalasan, jika perangkat membuat Anda sibuk sepanjang malam): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>Ini terutama benar, jika misalnya perangkat iscsi digantung dan Anda menghapusnya# iscsiadm -m node -U all -T <FQDN>
AdamKalisz
9

Saya mengalami hal serupa setelah menghapus disk VMware /dev/sdb.

Gunakan lsscsiuntuk menentukan perangkat mana yang sedang digunakan (Anda mungkin perlu menginstal program) kemudian jalankan 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

Sekarang tulis file hapus dengan

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

Perangkat segera hilang.

Effendi
sumber
1
Terima kasih!! Ini berfungsi dengan baik bagi saya untuk menghilangkan kesalahan seperti "/ dev / sdb: baca gagal setelah 0 dari 4096 pada 0: Kesalahan input / output" setelah menghapus vg1-xyz basi via dmsetup.
celana kucing
1
Hanya ini yang bekerja untuk saya. Anda membuat hari saya.
odiszapc
2

vgchange -an / dev / vg04

Jika Anda memiliki volume logis yang masih aktif, Anda mungkin harus melakukannya

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

dll.

Rob Shinn
sumber
2
Sayangnya itu tidak memperbaikinya, hanya terus melontarkan kesalahan yang sama:
RCD
Pada sistem saya lvchange -a n <VGNAME>tidak berfungsi perfekt!
zzeroo