Tidak dapat menghapus volume logis terbuka

20

Ketika saya mencoba untuk menghapus volume logis saya menerima pesan itu

#lvremove /dev/my-volumes/volume-1 
Can't remove open logical volume "volume-1"

#lvchange -an -v /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Deactivating logical volume "volume-1"
Found volume group "my-volumes"
LV my-volumes/volume-1 in use: not deactivating

#lvremove -vf /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Can't remove open logical volume "volume-1"

#lvs
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
LV              VG           Attr   LSize   Origin Snap%  Move Log Copy%  Convert
volume-1        my-volumes   -wi-ao  50.00g  

Bagaimana saya bisa memaksa penghapusan volume ini?

Terima kasih, Everett

Everett Toews
sumber

Jawaban:

13

Apa isi volume logis? Apakah itu filesystem (saya tidak sengaja menulis partisi)? Mungkinkah itu sudah terpasang? Dalam hal itu:

umount /dev/my-volumes/volume-1

Apakah ada snapshot aktif?

Edit: coba lvchange -an -v /dev/my-volumes/volume-1dan lvremove -vf /dev/my-volumes/volume-1.

Sunting 2: silakan kirim 'lvs'.

Sunting 3: Coba ini dengan volume bermasalah lainnya. Ini bukan opsi terbersih tetapi menurut situs ini mungkin berfungsi, dan itu tidak terlalu bermasalah daripada me-reboot.

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number
Eduardo Ivanec
sumber
Itu tidak mengandung apa pun. Itu bukan partisi. Itu tidak terpasang (lebih lama). Tidak ada foto aktif.
Everett Toews
Nah, untuk apa Anda menggunakannya? Mungkin memberi kita petunjuk tentang apa yang mungkin salah.
Eduardo Ivanec
Menambahkan info yang Anda minta ke pertanyaan. Itu digunakan sebagai volume untuk OpenStack Compute (alias Nova). Saya benar-benar berhasil menghapusnya dengan menjadi nuklir dan me-reboot mesin dan kemudian melakukan lvremove. Jauh lebih drastis daripada yang saya inginkan. Saya masih memiliki beberapa volume lain yang berkeliaran yang ingin saya singkirkan tanpa harus reboot sehingga bantuan apa pun yang Anda berikan dapat dihargai.
Everett Toews
Saya telah menambahkan sesuatu untuk Anda coba dengan beberapa volume bermasalah lainnya.
Eduardo Ivanec
Sudah mencobanya. Tidak berhasil Saya juga mencoba semuanya dari wiki.davidjb.com/… (maka "/ dev / dm-1: read gagal ..." di beberapa output saya) tetapi itu tidak berhasil.
Everett Toews
9

Jika Anda tidak dapat melepas atau menghapus volume logis, verifikasi bahwa tidak ada proses memegang LV

Temukan nomor utama / minor untuk volume logis yang Anda coba hapus misalnya: vol0

# dmsetup info -c | grep vol0

Perhatikan kolom ke-5, yang menunjukkan apakah volume "terbuka," dan kolom ke-2 dan ke-3, yang merupakan ID utama dan minor.

Temukan semua proses yang terlampir pada buku ini dengan mencari ID utama dan minor yang ditemukan di atas:

# lsof | grep "major,minor"

Matikan atau bunuh proses apa pun yang masih mengakses volume untuk melanjutkan pelepasan dan penghapusan.

lalu coba lvremove

pruthvi
sumber
Dalam kasus saya tidak ada bantuan. Jadi, fuser tidak menunjukkan penggunaan apa pun. dmsetup mengatakan perangkat sedang sibuk. perangkat dilepas (dapat dipasang kapan saja). hanya reboot perangkat keras yang membantu: /
John
5

Anda mungkin menjalankan iet atau tgt (yang mana tergantung pada iscsi_helpernilai Anda di /etc/nova/nova.conf, default ke iet), dan layanan memiliki filehandle terbuka. Anda dapat memeriksa yang mana dengan melakukan sesuatu seperti ini (dalam kasus saya ini tgt)

# fuser /dev/nova-volumes/volume-00000001
/dev/dm-5:           19155

# lsof | grep /dev/dm-5
tgtd      19155            root   12u      BLK              252,5         0t0    2531554 /dev/dm-5

Jika memungkinkan, hentikan layanan dengan melakukan:

service iscsitarget stop

Jika benar, hentikan layanan dengan melakukan:

service tgt stop

Anda kemudian dapat menghapus volume Anda.

Lorin Hochstein
sumber
Ini memecahkan masalah bagi saya dengan OpenStack
juanluisrp
5

