Gdy próbuję usunąć wolumin logiczny, pojawia się komunikat
#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
Jak mogę wymusić usunięcie tego woluminu?
Dzięki, Everett
Jeśli nie możesz odmontować lub usunąć woluminu logicznego, sprawdź, czy nie ma procesów przechowujących LV
Znajdź numery główne / dodatkowe dla woluminu logicznego, który próbujesz usunąć, np .: vol0
Zwróć uwagę na piątą kolumnę, która wskazuje, czy wolumin jest „otwarty”, oraz drugą i trzecią kolumnę, które są odpowiednio głównym i pomocniczym identyfikatorem.
Znajdź dowolny proces dołączony do tego woluminu, wyszukując główne i mniejsze identyfikatory odkryte powyżej:
Zamknij lub zabij dowolny proces, który nadal uzyskuje dostęp do woluminu, aby kontynuować odmontowywanie i usuwanie.
następnie spróbuj lvremove
źródło
Prawdopodobnie masz uruchomiony iet lub tgt (który zależy od
iscsi_helper
wartości w /etc/nova/nova.conf, domyślnie jest ustawiony na iet), a usługa ma otwarty uchwyt pliku. Możesz sprawdzić, który z nich robi coś takiego (w moim przypadku jest to tgt)Jeśli jest okej, zatrzymaj usługę, wykonując:
Jeśli jest to tgt, zatrzymaj usługę, wykonując:
Powinieneś być w stanie usunąć swoje woluminy.
źródło
Znalazłem się w podobnej sytuacji, ale usuwanie LV było zablokowane, ponieważ korzystałem z mount -o bind.
Poniższy artykuł bardzo pomógł, używając lsof z większymi / mniejszymi liczbami LV pokazał proces utrzymywania otwartego LV, w moim przypadku smbd.
Niż po prostu cat / proc / mounts | grep LV_name doprowadziło mnie do wniosku, dlaczego lvremove lub dmsetup remove odmawiają pozbycia się niezmontowanego LV.
http://kb.eclipseinc.com/kb/why-cant-i-remove-a-linux-logical-volume/
źródło
Zamknij kontenery LXC korzystające z systemów plików za pomocą ich config: lxc.mount.entry
źródło
Jeśli nie możesz usunąć
lvm
, wykonaj następujące kroki:odmontować partycję:
# umount / dev / sda8
(np. zamontowałem partycję
/dev/sda8
)spróbuj usunąć
lvm
tak:# lvremove / dev / vgname / lvname
Jeśli pojawi się błąd typu „ nie można usunąć otwartego woluminu logicznego w systemie Linux ”, spróbuj dezaktywować LVM za pomocą poniższych poleceń, a następnie usuń go:
Daj nam znać, jeśli napotkasz jakiś problem.
źródło
Miałem ten problem z LV, który pochodzi z 3 PV na urządzeniu iSCSI (z wieloma ścieżkami).
Żadne rozwiązanie nie działało, ale prosty restart ! ( skomentuj to w fstab , aby nie został ponownie zamontowany)
Może to komuś pomaga.
źródło
może to również zostać zablokowane przez usługę nfslock w RHEL, po prostu zatrzymaj tę usługę, a będziesz gotowy.
źródło
Miałem podobny problem. Lv, który próbowałem usunąć, to urządzenie blokujące VM, trzymające grupę woluminów. Ta grupa woluminów została przefiltrowana w pliku lvm.conf, ale niektóre elementy mapujące deweloperów zostały wcześniej utworzone.
Aby dowiedzieć się, czy urządzenie jest w posiadaniu, spójrz na jego mniejszy numer (253, ?? ), który
ll /dev/<vg>/<lv>
powinien wskazywać../dm-??
Następnie
ls -la /sys/dev/block/253:??/holders
podadzą Ci linki-> ../../dm-xx
przekazywania vg (ex ) na twoim urządzeniu (jako pv)Usuń je za pomocą
dmsetup remove /dev/dm-xx
(upewnij się, że te dm nie są używane) Następnie powinieneś usunąć / dev //, które nie jest już gdzieś „pv”źródło
dmsetup remove /dev/dm-36
ale dostaję błąddevice-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failed
patrz: serverfault.com/questions/926681/…Możesz odłączyć LV od urządzenia 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 sierpnia 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21
unlink / dev / my-sample-volume / volume-sample-1
lvremove / dev / my-sample-volume / volume-sample-1
źródło
lvremove
zacznie działaćunlink
, czy możesz wyjaśnić tę część? Po prostu edytuj swoją odpowiedź.W moim przypadku uruchomiłem cAdvisor w kontenerze, co wydaje się uniemożliwiać usunięcie urządzeń blokowych, które zostały zamontowane podczas jego uruchamiania. Moja poprawka to:
docker restart $CONTAINER_ID
)źródło
Mam taki sam problem jak twój. Próbowałem następującego polecenia i rozwiązałem: swapoff -a
lvremove ...
źródło