Настройка фильтров lvm.conf

Для того,чтобы диски виртуальной машины, подключенные к вычислительному узлу как сетевые блочные устройства (по FiberChannel или iSCSI) не сканировались системой LVM узла, требуется настройка фильтров lvm.conf.

Если фильтры не настраивать, возможно появление ошибки команды flush для multipath с сообщением «map in use».

Настройка осуществляется путём добавления параметра filter в раздел devices файла /etc/lvm/lvm.conf.

Так как формат файла lvm.conf специфичен, для корректной или автоматизированной настройки можно использовать утилиту augtool. Вы можете установить пакет командой apt -y install augeas-tools.

Пример использования с предварительной проверкой на отсутствие настроенных фильтров:

[ $(augtool print /files/etc/lvm/lvm.conf/devices/dict/filter | wc -l) -gt 0 ] && echo "Filters aren't empty! Check manually!" || bash -c 'augtool -s set /files/etc/lvm
/lvm.conf/devices/dict/filter/list/1/str "a|/dev/sda$|" ; augtool set -s /files/etc/lvm/lvm.conf/devices/dict/filter/list/2/str "r|.*|"'

В данном примере добавляются два значения в параметр filter:

a|/dev/sda$| - для диска, на котором установлена хостовая ОС разрешение на сканирование,

r|.*| - для всех остальных дисков запрет.

Запись в файле будет выглядеть так:

devices = {
...
...
filter = [ "a|/dev/sda$|", "r|.*|" ]
}

Для конкретной установки облака и конфигурации вычислительного узла фильтры могут быть другие. Для выбора своей схемы обратитесь к документации по lvm2. Конечная цель настройки фильтров состоит в том, чтобы система LVM вычислительного Узла не подключала к узлу LV виртуальных машин. Следует также учитывать, что при использовании multipath, диски будут представлены в системе многократно: как scsi-устройства для каждого отдельного пути и как multipath-устройство.

После настройки фильтров при подключении диска к машине в /var/log/syslog на вычислительном узле можно будет увидеть такую запись:

lvm[15513]: pvscan[15513] /dev/mapper/36fc73fb10023e21aa52faf9b00000384-part5 excluded by filters: device is rejected
by filter config.