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

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

pruthvi
источник
В моем случае не поможет. 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/

janfai
источник
2

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

Tonny
источник
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 , чтобы он больше не монтировался)

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

davidak
источник
0

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

Вячеслав Миндру
источник
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

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

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

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

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

лвремове ...

zhaorufei
источник
это может привести к тому, что кто-то слепо попробует вашу команду. Лучше просто указать, что если LV используется для подкачки, то сначала поменяйте местами lv, и только это, а не только -a
roothahn