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


20

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

#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  

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

Спасибо эверетт

Ответы:


13

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

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

Он не содержит ничего. Это не раздел. Это не установлено (больше). Нет активных снимков.
Эверетт Тоуэс

Ну, для чего ты это использовал? Это может дать нам ключ к пониманию того, что может быть не так.
Эдуардо Иванец

Добавил запрошенную вами информацию в вопрос. Он использовался в качестве тома для OpenStack Compute (он же Nova). Мне действительно удалось удалить его, сделав ядерную перезагрузку, перезагрузив машину и выполнив lvremove. Намного радикальнее, чем я хотел. У меня все еще есть другие тома, от которых я хотел бы избавиться без перезагрузки, поэтому любая помощь, которую вы можете предоставить, ценится.
Эверетт Тоуэс

Я добавил кое-что для вас, чтобы попробовать другой проблемный том.
Эдуардо Иванец

Попробовал это. Неудачно. Я также попробовал все с wiki.davidjb.com/… (отсюда и «/ dev / dm-1: read not failed ...» в некоторых моих выходных данных), но это тоже не сработало.
Эверетт Тоуэс

9

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

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

# dmsetup info -c | grep vol0

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

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

# lsof | grep "major,minor"

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

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


В моем случае не поможет. lsof, fuser не показывает никакого использования. dmsetup говорит, что устройство занято. Устройство не установлено (может быть установлено в любое время). помогает только аппаратная перезагрузка: /
Джон

5

Возможно, у вас запущен 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

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


Это решило проблему для меня с OpenStack
juanluisrp

5

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

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

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

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


2

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


1

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

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

    # umount / dev / sda8

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

  2. попробуй удалить lvmвот так:

    # lvremove / dev / vgname / lvname

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

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

Дайте нам знать, если у вас возникнут какие-либо проблемы.


0

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

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

Может быть, это кому-то помогает.



0

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

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

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

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


Im моем случае это , dmsetup remove /dev/dm-36но я получаю сообщение об ошибке device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedпосмотреть: serverfault.com/questions/926681/...
rubo77

0

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

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

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

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

lrwxrwxrwx 1 корневой корень 8 августа 15 02:53 / dev / my-sample-volume / volume-sample-1 -> ../dm-21

unlink / dev / my-sample-volume / volume-sample-1

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


Привет и добро пожаловать. Я не думаю, что lvremoveбудет работать после unlink, вы могли бы уточнить эту часть? Просто отредактируйте свой ответ.
Кубанчик

Он должен работать. Я проверял это. Он просто отсоединится от своей мягкой ссылки. LV должно быть еще в наличии, и вы можете удалить его с помощью lvremove.
Dayzero

0

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

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

-1

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

лвремове ...


это может привести к тому, что кто-то слепо попробует вашу команду. Лучше просто указать, что если LV используется для подкачки, то сначала поменяйте местами lv, и только это, а не только -a
roothahn
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.