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


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.