Hi
I've been able to work around this issue by adding a hook which checks if the ovirtmgmt interface is a port on a ovs switch and if so add the correct data to interface element. I added this to before_device_create and before_nic_hotplug folders, it works as far as bringing the hosted engine up, but resyncing host network from engine side makes it loose the connection.

/Sverker


Den 2018-05-14 kl. 10:12, skrev Sverker Abrahamsson:

Apparently the logs were too big for the mailing list, but should have been received by Petr and Dominik. Let me know if not.

What it boils down to, I think, is that the xml sent to libvirt does not have the correct data for openvswitch in interface element, see snippet below.

The question is, where should that be set?

What I actually want to reach is to have ovirtmgmt network on OVN according to this description "https://gist.github.com/phoracek/ebbd9a6bcfcb14d88f6b463c8dccb27b" so it might be an unnecessary step to get it to work with OVS switch but the content of interface element in xml sent to libvirt is similar so I think an understanding of where it comes from is necessary to troubleshoot that (if needed).

/Sverker

Den 2018-05-13 kl. 00:23, skrev Sverker Abrahamsson:
Sure, they are attached. The attempt to start the hosted engine vm occurs at 14:29:42

Best regards
Sverker

Den 2018-05-11 kl. 13:39, skrev Petr Horacek:
Hi,

would you mind sharing the whole vdsm.log and supervdsm.log?

Thanks,
Petr

2018-05-10 22:48 GMT+02:00 Sverker Abrahamsson <sverker@abrahamsson.com>:
Hi Dominik

Den 2018-05-10 kl. 22:08, skrev Dominik Holler:

On Thu, 10 May 2018 19:15:07 +0200
Sverker Abrahamsson <sverker@abrahamsson.com> wrote:

Hi
I have a problem with running hosted engine with openvswitch. I have
Which version of oVirt?
Ovirt version is 4.2.3.5, vdsm version 4.20.27
How do you configured hosted engine to use openvswitch?
Did you follow the steps in
https://lists.ovirt.org/pipermail/users/2017-March/080748.html
?
I've followed the same steps as outlined in that mail just that I found it when I started to troubleshoot.
one cluster where the ovirt engine runs on the host, there it works
What is the switch type of this cluster?
OVS
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>

Where do you pick up this xml?
From vdsm.log when the vm is created
The xml for that vm as fetched from vdsm does not contain virtualport
Where do you pick up this xml, maybe from a logfile or virsh?
 vdsm-client VM getInfo vmID=3efc0421-5ad5-4a04-9a0e-30bd8822b299
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
What is the switch type of this cluster?
In the engine it's set to OVS, but at this point it hasn't started yet. Does the host have that setting somewhere?

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:

Can you share the error message from engine.log and vdsm.log, and maybe
supervdsm.log?
These are the error messages when vm fails to start, but it's caused by the interface element does not contain virtualport nor the correct bridge.

vdsm.log:
2018-05-10 22:45:30,562+0200 ERROR (vm/f222c92f) [virt.vm] (vmId='f222c92f-91af-4d1c-860d-c2b406211496') The vm start process failed (vm:943)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 872, in _startUnderlyingVm
    self._run()
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 2872, in _run
    dom.createWithFlags(flags)
  File "/usr/lib/python2.7/site-packages/vdsm/common/libvirtconnection.py", line 130, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/vdsm/common/function.py", line 92, in wrapper
    return func(inst, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1099, in createWithFlags
    if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
libvirtError: Unable to add bridge ovirtmgmt port vnet0: Operation not supported
2018-05-10 22:45:30,562+0200 INFO  (vm/f222c92f) [virt.vm] (vmId='f222c92f-91af-4d1c-860d-c2b406211496') Changed state to Down: Unable to add bridge ovirtmgmt port vnet0: Operation not supported (code=1)
(vm:1683)
2018-05-10 22:45:30,604+0200 INFO  (vm/f222c92f) [virt.vm] (vmId='f222c92f-91af-4d1c-860d-c2b406211496') Stopping connection (guestagent:438)

It's the hosted engine vm that fails to start, hence I don't have any engine.log and supervdsm.log doesn't contain anything about this

          <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?
_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org
_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org