Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

Но снова это вступает в силу только после перезагрузки, инициированной Овиртом. Я хочу, чтобы это мгновенно стало активным.

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

Если нет возможности изменить требуемые параметры виртуальной машины через 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