Offenes logisches Volume kann nicht entfernt werden

20

Wenn ich versuche, ein logisches Volume zu entfernen, erhalte ich die Meldung

#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  

Wie kann ich das Entfernen dieses Volumes erzwingen?

Danke, Everett

Everett Toews
quelle

Antworten:

13

Was enthält das logische Volume? Ist es ein Dateisystem (ich habe versehentlich eine Partition geschrieben)? Könnte es sein, dass es montiert ist? In diesem Fall:

umount /dev/my-volumes/volume-1

Hat es irgendwelche aktiven Schnappschüsse?

Bearbeiten: versuchen lvchange -an -v /dev/my-volumes/volume-1und lvremove -vf /dev/my-volumes/volume-1.

Edit 2: Bitte posten Sie 'lvs'.

Bearbeiten 3: Versuchen Sie dies mit einem anderen problematischen Volume. Es ist nicht die sauberste Option, aber laut dieser Site funktioniert es möglicherweise und es ist sowieso weniger problematisch als ein Neustart.

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number
Eduardo Ivanec
quelle
Es enthält nichts. Es ist keine Partition. Es ist nicht mehr montiert. Keine aktiven Schnappschüsse.
Everett Toews
Nun, wofür hast du es benutzt? Es kann uns einen Hinweis geben, was falsch sein kann.
Eduardo Ivanec
Die angeforderten Informationen wurden der Frage hinzugefügt. Es wurde als Volume für OpenStack Compute (auch bekannt als Nova) verwendet. Ich habe es tatsächlich geschafft, es zu entfernen, indem ich nuklear gegangen bin, die Maschine neu gestartet und dann einen lvremove durchgeführt habe. Viel drastischer als ich sein wollte. Ich habe noch einige andere Bände, die ich loswerden möchte, ohne neu starten zu müssen, sodass jede Hilfe, die Sie bereitstellen können, geschätzt wird.
Everett Toews
Ich habe etwas hinzugefügt, damit Sie es mit einem anderen problematischen Band versuchen können.
Eduardo Ivanec
Ich habe es versucht. Kein Glück. Ich habe auch alles von wiki.davidjb.com/… ausprobiert (daher in einigen meiner Ausgaben "/ dev / dm-1: read failed ..."), aber das hat auch nicht funktioniert.
Everett Toews
9

Wenn Sie ein logisches Volume nicht aushängen oder entfernen können, vergewissern Sie sich, dass es keine Prozesse gibt, die das LV enthalten

Suchen Sie die Major / Minor-Nummern für das logische Volume, das Sie entfernen möchten, z. B .: vol0

# dmsetup info -c | grep vol0

Beachten Sie die 5. Spalte, die angibt, ob ein Volume geöffnet ist, und die 2. und 3. Spalte, die die Haupt- bzw. Neben-IDs darstellen.

Suchen Sie nach Prozessen, die mit diesem Volume verknüpft sind, indem Sie nach den oben ermittelten Haupt- und Neben-IDs suchen:

# lsof | grep "major,minor"

Fahren Sie alle Prozesse herunter, die noch auf das Volume zugreifen, oder beenden Sie sie, um die Bereitstellung und das Entfernen fortzusetzen.

dann versuche lvremove

pruthvi
quelle
In meinem Fall keine Hilfe. Die Fixiereinheit zeigt keine Verwendung. dmsetup meldet, dass das Gerät ausgelastet ist. Gerät ist nicht montiert (kann jederzeit montiert werden). nur ein Hardware-Neustart hilft: /
John
5