Saya masuk ke situasi yang sama, tetapi menghapus LV diblokir, karena saya menggunakan mount -o bind.

Artikel di bawah ini banyak membantu, menggunakan lsof dengan jumlah LV besar / kecil menunjukkan proses memegang LV terbuka, dalam kasus saya smbd.

Dari sekadar cat / proc / mounts | grep LV_name membawa saya pada kesimpulan, mengapa lvremove atau dmsetup menghapus sampah untuk menyingkirkan LV yang tidak terpasang.

http://kb.eclipseinc.com/kb/why-cant-i-remove-a-linux-logical-volume/

janfai
sumber
2

Matikan kontainer LXC yang menggunakan sistem file melalui konfigurasi mereka: lxc.mount.entry

Tonny
sumber
1

Jika Anda tidak dapat menghapus lvm, maka silakan ikuti langkah-langkah ini:

  1. unmount Partition:

    # umount / dev / sda8

    (mis. Saya telah memasang partisi pada /dev/sda8)

  2. coba hapus lvmseperti ini:

    # lvremove / dev / vgname / lvname

Jika Anda mendapatkan kesalahan seperti " tidak dapat menghapus volume logis terbuka di linux ", maka cobalah untuk menonaktifkan LVM melalui perintah di bawah ini dan kemudian hapus:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Beri tahu kami jika Anda menghadapi masalah apa pun.

Pankaj Patel
sumber
0

Saya punya masalah dengan LV yang berasal dari 3 PV pada perangkat iSCSI (dengan multipathing).

Tidak ada solusi yang berhasil tetapi reboot sederhana ! ( komentar di fstab , jadi jangan dipasang lagi)

Mungkin itu membantu seseorang.

davidak
sumber
0

ini juga mungkin dikunci oleh layanan nfslock di RHEL, hentikan saja layanan itu dan Anda sudah siap.

Veaceslav Mindru
sumber
0

Saya punya masalah serupa. Lv yang saya coba hapus adalah perangkat blok VM, memegang volumegroup. Volumegroup ini difilter dalam lvm.conf, tetapi beberapa item dev mapper dibuat sebelumnya.

Untuk mengetahui apakah dipegang oleh perangkat, lihat nomor minornya (253, ?? ) yang ll /dev/<vg>/<lv>harus ditunjukkan../dm-??

Kemudian ls -la /sys/dev/block/253:??/holdersakan memberi Anda tautan vg (ex -> ../../dm-xx) relaying di perangkat Anda (sebagai pv)

Hapus dengan dmsetup remove /dev/dm-xx(pastikan dm itu tidak digunakan) Maka Anda harus menghapus / dev // yang tidak lebih dari "pv" di suatu tempat

Cedric de lEpine
sumber
Saya kasus saya ini dmsetup remove /dev/dm-36tetapi saya mendapatkan kesalahan device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedlihat: serverfault.com/questions/926681/…
rubo77
0

Anda dapat memutuskan tautan LV Anda dari perangkat DM:

fuser -kuc / dev / my-sample-volume / volume-sample-1

/ dev / dm-21: 2400ce (root) 2739ce (root) 4793ce (root)

ls-l / dev / my-sample-volume / volume-sample-1

lrwxrwxrwx 1 root root 8 Agustus 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

batalkan tautan / dev / my-sample-volume / volume-sample-1

lvremove / dev / my-sample-volume / volume-sample-1

dayzero
sumber
Hai dan selamat datang. Saya pikir tidak lvremoveakan berhasil setelah itu unlink, dapatkah Anda menjelaskan bagian itu? Cukup edit jawaban Anda.
kubanczyk
Itu harus bekerja. Saya sudah mengujinya. Itu hanya akan memutuskan tautan ke softlink-nya. LV harus tetap ada dan Anda dapat menghapusnya dengan lvremove.
dayzero
0

Dalam kasus saya, saya menjalankan cAdvisor dalam sebuah wadah, dan ini tampaknya mencegah penghapusan perangkat blok apa pun yang dipasang ketika dimulai. Perbaikan saya adalah:

  1. Lepaskan volume LVM
  2. Mulai ulang wadah cAdvisor ( docker restart $CONTAINER_ID)
  3. Coba hapus lagi
RobM
sumber
-1

Saya memiliki masalah yang sama dengan Anda. Saya mencoba perintah berikut dan menyelesaikannya: swapoff -a

Lupakan ...

zhaorufei
sumber
yang bisa membuat seseorang mencoba perintah Anda secara membabi buta. Lebih baik tunjukkan saja, jika LV digunakan untuk swap, maka swapoff lv terlebih dahulu, dan hanya ini, bukan hanya -a
roothahn