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
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
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
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.
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/
Arrêtez les conteneurs LXC qui utilisent les systèmes de fichiers via leur configuration: lxc.mount.entry
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.
Si vous ne parvenez pas à supprimer lvm
, procédez comme suit:
démonter la partition:
# umount/dev/sda8
(par exemple, j'ai monté la partition sur /dev/sda8
)
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.
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:
docker restart $CONTAINER_ID
)Vous pouvez dissocier votre LV de l'appareil DM:
/ dev/dm-21: 2400ce (racine) 2739ce (racine) 4793ce (racine)
lrwxrwxrwx 1 root root 8 août 15 02:53/dev/my-sample-volumes/volume-sample-1 -> ../dm-21
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
cela peut également être verrouillé par le service nfslock dans RHEL, arrêtez simplement ce service et vous êtes prêt à partir.