Wahrscheinlich läuft iet oder tgt (was davon abhängt, welchen iscsi_helperWert Sie in /etc/nova/nova.conf haben, standardmäßig iet), und der Dienst hat ein offenes Dateihandle. Sie können überprüfen, welche, indem Sie etwas tun (in meinem Fall ist es 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

Wenn dies nicht der Fall ist, beenden Sie den Dienst folgendermaßen:

service iscsitarget stop

Wenn es tgt ist, stoppen Sie den Dienst, indem Sie Folgendes tun:

service tgt stop

Sie sollten dann in der Lage sein, Ihre Volumes zu löschen.

Lorin Hochstein
quelle
Dies löste das Problem für mich mit OpenStack
juanluisrp
5

Ich geriet in eine ähnliche Situation, aber das Entfernen von LV wurde blockiert, weil ich mount -o bind verwendet habe.

Der folgende Artikel hat mir sehr geholfen, indem ich lsof mit einer großen / kleinen Anzahl von LVs verwendete, die Prozess-Holding-geöffnete LVs zeigten, in meinem Fall smbd.

Als nur einfach cat / proc / mounts | grep LV_name führte mich zu dem Schluss, warum lvremove oder dmsetup remove sich weigern, nicht gemountete LV loszuwerden.

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

Janfai
quelle
2

Fahren Sie die LXC-Container, die die Dateisysteme verwenden, über ihre Konfiguration herunter: lxc.mount.entry

Tonny
quelle
1

Wenn Sie nicht entfernen können lvm, gehen Sie folgendermaßen vor:

  1. Hängen Sie die Partition aus:

    # umount / dev / sda8

    (zB ich habe die Partition gemountet /dev/sda8)

  2. versuchen zu entfernen lvm :

    # lvremove / dev / vgname / lvname

Wenn Sie eine Fehlermeldung wie "Das offene logische Volume kann unter Linux nicht entfernt werden " erhalten, versuchen Sie, das LVM über die folgenden Befehle zu deaktivieren und anschließend zu entfernen:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Lassen Sie uns wissen, wenn Sie auf ein Problem stoßen.

Pankaj Patel
quelle
0

Ich hatte dieses Problem mit einem LV, der von 3 PVs auf einem iSCSI-Gerät stammt (mit Multipathing).

Es hat keine Lösung funktioniert, aber ein einfacher Neustart ! ( Kommentiere es in fstab aus , damit es nicht wieder gemountet wird.)

Vielleicht hilft das jemandem.

Davidak
quelle
0

Dies kann auch durch den nfslock-Dienst in RHEL gesperrt werden. Beenden Sie einfach diesen Dienst und Sie können loslegen.

Veaceslav Mindru
quelle
0

Ich hatte ein ähnliches Problem. Ich habe versucht, ein VM-Block-Gerät zu entfernen, das eine Volumengruppe enthält. Diese Volumengruppe wurde in lvm.conf gefiltert, aber einige Dev-Mapper-Elemente wurden zuvor erstellt.

Um herauszufinden war , ist Halt durch eine Einrichtung, Blick auf seine Nebennummer (253, ?? ) ll /dev/<vg>/<lv>sollte zeigen auf../dm-??

Dann ls -la /sys/dev/block/253:??/holderswerden Sie Links von vg (ex -> ../../dm-xx) Weiterleiten auf Ihrem Gerät (als pv) geben

Entfernen Sie sie mit dmsetup remove /dev/dm-xx(stellen Sie sicher, dass diese dm nicht verwendet werden). Dann sollten Sie / dev // entfernen, das nicht mehr irgendwo ein "pv" ist

Cedric de lEpine
quelle
Ich bin mein Fall dies ist, dmsetup remove /dev/dm-36aber ich bekomme den Fehler device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedsiehe: serverfault.com/questions/926681/…
rubo77
0

Sie können die Verknüpfung Ihres LV mit dem DM-Gerät aufheben:

Fixiereinheit -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 Aug 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

Verknüpfung aufheben / dev / my-sample-volume / volume-sample-1

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

dayzero
quelle
Hallo und herzlich willkommen. Ich glaube nicht, dass lvremovees danach klappen wird. Könnten unlinkSie diesen Teil klären? Bearbeiten Sie einfach Ihre Antwort.
Kubanczyk
Es sollte funktionieren. Ich habe es getestet. Es wird nur die Verknüpfung zu seinem Softlink aufgehoben. Die LV sollte noch vorhanden sein und Sie können sie mit lvremove entfernen.
Tag Null,
0

In meinem Fall habe ich cAdvisor in einem Container ausgeführt, und dies scheint das Entfernen von Blockgeräten zu verhindern, die beim Start bereitgestellt wurden. Mein Fix war:

  1. Hängen Sie das LVM-Volume aus
  2. Starten Sie den cAdvisor-Container neu ( docker restart $CONTAINER_ID)
  3. Versuchen Sie erneut, das Gerät zu entfernen
RobM
quelle
-1

Ich habe das gleiche Problem wie du. Ich habe den folgenden Befehl ausprobiert und gelöst: swapoff -a

lvremove ...

zhaorufei
quelle
Das könnte dazu führen, dass jemand blind Ihren Befehl ausprobiert. Besser nur darauf hinweisen, wenn LV für den Swap verwendet wird, dann tauschen Sie zuerst das lv aus und nur dies, nicht nur -a
roothahn