[ovs-dev] [PATCH v2 2/5] ovn: Add generic HA chassis group

Han Zhou zhouhan at gmail.com
Wed Feb 27 20:19:58 UTC 2019


On Wed, Feb 27, 2019 at 2:45 AM <nusiddiq at redhat.com> wrote:
>
> From: Numan Siddique <nusiddiq at redhat.com>
>
> This patch adds the tables - 'HA_Chassis_Group' and 'HA_Chassis' in
> both OVN Northbound and Southbound DBs to support generic HA Chassis
> groups in OVN. CMS can create a group of HA chassis with the priorities
> assigned to each chassis in the group. An HA chassis group can be associated to
> a distributed logical router port. An upcoming patch will make
> use of it while supporting  'external'* logical ports.
>
> HA chassis group is similar to the existing gateway chassis support in
> OVN which is used by the distributed gateway router ports.
> This patch tries to abstract this so that, the HA chassis support
> can be leveraged by not just distributed gateway router ports.
>
> If a logical router port has a set of gateway chassis associated to
> it, ovn-northd will create HA chassis group in Southbound
> DB and add these gateway chassis to this group. ovn-northd would still create
> gateway chassis in Southbound DB as ovn-controller still doesn't support
> using the HA chassis group.
>
> Next patch in the series will add the support in ovn-controller to
> make use of HA chassis group instead of gateway chassis. The patch following
> that will delete creation of gateway chassis in Southbound DB.
>
> HA_Chasss_Group table in Southbound DB has a column - 'ref_chassis'.
> This column is used to store the list of chassis which references the
> HA chassis group. This information will be used by ovn-controller in an
> upcoming patch to establish BFD sessions with the required chassis.
>
> Suppose if there is an HA chassis group - 'hagrp1' in the Southbound
> DB and it has HA chasiss list - ha1, ha2 and ha3 and this HA chassis
> group is used by a distributed logical router port, then ovn-northd
> will update the 'ref_chassis' with the list of chassis which has claimed
> all the logical switch ports which are connected to the logical router
> which has this distributed logical router port.
>

I haven't finished the detailed review, but a concern for the design
here. It seems the benefit of the *group* is to be able to create it
once and reused by different logical router ports (or external ports).
However, the best practice (at least ours) is to distribute logical
router ports evenly on all available gateway chassises, which means
from different lrp's point of view, the priority of each gateway
chassis is different. E.g. there are 2 GWs as a HA group (gw1, gw2),
lrp1 uses gw1 as active (gw1 - priority 2, gw2 - priority 1) and lrp2
uses gw2 as active (gw1 - priority 1, gw2 - priority 2). I understand
that the use case for external ports may be different, since as we
discussed in your earlier patch reviews that it is better to have only
one dedicated node to host all external ports to avoid MAC flapping
problem, so the HA group does simplify the external port HA support
from CMS point of view. However for gateway scenario, to use the HA
group while balancing the gateway load, we will have to create
multiple HA groups just to assign different priority combinations,
which becomes much more complex and inconvenient comparing with
current gateway_chassis implementation (without group). Do you have
any thoughts on this?


More information about the dev mailing list