У меня есть сервер Debian с KVM + libvirt. Диски виртуальных машин - это LV на хосте. Проблема в том, что если я создаю LV внутри гостей, они рекурсивно обнаруживаются на хосте, и это создает всевозможные проблемы, такие как невозможность правильно изменить размер или удалить LV.
Поэтому я добавил правило фильтра в /etc/lvm/lvm.conf
вот так, чтобы исключить сканирование LV внутри других LV:
filter = [ "r|/dev/dm-*|", "a|/dev/sd.*|" ]
Теперь моя проблема: как заставить LVM повторно сканировать только «настоящие» VG и LV? Теперь у меня такие ошибки:
# lvs
WARNING: Device for PV 73C0Ma-sAYV-Aa10-pAHB-ZAZA-3QjH-Rk1eTS not found or rejected by a filter.
WARNING: Device for PV fcEG5k-BLzO-dbAr-Yw8o-dPw2-1hAk-VyluvW not found or rejected by a filter.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
HaProxy data -wi-ao---- 20,00g
backup data -wi-ao---- 4,00t
database data -wi-ao---- 16,00g
lvol0 data swi-a-s--- 16,07g stone-web 70,43
stone-vtls data -wi-ao---- 2,00t
stone-web data owi-aos--- 16,00g
lv0 ftpstorage -wi-----p- 10,00t
Последний lv в этом случае фактически является LV от виртуальной машины, а не с хоста ... Как мне избавиться от него без перезагрузки хоста?
Согласно странице руководства pvscan и документации RHEL следующее должно работать: /etc/lvm/lvm.conf
global_filter = [ "r|/dev/dm-*|", "a|/dev/sd.*|" ]
pvscan --cache
https://www.systutorials.com/docs/linux/man/8-pvscan/
To prevent devices from being scanned by pvscan --cache,
add them to lvm.conf(5) devices/global_filter.
The devices/filter setting does not apply to system level
scanning. For more information, see:
lvmconfig --withcomments devices/global_filter