Impossibile rimuovere il volume logico aperto


20

Quando provo a rimuovere un volume logico ricevo il messaggio

#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  

Come posso forzare la rimozione di questo volume?

Grazie Everett

Risposte:


13

Cosa contiene il volume logico? È un filesystem (ho scritto per sbaglio una partizione)? Potrebbe essere montato? In quel caso:

umount /dev/my-volumes/volume-1

Ha delle istantanee attive?

Modifica: prova lvchange -an -v /dev/my-volumes/volume-1e lvremove -vf /dev/my-volumes/volume-1.

Modifica 2: inserisci "lvs".

Modifica 3: prova questo con qualche altro volume problematico. Non è l'opzione più pulita, ma secondo questo sito potrebbe funzionare ed è meno problematica del riavvio comunque.

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number

Non contiene nulla. Non è una partizione. Non è montato (non più). Nessuna istantanea attiva.
Everett Toews,

Bene, per cosa l'hai usato? Potrebbe darci un indizio su cosa potrebbe essere sbagliato.
Eduardo Ivanec,

Aggiunte le informazioni richieste alla domanda. Era usato come volume per OpenStack Compute (aka Nova). In realtà sono riuscito a rimuoverlo andando sul nucleare e riavviando la macchina e poi facendo un salvataggio. Molto più drastico di quanto volessi essere. Ho ancora altri volumi in giro che mi piacerebbe eliminare senza dover riavviare, quindi ogni aiuto che puoi fornire è apprezzato.
Everett Toews,

Ho aggiunto qualcosa per te da provare con qualche altro volume problematico.
Eduardo Ivanec,

Provato. Senza fortuna. Ho anche provato di tutto da wiki.davidjb.com/… (da qui il "/ dev / dm-1: lettura fallita ..." in alcuni dei miei output) ma neanche quello ha funzionato.
Everett Toews,

9

Se non si è in grado di smontare o rimuovere un volume logico, verificare che non vi siano processi che mantengono LV

Individua i numeri maggiori / minori per il volume logico che stai cercando di rimuovere, ad esempio: vol0

# dmsetup info -c | grep vol0

Prendi nota della quinta colonna, che indica se un volume è "aperto" e la seconda e la terza colonna, che sono rispettivamente gli ID maggiore e minore.

Trova qualsiasi processo collegato a questo volume cercando gli ID principali e secondari scoperti sopra:

# lsof | grep "major,minor"

Arrestare o interrompere qualsiasi processo che continua ad accedere al volume per continuare a smontare e rimuovere.

quindi prova lvremove


Nel mio caso nessun aiuto. Inoltre, il fusore non mostra alcun utilizzo. dmsetup dice che il dispositivo è occupato. il dispositivo è smontato (può essere montato in qualsiasi momento). solo un riavvio hardware aiuta: /
John

5

Probabilmente hai iet o tgt in esecuzione (che dipende da quale sia il tuo iscsi_helpervalore in /etc/nova/nova.conf, il valore predefinito è iet) e il servizio ha un filehandle aperto. Puoi controllare quale facendo qualcosa del genere (nel mio caso è 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

Se è iet, interrompere il servizio facendo:

service iscsitarget stop

Se è tgt, interrompere il servizio facendo:

service tgt stop

Dovresti quindi essere in grado di eliminare i tuoi volumi.


Ciò ha risolto il problema per me con OpenStack
juanluisrp,

5

Mi sono trovato in una situazione simile, ma la rimozione di LV è stata bloccata, perché stavo usando mount -o bind.

L'articolo che segue ha aiutato molto, usando lsof con un numero maggiore / minore di LV ha mostrato che il processo ha tenuto aperta LV, nel mio caso smbd.

Di un semplice gatto / proc / monta | grep LV_name mi ha portato alla conclusione, perché lvremove o dmsetup rimuovono i rifiuti per sbarazzarsi di LV non montato.

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


2

Chiudi i contenitori LXC che usano i filesystem tramite la loro configurazione: lxc.mount.entry


1

Se non riesci a rimuovere lvm, segui questi passaggi:

  1. smontare la partizione:

    # umount / dev / sda8

    (es. ho montato la partizione su /dev/sda8)

  2. prova a rimuoverlo in questo lvmmodo:

    # lvremove / dev / vgname / lvname

Se viene visualizzato un errore del tipo " impossibile rimuovere il volume logico aperto in Linux ", provare a disattivare LVM tramite i comandi seguenti e quindi rimuoverlo:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Facci sapere se riscontri problemi.


0

Ho avuto questo problema con un LV che proviene da 3 PV su un dispositivo iSCSI (con multipathing).

Nessuna soluzione ha funzionato ma un semplice riavvio ! ( commentalo in fstab , in modo che non venga montato di nuovo)

Forse questo aiuta qualcuno.


0

anche questo potrebbe essere bloccato dal servizio nfslock in RHEL, basta interrompere quel servizio e il gioco è fatto.


0

Ho avuto un problema simile. Il lv che ho provato a rimuovere era un dispositivo a blocchi VM, che conteneva un gruppo di volumi. Questo gruppo di volumi è stato filtrato in lvm.conf, ma alcuni elementi del mappatore di sviluppo sono stati creati in precedenza.

Per capire se è stato trattenuto da un dispositivo, guardare il suo numero minore (253, ?? ) ll /dev/<vg>/<lv>dovrebbe puntare a../dm-??

Quindi ls -la /sys/dev/block/253:??/holdersti darà i collegamenti di -> ../../dm-xxinoltro vg (ex ) sul tuo dispositivo (come pv)

Rimuovili con dmsetup remove /dev/dm-xx(assicurati che quei dm non siano usati) Quindi dovresti rimuovere / dev // che non è più un "pv" da qualche parte


Im Il mio caso è questo dmsetup remove /dev/dm-36ma ottengo l'errore, device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedvedi: serverfault.com/questions/926681/…
rubo77

0

Puoi scollegare il tuo LV dal dispositivo 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 ago 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


Ciao e benvenuto. Non credo lvremoveche funzionerà dopo unlink, potresti chiarire quella parte? Modifica la tua risposta.
Kubanczyk,

Dovrebbe funzionare. L'ho provato. Si scollegherà semplicemente al suo softlink. LV dovrebbe essere ancora esistente e puoi rimuoverlo con lvremove.
dayzero

0

Nel mio caso stavo eseguendo cAdvisor in un contenitore, e questo sembra impedire la rimozione di eventuali dispositivi a blocchi che sono stati montati all'avvio. La mia correzione era:

  1. Smonta il volume LVM
  2. Riavvia il contenitore cAdvisor ( docker restart $CONTAINER_ID)
  3. Tentare di nuovo la rimozione

-1

Ho lo stesso problema del tuo. Ho provato il seguente comando e ho risolto: swapoff -a

lvremove ...


ciò potrebbe indurre qualcuno a provare ciecamente il tuo comando. Meglio sottolineare, se LV viene usato per lo scambio, quindi scambiare prima il LV, e solo questo, non solo -a
roothahn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.