Назад | Перейти на главную страницу

Не удается удалить открытый логический том

Когда я пытаюсь удалить логический том, я получаю сообщение

#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  

Как я могу принудительно удалить этот том?

Спасибо, Эверетт

Что содержит логический том? Это файловая система (я случайно написал раздел)? Может быть, он установлен? В таком случае:

umount /dev/my-volumes/volume-1

Есть ли у него активные снимки?

Изменить: попробуйте lvchange -an -v /dev/my-volumes/volume-1 и lvremove -vf /dev/my-volumes/volume-1.

Изменить 2: опубликуйте "lvs".

Изменить 3: попробуйте это с другим проблемным объемом. Это не самый чистый вариант, но по мнению этот сайт это может сработать, и в любом случае это менее проблематично, чем перезагрузка.

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

Если вы не можете размонтировать или удалить логический том, убедитесь, что нет процессов, удерживающих LV.

Найдите старший / младший номер логического тома, который вы пытаетесь удалить, например: vol0

# dmsetup info -c | grep vol0

Обратите внимание на 5-й столбец, который указывает, является ли том «открытым», и 2-й и 3-й столбцы, которые являются основным и второстепенным идентификаторами, соответственно.

Найдите любой процесс, связанный с этим томом, выполнив поиск по основным и второстепенным идентификаторам, обнаруженным выше:

# lsof | grep "major,minor"

Завершите или завершите любой процесс, все еще обращающийся к тому, чтобы продолжить размонтирование и удаление.

тогда попробуйте lvremove

Вероятно, у вас работает iet или tgt (что зависит от вашего iscsi_helper значение находится в /etc/nova/nova.conf, по умолчанию iet), и у службы есть открытый дескриптор файла. Вы можете проверить, какой из них, сделав что-то вроде этого (в моем случае это 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

Если это так, остановите службу, выполнив:

service iscsitarget stop

Если это tgt, остановите службу, выполнив:

service tgt stop

После этого вы сможете удалить свои тома.

Я попал в аналогичную ситуацию, но удаление LV было заблокировано, потому что я использовал mount -o bind.

Приведенная ниже статья очень помогла, использование lsof с основным / второстепенным номером LV показало, что процесс удерживает открытый LV, в моем случае smbd.

Чем просто cat / proc / mounts | grep LV_name привел меня к выводу, почему lvremove или dmsetup remove отказываются избавляться от не подключенного LV.

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

Завершите работу контейнеров LXC, использующих файловые системы, через их config: lxc.mount.entry

Если вы не можете удалить lvm, затем выполните следующие действия:

  1. размонтировать раздел:

    # umount / dev / sda8

    (например, я установил раздел на /dev/sda8)

  2. попытаться удалить lvm вот так:

    # lvremove / dev / vgname / lvname

Если вы получите сообщение об ошибке "не удается удалить открытый логический том в Linux", затем попробуйте деактивировать LVM с помощью следующих команд, а затем удалите его:

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Сообщите нам, если у вас возникнут проблемы.

У меня была эта проблема с LV, который поступает из 3 PV на устройстве iSCSI (с несколькими путями).

Ни одно решение не помогло, но простое перезагрузка! (прокомментируйте это в fstab, чтобы он больше не монтировался)

Может это кому-то поможет.

В моем случае я бежал cAdvisor в контейнере, и это, кажется, предотвращает удаление любых блочных устройств, которые были смонтированы при запуске. Мое исправление было:

  1. Отключите том LVM
  2. Перезапустите контейнер cAdvisor (docker restart $CONTAINER_ID)
  3. Попытка удаления снова

это также может быть заблокировано службой nfslock в RHEL, просто остановите эту службу, и все готово.

У меня была похожая проблема. Lv, который я попытался удалить, был блочным устройством виртуальной машины, содержащим группу томов. Эта группа томов была отфильтрована в lvm.conf, но некоторые элементы dev mapper были созданы ранее.

Чтобы понять, что это за устройство, посмотрите на его младший номер (253, ??) ll /dev/<vg>/<lv> должен указывать на ../dm-??

затем ls -la /sys/dev/block/253:??/holders даст вам ссылки на vg (например, -> ../../dm-xx ) ретрансляция на вашем устройстве (как pv)

Удалите их с помощью dmsetup remove /dev/dm-xx (убедитесь, что эти dm не используются) Затем вы должны удалить / dev //, который больше не является "pv" где-нибудь

Вы можете отсоединить свой LV от устройства DM:

fuser -kuc / dev / мои-образцы-тома / объем-образец-1

/ dev / dm-21: 2400ce (корень) 2739ce (корень) 4793ce (корень)

ls -l / dev / мои-образцы-тома / объем-образец-1

lrwxrwxrwx 1 root root 8 августа 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

отвязать / dev / my-sample-volume / volume-sample-1

lvremove / dev / мои-образцы-тома / объем-образец-1

У меня такая же проблема, как и у вас. Я попробовал следующую команду и решил: swapoff -a

lvremove ...