On Sat, Jan 14, 2023 at 10:28 AM Vladislav Odintsov <[email protected]> wrote:
> New ovn-ctl commands were added: > - start_sb_relay_ovsdb > - stop_sb_relay_ovsdb > - restart_sb_relay_ovsdb > > Required configuration parameters are: > --db-sb-relay-remote - needed to supply upstream cluster/server remote. > > Optionally user may pass next parameters: > --db-sb-relay-sock > --db-sb-relay-pidfile > --db-sb-relay-ctrl-sock > --db-sb-relay-use-remote-in-db > --ovn-sb-relay-db-ssl-key > --ovn-sb-relay-db-ssl-cert > --ovn-sb-relay-db-ssl-ca-cert > > Signed-off-by: Vladislav Odintsov <[email protected]> > --- > NEWS | 1 + > utilities/ovn-ctl | 56 ++++++++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 56 insertions(+), 1 deletion(-) > > diff --git a/NEWS b/NEWS > index 2e0d54ae6..9aeeac10b 100644 > --- a/NEWS > +++ b/NEWS > @@ -2,6 +2,7 @@ Post v22.12.0 > ------------- > - ovn-controller: Experimental support for co-hosting multiple > controller > instances on the same host. > + - Add ovn-ctl commands for (re)starting/stopping OVSDB relay for OVN SB > DB. > > OVN v22.12.0 - 16 Dec 2022 > -------------------------- > diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl > index 93be9b84b..dc8865abf 100755 > --- a/utilities/ovn-ctl > +++ b/utilities/ovn-ctl > @@ -84,6 +84,10 @@ stop_ic_ovsdb () { > stop_ic_sb_ovsdb > } > > +stop_sb_relay_ovsdb() { > + OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovnsb_relay > $DB_SB_RELAY_PIDFILE $DB_SB_RELAY_CTRL_SOCK > +} > + > demote_xx_ovsdb () { > local sync_from_addr=$1 > local sync_from_proto=$2 > @@ -179,6 +183,7 @@ start_ovsdb__() { > local ovn_db_ssl_cert > local ovn_db_ssl_cacert > local ovn_db_election_timer > + local relay_mode > eval db_pid_file=\$DB_${DB}_PIDFILE > eval cluster_local_addr=\$DB_${DB}_CLUSTER_LOCAL_ADDR > eval cluster_local_port=\$DB_${DB}_CLUSTER_LOCAL_PORT > @@ -205,6 +210,8 @@ start_ovsdb__() { > eval ovn_db_ssl_cert=\$OVN_${DB}_DB_SSL_CERT > eval ovn_db_ssl_cacert=\$OVN_${DB}_DB_SSL_CA_CERT > eval ovn_db_election_timer=\$DB_${DB}_ELECTION_TIMER > + eval relay_mode=\$RELAY_MODE > + eval relay_remote=\$DB_${DB}_REMOTE > > ovn_install_dir "$OVN_RUNDIR" > ovn_install_dir "$ovn_logdir" > @@ -222,6 +229,8 @@ start_ovsdb__() { > mode=active_passive > echo "$sync_from_proto:$sync_from_addr:\ > $sync_from_port" > $active_conf_file > + elif test X"$relay_mode" != Xno; then > + mode=relay > else > mode=standalone > fi > @@ -245,6 +254,8 @@ $cluster_remote_port > else > create_cluster "$file" "$schema" "$local" > "$ovn_db_election_timer" > fi > + elif test $mode = relay; then > + local file="relay:${schema_name}:${relay_remote}" > else > upgrade_db "$file" "$schema" > fi > @@ -332,7 +343,7 @@ $cluster_remote_port > fi > > # Initialize the database if it's NOT joining a cluster. > - if test -z "$cluster_remote_addr"; then > + if test -z "$cluster_remote_addr" && test X$mode != Xrelay; then > $(echo ovn-${db}ctl | tr _ -) --no-leader-only --db="unix:$sock" > init > fi > > @@ -349,6 +360,11 @@ start_nb_ovsdb() { > start_ovsdb__ NB nb OVN_Northbound NB_Global "$OVSDB_NB_WRAPPER" > } > > +start_sb_relay_ovsdb() { > + RELAY_MODE=yes > + start_ovsdb__ SB_RELAY sb-relay OVN_Southbound SB_Global > +} > + > start_sb_ovsdb() { > # Increase the limit on the number of open file descriptors, because > # SB DB may connect to large number of chassises, on top of > connections > @@ -694,6 +710,11 @@ restart_ic_sb_ovsdb () { > start_ic_sb_ovsdb > } > > +restart_sb_relay_ovsdb() { > + stop_sb_relay_ovsdb > + start_sb_relay_ovsdb > +} > + > ## ---- ## > ## main ## > ## ---- ## > @@ -785,6 +806,8 @@ set_defaults () { > OVN_IC_SB_LOG="-vconsole:off -vfile:info" > OVN_IC_NB_LOGFILE="$ovn_logdir/ovsdb-server-ic-nb.log" > OVN_IC_SB_LOGFILE="$ovn_logdir/ovsdb-server-ic-sb.log" > + OVN_SB_RELAY_LOG="-vconsole:emer -vsyslog:err -vfile:info" > + OVN_SB_RELAY_LOGFILE="$ovn_logdir/ovsdb-server-sb-relay.log" > > OVN_CONTROLLER_SSL_KEY="" > OVN_CONTROLLER_SSL_CERT="" > @@ -867,6 +890,15 @@ set_defaults () { > OVN_IC_SB_DB_SSL_CERT="" > OVN_IC_SB_DB_SSL_CA_CERT="" > > + RELAY_MODE=no > + DB_SB_RELAY_REMOTE= > + DB_SB_RELAY_SOCK=$OVN_RUNDIR/ovnsb_relay_db.sock > + DB_SB_RELAY_PIDFILE=$OVN_RUNDIR/ovnsb_relay_db.pid > + DB_SB_RELAY_CTRL_SOCK=$OVN_RUNDIR/ovnsb_relay_db.ctl > + OVN_SB_RELAY_DB_SSL_KEY="" > + OVN_SB_RELAY_DB_SSL_CERT="" > + OVN_SB_RELAY_DB_SSL_CA_CERT="" > + DB_SB_RELAY_USE_REMOTE_IN_DB="yes" > } > > set_option () { > @@ -902,6 +934,7 @@ Commands: > start_ic_sb_ovsdb start ovn ic-southbound db ovsdb-server > process > start_controller start ovn-controller > start_controller_vtep start ovn-controller-vtep > + start_sb_relay_ovsdb start ovn southbound db ovsdb-server relay > process > stop_northd stop ovn-northd > stop_ovsdb stop ovn related ovsdb-server processes > stop_nb_ovsdb stop ovn northbound db ovsdb-server process > @@ -912,6 +945,7 @@ Commands: > stop_ic_sb_ovsdb stop ovn ic-southbound db ovsdb-server > process > stop_controller stop ovn-controller > stop_controller_vtep stop ovn-controller-vtep > + stop_sb_relay_ovsdb stop ovn southbound db ovsdb-server relay > process > restart_northd restart ovn-northd > restart_ovsdb restart ovn related ovsdb-server processes > restart_nb_ovsdb restart ovn northbound db ovsdb-server > process > @@ -922,6 +956,7 @@ Commands: > restart_ic_sb_ovsdb restart ovn ic-southbound db ovsdb-server > process > restart_controller restart ovn-controller > restart_controller_vtep restart ovn-controller-vtep > + restart_sb_relay_ovsdb restart ovn southbound db ovsdb-server > relay process > status_northd status ovs-northd > status_ovsdb status related ovsdb-server processes > status_ic status ovn-ic > @@ -993,6 +1028,10 @@ Options: > processes should be started with > --disable-file-column-diff. > More details in ovsdb(7). (default: no) > + --db-sb-relay-remote Specifies upstream cluster/server remote > for ovsdb relay > + --db-sb-relay-use-remote-in-db=no|yes > + OVN_Sorthbound db listen on target > connection table (default: $DB_SB_RELAY_USE_REMOTE_IN_DB) > + > --ovn-northd-ddlog=yes|no whether we should run the DDlog version > of ovn-northd. The default is "no". > -h, --help display this help message > @@ -1107,6 +1146,12 @@ File location options: > --ovn-ic-sb-db=IC SB DB address(es) (default: $OVN_IC_SB_DB) > --db-ic-nb-use-remote-in-db=yes|no OVN_IC_Northbound db listen on > target connection table (default: $DB_IC_NB_USE_REMOTE_IN_DB) > --db-ic-sb-use-remote-in-db=yes|no OVN_IC_Southbound db listen on > target connection table (default: $DB_IC_SB_USE_REMOTE_IN_DB) > + --db-sb-relay-sock=SOCKET OVN_IC_Northbound db socket (default: > $DB_SB_RELAY_SOCK) > + --db-sb-relay-pidfile=FILE OVN_Southbound relay db pidfile (default: > $DB_SB_RELAY_CTRL_PIDFILE) > + --db-sb-relay-ctrl-sock=SOCKET OVN_Southbound relay db control socket > (default: $DB_SB_RELAY_CTRL_SOCK) > + --ovn-sb-relay-db-ssl-key=KEY OVN_Southbound DB relay SSL private key > file > + --ovn-sb-relay-db-ssl-cert=CERT OVN_Southbound DB relay SSL certificate > file > + --ovn-sb-relay-db-ssl-ca-cert=CERT OVN OVN_Southbound DB relay SSL CA > certificate file > > Default directories with "configure" option and environment variable > override: > logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR) > @@ -1204,6 +1249,9 @@ case $command in > start_ic_sb_ovsdb) > start_ic_sb_ovsdb > ;; > + start_sb_relay_ovsdb) > + start_sb_relay_ovsdb > + ;; > stop_northd) > stop_northd > ;; > @@ -1234,6 +1282,9 @@ case $command in > stop_ic_sb_ovsdb) > stop_ic_sb_ovsdb > ;; > + stop_sb_relay_ovsdb) > + stop_sb_relay_ovsdb > + ;; > restart_northd) > restart_northd > ;; > @@ -1264,6 +1315,9 @@ case $command in > restart_ic_sb_ovsdb) > restart_ic_sb_ovsdb > ;; > + restart_sb_relay_ovsdb) > + restart_sb_relay_ovsdb > + ;; > status_northd) > daemon_status $OVN_NORTHD_BIN || exit 1 > ;; > -- > 2.36.1 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Looks good to me, thanks. Reviewed-by: Ales Musil <[email protected]> -- Ales Musil Senior Software Engineer - OVN Core Red Hat EMEA <https://www.redhat.com> [email protected] IM: amusil <https://red.ht/sig> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
