Я пытаюсь интегрировать openvswitch в мою установку libvirt / qemu на Centos7. На самом деле все работает очень хорошо, за исключением того факта, что при перезапуске сетевых служб я теряю порты vnet, которые были добавлены libvirt / qemu в мою базу данных коммутатора ovs. Интерфейсы все еще существуют, если я ip link show
но не в переключателе db. Это, очевидно, приводит к тому, что мои виртуальные машины теряют сетевое подключение. Я определяю мост и vlan (или отсутствие vlan) в XML-файлах моего домена следующим образом:
<interface type='bridge'>
<mac address='52:54:32:a6:21:98'/>
<source bridge='ovsbr0'/>
<vlan>
<tag id='46'/>
</vlan>
<virtualport type='openvswitch'>
<parameters interfaceid='dbda261c-9a17-4a85-9839-53d43509ca0f'/>
</virtualport>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Поэтому, когда я запускаю свои виртуальные машины, порты и vlan автоматически добавляются следующим образом:
# ovs-vsctl show
cf9b8458-9b63-4cf1-add9-3ab5da81dc32
Bridge "ovsbr0"
Port "vnet0"
tag: 46
Interface "vnet0"
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Port "vnet2"
Interface "vnet2"
Port "bond0"
Interface "bond0"
Port "vnet1"
tag: 49
Interface "vnet1"
ovs_version: "2.5.1"
Но когда я перезагружаю сеть, я получаю следующее:
# ovs-vsctl show
cf9b8458-9b63-4cf1-add9-3ab5da81dc32
Bridge "ovsbr0"
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Port "bond0"
Interface "bond0"
ovs_version: "2.5.1"
Я понятия не имею, как это исправить или какое решение является правильным. Я не планирую выполнять множество перезапусков сети, но в случае необходимости я хочу быть уверенным, что мне не придется вручную добавлять порты ovs обратно после того, как я закончу. Есть ли способ заставить libvirt или qemu воссоздать их для меня или еще что-нибудь?
Любая помощь будет принята с благодарностью! Спасибо!