[ovs-dev] [RFC] Basic active-active HA for ovn-northd

Russell Bryant russell at ovn.org
Wed Aug 9 01:32:03 UTC 2017


On Tue, Aug 8, 2017 at 8:04 PM, Ben Pfaff <blp at ovn.org> wrote:
> On Mon, Jul 31, 2017 at 04:53:03PM -0400, Russell Bryant wrote:
>> I wanted to share the idea before I code it to see if it makes sense.
>> I imagine the patch would be small, though.
>>
>> We currently provide HA for ovn-northd by using Pacemaker to ensure
>> that ovn-northd is running only one time somewhere in a cluster.
>>
>> What if we made ovn-northd acquire an OVSDB lock on the southbound
>> database before it did any real work?  That way we could start
>> multiple copies of ovn-northd in a cluster, but only one would be
>> active at a time.
>
> I think it's a reasonable approach.
>
> It means that we'll have to make sure that clustered OVSDB, when it
> becomes available, supports locks.  I hadn't yet decided whether locks
> were important for that use case.  It sounds like they might be.

Maybe, unless further iteration of ovn-northd to have more than one
able to perform work at the same time is done in a way that drops the
lock usage.

However, we make use of OVSDB locks from the OpenStack OVN integration, as well.

That use case is:

There are several clients of the OVN Northbound database, all running
their own IDL instance.  This is multiple threads of a neutron-server
process that's running on multiple hosts.  We need a single worker
across all hosts to handle state changes to the "up" column of
Logical_Switch_Port.  We have a single thread in each neutron-server
that attempts to acquire a lock for this.  Whichever one currently
holds the lock handles the "up" state changes and associated OpenStack
notifications.

-- 
Russell Bryant


More information about the dev mailing list