diff options
-rw-r--r-- | ovn/TODO.rst | 9 | ||||
-rwxr-xr-x | ovn/utilities/ovndb-servers.ocf | 27 |
2 files changed, 36 insertions, 0 deletions
diff --git a/ovn/TODO.rst b/ovn/TODO.rst index 0b883d4d3..d0e62bfbb 100644 --- a/ovn/TODO.rst +++ b/ovn/TODO.rst @@ -211,6 +211,15 @@ OVN To-do List Multicast_Group table entry in ovn-sb database into Mcast_Macs_Remote table configuration in VTEP database. + * OVN OCF pacemaker script to support Active / Passive HA for OVN dbs provides + the option to configure the inactivity_probe value. The default 5 seconds + inactivity_probe value is not sufficient and ovsdb-server drops the client + IDL connections for openstack deployments when the neutron server is heavily + loaded. + + We need to find a proper solution to solve this issue instead of increasing + the inactivity_probe value. + * Consider the use of BFD as tunnel monitor. The use of BFD for hypervisor-to-hypervisor tunnels is probably not worth it, diff --git a/ovn/utilities/ovndb-servers.ocf b/ovn/utilities/ovndb-servers.ocf index fe1207c22..3f3008700 100755 --- a/ovn/utilities/ovndb-servers.ocf +++ b/ovn/utilities/ovndb-servers.ocf @@ -8,6 +8,8 @@ : ${SB_MASTER_PORT_DEFAULT="6642"} : ${SB_MASTER_PROTO_DEFAULT="tcp"} : ${MANAGE_NORTHD_DEFAULT="no"} +: ${INACTIVE_PROBE_DEFAULT="5000"} + 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}} @@ -17,6 +19,7 @@ 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}} +INACTIVE_PROBE=${OCF_RESKEY_inactive_probe_interval:-${INACTIVE_PROBE_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 @@ -101,6 +104,14 @@ ovsdb_server_metadata() { <content type="string" /> </parameter> + <parameter name="inactive_probe_interval" unique="1"> + <longdesc lang="en"> + Inactive probe interval to set for ovsdb-server. + </longdesc> + <shortdesc lang="en">Set inactive probe interval</shortdesc> + <content type="string" /> + </parameter> + </parameters> <actions> @@ -138,6 +149,22 @@ 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 \ +target="p${NB_MASTER_PROTO}\:${NB_MASTER_PORT}\:${MASTER_IP}" \ +inactivity_probe=$INACTIVE_PROBE -- set NB_Global . connections=@conn_uuid + fi + + 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 + else if [ "$MANAGE_NORTHD" = "yes" ]; then # Stop ovn-northd service. Set --ovn-manage-ovsdb=no so that |