Re: Automatic bonding of VFs and virtio



On Wed, 29 Nov 2017 20:19:41 +0100, Thomas Haller wrote:
On Tue, 2017-11-28 at 20:34 -0800, Jakub Kicinski wrote:
Hi!

There is a real need to automatically instantiate a bond/team and
enslave a VF and virtio device to solve live migrations issues [2].  
This has been tackled in multiple ways, but I believe this would be
a great feature to have in NetworkManager.  The recent proposal was 
to simply detect that bond should be created based on MAC addresses
of the virtio and VF devices being identical [1].

Is this a feature worth considering?  Any thoughts, comments?  

Hi,

the condition you mention sounds a bit too specific to me.
But to have some general way to generate connections would be a useful
feature.

For example, for ethernet devices we create a DHCP/ipv6-auto
connection, whenever we see them the first time (and they have no
connection). This is to activate something on a newly installed system.
It can be disabled via main.no-auto-default setting in
NetworkManager.conf.

This connection is also in-memory-only and won't persist (unless the
user modifies it, which causes it to be stored on disk). We long think
about adding a connection property "volatile", which basically is an
in-memory connection that gets automatically deleted when it is no
longer active. The auto-default connection should also be volatile
then.

But I am not sure that these auto-default connections are so great
after all.
systemd has this concept of generators and usually doesn't create
configuration on it's own. Well, at least not pid1, some other part of
systemd might generate them.
Maybe an external component should create such connections instead.
virtio-net is creating the bond and the VF.

To be clear the virtio-net is creating one netdev, and the VF is
another netdev owned by a HW specific driver.  The proposal I linked
suggests the virtio-net driver should instantiate the bond, but I find
that a complete layering violation and a policy placed in the kernel.

You say, it's complicated to setup the bits, but is it really?
Especially if we would have volatile connections, it should be too
hard (because you only have to create the connections and let it
auto-activate. You wouldn't have to worry about cleaning it up later).

Do you mean complicated to set it up in user space?  The idea is to not
require any configuration, no matter how simple.  Real deployments are
refusing to use SR-IOV because they don't want to bother with the
bonds.. :(  So I think it would be a great feature for NetworkManager :)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]