diff mbox

[ovs-dev] Supporting ovn-northd service HA depend on OVNDB-HA

Message ID 201705231214106097244@163.com
State Not Applicable
Headers show

Commit Message

高正伟 May 23, 2017, 4:14 a.m. UTC
Hi Numan,

Thank you very much,  I had pushed the patch new version  https://github.com/openvswitch/ovs/pull/178

Thanks
Zhengwei



multi_task@163.com
 
From: Numan Siddique

Date: 2017-05-22 15:33
To: 高正伟
CC: Ben Pfaff; ovs dev
Subject: Re: Re: [ovs-dev] [PATCH] Supporting ovn-northd service HA depend on OVNDB-HA


On Fri, May 19, 2017 at 7:21 AM, 高正伟 <multi_task@163.com> wrote:
Thanks Numan

I think that supporting  OVNDB and ovn-northd HA  depend on one pacemaker is an idea,   In case of thinking OVN-HA,  user will not individually care about OVNDB or ovn-northd HA.


Hi Zhangwei,

I do agree with you. But what I am trying to say is to make it configurable.

I tested with your patch again with tripleo and it is having few issues. 
1. Since you are not passing "--ovn-manage-ovsdb=no", when "ovn-ctl stop_northd" is called, it also stops ovsdb-servers. We probably don't want to stop ovsdb-servers unless, pacemaker calls "stop" action.

2. When a master node is demoted, ovn-northd is not stopped since "ovn-ctl stop_northd" code is not hit.

I tested with the below modifications and applying this patch - https://patchwork.ozlabs.org/patch/765224/. It is working as expected. Can you please test on your side and resubmit another version if it is fine with you.

If the user wants to manage ovn_northd using the ocf resources, he could pass manage_northd=yes while creating the resource.


-----------------------cut here -------------------------------------


I tried this patch and it works.
In the case of OpenStack and Tripleo, puppet is used to create and manage the pacemaker resources for OVN [1] and it also starts ovn-northd as a pacemaker service with colocation constraint set to the virtual ip created for the OVN DB servers.

I think it makes more sense to start ovn-northd based on a flag (like START_NORTHD) so that the user or the configuration systems can chose.

Thanks
Numan



[1] - https://review.openstack.org/#/c/372274/10/manifests/profile/pacemaker/ovn_northd.pp
 
--
2.10.2

_______________________________________________
dev mailing list
dev@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Comments

Numan Siddique May 23, 2017, 1:56 p.m. UTC | #1
On Tue, May 23, 2017 at 9:44 AM, multi_task@163.com <multi_task@163.com>
wrote:

> Hi Numan,
>
> Thank you very much,  I had pushed the patch new version
> https://github.com/openvswitch/ovs/pull/178
>

Thanks. I tested it.

Acked-by: Numan Siddique <nusiddiq@redhat.com>
Tested-by: Numan Siddique <nusiddiq@redhat.com>

I can post the patch to the mailing list if you want

Thanks
Numan


