Неможливо видалити відкритий логічний том


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

Чи є якісь активні знімки?

Edit: спроба lvchange -an -v /dev/my-volumes/volume-1і lvremove -vf /dev/my-volumes/volume-1.

Редагування 2: опублікуйте "lvs".

Edit 3: Спробуйте це з іншим проблемним томом. Це не найчистіший варіант, але згідно з цим сайтом він може працювати, і це менш проблематично, ніж перезавантажити все одно.

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

Він нічого не містить. Це не перегородка. Він більше не змонтований. Немає активних знімків.
Everett Toews

Ну, для чого ти ним користувався? Це може дати нам зрозуміти, що може бути не так.
Едуардо Іванець

До запиту було додано інформацію, яку ви запитували. Він використовувався як об'єм для OpenStack Compute (він же Нова). Мені реально вдалося її вийняти, запустивши ядерну машину і перезавантаживши машину, а потім зробивши lvremove. Шлях драматичніший, ніж я хотів бути. У мене все ще є кілька томів, які хотіли б позбутися, не потребуючи перезавантаження, тому будь-яка допомога, яку ви можете надати, цінується.
Everett Toews

Я додав щось для вас, щоб спробувати ще якийсь проблематичний том.
Едуардо Іванець

Спробував це. Не вдалося. Я також спробував все з wiki.davidjb.com/… (отже, "/ dev / dm-1: read read fail ") у деяких моїх результатах), але це також не працювало.
Everett Toews

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

Якщо це iet, зупиніть послугу, зробивши:

service iscsitarget stop

Якщо це tgt, зупиніть послугу, зробивши:

service tgt stop

Потім ви зможете видалити томи.


Це вирішило для мене проблему з OpenStack
juanluisrp

5

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

Стаття нижче допомогла дуже багато, використовуючи lsof з великою / незначною кількістю НН, показали проведення процесу відкритого ЛШ, в моєму випадку smbd.

Чим просто просто cat / proc / mounts | grep LV_name привів мене до висновку, чому lvremove або dmsetup delete відмовляються позбутися від неізольованого 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

У мене була ця проблема з НН, який надходить від 3 ПВ на пристрої iSCSI (з мультипатінгом).

Жодне рішення не працювало, а проста перезавантаження ! ( прокоментуйте це у fstab , щоб він більше не встановлювався)

Можливо, це комусь допомагає.



0

У мене була схожа проблема. Нижній рівень, який я намагався видалити, - це блок VM-блоків, що містить групу томів. Ця група томів була відфільтрована у lvm.conf, але деякі елементи картографічного розробника були створені раніше.

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

Тоді ls -la /sys/dev/block/253:??/holdersви дасте посилання vg (ex -> ../../dm-xx), що передаються на вашому пристрої (як відео)

Видаліть їх dmsetup remove /dev/dm-xx(переконайтеся, що ці dm не використовуються). Тоді вам слід видалити / dev // що більше не десь "pv"


Я Мій випадок це, 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-volumes / том-зразок-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-volumes / volume-sample-1 -> ../dm-21

від’єднати / dev / my-sample-volumes / volume-sample-1

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


Привіт і ласкаво просимо. Я не думаю lvremove, що після цього буде працювати unlink, чи не могли б ви уточнити цю частину? Просто відредагуйте свою відповідь.
kubanczyk

Це має працювати. Я перевірив це. Він просто відімкнеться від свого програмного забезпечення. НН повинен залишатися існуючим, і ви можете видалити його за допомогою lvremove.
dayzero

0

У моєму випадку я працював cAdvisor в контейнері, і це, здається, запобігає видаленню блокових пристроїв, які були встановлені під час його запуску. Моє виправлення:

  1. Відключіть гучність LVM
  2. Перезавантажте контейнер cAdvisor ( docker restart $CONTAINER_ID)
  3. Повторна спроба видалення

-1

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

lvremove ...


це може привести когось сліпо спробувати вашу команду. Краще лише зазначити, якщо LV використовується для swap, тоді поміняйте спочатку lv, і лише це, а не лише -a
roothahn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.