On Sat, Sep 27, 2014 at 4:29 PM, Tim Bell Tim.Bell@cern.ch wrote:
I also am not clear on what the best option is for a scalable open source Neutron plug in. The surveys are regularly reporting open vswitch is the most commonly used but it is not clear if that is the best one for production at scale. Are there any references of real life usage of OVS at the 1000s of hypervisors level ?
In public cloud we run our own opensource Neutron plugin
(https://github.com/rackerlabs/quark) which is conceptually similar to
ML2. The only real reason we don't run ML2 is that we proposed the
Quark model of minimizing the L2 operations into tiny backend drivers
and it was not well received. We went on developing Quark in the open,
and a month or two later ML2 came along, but we weren't in a position
to change direction. If we were starting over today I think ML2 and
Ryu's ofagent would be the direction I would like to go for 1000's of
I think much of the confusion as to "OVS" performance is due to the
Neutron plugin sharing the same name as the data plane system. With
OVS (not the Neutron plugin) we have 10,000's of hypervisors running
it as their dataplane. Since the majority of our vifs are just bridged
to a publicnet or servicenet fabric, we use the Quark Neutron plugin
to model the VM's connections, and then udev rules on each hypervisor
to actually program static flows per vif into the OVS dataplane.
We haven't opensourced the udev scripts, as they are public cloud
specific and probably not generally applicable (business logic
unfortunately infected them ;( ); however, I've got it in the back of
my mind to reimplement them using Ryu as the controller framework and
I've slowly been adding in remote ovsdb replication and two draft
rfc's (https://tools.ietf.org/html/draft-ietf-l2vpn-evpn and
https://tools.ietf.org/html/draft-sd-l2vpn-evpn-overlay) in my github
fork of Ryu to that end with the eventual goal of getting them ready
to be submitted to upstream Ryu. That will allow us to decouple the
flushing of flows to the dataplane from the flow generation and
opensource it for anyone to use.
TL;DR I don't think there is an opensource scalable (depending on your
definition of scale ;) ) drop and go Neutron ovs dataplane yet. The
private cloud choice of ML2 and LinuxBridge mech is probably the best
option as it currently stands.