On Sun, 11 Nov 2012 22:07:30 +0800, Dan Kenigsberg <dan...@redhat.com>
Nowadays, when vdsm receives the setupNetowrk verb, it mangles
/etc/sysconfig/network-scripts/ifcfg-* files and restarts the network
service, so they are read by the responsible SysV service.
This is very much Fedora-oriented, and not up with the new themes
in Linux network configuration. Since we want oVirt and Vdsm to be
distribution agnostic, and support new features, we have to change.
setupNetwork is responsible for two different things:
(1) configure the host networking interfaces, and
(2) create virtual networks for guests and connect the to the world over
Functionality (2) is provided by building Linux software bridges, and
vlan devices. I'd like to explore moving it to Open vSwitch, which would
enable a host of functionalities that we currently lack (e.g.
tunneling). One thing that worries me is the need to reimplement our
config snapshot/recovery on ovs's database.
I have tried replacing Linux bridge with ovs in ovirt-node, using a earlier
version(like 1.3 or so) with brigde-compatible support. Then I had nothing
extra to do other than loading ovs's brcompat module instead of linux
And newer version's ovs also has network-scripts support for rhel-based
So the problem is more about the tool and the way we achieve the
As far as I know, ovs is unable to maintain host level parameters of
interfaces (e.g. eth0's IPv4 address), so we need another
tool for functionality (1): either speak to NetworkManager directly, or
to use NetCF, via its libvirt virInterface* wrapper.
I have minor worries about NetCF's breadth of testing and usage; I know
it is intended to be cross-platform, but unlike ovs, I am not aware of a
wide Debian usage thereof. On the other hand, its API is ready for vdsm's
usage for quite a while.
NetworkManager has become ubiquitous, and we'd better integrate with it
better than our current setting of NM_CONTROLLED=no. But as DPB tells
we'd better offload integration with NM to libvirt.
We would like to take Network configuration in VDSM to the next level
and make it distribution agnostic in addition for setting the
infrastructure for more advanced features to be used going forward.
The path we think of taking is to integrate with OVS and for feature
completeness use NetCF, via its libvirt virInterface* wrapper. Any
comments or feedback on this proposal is welcomed.
If we use NetCF, are we limited to use only NM or only ovs? If not, as long
as virInterface driver can provide a set of consistent and workable APIs,
vdsm shouldn't care much about how functionality (1) and (2) are actually
achieved. For different purpose, it is nice to maintain the variety to
the functionalities, maybe with plugins for those several tools and ways.
vdsm-devel mailing list