Thanks for the Review. On Wed, May 23, 2018 at 11:36 AM, Numan Siddique <[email protected]> wrote:
> On Wed, May 9, 2018 at 12:13 AM, aginwala <[email protected]> wrote: > > > using pacemaker so that controllers can be placed in different fault > > domains. > > > > Signed-off-by: aginwala <[email protected]> > > > > I see the below warning when applying the patch > > .git/rebase-apply/patch:153: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > >>> Sure. Will fix. > > > --- > > ovn/utilities/ovndb-servers.ocf | 83 ++++++++++++++++++++++++++++++ > > ++--------- > > 1 file changed, 65 insertions(+), 18 deletions(-) > > > > diff --git a/ovn/utilities/ovndb-servers.ocf > > b/ovn/utilities/ovndb-servers.ocf > > index 164b6bc..1b4b6ab 100755 > > --- a/ovn/utilities/ovndb-servers.ocf > > +++ b/ovn/utilities/ovndb-servers.ocf > > @@ -9,6 +9,8 @@ > > : ${SB_MASTER_PROTO_DEFAULT="tcp"} > > : ${MANAGE_NORTHD_DEFAULT="no"} > > : ${INACTIVE_PROBE_DEFAULT="5000"} > > +: ${LISTEN_ON_MASTER_IP_ONLY_DEFAULT="yes"} > > +: ${LISTEN_ON_SLAVE_DEFAULT="yes"} > > > > 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" > > @@ -21,6 +23,14 @@ SB_MASTER_PROTO=${OCF_RESKEY_ > sb_master_protocol:-${SB_ > > MASTER_PROTO_DEFAULT}} > > MANAGE_NORTHD=${OCF_RESKEY_manage_northd:-${MANAGE_NORTHD_DEFAULT}} > > INACTIVE_PROBE=${OCF_RESKEY_inactive_probe_interval:-${ > > INACTIVE_PROBE_DEFAULT}} > > > > +# In order for pacemaker to work with LB, we can keep > > LISTEN_ON_MASTER_IP_ONLY > > +# to false and pass LB vip IP while creating pcs resource. > > +LISTEN_ON_MASTER_IP_ONLY=${OCF_RESKEY_listen_on_master_ > > ip_only:-${LISTEN_ON_MASTER_IP_ONLY_DEFAULT}} > > + > > +# In order for pacemaker to work with LB, we can also set > LISTEN_ON_SLAVE > > +# to false so that slaves do not listen on 0.0.0.0. > > +LISTEN_ON_SLAVE=${OCF_RESKEY_listen_on_slave:-${LISTEN_ON_ > SLAVE_DEFAULT}} > > > > > You need to define these parameters in the <parameters> section here - > https://github.com/openvswitch/ovs/blob/master/ > ovn/utilities/ovndb-servers.ocf#L118 > Otherwise we will not be able to pass these options when starting the > resource. Ideally we want to do > "pcs resource create ovndb_servers .... listen_on_master_ip_only=no > listen_on_slave=no >> Thanks for the pointer. I will update that and re-test. > > > + > > # 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 > > # a master is promoted and the IPAddr2 resource is started. > > @@ -157,22 +167,24 @@ ovsdb_server_notify() { > > ${OVN_CTL} --ovn-manage-ovsdb=no start_northd > > fi > > > > - conn=`ovn-nbctl get NB_global . connections` > > - if [ "$conn" == "[]" ] > > - then > > - ovn-nbctl -- --id=@conn_uuid create Connection \ > > + # TODO: Need to troubleshoot as to removing target is ok as > well. > > + if [ "x${LISTEN_ON_MASTER_IP_ONLY}" = xyes ]; then > > > > If LB VIP is used, you don't want to set the probe interval ? >>> I thought we can stick with common probe interval for any case. Hence, kept it. > > > + conn=`ovn-nbctl get NB_global . connections` > > + if [ "$conn" == "[]" ] > > + then > > + ovn-nbctl -- --id=@conn_uuid create Connection \ > > target="p${NB_MASTER_PROTO}\:${NB_MASTER_PORT}\:${MASTER_IP}" \ > > inactivity_probe=$INACTIVE_PROBE -- set NB_Global . > > connections=@conn_uuid > > - fi > > + fi > > > > - conn=`ovn-sbctl get SB_global . connections` > > - if [ "$conn" == "[]" ] > > - then > > - ovn-sbctl -- --id=@conn_uuid create Connection \ > > + conn=`ovn-sbctl get SB_global . connections` > > + if [ "$conn" == "[]" ] > > + then > > + ovn-sbctl -- --id=@conn_uuid create Connection \ > > target="p${SB_MASTER_PROTO}\:${SB_MASTER_PORT}\:${MASTER_IP}" \ > > inactivity_probe=$INACTIVE_PROBE -- set SB_Global . > > connections=@conn_uuid > > + fi > > fi > > - > > else > > if [ "$MANAGE_NORTHD" = "yes" ]; then > > # Stop ovn-northd service. Set --ovn-manage-ovsdb=no so that > > @@ -295,15 +307,15 @@ ovsdb_server_start() { > > > > set ${OVN_CTL} > > > > - set $@ --db-nb-addr=${MASTER_IP} --db-nb-port=${NB_MASTER_PORT} > > - set $@ --db-sb-addr=${MASTER_IP} --db-sb-port=${SB_MASTER_PORT} > > + # For LB vip to talk to master pool member on a specific tcp port, > we > > need > > + # to listen on 0.0.0.0.instead of master_ip > > + if [ "x${LISTEN_ON_MASTER_IP_ONLY}" = xno ]; then > > + set $@ --db-nb-port=${NB_MASTER_PORT} > > + set $@ --db-sb-port=${SB_MASTER_PORT} > > > > - if [ "x${NB_MASTER_PROTO}" = xtcp ]; then > > - set $@ --db-nb-create-insecure-remote=yes > > - fi > > - > > - if [ "x${SB_MASTER_PROTO}" = xtcp ]; then > > - set $@ --db-sb-create-insecure-remote=yes > > + else > > + set $@ --db-nb-addr=${MASTER_IP} --db-nb-port=${NB_MASTER_PORT} > > + set $@ --db-sb-addr=${MASTER_IP} --db-sb-port=${SB_MASTER_PORT} > > fi > > > > if [ "x${present_master}" = x ]; then > > @@ -313,15 +325,44 @@ ovsdb_server_start() { > > # Force all copies to come up as slaves by pointing them into > > # space and let pacemaker pick one to promote: > > # > > + if [ "x${NB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-nb-create-insecure-remote=yes > > + fi > > + > > + if [ "x${SB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-sb-create-insecure-remote=yes > > + fi > > set $@ --db-nb-sync-from-addr=${INVALID_IP_ADDRESS} > > --db-sb-sync-from-addr=${INVALID_IP_ADDRESS} > > > > elif [ ${present_master} != ${host_name} ]; then > > + if [ "x${LISTEN_ON_SLAVE}" = xno ]; then > > + # TODO: for using LB vip, need to test for ssl. > > + set $@ --db-nb-create-insecure-remote=no > > > > The default value of "db-nb-create-insecure-remote" is no. So there is no > need to set this. We can just have > if [ "x${LISTEN_ON_SLAVE} = xyes ] ; then > if ... > ... > fi >>> Sure let me re-change and test. Will update the new patch accordingly. > + set $@ --db-sb-create-insecure-remote=no > > + else > > + if [ "x${NB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-nb-create-insecure-remote=yes > > + fi > > + > > + if [ "x${SB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-sb-create-insecure-remote=yes > > + fi > > + fi > > # An existing master is active, connect to it > > set $@ --db-nb-sync-from-addr=${MASTER_IP} > > --db-sb-sync-from-addr=${MASTER_IP} > > set $@ --db-nb-sync-from-port=${NB_MASTER_PORT} > > set $@ --db-nb-sync-from-proto=${NB_MASTER_PROTO} > > set $@ --db-sb-sync-from-port=${SB_MASTER_PORT} > > set $@ --db-sb-sync-from-proto=${SB_MASTER_PROTO} > > + > > + else > > + if [ "x${NB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-nb-create-insecure-remote=yes > > + fi > > + > > + if [ "x${SB_MASTER_PROTO}" = xtcp ]; then > > + set $@ --db-sb-create-insecure-remote=yes > > + fi > > fi > > > > $@ start_ovsdb > > @@ -416,6 +457,11 @@ ovsdb_server_promote() { > > ;; > > esac > > > > + if [ "x${LISTEN_ON_SLAVE}" = xno ]; then > > > The use of LISTEN_ON_SLAVE param in "ovsdb_server_promote" is very > confusing. I think it should > be possible to have just one param - something like - > "master_ip_pacemaker_resource=(yes/no)" (or some thing better ). > Thoughts ? >>> Sure, how about master_ip_lb_resource to avoid confusion? So you mean, just use this variable and completely get rid of LISTEN_ON_SLAVE and LISTEN_ON_MASTER_IP_ONLY? > Will there be a case where the user can select > listen_on_master_ip_only=no and > listen_on_slave=yes ? > >>> No. Thanks > Numan > > > > > + # Restart ovs so that new master can listen on tcp port > > + ${OVN_CTL} stop_ovsdb > > + ovsdb_server_start > > + fi > > ${OVN_CTL} promote_ovnnb > > ${OVN_CTL} promote_ovnsb > > > > @@ -514,3 +560,4 @@ esac > > > > rc=$? > > exit $rc > > + > > -- > > 1.9.1 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