> Thanks
> Zhengwei
>
> ------------------------------
> multi_task@163.com
>
>
> *From:* Numan Siddique <nusiddiq@redhat.com>
> *Date:* 2017-05-22 15:33
> *To:* 高正伟 <multi_task@163.com>
> *CC:* Ben Pfaff <blp@ovn.org>; ovs dev <dev@openvswitch.org>
> *Subject:* Re: Re: [ovs-dev] [PATCH] Supporting ovn-northd service HA
> depend on OVNDB-HA
>
>
> On Fri, May 19, 2017 at 7:21 AM, 高正伟 <multi_task@163.com> wrote:
>
>> Thanks Numan
>>
>> I think that supporting  OVNDB and ovn-northd HA  depend on one pacemaker
>> is an idea,   In case of thinking OVN-HA,  user will not individually care
>> about OVNDB or ovn-northd HA.
>>
>>
> Hi Zhangwei,
>
> I do agree with you. But what I am trying to say is to make it
> configurable.
>
> I tested with your patch again with tripleo and it is having few issues.
> 1. Since you are not passing "--ovn-manage-ovsdb=no", when "ovn-ctl
> stop_northd" is called, it also stops ovsdb-servers. We probably don't want
> to stop ovsdb-servers unless, pacemaker calls "stop" action.
>
> 2. When a master node is demoted, ovn-northd is not stopped since "ovn-ctl
> stop_northd" code is not hit.
>
> I tested with the below modifications and applying this patch -
> https://patchwork.ozlabs.org/patch/765224/. It is working as expected.
> Can you please test on your side and resubmit another version if it is fine
> with you.
>
> If the user wants to manage ovn_northd using the ocf resources, he could
> pass manage_northd=yes while creating the resource.
>
>
> -----------------------cut here -------------------------------------
>
> diff --git a/ovn/utilities/ovndb-servers.ocf
> b/ovn/utilities/ovndb-servers.ocf
> index 40c5541..018d904 100755
> --- a/ovn/utilities/ovndb-servers.ocf
> +++ b/ovn/utilities/ovndb-servers.ocf
> @@ -7,6 +7,7 @@
>  : ${NB_MASTER_PROTO_DEFAULT="tcp"}
>  : ${SB_MASTER_PORT_DEFAULT="6642"}
>  : ${SB_MASTER_PROTO_DEFAULT="tcp"}
> +: ${MANAGE_NORTHD_DEFAULT="no"}
>  CRM_MASTER="${HA_SBIN_DIR}/crm_master -l reboot"
>  CRM_ATTR_REPL_INFO="${HA_SBIN_DIR}/crm_attribute --type crm_config
> --name OVN_REPL_INFO -s ovn_ovsdb_master_server"
>  OVN_CTL=${OCF_RESKEY_ovn_ctl:-${OVN_CTL_DEFAULT}}
> @@ -15,6 +16,7 @@ NB_MASTER_PORT=${OCF_RESKEY_nb_master_port:-${NB_MASTER_
> PORT_DEFAULT}}
>  NB_MASTER_PROTO=${OCF_RESKEY_nb_master_protocol:-${NB_
> MASTER_PROTO_DEFAULT}}
>  SB_MASTER_PORT=${OCF_RESKEY_sb_master_port:-${SB_MASTER_PORT_DEFAULT}}
>  SB_MASTER_PROTO=${OCF_RESKEY_sb_master_protocol:-${SB_
> MASTER_PROTO_DEFAULT}}
> +MANAGE_NORTHD=${OCF_RESKEY_manage_northd:-${MANAGE_NORTHD_DEFAULT}}
>
>  # Invalid IP address is an address that can never exist in the network, as
>  # mentioned in rfc-5737. The ovsdb servers connects to this IP address
> till
> @@ -90,6 +92,14 @@ ovsdb_server_metadata() {
>    <content type="string" />
>    </parameter>
>
> +  <parameter name="manage_northd" unique="1">
> +  <longdesc lang="en">
> +  If set to yes, manages ovn-northd service. ovn-northd will be started in
> +  the master node.
> +  </longdesc>
> +  <shortdesc lang="en">manage ovn-northd service</shortdesc>
> +  <content type="string" />
> +  </parameter>
>    </parameters>
>
>    <actions>
> @@ -122,12 +132,17 @@ ovsdb_server_notify() {
>          # the right thing at startup
>          ocf_log debug "ovndb_server: $host_name is the master"
>          ${CRM_ATTR_REPL_INFO} -v "$host_name"
> -        # Startup ovn-northd service
> -        ${OVN_CTL} start_northd
> +        if [ "$MANAGE_NORTHD" = "yes" ]; then
> +            # Startup ovn-northd service
> +            ${OVN_CTL} --ovn-manage-ovsdb=no start_northd
> +        fi
>
>      else
> -        # Stop ovn-northd service
> -        ${OVN_CTL} stop_northd
> +        if [ "$MANAGE_NORTHD" = "yes" ]; then
> +            # Stop ovn-northd service. Set --ovn-manage-ovsdb=no so that
> +            # ovn-ctl doesn't stop ovsdb-servers.
> +            ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
> +        fi
>          # Synchronize with the new master
>          ocf_log debug "ovndb_server: Connecting to the new master
> ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
>          ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \
> @@ -289,6 +304,13 @@ ovsdb_server_start() {
>  }
>
>  ovsdb_server_stop() {
> +    if [ "$MANAGE_NORTHD" = "yes" ]; then
> +        # Stop ovn-northd service in case it was running. This is required
> +        # when the master is demoted. For other cases, it would be a
> no-op.
> +        # Set --ovn-manage-ovsdb=no so that ovn-ctl doesn't stop
> ovsdb-servers.
> +        ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
> +    fi
> +
>      ovsdb_server_check_status
>      case $? in
>          $OCF_NOT_RUNNING)    return ${OCF_SUCCESS};;
>
> --------------------------------------------------------------------------
>
>
> Thanks
> Numan
>
>
>
>
>
>> Thanks.
>>
>>
>> 在 2017-05-18 20:53:22,"Numan Siddique" <nusiddiq@redhat.com> 写道:
>>
>>
>>
>> On Wed, May 17, 2017 at 9:15 PM, Ben Pfaff <blp@ovn.org> wrote:
>>
>>> From: Zhengwei Gao <multi_task@163.com>
>>>
>>> As ovn-northd servcie  parse network element between ovnnb_db and
>>> ovnsb_db, it ensures ovn-northd service connecting to ovnnb_db and
>>> ovnsb_db. OVNDB-HA was supported with pacemaker, ovn-northd service
>>> will be failover fllowing OVNDB-HA.
>>> ---
>>> This was posted as a github pull request:
>>> https://github.com/openvswitch/ovs/pull/176
>>>
>>>  ovn/utilities/ovndb-servers.ocf | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/ovn/utilities/ovndb-servers.ocf
>>> b/ovn/utilities/ovndb-servers.ocf
>>> index 908cb3c17d84..40c55411e828 100755
>>> --- a/ovn/utilities/ovndb-servers.ocf
>>> +++ b/ovn/utilities/ovndb-servers.ocf
>>> @@ -122,8 +122,12 @@ ovsdb_server_notify() {
>>>          # the right thing at startup
>>>          ocf_log debug "ovndb_server: $host_name is the master"
>>>          ${CRM_ATTR_REPL_INFO} -v "$host_name"
>>> +        # Startup ovn-northd service
>>> +        ${OVN_CTL} start_northd
>>>
>>>      else
>>> +        # Stop ovn-northd service
>>> +        ${OVN_CTL} stop_northd
>>>          # Synchronize with the new master
>>>          ocf_log debug "ovndb_server: Connecting to the new master
>>> ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
>>>          ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \
>>>
>>
>> I tried this patch and it works.
>> In the case of OpenStack and Tripleo, puppet is used to create and manage
>> the pacemaker resources for OVN [1] and it also starts ovn-northd as a
>> pacemaker service with colocation constraint set to the virtual ip created
>> for the OVN DB servers.
>>
>> I think it makes more sense to start ovn-northd based on a flag (like
>> START_NORTHD) so that the user or the configuration systems can chose.
>>
>> Thanks
>> Numan
>>
>>
>>
>> [1] - https://review.openstack.org/#/c/372274/10/manifests/profi
>> le/pacemaker/ovn_northd.pp
>>
>>
>>> --
>>> 2.10.2
>>>
>>> _______________________________________________
>>> dev mailing list
>>> dev@openvswitch.org
>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>>
>>
>>
>
Russell Bryant May 23, 2017, 5:47 p.m. UTC | #2
On Tue, May 23, 2017 at 9:56 AM, Numan Siddique <nusiddiq@redhat.com> wrote:
> On Tue, May 23, 2017 at 9:44 AM, multi_task@163.com <multi_task@163.com>
> wrote:
>
>> Hi Numan,
>>
>> Thank you very much,  I had pushed the patch new version
>> https://github.com/openvswitch/ovs/pull/178
>>
>
> Thanks. I tested it.
>
> Acked-by: Numan Siddique <nusiddiq@redhat.com>
> Tested-by: Numan Siddique <nusiddiq@redhat.com>
>
> I can post the patch to the mailing list if you want

Thanks both of you.  The patch is missing a Signed-off-by header from
the author.  Otherwise, I think it's ready.

>
> Thanks
> Numan
>
>
>> Thanks
>> Zhengwei
>>
>> ------------------------------
>> multi_task@163.com
>>
>>
>> *From:* Numan Siddique <nusiddiq@redhat.com>
>> *Date:* 2017-05-22 15:33
>> *To:* 高正伟 <multi_task@163.com>
>> *CC:* Ben Pfaff <blp@ovn.org>; ovs dev <dev@openvswitch.org>
>> *Subject:* Re: Re: [ovs-dev] [PATCH] Supporting ovn-northd service HA
>> depend on OVNDB-HA
>>
>>
>> On Fri, May 19, 2017 at 7:21 AM, 高正伟 <multi_task@163.com> wrote:
>>
>>> Thanks Numan
>>>
>>> I think that supporting  OVNDB and ovn-northd HA  depend on one pacemaker
>>> is an idea,   In case of thinking OVN-HA,  user will not individually care
>>> about OVNDB or ovn-northd HA.
>>>
>>>
>> Hi Zhangwei,
>>
>> I do agree with you. But what I am trying to say is to make it
>> configurable.
>>
>> I tested with your patch again with tripleo and it is having few issues.
>> 1. Since you are not passing "--ovn-manage-ovsdb=no", when "ovn-ctl
>> stop_northd" is called, it also stops ovsdb-servers. We probably don't want
>> to stop ovsdb-servers unless, pacemaker calls "stop" action.
>>
>> 2. When a master node is demoted, ovn-northd is not stopped since "ovn-ctl
>> stop_northd" code is not hit.
>>
>> I tested with the below modifications and applying this patch -
>> https://patchwork.ozlabs.org/patch/765224/. It is working as expected.
>> Can you please test on your side and resubmit another version if it is fine
>> with you.
>>
>> If the user wants to manage ovn_northd using the ocf resources, he could
>> pass manage_northd=yes while creating the resource.
>>
>>
>> -----------------------cut here -------------------------------------
>>
>> diff --git a/ovn/utilities/ovndb-servers.ocf
>> b/ovn/utilities/ovndb-servers.ocf
>> index 40c5541..018d904 100755
>> --- a/ovn/utilities/ovndb-servers.ocf
>> +++ b/ovn/utilities/ovndb-servers.ocf
>> @@ -7,6 +7,7 @@
>>  : ${NB_MASTER_PROTO_DEFAULT="tcp"}
>>  : ${SB_MASTER_PORT_DEFAULT="6642"}
>>  : ${SB_MASTER_PROTO_DEFAULT="tcp"}
>> +: ${MANAGE_NORTHD_DEFAULT="no"}
>>  CRM_MASTER="${HA_SBIN_DIR}/crm_master -l reboot"
>>  CRM_ATTR_REPL_INFO="${HA_SBIN_DIR}/crm_attribute --type crm_config
>> --name OVN_REPL_INFO -s ovn_ovsdb_master_server"
>>  OVN_CTL=${OCF_RESKEY_ovn_ctl:-${OVN_CTL_DEFAULT}}
>> @@ -15,6 +16,7 @@ NB_MASTER_PORT=${OCF_RESKEY_nb_master_port:-${NB_MASTER_
>> PORT_DEFAULT}}
>>  NB_MASTER_PROTO=${OCF_RESKEY_nb_master_protocol:-${NB_
>> MASTER_PROTO_DEFAULT}}
>>  SB_MASTER_PORT=${OCF_RESKEY_sb_master_port:-${SB_MASTER_PORT_DEFAULT}}
>>  SB_MASTER_PROTO=${OCF_RESKEY_sb_master_protocol:-${SB_
>> MASTER_PROTO_DEFAULT}}
>> +MANAGE_NORTHD=${OCF_RESKEY_manage_northd:-${MANAGE_NORTHD_DEFAULT}}
>>
>>  # Invalid IP address is an address that can never exist in the network, as
>>  # mentioned in rfc-5737. The ovsdb servers connects to this IP address
>> till
>> @@ -90,6 +92,14 @@ ovsdb_server_metadata() {
>>    <content type="string" />
>>    </parameter>
>>
>> +  <parameter name="manage_northd" unique="1">
>> +  <longdesc lang="en">
>> +  If set to yes, manages ovn-northd service. ovn-northd will be started in
>> +  the master node.
>> +  </longdesc>
>> +  <shortdesc lang="en">manage ovn-northd service</shortdesc>
>> +  <content type="string" />
>> +  </parameter>
>>    </parameters>
>>
>>    <actions>
>> @@ -122,12 +132,17 @@ ovsdb_server_notify() {
>>          # the right thing at startup
>>          ocf_log debug "ovndb_server: $host_name is the master"
>>          ${CRM_ATTR_REPL_INFO} -v "$host_name"
>> -        # Startup ovn-northd service
>> -        ${OVN_CTL} start_northd
>> +        if [ "$MANAGE_NORTHD" = "yes" ]; then
>> +            # Startup ovn-northd service
>> +            ${OVN_CTL} --ovn-manage-ovsdb=no start_northd
>> +        fi
>>
>>      else
>> -        # Stop ovn-northd service
>> -        ${OVN_CTL} stop_northd
>> +        if [ "$MANAGE_NORTHD" = "yes" ]; then
>> +            # Stop ovn-northd service. Set --ovn-manage-ovsdb=no so that
>> +            # ovn-ctl doesn't stop ovsdb-servers.
>> +            ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
>> +        fi
>>          # Synchronize with the new master
>>          ocf_log debug "ovndb_server: Connecting to the new master
>> ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
>>          ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \
>> @@ -289,6 +304,13 @@ ovsdb_server_start() {
>>  }
>>
>>  ovsdb_server_stop() {
>> +    if [ "$MANAGE_NORTHD" = "yes" ]; then
>> +        # Stop ovn-northd service in case it was running. This is required
>> +        # when the master is demoted. For other cases, it would be a
>> no-op.
>> +        # Set --ovn-manage-ovsdb=no so that ovn-ctl doesn't stop
>> ovsdb-servers.
>> +        ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
>> +    fi
>> +
>>      ovsdb_server_check_status
>>      case $? in
>>          $OCF_NOT_RUNNING)    return ${OCF_SUCCESS};;
>>
>> --------------------------------------------------------------------------
>>
>>
>> Thanks
>> Numan
>>
>>
>>
>>
>>
>>> Thanks.
>>>
>>>
>>> 在 2017-05-18 20:53:22,"Numan Siddique" <nusiddiq@redhat.com> 写道:
>>>
>>>
>>>
>>> On Wed, May 17, 2017 at 9:15 PM, Ben Pfaff <blp@ovn.org> wrote:
>>>
>>>> From: Zhengwei Gao <multi_task@163.com>
>>>>
>>>> As ovn-northd servcie  parse network element between ovnnb_db and
>>>> ovnsb_db, it ensures ovn-northd service connecting to ovnnb_db and
>>>> ovnsb_db. OVNDB-HA was supported with pacemaker, ovn-northd service
>>>> will be failover fllowing OVNDB-HA.
>>>> ---
>>>> This was posted as a github pull request:
>>>> https://github.com/openvswitch/ovs/pull/176
>>>>
>>>>  ovn/utilities/ovndb-servers.ocf | 4 ++++
>>>>  1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/ovn/utilities/ovndb-servers.ocf
>>>> b/ovn/utilities/ovndb-servers.ocf
>>>> index 908cb3c17d84..40c55411e828 100755
>>>> --- a/ovn/utilities/ovndb-servers.ocf
>>>> +++ b/ovn/utilities/ovndb-servers.ocf
>>>> @@ -122,8 +122,12 @@ ovsdb_server_notify() {
>>>>          # the right thing at startup
>>>>          ocf_log debug "ovndb_server: $host_name is the master"
>>>>          ${CRM_ATTR_REPL_INFO} -v "$host_name"
>>>> +        # Startup ovn-northd service
>>>> +        ${OVN_CTL} start_northd
>>>>
>>>>      else
>>>> +        # Stop ovn-northd service
>>>> +        ${OVN_CTL} stop_northd
>>>>          # Synchronize with the new master
>>>>          ocf_log debug "ovndb_server: Connecting to the new master
>>>> ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
>>>>          ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \
>>>>
>>>
>>> I tried this patch and it works.
>>> In the case of OpenStack and Tripleo, puppet is used to create and manage
>>> the pacemaker resources for OVN [1] and it also starts ovn-northd as a
>>> pacemaker service with colocation constraint set to the virtual ip created
>>> for the OVN DB servers.
>>>
>>> I think it makes more sense to start ovn-northd based on a flag (like
>>> START_NORTHD) so that the user or the configuration systems can chose.
>>>
>>> Thanks
>>> Numan
>>>
>>>
>>>
>>> [1] - https://review.openstack.org/#/c/372274/10/manifests/profi
>>> le/pacemaker/ovn_northd.pp
>>>
>>>
>>>> --
>>>> 2.10.2
>>>>
>>>> _______________________________________________
>>>> dev mailing list
>>>> dev@openvswitch.org
>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>>>
>>>
>>>
>>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
diff mbox

Patch

diff --git a/ovn/utilities/ovndb-servers.ocf b/ovn/utilities/ovndb-servers.ocf
index 40c5541..018d904 100755
--- a/ovn/utilities/ovndb-servers.ocf
+++ b/ovn/utilities/ovndb-servers.ocf
@@ -7,6 +7,7 @@ 
 : ${NB_MASTER_PROTO_DEFAULT="tcp"}
 : ${SB_MASTER_PORT_DEFAULT="6642"}
 : ${SB_MASTER_PROTO_DEFAULT="tcp"}
+: ${MANAGE_NORTHD_DEFAULT="no"}
 CRM_MASTER="${HA_SBIN_DIR}/crm_master -l reboot"
 CRM_ATTR_REPL_INFO="${HA_SBIN_DIR}/crm_attribute --type crm_config --name OVN_REPL_INFO -s ovn_ovsdb_master_server"
 OVN_CTL=${OCF_RESKEY_ovn_ctl:-${OVN_CTL_DEFAULT}}
@@ -15,6 +16,7 @@  NB_MASTER_PORT=${OCF_RESKEY_nb_master_port:-${NB_MASTER_PORT_DEFAULT}}
 NB_MASTER_PROTO=${OCF_RESKEY_nb_master_protocol:-${NB_MASTER_PROTO_DEFAULT}}
 SB_MASTER_PORT=${OCF_RESKEY_sb_master_port:-${SB_MASTER_PORT_DEFAULT}}
 SB_MASTER_PROTO=${OCF_RESKEY_sb_master_protocol:-${SB_MASTER_PROTO_DEFAULT}}
+MANAGE_NORTHD=${OCF_RESKEY_manage_northd:-${MANAGE_NORTHD_DEFAULT}}
 
 # Invalid IP address is an address that can never exist in the network, as
 # mentioned in rfc-5737. The ovsdb servers connects to this IP address till
@@ -90,6 +92,14 @@  ovsdb_server_metadata() {
   <content type="string" />
   </parameter>
 
+  <parameter name="manage_northd" unique="1">
+  <longdesc lang="en">
+  If set to yes, manages ovn-northd service. ovn-northd will be started in
+  the master node.
+  </longdesc>
+  <shortdesc lang="en">manage ovn-northd service</shortdesc>
+  <content type="string" />
+  </parameter>
   </parameters>
 
   <actions>
@@ -122,12 +132,17 @@  ovsdb_server_notify() {
         # the right thing at startup
         ocf_log debug "ovndb_server: $host_name is the master"
         ${CRM_ATTR_REPL_INFO} -v "$host_name"
-        # Startup ovn-northd service
-        ${OVN_CTL} start_northd
+        if [ "$MANAGE_NORTHD" = "yes" ]; then
+            # Startup ovn-northd service
+            ${OVN_CTL} --ovn-manage-ovsdb=no start_northd
+        fi
 
     else
-        # Stop ovn-northd service
-        ${OVN_CTL} stop_northd
+        if [ "$MANAGE_NORTHD" = "yes" ]; then
+            # Stop ovn-northd service. Set --ovn-manage-ovsdb=no so that
+            # ovn-ctl doesn't stop ovsdb-servers.
+            ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
+        fi
         # Synchronize with the new master
         ocf_log debug "ovndb_server: Connecting to the new master ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
         ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \
@@ -289,6 +304,13 @@  ovsdb_server_start() {
 }
 
 ovsdb_server_stop() {
+    if [ "$MANAGE_NORTHD" = "yes" ]; then
+        # Stop ovn-northd service in case it was running. This is required
+        # when the master is demoted. For other cases, it would be a no-op.
+        # Set --ovn-manage-ovsdb=no so that ovn-ctl doesn't stop ovsdb-servers.
+        ${OVN_CTL} --ovn-manage-ovsdb=no stop_northd
+    fi
+
     ovsdb_server_check_status
     case $? in
         $OCF_NOT_RUNNING)    return ${OCF_SUCCESS};;

--------------------------------------------------------------------------


Thanks 
Numan



 
Thanks.


在 2017-05-18 20:53:22,"Numan Siddique" <nusiddiq@redhat.com> 写道:


On Wed, May 17, 2017 at 9:15 PM, Ben Pfaff <blp@ovn.org> wrote:
From: Zhengwei Gao <multi_task@163.com>

As ovn-northd servcie  parse network element between ovnnb_db and
ovnsb_db, it ensures ovn-northd service connecting to ovnnb_db and
ovnsb_db. OVNDB-HA was supported with pacemaker, ovn-northd service
will be failover fllowing OVNDB-HA.
---
This was posted as a github pull request:
https://github.com/openvswitch/ovs/pull/176

 ovn/utilities/ovndb-servers.ocf | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ovn/utilities/ovndb-servers.ocf b/ovn/utilities/ovndb-servers.ocf
index 908cb3c17d84..40c55411e828 100755
--- a/ovn/utilities/ovndb-servers.ocf
+++ b/ovn/utilities/ovndb-servers.ocf
@@ -122,8 +122,12 @@  ovsdb_server_notify() {
         # the right thing at startup
         ocf_log debug "ovndb_server: $host_name is the master"
         ${CRM_ATTR_REPL_INFO} -v "$host_name"
+        # Startup ovn-northd service
+        ${OVN_CTL} start_northd

     else
+        # Stop ovn-northd service
+        ${OVN_CTL} stop_northd
         # Synchronize with the new master
         ocf_log debug "ovndb_server: Connecting to the new master ${OCF_RESKEY_CRM_meta_notify_promote_uname}"
         ${OVN_CTL} demote_ovnnb --db-nb-sync-from-addr=${MASTER_IP} \