On Thu, Sep 15, 2016 at 1:30 PM, Michal Skrivanek <michal.skrivanek@redhat.com> wrote:

> On 15 Sep 2016, at 10:11, Dan Kenigsberg <danken@redhat.com> wrote:
>
> On Wed, Sep 14, 2016 at 03:04:14PM +0200, Michal Skrivanek wrote:
>>
>>> On 09 Sep 2016, at 13:09, Edward Haas <ehaas@redhat.com> wrote:
>>>
>>>
>>>
>>> On Thu, Sep 8, 2016 at 11:27 AM, Pavel Levshin <lpk@581.spb.su <mailto:lpk@581.spb.su>> wrote:
>>> Hi.
>>>
>>> I'm trying to learn Ovirt 4 and have a problem with it.
>>>
>>> My cluster consists of 3 nodes. I use Openvswitch for network connectivity. I have a HostedEngine and one additional VM in the cluster.
>>>
>>> When I try to migrate the VM to another node, it fails. From vdsm and libvirtd logs I see that proper network interface on destination node cannot be found. Libvirt tries to find Openvswitch bridge with name like "vdsmbr_AOYiPtcT". It exists on source node, but it is unique on every node, because it contains random part. Additionally, it changes on every reboot.
>>>
>>> How this is supposed to work?
>>>
>>> --
>>> Pavel Levshin
>>>
>>>
>>>
>>> Hi Pavel,
>>>
>>> VM migration is supported on the master branch, however it has not been ported to 4.0 yet.
>>
>>> You can either build VDSM from source (from master branch) or try to apply this patch on what you have:
>>> https://gerrit.ovirt.org/#/c/59645 <https://gerrit.ovirt.org/#/c/59645>
>>
>> That’s quite a horrible solution right now. I certainly would not like to see it in 4.0 (given the hacks around display).

What is horrible exactly?
It's not too late to propose other solutions.

Display uses libvirt to resolve a network name to an IP address for it to bound to. But that works only for linux bridges.
That is limiting, especially now that we do not have a Linux bridge, but something else.

>> Do we have a bug/plan to improve it?
>
> We have Bug 1362495 - [OVS] - Add support for live migration
> to track that.
>
> I'm afraid that we are not yet ready to backport it to 4.0 - we found
> out that as it is, it break migration for vmfex and external network
> providers; it also breaks when a buggy Engine db does not send a
> displayNetwork. But we plan to fix these issues quite soon.
>
> The hacks arround display are an actual imporovement. For "legacy"
> switchType, we maintain an on-host libvirt-side database of all networks
> only to keep libvirt happy. Having a database copy has all the known
> troubles of mismatches and being out of sync. For "ovs" switchType, we
> do not (we don't use a bridge, but a port group so there's no natural
> way to define our network in libvirt). Modifying the listening address
> on destination is the flexible and quick way to do it - I wish we had
> the libvirt migrate hook years ago.

doesn’t it prevent seamless virti-viewer console connection?

The end result is the same, we listen on the address of a specific network.
Previously it contained a network name and libvirt converted it to the correct IP it should bind to, now vdsm resolves it.

also the “TODO” in the code about multiple graphics is worrying (we fully support it and are considering to make it a default)

Supported where? virt networking code in VDSM which creates an interface for domxml does not support it at the moment.
Or am I missing something?

If we have an idea of what API would work well? we should raise or contribute that to libvirt. Surely it takes time but it is the only way how to improve the code eventually.

If using libvirt can allow us to drop some persisted data and logic from vdsm, then it makes sense, but I do not think this is the case.
As it stands today, depending on libvirt persisted data is limiting us, at least in the networking area. I also do not see the advantage of using it as a DB.

Thaks,
Edy.
 

Thanks,
michal