Re: mdsal clustering

Sam Hague


the design for clustering is very early and just drawing up how it will look so there isn't much detail. That should firm up over the next couple weeks.

Using a LB in front of ODL, I would suspect just won't work well. The main issue is that the OVSDB node will eventually connect to a single ODL node and there is no sharing of information between the ODL nodes. The ODL southbound is mdsal aware but nothing behind it to share data has been worked out. The neutron side has the same issue. So it just won't work the way you'd expect. If the OVSDB node connects to a different ODL in the cluster then that will likely just be viewed as a new connection and the process starts all over.

Thanks, Sam

----- Original Message -----
From: "Michał Skalski" <michal@...>
To: "Anil Vishnoi" <vishnoianil@...>
Cc: "<ovsdb-dev@...>" <ovsdb-dev@...>
Sent: Tuesday, July 14, 2015 5:38:42 PM
Subject: Re: [ovsdb-dev] mdsal clustering

Hi Natarajan and Anil,

In my lab I use 3 OpenStack controllers and 2 computes. On each
OpenStack controllers I have installed ODL Lithium. I tried to show it
on this diagram:

On each controller there is a instance of haproxy which operate on
dedicated namespace and put frontend of ovsdb manager on VIP
( On the backend I have all odl controllers:

Then I use VIP as an address of manager: ovs-vsctl set-manager

If br-int bridge will be created then it have controller address set
to one of the ODL controller IP address. I can try point 'of.address'
inside file to VIP address and add another haproxy
balancer for OpenFlow controller but not sure if it make sense.

Do you maybe know how clustering will work in Beryllium release? I
will be able for example add all ODL managers to ovs and it will also
set more then one controllers for bridges?

In your opinion is it worth trying approach with loadbalancer in front
of ODL controllers in Lithium release, or this will simple not work?


2015-07-14 21:22 GMT+02:00 Anil Vishnoi <vishnoianil@...>:
Hi michal,

Yes, clustering support for ovsdb is planned for Beryllium release. Once we
can make ovsdb cluster aware, i believe you won't have to put any load
balancer between switches and controller instances.

Sent from my iPhone

On 14-Jul-2015, at 11:56 am, <Natarajan_Dhiraviam@...>
<Natarajan_Dhiraviam@...> wrote:

Dell - Internal Use - Confidential

Hi Michal

I was trying OpenStack (Kilo) – ODL (Lithium) integration &
could correlate few of the issues you are facing with mine.

My 2 cents,

- To check if your config / setup helps achieve the intended, try
manually configuring controller addresses on the ovs; but ideally you may
not have to.

- AFAIK, ovsdb clustering (HA support) is yet to be added

- Could you create & share a simple block diagram – not sure if I
visualize your blocks & the sequencing correctly (as in ovsdb plugin from
all controllers behind haproxy)?



-----Original Message-----
From: ovsdb-dev-bounces@...
[mailto:ovsdb-dev-bounces@...] On Behalf Of Michal
Sent: Tuesday, July 14, 2015 7:01 PM
To: ovsdb-dev@...
Subject: [ovsdb-dev] mdsal clustering


I'm trying to use OpenDaylight ovsdb integration with OpenStack Juno.
When I only have one odl controller it works ok, but I have some problems
when I try to activate odl-mdsal-clustering feature.
In my environment I have 3 odl controllers with IP addresses:, and, on all of them I have similar
configuration like in this gist:
I put ovsdb plugin from all controllers behind haproxy which listen on VIP

When I want to connect ovs to odl I use this command:
ovs-vsctl set-manager tcp:

so I use haproxy address and this is forwarded to one of the controllers.
For 5 vswitches which I tried connect only on some of them br-int bridge
created by odl like for example here:

root@node-32:~# ovs-vsctl show
Manager "tcp:"
is_connected: true
Bridge br-int
Controller "tcp:"
is_connected: true
fail_mode: secure
Port br-int
Interface br-int
type: internal
ovs_version: "2.3.1"

When I want to add new network or attach vm interfaces are not created on

Does someone have experience with mdsal clustering and ovsdb plugin and can
share examples of configuration?
Can we put ovsdb manager behind haproxy like I did? What about openflow
controller address for ovs bridges? Ovsdb plugin only add one controller
address, should I manualy add rest of controller addresses?
Maybe it is possible to put openflow controllers behind haproxy but how
ovsdb manager to set specific address on ovs?

ovsdb-dev mailing list

ovsdb-dev mailing list
ovsdb-dev mailing list

Join { to automatically receive all group messages.