web-dev-qa-db-fra.com

Impossible de supprimer le volume logique ouvert

Lorsque j'essaie de supprimer un volume logique, je reçois le message

#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  

Comment puis-je forcer la suppression de ce volume?

Merci, Everett

22
Everett Toews

Que contient le volume logique? Est-ce un système de fichiers (j'ai accidentellement écrit une partition)? Serait-ce qu'il est monté? Dans ce cas:

umount /dev/my-volumes/volume-1

At-il des instantanés actifs?

Modifier: essayez lvchange -an -v /dev/my-volumes/volume-1 et lvremove -vf /dev/my-volumes/volume-1.

Edit 2: veuillez poster 'lvs'.

Edit 3: Essayez ceci avec un autre volume problématique. Ce n'est pas l'option la plus propre mais selon ce site cela peut fonctionner, et c'est moins problématique que de redémarrer de toute façon.

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number
13
Eduardo Ivanec

Si vous ne parvenez pas à démonter ou à supprimer un volume logique, vérifiez qu'aucun processus ne contient le LV

Recherchez les nombres majeurs/mineurs pour le volume logique que vous essayez de supprimer, par exemple: vol0

# dmsetup info -c | grep vol0

Prenez note de la 5e colonne, qui indique si un volume est "ouvert", et des 2e et 3e colonnes, qui sont les ID principaux et mineurs, respectivement.

Recherchez tout processus associé à ce volume en recherchant les identifiants majeurs et mineurs découverts ci-dessus:

# lsof | grep "major,minor"

Arrêtez ou supprimez tout processus qui accède encore au volume pour continuer le démontage et la suppression.

puis essayez lvremove

11
pruthvi

Vous avez probablement iet ou tgt en cours d'exécution (lequel dépend de ce que votre iscsi_helper la valeur est dans /etc/nova/nova.conf, par défaut iet), et le service a un descripteur de fichier ouvert. Vous pouvez vérifier lequel en faisant quelque chose comme ça (dans mon cas, c'est 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

Si c'est iet, arrêtez le service en faisant:

service iscsitarget stop

Si c'est tgt, arrêtez le service en faisant:

service tgt stop

Vous devriez alors pouvoir supprimer vos volumes.

5
Lorin Hochstein

Je suis entré dans une situation similaire, mais la suppression de LV a été bloquée, car j'utilisais mount -o bind.

L'article ci-dessous a beaucoup aidé, en utilisant lsof avec un nombre majeur/mineur de LV, le processus a montré que le LV était ouvert, dans mon cas smbd.

Que simplement cat/proc/mounts | grep LV_name m'a conduit à la conclusion, pourquoi lvremove ou dmsetup remove refusent de se débarrasser du LV non monté.

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

5
janfai

Arrêtez les conteneurs LXC qui utilisent les systèmes de fichiers via leur configuration: lxc.mount.entry

2
Tonny

J'ai eu ce problème avec un LV qui provient de 3 PV sur un périphérique iSCSI (avec multi-trajets).

Aucune solution n'a fonctionné mais un simple redémarrage! (commentez-le dans fstab, donc il ne sera plus monté)

Peut-être que cela aide quelqu'un.

1
davidak

Si vous ne parvenez pas à supprimer lvm, procédez comme suit:

  1. démonter la partition:

    # umount/dev/sda8

    (par exemple, j'ai monté la partition sur /dev/sda8)

  2. essayez de supprimer lvm comme ceci:

    # lvremove/dev/vgname/lvname

Si vous obtenez une erreur comme " ne peut pas supprimer le volume logique ouvert sous linux ", essayez de désactiver le LVM via les commandes ci-dessous, puis supprimez-le:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Faites-nous savoir si vous rencontrez un problème.

1
Pankaj Patel

Dans mon cas, j'exécutais cAdvisor dans un conteneur, et cela semble empêcher la suppression de tous les périphériques bloqués qui ont été montés au démarrage. Ma solution était:

  1. Démontez le volume LVM
  2. Redémarrez le conteneur cAdvisor (docker restart $CONTAINER_ID)
  3. Tentative de suppression à nouveau
1
RobM

Vous pouvez dissocier votre LV de l'appareil DM:

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

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

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

lrwxrwxrwx 1 root root 8 août 15 02:53/dev/my-sample-volumes/volume-sample-1 -> ../dm-21

dissocier/dev/mes-volumes-d'échantillon/volume-échantillon-1

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

0
dayzero

J'avais un problème similaire. Le lv que j'ai essayé de supprimer était un périphérique bloc VM, contenant un groupe de volumes. Ce groupe de volumes a été filtré dans lvm.conf, mais certains éléments du mappeur de développement ont été créés plus tôt.

Pour comprendre était détenu par un appareil, regardez son numéro mineur (253, ??) ll /dev/<vg>/<lv> doit pointer vers ../dm-??

Alors ls -la /sys/dev/block/253:??/holders vous donnera des liens de vg (ex -> ../../dm-xx) relais sur votre appareil (en pv)

Supprimez-les avec dmsetup remove /dev/dm-xx (assurez-vous que ces dm ne sont pas utilisés) Ensuite, vous devez supprimer/dev // qui n'est plus un "pv" quelque part

0
Cedric de lEpine

cela peut également être verrouillé par le service nfslock dans RHEL, arrêtez simplement ce service et vous êtes prêt à partir.

0
Veaceslav Mindru