30 votes

Impossible de supprimer un volume logique ouvert

Lorsque j'essaie de supprimer un volume logique, j'obtiens le message suivant

#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

17voto

sjors miltenburg Points 694

Que contient le volume logique ? S'agit-il d'un système de fichiers (j'ai accidentellement écrit "partition") ? Se pourrait-il qu'il soit monté ? Dans ce cas :

umount /dev/my-volumes/volume-1

A-t-il des instantanés actifs ?

Editer : essayer lvchange -an -v /dev/my-volumes/volume-1 y 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 d'après ce site ça peut marcher, 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

0 votes

Il ne contient rien. Ce n'est pas une partition. Il n'est pas (plus) monté. Il n'y a pas d'instantanés actifs.

0 votes

Eh bien, à quoi a-t-il servi ? Cela peut nous donner un indice sur ce qui ne va pas.

0 votes

J'ai ajouté les informations demandées à la question. Il était utilisé comme volume pour OpenStack Compute (aka Nova). J'ai réussi à le supprimer en redémarrant la machine et en faisant un lvremove. Bien plus drastique que ce que je voulais faire. J'ai encore d'autres volumes qui traînent et dont j'aimerais me débarrasser sans avoir à redémarrer, donc toute aide que vous pouvez fournir est appréciée.

16voto

pruthvi Points 141

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

Localisez les numéros majeurs et mineurs du 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 respectivement les identifiants majeurs et mineurs.

Retrouvez tout processus attaché à ce volume en effectuant une recherche sur les identifiants majeurs et mineurs découverts ci-dessus :

# lsof | grep "major,minor"

Arrêtez ou tuez tout processus accédant encore au volume pour poursuivre le démontage et la suppression.

puis essayez lvremove

2 votes

Dans mon cas, aucune aide. lsof, fuser ne montrent aucune utilisation. dmsetup dit que le périphérique est occupé. le périphérique est démonté (il peut être monté à tout moment). seul un redémarrage du matériel peut aider :/

8voto

Hamy Points 5700

Je me suis retrouvé dans une situation similaire, mais la suppression de LV était bloquée, parce que j'utilisais mount -o bind.

L'article ci-dessous a beaucoup aidé, en utilisant lsof avec les numéros majeurs/minor de LV a montré le processus tenant LV ouvert, dans mon cas smbd.

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

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

5voto

rob Points 201

Vous avez probablement un iet ou un tgt en cours d'exécution (lequel dépend de ce que votre iscsi_helper se trouve dans /etc/nova/nova.conf, la valeur par défaut est iet), et le service a un filehandle ouvert. Vous pouvez vérifier lequel en faisant quelque chose comme ceci (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 être en mesure de supprimer vos volumes.

0 votes

Ceci a résolu le problème pour moi avec OpenStack

2voto

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X