Hi
I have a problem with running hosted engine with openvswitch. I have one
cluster where the ovirt engine runs on the host, there it works and when
starting a vm the interface definition looks like this:
<interface type="bridge">
<address bus="0x00" domain="0x0000"
function="0x0"
slot="0x03" type="pci" />
<mac address="00:1a:4a:16:01:51" />
<model type="virtio" />
<source bridge="vdsmbr_2XMhqdgD" />
<virtualport type="openvswitch" />
<filterref filter="vdsm-no-mac-spoofing" />
</interface>
The xml for that vm as fetched from vdsm does not contain virtualport
tag nor does it use the correct bridge, it looks like this:
<interface type="bridge">
<model type="virtio"/>
<link state="up"/>
<source bridge="ovirtmgmt"/>
<address bus="0x00" domain="0x0000" function="0x0"
slot="0x03"
type="pci"/>
<mac address="00:1a:4a:16:01:51"/>
<filterref filter="vdsm-no-mac-spoofing"/>
<bandwidth/>
</interface>
I.e. somewhere the definition is modified to contain the correct data to
work with openvswitch
On the other cluster where I try to run hosted engine I don't get the
above behaviour. When the engine vm starts the interface settings are
not modified to use the bridge in openvswitch, with the result that the
vm fails to start:
<interface type="bridge">
<model type="virtio"/>
<link state="up"/>
<source bridge="ovirtmgmt"/>
<alias name="ua-430d692e-6ef0-4529-8af0-b37a53a11564"/>
<address bus="0x00" domain="0x0000"
function="0x0"
slot="0x03" type="pci"/>
<mac address="00:16:3e:0e:39:42"/>
<filterref filter="vdsm-no-mac-spoofing"/>
<bandwidth/>
</interface>
Last login: Thu May 10 16:23:48 2018 from 172.27.1.32
[root@h2 ~]# ovs-vsctl show
dfcf7463-ce51-4115-9a3a-ecab9efa8146
Bridge "vdsmbr_H91hH5sG"
Port "vdsmbr_H91hH5sG"
Interface "vdsmbr_H91hH5sG"
type: internal
Port ovirtmgmt
Interface ovirtmgmt
type: internal
Port "dummy0"
Interface "dummy0"
ovs_version: "2.9.0"
I assumed first there is a hook that make the needed change, but the
only hooks I can find that mentions openvswitch are
ovirt_provider_ovn_hook and 50_openstacknet but both those would set the
source bridge to br-int and not look up the dynamic name of the bridge
as created by vdsm.
One special thing about the host where I try to run hosted engine is
that the there is a dummy port since otherwise I couldn't get vdsm to
create the bridge, but that shouldn't affect changing the interface
definition for the vm.
Where should I look next?