Я запускаю libvirt с QEMU / KVM, и у меня есть образы дисков для виртуальных машин в логических томах LVM. Естественно, многие гостевые виртуальные машины также используют LVM для своих дисков.
Я побежал partprobe
на моем гипервизоре, и он обнаружил все гостевые разделы виртуальной машины, поэтому теперь инструменты LVM (pvs
, vgs
, lvs
и т. д.) перечисляются все объекты LVM гостя вместе с хостом.
Есть ли способ удалить все эти физические тома LVM из ведома хоста (конечно, не затрагивая гостей)? Перезагрузка хоста невозможна; некоторые из этих виртуальных машин должны продолжать работать.
В случае, если это поможет, вот как выглядят слои LVM, более или менее:
/dev/sdb1 - host PV
|
vg_hostname_vms - host VG
|
+-lv_vm1 - host LV, used as a disk image for vm1
| +-part1 - vm1 boot partition
| +-part2 - vm1 PV
| |
| vg_vm1 - vm1 VG
| +-lv_root - vm1 LV - /
| +-lv_swap - vm1 LV - swap
|
+-lv_vm2 - host LV, used as a disk image for vm2
+-part1 - vm1 boot partition
+-part2 - vm2 PV
|
vg_vm2
+-lv_root - vm2 LV - /
+-lv_swap - vm2 LV - swap
+-lv_home - vm2 LV - /home
Теперь, когда я бегу vgs
, вот что я вижу:
VG #PV #LV #SN Attr VSize VFree
vg_hostname_vms 1 2 0 wz--n- 10.91t 9.53t
vg_vm1 1 2 0 wz--n- 9.76g 0
vg_vm2 1 3 0 wz--n- 97.16g 0
Я хочу видеть только группы томов хоста (и только его физические и логические тома).
Я запускаю все это на хосте Scientific Linux 6.5. Гостевые ОС различаются.
Вы должны настроить фильтр LVM на хосте, чтобы отфильтровать обнаруженные нежелательные устройства LVM. Вот ссылка на официальную документацию:
http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/lvm_filters.html
что-то вроде filter = [ "r|/dev/VM_related_VG/*|" ]
должно сработать
Вы можете избавиться от гостевых PV с помощью низкоуровневого dmsetup
команда.
Чтобы удалить устройство, связанное с разделом 2 в образе диска vm1, запустите:
dmsetup remove /dev/mapper/vg_hostname_vms-lv_vm1p2
Это приведет к тому, что PV, VG и LV vm1 исчезнут из инструментов LVM хоста.