Применение сетевого фильтра к гостю Ovirt без перезагрузки

Я пытаюсь изменить IP-адрес чистого трафика для гостевой виртуальной машины oVirt.

Работает, пока я перезагружаю ВМ. (Изменено в настройках сети гостевой виртуальной машины)

Но для производственной среды мы хотим иметь возможность изменять эти настройки на лету без перезагрузки.

Я попытался обновить детали в Virsh, однако они не применяются немедленно. Также, если я перезагружу гостевую виртуальную машину, Ovirt создаст новый файл Virsh XML. Таким образом, ни одно из изменений в VM через Virsh не сохраняется.

Есть ли способ изменить сетевые фильтры без перезагрузки виртуальной машины?

В KVM (virsh) вы добавляете следующий текст в xml виртуальной машины (Гость)

<filterref filter='clean-traffic'> <parameter name='IP' value='x.x.x.x'/> </filterref>

Где хххх - это IP интерфейса. Но вам нужно перезагрузиться, чтобы оно вступило в силу. Я хочу, чтобы фильтр чистого трафика вступил в силу немедленно, а не после перезагрузки.

В Ovirt мы добавляем фильтры через GUI, как это

Но опять же это вступает в силу только после перезагрузки, инициированной Ovirt. То, что я хочу, это способ сделать это активным мгновенно.

Это влияет на нас так: если мы изменим IP для виртуальной машины, а затем перезагрузим сеть, мы потеряем связь с миром, поскольку новый IP не совпадает с IP-адресом в фильтре. (xxxx) Поскольку это производственная среда, мы не можем просто перезагрузить серверы пользователей. Также у нас может быть несколько IP-адресов на одном Virtual Nic, а это значит, что нам может понадобиться добавить несколько IP-адресов в фильтр. Перезагрузка для каждого изменения не эффективна.

1 ответ

Если нет никакой возможности изменить требуемые настройки виртуальной машины через саму oVirt, вы всегда можете написать хук vdsm, который вставит нужные вам параметры в XML-файл непосредственно после запуска и миграции виртуальной машины. Сам XML не сохраняется, он генерируется из данных, сохраненных в базе данных движка, при запуске виртуальной машины.

Следует иметь в виду еще одну вещь - oVirt, являясь решением для виртуализации на уровне DC, управляет виртуальными машинами как виртуальным оборудованием, поэтому адреса не управляются, а сетевые адаптеры. Решения облачного уровня, такие как openstack, фактически управляют публичными адресами, но это происходит над самой виртуальной машиной - IP назначается, а виртуальная машина присваивается NAT, сама виртуальная машина не получает этот IP внутри.

Было бы здорово понять, что именно вы пытаетесь изменить на лету, чтобы мы могли помочь с настройкой.

Из документации libvirt:

Цель XML для сетевой фильтрации - дать возможность администраторам виртуализированной системы настраивать и применять правила фильтрации сетевого трафика на виртуальных машинах и управлять параметрами сетевого трафика, которые виртуальным машинам разрешено отправлять или получать. Правила фильтрации сетевого трафика применяются к хосту при запуске виртуальной машины. Поскольку правила фильтрации нельзя обойти изнутри виртуальной машины, это делает их обязательными с точки зрения пользователя виртуальной машины.

Подсистема сетевого фильтра позволяет настраивать правила фильтрации сетевого трафика каждой виртуальной машины индивидуально для каждого интерфейса. Правила применяются на хосте при запуске виртуальной машины и могут быть изменены во время работы виртуальной машины. Последнее может быть достигнуто путем изменения XML-описания сетевого фильтра.

Таким образом, правила фильтрации применяются при запуске виртуальной машины, а не во время ее выполнения, что означает, что если вы хотите добавить или удалить правило, вам необходимо остановить / запустить виртуальную машину. Модификации могут быть сделаны во время работы машины. Если вам нужно внести изменения в DOMXML во время работы виртуальной машины, вы можете выбрать событие подключения VDSM, написать перехват и внедрить его. Затем просто запустите событие, и хук будет применен.

Перехватчики VDSM и список событий можно найти здесь: https://www.ovirt.org/documentation/admin-guide/appe-VDSM_and_Hooks.html

Другие вопросы по тегам