Message ID | 1571619079-75503-19-git-send-email-hzhou@ovn.org |
---|---|
State | Superseded |
Headers | show |
Series | OVN Interconnection | expand |
Thanks Han for the patches. OVN-ctl doesn't seem to accept inb/sb args. On Sun, Oct 20, 2019 at 5:55 PM Han Zhou <hzhou@ovn.org> wrote: > Add support for managing IC-NB and IC-SB DBs, and ovn-ic daemon. > > Signed-off-by: Han Zhou <hzhou@ovn.org> > --- > utilities/ovn-ctl | 362 > +++++++++++++++++++++++++++++++++++++++++++++++- > utilities/ovn-ctl.8.xml | 91 ++++++++++++ > 2 files changed, 452 insertions(+), 1 deletion(-) > > diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl > index 2e4e773..f8d23a3 100755 > --- a/utilities/ovn-ctl > +++ b/utilities/ovn-ctl > @@ -33,6 +33,9 @@ done > ovnnb_active_conf_file="$ovn_etcdir/ovnnb-active.conf" > ovnsb_active_conf_file="$ovn_etcdir/ovnsb-active.conf" > ovn_northd_db_conf_file="$ovn_etcdir/ovn-northd-db-params.conf" > +ovninb_active_conf_file="$ovn_etcdir/ovninb-active.conf" > +ovnisb_active_conf_file="$ovn_etcdir/ovnisb-active.conf" > +ovn_ic_db_conf_file="$ovn_etcdir/ovn-ic-db-params.conf" > ## ----- ## > ## start ## > ## ----- ## > @@ -61,6 +64,19 @@ stop_ovsdb () { > stop_sb_ovsdb > } > > +stop_inb_ovsdb() { > + stop_xx_ovsdb $DB_INB_PID ovninb_db.ctl > +} > + > +stop_isb_ovsdb() { > + stop_xx_ovsdb $DB_ISB_PID ovnisb_db.ctl > +} > + > +stop_ic_ovsdb () { > + stop_inb_ovsdb > + stop_isb_ovsdb > +} > + > demote_xx_ovsdb () { > local sync_from_addr=$1 > local sync_from_proto=$2 > @@ -91,6 +107,16 @@ demote_ovnsb() { > $DB_SB_SYNC_FROM_PORT $ovnsb_active_conf_file > ovnsb_db.ctl > } > > +demote_ovninb() { > + demote_xx_ovsdb $DB_INB_SYNC_FROM_ADDR $DB_INB_SYNC_FROM_PROTO \ > + $DB_INB_SYNC_FROM_PORT $ovninb_active_conf_file > ovninb_db.ctl > +} > + > +demote_ovnisb() { > + demote_xx_ovsdb $DB_ISB_SYNC_FROM_ADDR $DB_ISB_SYNC_FROM_PROTO \ > + $DB_ISB_SYNC_FROM_PORT $ovnisb_active_conf_file > ovnisb_db.ctl > +} > + > promote_xx_ovsdb() { > local active_conf_file=$1 > local ctl_file=$2 > @@ -106,6 +132,14 @@ promote_ovnsb() { > promote_xx_ovsdb $ovnsb_active_conf_file ovnsb_db.ctl > } > > +promote_ovninb() { > + promote_xx_ovsdb $ovninb_active_conf_file ovninb_db.ctl > +} > + > +promote_ovnisb() { > + promote_xx_ovsdb $ovnisb_active_conf_file ovnisb_db.ctl > +} > + > start_ovsdb__() { > local DB=$1 db=$2 schema_name=$3 table_name=$4 > local db_pid_file > @@ -284,6 +318,19 @@ start_ovsdb () { > start_sb_ovsdb > } > > +start_inb_ovsdb() { > + start_ovsdb__ INB inb OVN_IC_Northbound INB_Global > +} > + > +start_isb_ovsdb() { > + start_ovsdb__ ISB isb OVN_IC_Southbound ISB_Global > +} > + > +start_ic_ovsdb () { > + start_inb_ovsdb > + start_isb_ovsdb > +} > + > sync_status() { > ovn-appctl -t $OVN_RUNDIR/ovn${1}_db.ctl ovsdb-server/sync-status | > awk '{if(NR==1) print $2}' > } > @@ -318,6 +365,36 @@ status_ovsdb () { > fi > } > > +status_ovninb() { > + if ! pidfile_is_running $DB_INB_PID; then > + echo "not-running" > + else > + echo "running/$(sync_status inb)" > + fi > +} > + > +status_ovnisb() { > + if ! pidfile_is_running $DB_ISB_PID; then > + echo "not-running" > + else > + echo "running/$(sync_status isb)" > + fi > +} > + > +status_ic_ovsdb () { > + if ! pidfile_is_running $DB_INB_PID; then > + log_success_msg "OVN IC-Northbound DB is not running" > + else > + log_success_msg "OVN IC-Northbound DB is running" > + fi > + > + if ! pidfile_is_running $DB_ISB_PID; then > + log_success_msg "OVN IC-Southbound DB is not running" > + else > + log_success_msg "OVN IC-Southbound DB is running" > + fi > +} > + > run_nb_ovsdb() { > DB_NB_DETACH=no > start_nb_ovsdb > @@ -328,6 +405,16 @@ run_sb_ovsdb() { > start_sb_ovsdb > } > > +run_inb_ovsdb() { > + DB_INB_DETACH=no > + start_inb_ovsdb > +} > + > +run_isb_ovsdb() { > + DB_ISB_DETACH=no > + start_isb_ovsdb > +} > + > start_northd () { > if [ ! -e $ovn_northd_db_conf_file ]; then > if test X"$OVN_MANAGE_OVSDB" = Xyes; then > @@ -373,6 +460,41 @@ start_northd () { > fi > } > > +start_ic () { > + if [ ! -e $ovn_ic_db_conf_file ]; then > + ovn_ic_params="--ovnnb-db=$OVN_NORTHD_NB_DB \ > + --ovnsb-db=$OVN_NORTHD_SB_DB \ > + --ovninb-db=$OVN_IC_NB_DB \ > + --ovnisb-db=$OVN_IC_SB_DB" > + else > + ovn_ic_params="`cat $ovn_ic_db_conf_file`" > + fi > + > + if daemon_is_running ovn-ic; then > + log_success_msg "ovn-ic is already running" > + else > + set ovn-ic > + if test X"$OVN_IC_LOGFILE" != X; then > + set "$@" --log-file=$OVN_IC_LOGFILE > + fi > + if test X"$OVN_IC_SSL_KEY" != X; then > + set "$@" --private-key=$OVN_IC_SSL_KEY > + fi > + if test X"$OVN_IC_SSL_CERT" != X; then > + set "$@" --certificate=$OVN_IC_SSL_CERT > + fi > + if test X"$OVN_IC_SSL_CA_CERT" != X; then > + set "$@" --ca-cert=$OVN_IC_SSL_CA_CERT > + fi > + > + [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER" > + > + set "$@" $OVN_IC_LOG $ovn_ic_params > + > usr/share/ovn/scripts/ovn-ctl --ovn-ic-isb-db=10.x.x.x --db-isb-create-insecure-remote=yes --db-inb-create-insecure-remote=yes --ovn-ic-inb-db=10.x.x start_ic is still setting null values for inb/sb: --ovninb-db= --ovnisb-db= > + OVS_RUNDIR=${OVS_RUNDIR} start_ovn_daemon "$OVN_IC_PRIORITY" > "$OVN_IC_WRAPPER" "$@" > + fi > +} > + > start_controller () { > set ovn-controller "unix:$DB_SOCK" > set "$@" $OVN_CONTROLLER_LOG > @@ -435,6 +557,10 @@ stop_northd () { > fi > } > > +stop_ic () { > + OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-ic > +} > + > stop_controller () { > OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-controller "$@" > } > @@ -452,6 +578,11 @@ restart_northd () { > start_northd > } > > +restart_ic () { > + stop_ic > + start_ic > +} > + > restart_controller () { > stop_controller --restart > start_controller > @@ -477,6 +608,21 @@ restart_sb_ovsdb () { > start_sb_ovsdb > } > > +restart_ic_ovsdb () { > + stop_ic_ovsdb > + start_ic_ovsdb > +} > + > +restart_inb_ovsdb () { > + stop_inb_ovsdb > + start_inb_ovsdb > +} > + > +restart_isb_ovsdb () { > + stop_isb_ovsdb > + start_isb_ovsdb > +} > + > ## ---- ## > ## main ## > ## ---- ## > @@ -507,14 +653,38 @@ set_defaults () { > DB_SB_SYNC_FROM_ADDR= > DB_SB_SYNC_FROM_PORT=6642 > > + DB_INB_SOCK=$OVN_RUNDIR/ovninb_db.sock > + DB_INB_PID=$OVN_RUNDIR/ovninb_db.pid > + DB_INB_CTRL_SOCK=$OVN_RUNDIR/ovninb_db.ctl > + DB_INB_FILE=$ovn_dbdir/ovninb_db.db > + DB_INB_ADDR=0.0.0.0 > + DB_INB_PORT=6645 > + DB_INB_SYNC_FROM_PROTO=tcp > + DB_INB_SYNC_FROM_ADDR= > + DB_INB_SYNC_FROM_PORT=6645 > + > + DB_ISB_SOCK=$OVN_RUNDIR/ovnisb_db.sock > + DB_ISB_PID=$OVN_RUNDIR/ovnisb_db.pid > + DB_ISB_CTRL_SOCK=$OVN_RUNDIR/ovnisb_db.ctl > + DB_ISB_FILE=$ovn_dbdir/ovnisb_db.db > + DB_ISB_ADDR=0.0.0.0 > + DB_ISB_PORT=6646 > + DB_ISB_SYNC_FROM_PROTO=tcp > + DB_ISB_SYNC_FROM_ADDR= > + DB_ISB_SYNC_FROM_PORT=6646 > + > DB_NB_SCHEMA=$ovn_datadir/ovn-nb.ovsschema > DB_SB_SCHEMA=$ovn_datadir/ovn-sb.ovsschema > + DB_INB_SCHEMA=$ovn_datadir/ovn-inb.ovsschema > + DB_ISB_SCHEMA=$ovn_datadir/ovn-isb.ovsschema > > DB_SOCK=$OVS_RUNDIR/db.sock > DB_CONF_FILE=$dbdir/conf.db > > OVN_NORTHD_PRIORITY=-10 > OVN_NORTHD_WRAPPER= > + OVN_IC_PRIORITY=-10 > + OVN_IC_WRAPPER= > OVN_CONTROLLER_PRIORITY=-10 > OVN_CONTROLLER_WRAPPER= > > @@ -523,10 +693,16 @@ set_defaults () { > OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info" > OVN_NORTHD_LOG="-vconsole:emer -vsyslog:err -vfile:info" > OVN_NORTHD_LOGFILE="" > + OVN_IC_LOG="-vconsole:emer -vsyslog:err -vfile:info" > + OVN_IC_LOGFILE="" > OVN_NB_LOG="-vconsole:off -vfile:info" > OVN_SB_LOG="-vconsole:off -vfile:info" > OVN_NB_LOGFILE="$ovn_logdir/ovsdb-server-nb.log" > OVN_SB_LOGFILE="$ovn_logdir/ovsdb-server-sb.log" > + OVN_INB_LOG="-vconsole:off -vfile:info" > + OVN_ISB_LOG="-vconsole:off -vfile:info" > + OVN_INB_LOGFILE="$ovn_logdir/ovsdb-server-inb.log" > + OVN_ISB_LOGFILE="$ovn_logdir/ovsdb-server-isb.log" > > OVN_CONTROLLER_SSL_KEY="" > OVN_CONTROLLER_SSL_CERT="" > @@ -537,14 +713,24 @@ set_defaults () { > OVN_NORTHD_SSL_CERT="" > OVN_NORTHD_SSL_CA_CERT="" > > + OVN_IC_SSL_KEY="" > + OVN_IC_SSL_CERT="" > + OVN_IC_SSL_CA_CERT="" > + > DB_SB_CREATE_INSECURE_REMOTE="no" > DB_NB_CREATE_INSECURE_REMOTE="no" > > + DB_ISB_CREATE_INSECURE_REMOTE="no" > + DB_INB_CREATE_INSECURE_REMOTE="no" > + > MONITOR="yes" > > DB_NB_DETACH="yes" > DB_SB_DETACH="yes" > > + DB_INB_DETACH="yes" > + DB_ISB_DETACH="yes" > + > DB_NB_CLUSTER_LOCAL_ADDR="" > DB_NB_CLUSTER_LOCAL_PROTO="tcp" > DB_NB_CLUSTER_LOCAL_PORT=6643 > @@ -559,11 +745,30 @@ set_defaults () { > DB_SB_CLUSTER_REMOTE_PROTO="tcp" > DB_SB_CLUSTER_REMOTE_PORT=6644 > > + DB_INB_CLUSTER_LOCAL_ADDR="" > + DB_INB_CLUSTER_LOCAL_PROTO="tcp" > + DB_INB_CLUSTER_LOCAL_PORT=6647 > + DB_INB_CLUSTER_REMOTE_ADDR="" > + DB_INB_CLUSTER_REMOTE_PROTO="tcp" > + DB_INB_CLUSTER_REMOTE_PORT=6647 > + > + DB_ISB_CLUSTER_LOCAL_ADDR="" > + DB_ISB_CLUSTER_LOCAL_PROTO="tcp" > + DB_ISB_CLUSTER_LOCAL_PORT=6648 > + DB_ISB_CLUSTER_REMOTE_ADDR="" > + DB_ISB_CLUSTER_REMOTE_PROTO="tcp" > + DB_ISB_CLUSTER_REMOTE_PORT=6648 > + > OVN_NORTHD_NB_DB="unix:$DB_NB_SOCK" > OVN_NORTHD_SB_DB="unix:$DB_SB_SOCK" > DB_NB_USE_REMOTE_IN_DB="yes" > DB_SB_USE_REMOTE_IN_DB="yes" > > + OVN_IC_INB_DB="unix:$DB_INB_SOCK" > + OVN_IC_ISB_DB="unix:$DB_ISB_SOCK" > + DB_INB_USE_REMOTE_IN_DB="yes" > + DB_ISB_USE_REMOTE_IN_DB="yes" > + > OVN_NB_DB_SSL_KEY="" > OVN_NB_DB_SSL_CERT="" > OVN_NB_DB_SSL_CA_CERT="" > @@ -572,6 +777,14 @@ set_defaults () { > OVN_SB_DB_SSL_CERT="" > OVN_SB_DB_SSL_CA_CERT="" > > + OVN_INB_DB_SSL_KEY="" > + OVN_INB_DB_SSL_CERT="" > + OVN_INB_DB_SSL_CA_CERT="" > + > + OVN_ISB_DB_SSL_KEY="" > + OVN_ISB_DB_SSL_CERT="" > + OVN_ISB_DB_SSL_CA_CERT="" > + > } > > set_option () { > @@ -601,22 +814,36 @@ Commands: > start_ovsdb start ovn related ovsdb-server processes > start_nb_ovsdb start ovn northbound db ovsdb-server process > start_sb_ovsdb start ovn southbound db ovsdb-server process > + start_ic start ovn-ic > + start_ic_ovsdb start ovn interconnection ovsdb-server > processes > + start_inb_ovsdb start ovn ic-northbound db ovsdb-server > process > + start_isb_ovsdb start ovn ic-southbound db ovsdb-server > process > start_controller start ovn-controller > start_controller_vtep start ovn-controller-vtep > stop_northd stop ovn-northd > stop_ovsdb stop ovn related ovsdb-server processes > stop_nb_ovsdb stop ovn northbound db ovsdb-server process > stop_sb_ovsdb stop ovn southbound db ovsdb-server process > + stop_ic stop ovn-ic > + stop_ic_ovsdb stop ovn interconnection ovsdb-server > processes > + stop_inb_ovsdb stop ovn ic-northbound db ovsdb-server > process > + stop_isb_ovsdb stop ovn ic-southbound db ovsdb-server > process > stop_controller stop ovn-controller > stop_controller_vtep stop ovn-controller-vtep > restart_northd restart ovn-northd > restart_ovsdb restart ovn related ovsdb-server processes > restart_nb_ovsdb restart ovn northbound db ovsdb-server > process > restart_sb_ovsdb restart ovn southbound db ovsdb-server > process > + restart_ic restart ovn-ic > + restart_ic_ovsdb restart ovn interconnection ovsdb-server > processes > + restart_inb_ovsdb restart ovn ic-northbound db ovsdb-server > process > + restart_isb_ovsdb restart ovn ic-southbound db ovsdb-server > process > restart_controller restart ovn-controller > restart_controller_vtep restart ovn-controller-vtep > status_northd status ovs-northd > status_ovsdb status related ovsdb-server processes > + status_ic status ovn-ic > + status_ic_ovsdb status ovn interconnection ovsdb-server > processes > status_controller status ovn-controller > status_controller_vtep status ovn-controller-vtep > promote_ovnnb promote ovn northbound db backup server to > active > @@ -625,6 +852,12 @@ Commands: > demote_ovnsb demote ovn southbound db active server to > backup > run_nb_ovsdb run ovn northbound db ovsdb-server process > run_sb_ovsdb run ovn southbound db ovsdb-server process > + promote_ovninb promote ovn ic-northbound db backup server > to active > + promote_ovnisb promote ovn ic-southbound db backup server > to active > + demote_ovninb demote ovn ic-northbound db active server > to backup > + demote_ovnisb demote ovn ic-southbound db active server > to backup > + run_inb_ovsdb run ovn ic-northbound db ovsdb-server > process > + run_isb_ovsdb run ovn ic-southbound db ovsdb-server > process > > Options: > --ovn-northd-priority=NICE set ovn-northd's niceness (default: > $OVN_NORTHD_PRIORITY) > @@ -644,7 +877,7 @@ Options: > --ovn-northd-ssl-key=KEY OVN Northd SSL private key file > --ovn-northd-ssl-cert=CERT OVN Northd SSL certificate file > --ovn-northd-ssl-ca-cert=CERT OVN Northd SSL CA certificate file > - --ovn-manage-ovsdb=yes|no Whether or not the OVN databases > should be > + --ovn-manage-ovsdb=yes|no Whether or not the OVN NB/SB databases > should be > automatically started and stopped along > with ovn-northd. The default is "yes". > If > this is set to "no", the "start_ovsdb" > and > @@ -655,6 +888,19 @@ Options: > --ovn-northd-logfile=STRING ovn northd process log file > (default: $OVN_NORTHD_LOGFILE) > --ovn-nb-log=STRING ovn NB ovsdb-server processes logging > params (default: $OVN_NB_LOG) > --ovn-sb-log=STRING ovn SB ovsdb-server processes logging > params (default: $OVN_SB_LOG) > + --ovn-ic-priority=NICE set ovn-ic's niceness (default: > $OVN_IC_PRIORITY) > + --ovn-ic-wrapper=WRAPPER run with a wrapper like valgrind for > debugging > + --ovn-ic-ssl-key=KEY OVN IC SSL private key file > + --ovn-ic-ssl-cert=CERT OVN IC SSL certificate file > + --ovn-ic-ssl-ca-cert=CERT OVN IC SSL CA certificate file > + --ovn-ic-log=STRING ovn-ic process logging params (default: > $OVN_IC_LOG) > + --ovn-ic-logfile=STRING ovn-ic process log file (default: > $OVN_IC_LOGFILE) > + --ovn-inb-db-ssl-key=KEY OVN IC Northbound DB SSL private key file > + --ovn-inb-db-ssl-cert=CERT OVN IC Northbound DB SSL certificate file > + --ovn-inb-db-ssl-ca-cert=CERT OVN IC Northbound DB SSL CA certificate > file > + --ovn-isb-db-ssl-key=KEY OVN IC Southbound DB SSL private key file > + --ovn-isb-db-ssl-cert=CERT OVN IC Southbound DB SSL certificate file > + --ovn-isb-db-ssl-ca-cert=CERT OVN IC Southbound DB SSL CA certificate > file > --ovn-user="user[:group]" pass the --user flag to the ovn daemons > --ovs-user="user[:group]" pass the --user flag to ovs daemons > -h, --help display this help message > @@ -709,6 +955,54 @@ File location options: > --ovn-northd-sb-db=SB DB address(es) (default: $OVN_NORTHD_SB_DB) > --db-nb-use-remote-in-db=yes|no OVN_Northbound db listen on target > connection table (default: $DB_NB_USE_REMOTE_IN_DB) > --db-sb-use-remote-in-db=yes|no OVN_Southbound db listen on target > connection table (default: $DB_SB_USE_REMOTE_IN_DB) > + --db-inb-sock=SOCKET OVN_IC_Northbound db socket (default: > $DB_INB_SOCK) > + --db-isb-scok=SOCKET OVN_IC_Southbound db socket (default: > $DB_ISB_SOCK) > + --db-inb-file=FILE OVN_IC_Northbound db file (default: $DB_INB_FILE) > + --db-isb-file=FILE OVN_IC_Southbound db file (default: $DB_ISB_FILE) > + --db-inb-schema=FILE OVN_IC_Northbound db file (default: > $DB_INB_SCHEMA) > + --db-isb-schema=FILE OVN_IC_Southbound db file (default: > $DB_ISB_SCHEMA) > + --db-inb-addr=ADDR OVN IC Northbound db ptcp address (default: > $DB_INB_ADDR) > + --db-inb-port=PORT OVN IC Northbound db ptcp port (default: > $DB_INB_PORT) > + --db-isb-addr=ADDR OVN IC Southbound db ptcp address (default: > $DB_ISB_ADDR) > + --db-isb-port=PORT OVN IC Southbound db ptcp port (default: > $DB_ISB_PORT) > + --ovn-inb-logfile=FILE OVN IC Northbound log file (default: > $OVN_INB_LOGFILE) > + --ovn-isb-logfile=FILE OVN IC Southbound log file (default: > $OVN_ISB_LOGFILE) > + --db-inb-sync-from-addr=ADDR OVN IC Northbound active db tcp address > (default: $DB_INB_SYNC_FROM_ADDR) > + --db-inb-sync-from-port=PORT OVN IC Northbound active db tcp port > (default: $DB_INB_SYNC_FROM_PORT) > + --db-inb-sync-from-proto=PROTO OVN IC Northbound active db transport > (default: $DB_INB_SYNC_FROM_PROTO) > + --db-inb-create-insecure-remote=yes|no Create ptcp OVN IC Northbound > remote (default: $DB_INB_CREATE_INSECURE_REMOTE) > + --db-isb-sync-from-addr=ADDR OVN IC Southbound active db tcp address > (default: $DB_ISB_SYNC_FROM_ADDR) > + --db-isb-sync-from-port=ADDR OVN IC Southbound active db tcp port > (default: $DB_ISB_SYNC_FROM_PORT) > + --db-isb-sync-from-proto=PROTO OVN IC Southbound active db transport > (default: $DB_ISB_SYNC_FROM_PROTO) > + --db-isb-create-insecure-remote=yes|no Create ptcp OVN IC Southbound > remote (default: $DB_ISB_CREATE_INSECURE_REMOTE) > + --db-inb-cluster-local-addr=ADDR OVN_IC_Northbound cluster local > address \ > + (default: $DB_INB_CLUSTER_LOCAL_ADDR) > + --db-inb-cluster-local-port=PORT OVN_IC_Northbound cluster local tcp > port \ > + (default: $DB_INB_CLUSTER_LOCAL_PORT) > + --db-inb-cluster-local-proto=PROTO OVN_IC_Northbound cluster local db > transport \ > + (default: $DB_INB_CLUSTER_LOCAL_PROTO) > + --db-inb-cluster-remote-addr=ADDR OVN_IC_Northbound cluster remote > address \ > + (default: $DB_INB_CLUSTER_REMOTE_ADDR) > + --db-inb-cluster-remote-port=PORT OVN_IC_Northbound cluster remote tcp > port \ > + (default: $DB_INB_CLUSTER_REMOTE_PORT) > + --db-inb-cluster-remote-proto=PROTO OVN_IC_Northbound cluster remote db > \ > + transport (default: $DB_INB_CLUSTER_REMOTE_PROTO) > + --db-isb-cluster-local-addr=ADDR OVN_IC_Southbound cluster local > address \ > + (default: $DB_ISB_CLUSTER_LOCAL_ADDR) > + --db-isb-cluster-local-port=PORT OVN_IC_Southbound cluster local tcp > port \ > + (default: $DB_ISB_CLUSTER_LOCAL_PORT) > + --db-isb-cluster-local-proto=PROTO OVN_IC_Southbound cluster local db > transport \ > + (default: $DB_ISB_CLUSTER_LOCAL_PROTO) > + --db-isb-cluster-remote-addr=ADDR OVN_IC_Southbound cluster remote > address \ > + (default: $DB_ISB_CLUSTER_REMOTE_ADDR) > + --db-isb-cluster-remote-port=PORT OVN_IC_Southbound cluster remote tcp > port \ > + (default: $DB_ISB_CLUSTER_REMOTE_PORT) > + --db-isb-cluster-remote-proto=PROTO OVN_IC_Southbound cluster remote db > \ > + transport (default: $DB_ISB_CLUSTER_REMOTE_PROTO) > + --ovn-ic-inb-db=INB DB address(es) (default: $OVN_IC_INB_DB) > + --ovn-ic-isb-db=ISB DB address(es) (default: $OVN_IC_ISB_DB) > + --db-inb-use-remote-in-db=yes|no OVN_IC_Northbound db listen on target > connection table (default: $DB_INB_USE_REMOTE_IN_DB) > + --db-isb-use-remote-in-db=yes|no OVN_IC_Southbound db listen on target > connection table (default: $DB_ISB_USE_REMOTE_IN_DB) > > Default directories with "configure" option and environment variable > override: > logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR) > @@ -781,6 +1075,18 @@ case $command in > start_controller_vtep) > start_controller_vtep > ;; > + start_ic) > + start_ic > + ;; > + start_ic_ovsdb) > + start_ic_ovsdb > + ;; > + start_inb_ovsdb) > + start_inb_ovsdb > + ;; > + start_isb_ovsdb) > + start_isb_ovsdb > + ;; > stop_northd) > stop_northd > ;; > @@ -799,6 +1105,18 @@ case $command in > stop_controller_vtep) > stop_controller_vtep > ;; > + stop_ic) > + stop_ic > + ;; > + stop_ic_ovsdb) > + stop_ic_ovsdb > + ;; > + stop_inb_ovsdb) > + stop_inb_ovsdb > + ;; > + stop_isb_ovsdb) > + stop_isb_ovsdb > + ;; > restart_northd) > restart_northd > ;; > @@ -817,6 +1135,18 @@ case $command in > restart_controller_vtep) > restart_controller_vtep > ;; > + restart_ic) > + restart_ic > + ;; > + restart_ic_ovsdb) > + restart_ic_ovsdb > + ;; > + restart_inb_ovsdb) > + restart_inb_ovsdb > + ;; > + restart_isb_ovsdb) > + restart_isb_ovsdb > + ;; > status_northd) > daemon_status ovn-northd || exit 1 > ;; > @@ -829,6 +1159,12 @@ case $command in > status_controller_vtep) > daemon_status ovn-controller-vtep || exit 1 > ;; > + status_ic) > + daemon_status ovn-ic || exit 1 > + ;; > + status_ic_ovsdb) > + status_ic_ovsdb > + ;; > promote_ovnnb) > promote_ovnnb > ;; > @@ -847,12 +1183,36 @@ case $command in > status_ovnsb) > status_ovnsb > ;; > + promote_ovninb) > + promote_ovninb > + ;; > + promote_ovnisb) > + promote_ovnisb > + ;; > + demote_ovninb) > + demote_ovninb > + ;; > + demote_ovnisb) > + demote_ovnisb > + ;; > + status_ovninb) > + status_ovninb > + ;; > + status_ovnisb) > + status_ovnisb > + ;; > run_nb_ovsdb) > run_nb_ovsdb > ;; > run_sb_ovsdb) > run_sb_ovsdb > ;; > + run_inb_ovsdb) > + run_inb_ovsdb > + ;; > + run_isb_ovsdb) > + run_isb_ovsdb > + ;; > help) > usage > ;; > diff --git a/utilities/ovn-ctl.8.xml b/utilities/ovn-ctl.8.xml > index f70bd6f..44373fd 100644 > --- a/utilities/ovn-ctl.8.xml > +++ b/utilities/ovn-ctl.8.xml > @@ -16,12 +16,15 @@ > <dt><code>start_northd</code></dt> > <dt><code>start_controller</code></dt> > <dt><code>start_controller_vtep</code></dt> > + <dt><code>start_ic</code></dt> > <dt><code>stop_northd</code></dt> > <dt><code>stop_controller</code></dt> > <dt><code>stop_controller_vtep</code></dt> > + <dt><code>stop_ic</code></dt> > <dt><code>restart_northd</code></dt> > <dt><code>restart_controller</code></dt> > <dt><code>restart_controller_vtep</code></dt> > + <dt><code>restart_ic</code></dt> > <dt><code>promote_ovnnb</code></dt> > <dt><code>promote_ovnsb</code></dt> > <dt><code>demote_ovnnb</code></dt> > @@ -37,6 +40,21 @@ > <dt><code>restart_ovsdb</code></dt> > <dt><code>run_nb_ovsdb</code></dt> > <dt><code>run_sb_ovsdb</code></dt> > + <dt><code>promote_ovninb</code></dt> > + <dt><code>promote_ovnisb</code></dt> > + <dt><code>demote_ovninb</code></dt> > + <dt><code>demote_ovnisb</code></dt> > + <dt><code>status_ovninb</code></dt> > + <dt><code>status_ovnisb</code></dt> > + <dt><code>start_ic_ovsdb</code></dt> > + <dt><code>start_inb_ovsdb</code></dt> > + <dt><code>start_isb_ovsdb</code></dt> > + <dt><code>stop_ic_ovsdb</code></dt> > + <dt><code>stop_inb_ovsdb</code></dt> > + <dt><code>stop_isb_ovsdb</code></dt> > + <dt><code>restart_ic_ovsdb</code></dt> > + <dt><code>run_inb_ovsdb</code></dt> > + <dt><code>run_isb_ovsdb</code></dt> > </dl> > > <h1>Options</h1> > @@ -44,6 +62,8 @@ > <p><code>--ovn-northd-wrapper=<var>WRAPPER</var></code></p> > <p><code>--ovn-controller-priority=<var>NICE</var></code></p> > <p><code>--ovn-controller-wrapper=<var>WRAPPER</var></code></p> > + <p><code>--ovn-ic-priority=<var>NICE</var></code></p> > + <p><code>--ovn-ic-wrapper=<var>WRAPPER</var></code></p> > <p><code>--ovn-user=<var>USER:GROUP</var></code></p> > <p><code>--ovs-user=<var>USER:GROUP</var></code></p> > <p><code>-h</code> | <code>--help</code></p> > @@ -56,6 +76,12 @@ > <p><code>--db-sb-schema=<var>FILE</var></code></p> > <p><code>--db-sb-create-insecure-remote=<var>yes|no</var></code></p> > <p><code>--db-nb-create-insecure-remote=<var>yes|no</var></code></p> > + <p><code>--db-inb-file=<var>FILE</var></code></p> > + <p><code>--db-isb-file=<var>FILE</var></code></p> > + <p><code>--db-inb-schema=<var>FILE</var></code></p> > + <p><code>--db-isb-schema=<var>FILE</var></code></p> > + <p><code>--db-isb-create-insecure-remote=<var>yes|no</var></code></p> > + <p><code>--db-inb-create-insecure-remote=<var>yes|no</var></code></p> > <p><code>--ovn-controller-ssl-key=<var>KEY</var></code></p> > <p><code>--ovn-controller-ssl-cert=<var>CERT</var></code></p> > <p><code>--ovn-controller-ssl-ca-cert=<var>CERT</var></code></p> > @@ -68,6 +94,12 @@ > <p><code>--db-sb-sync-from-addr=<var>IP ADDRESS</var></code></p> > <p><code>--db-sb-sync-from-port=<var>PORT NUMBER</var></code></p> > <p><code>--db-sb-sync-from-proto=<var>PROTO</var></code></p> > + <p><code>--db-inb-sync-from-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-inb-sync-from-port=<var>PORT NUMBER</var></code></p> > + <p><code>--db-inb-sync-from-proto=<var>PROTO</var></code></p> > + <p><code>--db-isb-sync-from-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-isb-sync-from-port=<var>PORT NUMBER</var></code></p> > + <p><code>--db-isb-sync-from-proto=<var>PROTO</var></code></p> > <p> > <code> > --ovn-northd-nb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: > @@ -80,6 +112,18 @@ > <var>PORT</var>.. > </code> > </p> > + <p> > + <code> > + --ovn-ic-inb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: > + <var>PORT</var>.. > + </code> > + </p> > + <p> > + <code> > + --ovn-ic-isb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: > + <var>PORT</var>.. > + </code> > + </p> > <h1> Clustering options </h1> > <p><code>--db-nb-cluster-local-addr=<var>IP ADDRESS</var></code></p> > <p><code>--db-nb-cluster-local-port=<var>PORT NUMBER</var></code></p> > @@ -93,6 +137,18 @@ > <p><code>--db-sb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> > <p><code>--db-sb-cluster-remote-port=<var>PORT NUMBER</var></code></p> > <p><code>--db-sb-cluster-remote-proto=<var>PROTO > (tcp/ssl)</var></code></p> > + <p><code>--db-inb-cluster-local-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-inb-cluster-local-port=<var>PORT NUMBER</var></code></p> > + <p><code>--db-inb-cluster-local-proto=<var>PROTO > (tcp/ssl)</var></code></p> > + <p><code>--db-inb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-inb-cluster-remote-port=<var>PORT > NUMBER</var></code></p> > + <p><code>--db-inb-cluster-remote-proto=<var>PROTO > (tcp/ssl)</var></code></p> > + <p><code>--db-isb-cluster-local-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-isb-cluster-local-port=<var>PORT NUMBER</var></code></p> > + <p><code>--db-isb-cluster-local-proto=<var>PROTO > (tcp/ssl)</var></code></p> > + <p><code>--db-isb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> > + <p><code>--db-isb-cluster-remote-port=<var>PORT > NUMBER</var></code></p> > + <p><code>--db-isb-cluster-remote-proto=<var>PROTO > (tcp/ssl)</var></code></p> > > <h1>Configuration files</h1> > <p>Following are the optional configuration files. If present, it > should be located in the etc dir</p> > @@ -119,6 +175,27 @@ > </p> > <p><code>--ovnnb-db=tcp:x.x.x.x:6641 > --ovnsb-db=tcp:x.x.x.x:6642</code></p> > > + <h2>ovninb-active.conf</h2> > + <p> > + If present, this file should hold the url to connect to the active > + Interconnection Northbound DB server > + </p> > + <p><code>tcp:x.x.x.x:6645</code></p> > + > + <h2>ovnisb-active.conf</h2> > + <p> > + If present, this file should hold the url to connect to the active > + Interconnection Southbound DB server > + </p> > + <p><code>tcp:x.x.x.x:6646</code></p> > + > + <h2>ovn-ic-db-params.conf</h2> > + <p> > + If present, this file should hold the database url parameters to be > passed > + to ovn-ic. > + </p> > + <p><code>--ovninb-db=tcp:x.x.x.x:6645 > --ovnisb-db=tcp:x.x.x.x:6646</code></p> > + > <h1> Running OVN db servers without detaching </h1> > <p><code># ovn-ctl run_nb_ovsdb</code></p> > <p> > @@ -134,6 +211,20 @@ > This command will be useful for starting the OVN sb ovsdb-server in > a > container. > </p> > + <p><code># ovn-ctl run_inb_ovsdb</code></p> > + <p> > + This command runs the OVN IC-NB ovsdb-server without passing the > + <code>detach</code> option, making it to block until ovsdb-server > exits. > + This command will be useful for starting the OVN IC-NB ovsdb-server > in a > + container. > + </p> > + <p><code># ovn-ctl run_isb_ovsdb</code></p> > + <p> > + This command runs the OVN IC-SB ovsdb-server without passing the > + <code>detach</code> option, making it to block until ovsdb-server > exits. > + This command will be useful for starting the OVN IC-SB ovsdb-server > in a > + container. > + </p> > > <h1>Example Usage</h1> > <h2>Run ovn-controller on a host already running OVS</h2> > -- > 2.1.0 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >
On Tue, Oct 29, 2019 at 5:50 PM aginwala <aginwala@asu.edu> wrote: > > > usr/share/ovn/scripts/ovn-ctl --ovn-ic-isb-db=10.x.x.x --db-isb-create-insecure-remote=yes --db-inb-create-insecure-remote=yes --ovn-ic-inb-db=10.x.x start_ic is still setting null values for inb/sb: > --ovninb-db= --ovnisb-db= Thanks for reporting the problem. I fixed it in v2: https://patchwork.ozlabs.org/project/openvswitch/list/?series=139731 p.s. the options --db-isb-create-insecure-remote=yes and --db-inb-create-insecure-remote=yes are useless here, although it is not harmful. These options belong to command start_ic_ovsdb. I added these as example in tutorial in v2 as well.
diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl index 2e4e773..f8d23a3 100755 --- a/utilities/ovn-ctl +++ b/utilities/ovn-ctl @@ -33,6 +33,9 @@ done ovnnb_active_conf_file="$ovn_etcdir/ovnnb-active.conf" ovnsb_active_conf_file="$ovn_etcdir/ovnsb-active.conf" ovn_northd_db_conf_file="$ovn_etcdir/ovn-northd-db-params.conf" +ovninb_active_conf_file="$ovn_etcdir/ovninb-active.conf" +ovnisb_active_conf_file="$ovn_etcdir/ovnisb-active.conf" +ovn_ic_db_conf_file="$ovn_etcdir/ovn-ic-db-params.conf" ## ----- ## ## start ## ## ----- ## @@ -61,6 +64,19 @@ stop_ovsdb () { stop_sb_ovsdb } +stop_inb_ovsdb() { + stop_xx_ovsdb $DB_INB_PID ovninb_db.ctl +} + +stop_isb_ovsdb() { + stop_xx_ovsdb $DB_ISB_PID ovnisb_db.ctl +} + +stop_ic_ovsdb () { + stop_inb_ovsdb + stop_isb_ovsdb +} + demote_xx_ovsdb () { local sync_from_addr=$1 local sync_from_proto=$2 @@ -91,6 +107,16 @@ demote_ovnsb() { $DB_SB_SYNC_FROM_PORT $ovnsb_active_conf_file ovnsb_db.ctl } +demote_ovninb() { + demote_xx_ovsdb $DB_INB_SYNC_FROM_ADDR $DB_INB_SYNC_FROM_PROTO \ + $DB_INB_SYNC_FROM_PORT $ovninb_active_conf_file ovninb_db.ctl +} + +demote_ovnisb() { + demote_xx_ovsdb $DB_ISB_SYNC_FROM_ADDR $DB_ISB_SYNC_FROM_PROTO \ + $DB_ISB_SYNC_FROM_PORT $ovnisb_active_conf_file ovnisb_db.ctl +} + promote_xx_ovsdb() { local active_conf_file=$1 local ctl_file=$2 @@ -106,6 +132,14 @@ promote_ovnsb() { promote_xx_ovsdb $ovnsb_active_conf_file ovnsb_db.ctl } +promote_ovninb() { + promote_xx_ovsdb $ovninb_active_conf_file ovninb_db.ctl +} + +promote_ovnisb() { + promote_xx_ovsdb $ovnisb_active_conf_file ovnisb_db.ctl +} + start_ovsdb__() { local DB=$1 db=$2 schema_name=$3 table_name=$4 local db_pid_file @@ -284,6 +318,19 @@ start_ovsdb () { start_sb_ovsdb } +start_inb_ovsdb() { + start_ovsdb__ INB inb OVN_IC_Northbound INB_Global +} + +start_isb_ovsdb() { + start_ovsdb__ ISB isb OVN_IC_Southbound ISB_Global +} + +start_ic_ovsdb () { + start_inb_ovsdb + start_isb_ovsdb +} + sync_status() { ovn-appctl -t $OVN_RUNDIR/ovn${1}_db.ctl ovsdb-server/sync-status | awk '{if(NR==1) print $2}' } @@ -318,6 +365,36 @@ status_ovsdb () { fi } +status_ovninb() { + if ! pidfile_is_running $DB_INB_PID; then + echo "not-running" + else + echo "running/$(sync_status inb)" + fi +} + +status_ovnisb() { + if ! pidfile_is_running $DB_ISB_PID; then + echo "not-running" + else + echo "running/$(sync_status isb)" + fi +} + +status_ic_ovsdb () { + if ! pidfile_is_running $DB_INB_PID; then + log_success_msg "OVN IC-Northbound DB is not running" + else + log_success_msg "OVN IC-Northbound DB is running" + fi + + if ! pidfile_is_running $DB_ISB_PID; then + log_success_msg "OVN IC-Southbound DB is not running" + else + log_success_msg "OVN IC-Southbound DB is running" + fi +} + run_nb_ovsdb() { DB_NB_DETACH=no start_nb_ovsdb @@ -328,6 +405,16 @@ run_sb_ovsdb() { start_sb_ovsdb } +run_inb_ovsdb() { + DB_INB_DETACH=no + start_inb_ovsdb +} + +run_isb_ovsdb() { + DB_ISB_DETACH=no + start_isb_ovsdb +} + start_northd () { if [ ! -e $ovn_northd_db_conf_file ]; then if test X"$OVN_MANAGE_OVSDB" = Xyes; then @@ -373,6 +460,41 @@ start_northd () { fi } +start_ic () { + if [ ! -e $ovn_ic_db_conf_file ]; then + ovn_ic_params="--ovnnb-db=$OVN_NORTHD_NB_DB \ + --ovnsb-db=$OVN_NORTHD_SB_DB \ + --ovninb-db=$OVN_IC_NB_DB \ + --ovnisb-db=$OVN_IC_SB_DB" + else + ovn_ic_params="`cat $ovn_ic_db_conf_file`" + fi + + if daemon_is_running ovn-ic; then + log_success_msg "ovn-ic is already running" + else + set ovn-ic + if test X"$OVN_IC_LOGFILE" != X; then + set "$@" --log-file=$OVN_IC_LOGFILE + fi + if test X"$OVN_IC_SSL_KEY" != X; then + set "$@" --private-key=$OVN_IC_SSL_KEY + fi + if test X"$OVN_IC_SSL_CERT" != X; then + set "$@" --certificate=$OVN_IC_SSL_CERT + fi + if test X"$OVN_IC_SSL_CA_CERT" != X; then + set "$@" --ca-cert=$OVN_IC_SSL_CA_CERT + fi + + [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER" + + set "$@" $OVN_IC_LOG $ovn_ic_params + + OVS_RUNDIR=${OVS_RUNDIR} start_ovn_daemon "$OVN_IC_PRIORITY" "$OVN_IC_WRAPPER" "$@" + fi +} + start_controller () { set ovn-controller "unix:$DB_SOCK" set "$@" $OVN_CONTROLLER_LOG @@ -435,6 +557,10 @@ stop_northd () { fi } +stop_ic () { + OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-ic +} + stop_controller () { OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-controller "$@" } @@ -452,6 +578,11 @@ restart_northd () { start_northd } +restart_ic () { + stop_ic + start_ic +} + restart_controller () { stop_controller --restart start_controller @@ -477,6 +608,21 @@ restart_sb_ovsdb () { start_sb_ovsdb } +restart_ic_ovsdb () { + stop_ic_ovsdb + start_ic_ovsdb +} + +restart_inb_ovsdb () { + stop_inb_ovsdb + start_inb_ovsdb +} + +restart_isb_ovsdb () { + stop_isb_ovsdb + start_isb_ovsdb +} + ## ---- ## ## main ## ## ---- ## @@ -507,14 +653,38 @@ set_defaults () { DB_SB_SYNC_FROM_ADDR= DB_SB_SYNC_FROM_PORT=6642 + DB_INB_SOCK=$OVN_RUNDIR/ovninb_db.sock + DB_INB_PID=$OVN_RUNDIR/ovninb_db.pid + DB_INB_CTRL_SOCK=$OVN_RUNDIR/ovninb_db.ctl + DB_INB_FILE=$ovn_dbdir/ovninb_db.db + DB_INB_ADDR=0.0.0.0 + DB_INB_PORT=6645 + DB_INB_SYNC_FROM_PROTO=tcp + DB_INB_SYNC_FROM_ADDR= + DB_INB_SYNC_FROM_PORT=6645 + + DB_ISB_SOCK=$OVN_RUNDIR/ovnisb_db.sock + DB_ISB_PID=$OVN_RUNDIR/ovnisb_db.pid + DB_ISB_CTRL_SOCK=$OVN_RUNDIR/ovnisb_db.ctl + DB_ISB_FILE=$ovn_dbdir/ovnisb_db.db + DB_ISB_ADDR=0.0.0.0 + DB_ISB_PORT=6646 + DB_ISB_SYNC_FROM_PROTO=tcp + DB_ISB_SYNC_FROM_ADDR= + DB_ISB_SYNC_FROM_PORT=6646 + DB_NB_SCHEMA=$ovn_datadir/ovn-nb.ovsschema DB_SB_SCHEMA=$ovn_datadir/ovn-sb.ovsschema + DB_INB_SCHEMA=$ovn_datadir/ovn-inb.ovsschema + DB_ISB_SCHEMA=$ovn_datadir/ovn-isb.ovsschema DB_SOCK=$OVS_RUNDIR/db.sock DB_CONF_FILE=$dbdir/conf.db OVN_NORTHD_PRIORITY=-10 OVN_NORTHD_WRAPPER= + OVN_IC_PRIORITY=-10 + OVN_IC_WRAPPER= OVN_CONTROLLER_PRIORITY=-10 OVN_CONTROLLER_WRAPPER= @@ -523,10 +693,16 @@ set_defaults () { OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info" OVN_NORTHD_LOG="-vconsole:emer -vsyslog:err -vfile:info" OVN_NORTHD_LOGFILE="" + OVN_IC_LOG="-vconsole:emer -vsyslog:err -vfile:info" + OVN_IC_LOGFILE="" OVN_NB_LOG="-vconsole:off -vfile:info" OVN_SB_LOG="-vconsole:off -vfile:info" OVN_NB_LOGFILE="$ovn_logdir/ovsdb-server-nb.log" OVN_SB_LOGFILE="$ovn_logdir/ovsdb-server-sb.log" + OVN_INB_LOG="-vconsole:off -vfile:info" + OVN_ISB_LOG="-vconsole:off -vfile:info" + OVN_INB_LOGFILE="$ovn_logdir/ovsdb-server-inb.log" + OVN_ISB_LOGFILE="$ovn_logdir/ovsdb-server-isb.log" OVN_CONTROLLER_SSL_KEY="" OVN_CONTROLLER_SSL_CERT="" @@ -537,14 +713,24 @@ set_defaults () { OVN_NORTHD_SSL_CERT="" OVN_NORTHD_SSL_CA_CERT="" + OVN_IC_SSL_KEY="" + OVN_IC_SSL_CERT="" + OVN_IC_SSL_CA_CERT="" + DB_SB_CREATE_INSECURE_REMOTE="no" DB_NB_CREATE_INSECURE_REMOTE="no" + DB_ISB_CREATE_INSECURE_REMOTE="no" + DB_INB_CREATE_INSECURE_REMOTE="no" + MONITOR="yes" DB_NB_DETACH="yes" DB_SB_DETACH="yes" + DB_INB_DETACH="yes" + DB_ISB_DETACH="yes" + DB_NB_CLUSTER_LOCAL_ADDR="" DB_NB_CLUSTER_LOCAL_PROTO="tcp" DB_NB_CLUSTER_LOCAL_PORT=6643 @@ -559,11 +745,30 @@ set_defaults () { DB_SB_CLUSTER_REMOTE_PROTO="tcp" DB_SB_CLUSTER_REMOTE_PORT=6644 + DB_INB_CLUSTER_LOCAL_ADDR="" + DB_INB_CLUSTER_LOCAL_PROTO="tcp" + DB_INB_CLUSTER_LOCAL_PORT=6647 + DB_INB_CLUSTER_REMOTE_ADDR="" + DB_INB_CLUSTER_REMOTE_PROTO="tcp" + DB_INB_CLUSTER_REMOTE_PORT=6647 + + DB_ISB_CLUSTER_LOCAL_ADDR="" + DB_ISB_CLUSTER_LOCAL_PROTO="tcp" + DB_ISB_CLUSTER_LOCAL_PORT=6648 + DB_ISB_CLUSTER_REMOTE_ADDR="" + DB_ISB_CLUSTER_REMOTE_PROTO="tcp" + DB_ISB_CLUSTER_REMOTE_PORT=6648 + OVN_NORTHD_NB_DB="unix:$DB_NB_SOCK" OVN_NORTHD_SB_DB="unix:$DB_SB_SOCK" DB_NB_USE_REMOTE_IN_DB="yes" DB_SB_USE_REMOTE_IN_DB="yes" + OVN_IC_INB_DB="unix:$DB_INB_SOCK" + OVN_IC_ISB_DB="unix:$DB_ISB_SOCK" + DB_INB_USE_REMOTE_IN_DB="yes" + DB_ISB_USE_REMOTE_IN_DB="yes" + OVN_NB_DB_SSL_KEY="" OVN_NB_DB_SSL_CERT="" OVN_NB_DB_SSL_CA_CERT="" @@ -572,6 +777,14 @@ set_defaults () { OVN_SB_DB_SSL_CERT="" OVN_SB_DB_SSL_CA_CERT="" + OVN_INB_DB_SSL_KEY="" + OVN_INB_DB_SSL_CERT="" + OVN_INB_DB_SSL_CA_CERT="" + + OVN_ISB_DB_SSL_KEY="" + OVN_ISB_DB_SSL_CERT="" + OVN_ISB_DB_SSL_CA_CERT="" + } set_option () { @@ -601,22 +814,36 @@ Commands: start_ovsdb start ovn related ovsdb-server processes start_nb_ovsdb start ovn northbound db ovsdb-server process start_sb_ovsdb start ovn southbound db ovsdb-server process + start_ic start ovn-ic + start_ic_ovsdb start ovn interconnection ovsdb-server processes + start_inb_ovsdb start ovn ic-northbound db ovsdb-server process + start_isb_ovsdb start ovn ic-southbound db ovsdb-server process start_controller start ovn-controller start_controller_vtep start ovn-controller-vtep stop_northd stop ovn-northd stop_ovsdb stop ovn related ovsdb-server processes stop_nb_ovsdb stop ovn northbound db ovsdb-server process stop_sb_ovsdb stop ovn southbound db ovsdb-server process + stop_ic stop ovn-ic + stop_ic_ovsdb stop ovn interconnection ovsdb-server processes + stop_inb_ovsdb stop ovn ic-northbound db ovsdb-server process + stop_isb_ovsdb stop ovn ic-southbound db ovsdb-server process stop_controller stop ovn-controller stop_controller_vtep stop ovn-controller-vtep restart_northd restart ovn-northd restart_ovsdb restart ovn related ovsdb-server processes restart_nb_ovsdb restart ovn northbound db ovsdb-server process restart_sb_ovsdb restart ovn southbound db ovsdb-server process + restart_ic restart ovn-ic + restart_ic_ovsdb restart ovn interconnection ovsdb-server processes + restart_inb_ovsdb restart ovn ic-northbound db ovsdb-server process + restart_isb_ovsdb restart ovn ic-southbound db ovsdb-server process restart_controller restart ovn-controller restart_controller_vtep restart ovn-controller-vtep status_northd status ovs-northd status_ovsdb status related ovsdb-server processes + status_ic status ovn-ic + status_ic_ovsdb status ovn interconnection ovsdb-server processes status_controller status ovn-controller status_controller_vtep status ovn-controller-vtep promote_ovnnb promote ovn northbound db backup server to active @@ -625,6 +852,12 @@ Commands: demote_ovnsb demote ovn southbound db active server to backup run_nb_ovsdb run ovn northbound db ovsdb-server process run_sb_ovsdb run ovn southbound db ovsdb-server process + promote_ovninb promote ovn ic-northbound db backup server to active + promote_ovnisb promote ovn ic-southbound db backup server to active + demote_ovninb demote ovn ic-northbound db active server to backup + demote_ovnisb demote ovn ic-southbound db active server to backup + run_inb_ovsdb run ovn ic-northbound db ovsdb-server process + run_isb_ovsdb run ovn ic-southbound db ovsdb-server process Options: --ovn-northd-priority=NICE set ovn-northd's niceness (default: $OVN_NORTHD_PRIORITY) @@ -644,7 +877,7 @@ Options: --ovn-northd-ssl-key=KEY OVN Northd SSL private key file --ovn-northd-ssl-cert=CERT OVN Northd SSL certificate file --ovn-northd-ssl-ca-cert=CERT OVN Northd SSL CA certificate file - --ovn-manage-ovsdb=yes|no Whether or not the OVN databases should be + --ovn-manage-ovsdb=yes|no Whether or not the OVN NB/SB databases should be automatically started and stopped along with ovn-northd. The default is "yes". If this is set to "no", the "start_ovsdb" and @@ -655,6 +888,19 @@ Options: --ovn-northd-logfile=STRING ovn northd process log file (default: $OVN_NORTHD_LOGFILE) --ovn-nb-log=STRING ovn NB ovsdb-server processes logging params (default: $OVN_NB_LOG) --ovn-sb-log=STRING ovn SB ovsdb-server processes logging params (default: $OVN_SB_LOG) + --ovn-ic-priority=NICE set ovn-ic's niceness (default: $OVN_IC_PRIORITY) + --ovn-ic-wrapper=WRAPPER run with a wrapper like valgrind for debugging + --ovn-ic-ssl-key=KEY OVN IC SSL private key file + --ovn-ic-ssl-cert=CERT OVN IC SSL certificate file + --ovn-ic-ssl-ca-cert=CERT OVN IC SSL CA certificate file + --ovn-ic-log=STRING ovn-ic process logging params (default: $OVN_IC_LOG) + --ovn-ic-logfile=STRING ovn-ic process log file (default: $OVN_IC_LOGFILE) + --ovn-inb-db-ssl-key=KEY OVN IC Northbound DB SSL private key file + --ovn-inb-db-ssl-cert=CERT OVN IC Northbound DB SSL certificate file + --ovn-inb-db-ssl-ca-cert=CERT OVN IC Northbound DB SSL CA certificate file + --ovn-isb-db-ssl-key=KEY OVN IC Southbound DB SSL private key file + --ovn-isb-db-ssl-cert=CERT OVN IC Southbound DB SSL certificate file + --ovn-isb-db-ssl-ca-cert=CERT OVN IC Southbound DB SSL CA certificate file --ovn-user="user[:group]" pass the --user flag to the ovn daemons --ovs-user="user[:group]" pass the --user flag to ovs daemons -h, --help display this help message @@ -709,6 +955,54 @@ File location options: --ovn-northd-sb-db=SB DB address(es) (default: $OVN_NORTHD_SB_DB) --db-nb-use-remote-in-db=yes|no OVN_Northbound db listen on target connection table (default: $DB_NB_USE_REMOTE_IN_DB) --db-sb-use-remote-in-db=yes|no OVN_Southbound db listen on target connection table (default: $DB_SB_USE_REMOTE_IN_DB) + --db-inb-sock=SOCKET OVN_IC_Northbound db socket (default: $DB_INB_SOCK) + --db-isb-scok=SOCKET OVN_IC_Southbound db socket (default: $DB_ISB_SOCK) + --db-inb-file=FILE OVN_IC_Northbound db file (default: $DB_INB_FILE) + --db-isb-file=FILE OVN_IC_Southbound db file (default: $DB_ISB_FILE) + --db-inb-schema=FILE OVN_IC_Northbound db file (default: $DB_INB_SCHEMA) + --db-isb-schema=FILE OVN_IC_Southbound db file (default: $DB_ISB_SCHEMA) + --db-inb-addr=ADDR OVN IC Northbound db ptcp address (default: $DB_INB_ADDR) + --db-inb-port=PORT OVN IC Northbound db ptcp port (default: $DB_INB_PORT) + --db-isb-addr=ADDR OVN IC Southbound db ptcp address (default: $DB_ISB_ADDR) + --db-isb-port=PORT OVN IC Southbound db ptcp port (default: $DB_ISB_PORT) + --ovn-inb-logfile=FILE OVN IC Northbound log file (default: $OVN_INB_LOGFILE) + --ovn-isb-logfile=FILE OVN IC Southbound log file (default: $OVN_ISB_LOGFILE) + --db-inb-sync-from-addr=ADDR OVN IC Northbound active db tcp address (default: $DB_INB_SYNC_FROM_ADDR) + --db-inb-sync-from-port=PORT OVN IC Northbound active db tcp port (default: $DB_INB_SYNC_FROM_PORT) + --db-inb-sync-from-proto=PROTO OVN IC Northbound active db transport (default: $DB_INB_SYNC_FROM_PROTO) + --db-inb-create-insecure-remote=yes|no Create ptcp OVN IC Northbound remote (default: $DB_INB_CREATE_INSECURE_REMOTE) + --db-isb-sync-from-addr=ADDR OVN IC Southbound active db tcp address (default: $DB_ISB_SYNC_FROM_ADDR) + --db-isb-sync-from-port=ADDR OVN IC Southbound active db tcp port (default: $DB_ISB_SYNC_FROM_PORT) + --db-isb-sync-from-proto=PROTO OVN IC Southbound active db transport (default: $DB_ISB_SYNC_FROM_PROTO) + --db-isb-create-insecure-remote=yes|no Create ptcp OVN IC Southbound remote (default: $DB_ISB_CREATE_INSECURE_REMOTE) + --db-inb-cluster-local-addr=ADDR OVN_IC_Northbound cluster local address \ + (default: $DB_INB_CLUSTER_LOCAL_ADDR) + --db-inb-cluster-local-port=PORT OVN_IC_Northbound cluster local tcp port \ + (default: $DB_INB_CLUSTER_LOCAL_PORT) + --db-inb-cluster-local-proto=PROTO OVN_IC_Northbound cluster local db transport \ + (default: $DB_INB_CLUSTER_LOCAL_PROTO) + --db-inb-cluster-remote-addr=ADDR OVN_IC_Northbound cluster remote address \ + (default: $DB_INB_CLUSTER_REMOTE_ADDR) + --db-inb-cluster-remote-port=PORT OVN_IC_Northbound cluster remote tcp port \ + (default: $DB_INB_CLUSTER_REMOTE_PORT) + --db-inb-cluster-remote-proto=PROTO OVN_IC_Northbound cluster remote db \ + transport (default: $DB_INB_CLUSTER_REMOTE_PROTO) + --db-isb-cluster-local-addr=ADDR OVN_IC_Southbound cluster local address \ + (default: $DB_ISB_CLUSTER_LOCAL_ADDR) + --db-isb-cluster-local-port=PORT OVN_IC_Southbound cluster local tcp port \ + (default: $DB_ISB_CLUSTER_LOCAL_PORT) + --db-isb-cluster-local-proto=PROTO OVN_IC_Southbound cluster local db transport \ + (default: $DB_ISB_CLUSTER_LOCAL_PROTO) + --db-isb-cluster-remote-addr=ADDR OVN_IC_Southbound cluster remote address \ + (default: $DB_ISB_CLUSTER_REMOTE_ADDR) + --db-isb-cluster-remote-port=PORT OVN_IC_Southbound cluster remote tcp port \ + (default: $DB_ISB_CLUSTER_REMOTE_PORT) + --db-isb-cluster-remote-proto=PROTO OVN_IC_Southbound cluster remote db \ + transport (default: $DB_ISB_CLUSTER_REMOTE_PROTO) + --ovn-ic-inb-db=INB DB address(es) (default: $OVN_IC_INB_DB) + --ovn-ic-isb-db=ISB DB address(es) (default: $OVN_IC_ISB_DB) + --db-inb-use-remote-in-db=yes|no OVN_IC_Northbound db listen on target connection table (default: $DB_INB_USE_REMOTE_IN_DB) + --db-isb-use-remote-in-db=yes|no OVN_IC_Southbound db listen on target connection table (default: $DB_ISB_USE_REMOTE_IN_DB) Default directories with "configure" option and environment variable override: logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR) @@ -781,6 +1075,18 @@ case $command in start_controller_vtep) start_controller_vtep ;; + start_ic) + start_ic + ;; + start_ic_ovsdb) + start_ic_ovsdb + ;; + start_inb_ovsdb) + start_inb_ovsdb + ;; + start_isb_ovsdb) + start_isb_ovsdb + ;; stop_northd) stop_northd ;; @@ -799,6 +1105,18 @@ case $command in stop_controller_vtep) stop_controller_vtep ;; + stop_ic) + stop_ic + ;; + stop_ic_ovsdb) + stop_ic_ovsdb + ;; + stop_inb_ovsdb) + stop_inb_ovsdb + ;; + stop_isb_ovsdb) + stop_isb_ovsdb + ;; restart_northd) restart_northd ;; @@ -817,6 +1135,18 @@ case $command in restart_controller_vtep) restart_controller_vtep ;; + restart_ic) + restart_ic + ;; + restart_ic_ovsdb) + restart_ic_ovsdb + ;; + restart_inb_ovsdb) + restart_inb_ovsdb + ;; + restart_isb_ovsdb) + restart_isb_ovsdb + ;; status_northd) daemon_status ovn-northd || exit 1 ;; @@ -829,6 +1159,12 @@ case $command in status_controller_vtep) daemon_status ovn-controller-vtep || exit 1 ;; + status_ic) + daemon_status ovn-ic || exit 1 + ;; + status_ic_ovsdb) + status_ic_ovsdb + ;; promote_ovnnb) promote_ovnnb ;; @@ -847,12 +1183,36 @@ case $command in status_ovnsb) status_ovnsb ;; + promote_ovninb) + promote_ovninb + ;; + promote_ovnisb) + promote_ovnisb + ;; + demote_ovninb) + demote_ovninb + ;; + demote_ovnisb) + demote_ovnisb + ;; + status_ovninb) + status_ovninb + ;; + status_ovnisb) + status_ovnisb + ;; run_nb_ovsdb) run_nb_ovsdb ;; run_sb_ovsdb) run_sb_ovsdb ;; + run_inb_ovsdb) + run_inb_ovsdb + ;; + run_isb_ovsdb) + run_isb_ovsdb + ;; help) usage ;; diff --git a/utilities/ovn-ctl.8.xml b/utilities/ovn-ctl.8.xml index f70bd6f..44373fd 100644 --- a/utilities/ovn-ctl.8.xml +++ b/utilities/ovn-ctl.8.xml @@ -16,12 +16,15 @@ <dt><code>start_northd</code></dt> <dt><code>start_controller</code></dt> <dt><code>start_controller_vtep</code></dt> + <dt><code>start_ic</code></dt> <dt><code>stop_northd</code></dt> <dt><code>stop_controller</code></dt> <dt><code>stop_controller_vtep</code></dt> + <dt><code>stop_ic</code></dt> <dt><code>restart_northd</code></dt> <dt><code>restart_controller</code></dt> <dt><code>restart_controller_vtep</code></dt> + <dt><code>restart_ic</code></dt> <dt><code>promote_ovnnb</code></dt> <dt><code>promote_ovnsb</code></dt> <dt><code>demote_ovnnb</code></dt> @@ -37,6 +40,21 @@ <dt><code>restart_ovsdb</code></dt> <dt><code>run_nb_ovsdb</code></dt> <dt><code>run_sb_ovsdb</code></dt> + <dt><code>promote_ovninb</code></dt> + <dt><code>promote_ovnisb</code></dt> + <dt><code>demote_ovninb</code></dt> + <dt><code>demote_ovnisb</code></dt> + <dt><code>status_ovninb</code></dt> + <dt><code>status_ovnisb</code></dt> + <dt><code>start_ic_ovsdb</code></dt> + <dt><code>start_inb_ovsdb</code></dt> + <dt><code>start_isb_ovsdb</code></dt> + <dt><code>stop_ic_ovsdb</code></dt> + <dt><code>stop_inb_ovsdb</code></dt> + <dt><code>stop_isb_ovsdb</code></dt> + <dt><code>restart_ic_ovsdb</code></dt> + <dt><code>run_inb_ovsdb</code></dt> + <dt><code>run_isb_ovsdb</code></dt> </dl> <h1>Options</h1> @@ -44,6 +62,8 @@ <p><code>--ovn-northd-wrapper=<var>WRAPPER</var></code></p> <p><code>--ovn-controller-priority=<var>NICE</var></code></p> <p><code>--ovn-controller-wrapper=<var>WRAPPER</var></code></p> + <p><code>--ovn-ic-priority=<var>NICE</var></code></p> + <p><code>--ovn-ic-wrapper=<var>WRAPPER</var></code></p> <p><code>--ovn-user=<var>USER:GROUP</var></code></p> <p><code>--ovs-user=<var>USER:GROUP</var></code></p> <p><code>-h</code> | <code>--help</code></p> @@ -56,6 +76,12 @@ <p><code>--db-sb-schema=<var>FILE</var></code></p> <p><code>--db-sb-create-insecure-remote=<var>yes|no</var></code></p> <p><code>--db-nb-create-insecure-remote=<var>yes|no</var></code></p> + <p><code>--db-inb-file=<var>FILE</var></code></p> + <p><code>--db-isb-file=<var>FILE</var></code></p> + <p><code>--db-inb-schema=<var>FILE</var></code></p> + <p><code>--db-isb-schema=<var>FILE</var></code></p> + <p><code>--db-isb-create-insecure-remote=<var>yes|no</var></code></p> + <p><code>--db-inb-create-insecure-remote=<var>yes|no</var></code></p> <p><code>--ovn-controller-ssl-key=<var>KEY</var></code></p> <p><code>--ovn-controller-ssl-cert=<var>CERT</var></code></p> <p><code>--ovn-controller-ssl-ca-cert=<var>CERT</var></code></p> @@ -68,6 +94,12 @@ <p><code>--db-sb-sync-from-addr=<var>IP ADDRESS</var></code></p> <p><code>--db-sb-sync-from-port=<var>PORT NUMBER</var></code></p> <p><code>--db-sb-sync-from-proto=<var>PROTO</var></code></p> + <p><code>--db-inb-sync-from-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-inb-sync-from-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-inb-sync-from-proto=<var>PROTO</var></code></p> + <p><code>--db-isb-sync-from-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-isb-sync-from-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-isb-sync-from-proto=<var>PROTO</var></code></p> <p> <code> --ovn-northd-nb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: @@ -80,6 +112,18 @@ <var>PORT</var>.. </code> </p> + <p> + <code> + --ovn-ic-inb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: + <var>PORT</var>.. + </code> + </p> + <p> + <code> + --ovn-ic-isb-db=<var>PROTO</var>:<var>IP ADDRESS</var>: + <var>PORT</var>.. + </code> + </p> <h1> Clustering options </h1> <p><code>--db-nb-cluster-local-addr=<var>IP ADDRESS</var></code></p> <p><code>--db-nb-cluster-local-port=<var>PORT NUMBER</var></code></p> @@ -93,6 +137,18 @@ <p><code>--db-sb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> <p><code>--db-sb-cluster-remote-port=<var>PORT NUMBER</var></code></p> <p><code>--db-sb-cluster-remote-proto=<var>PROTO (tcp/ssl)</var></code></p> + <p><code>--db-inb-cluster-local-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-inb-cluster-local-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-inb-cluster-local-proto=<var>PROTO (tcp/ssl)</var></code></p> + <p><code>--db-inb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-inb-cluster-remote-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-inb-cluster-remote-proto=<var>PROTO (tcp/ssl)</var></code></p> + <p><code>--db-isb-cluster-local-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-isb-cluster-local-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-isb-cluster-local-proto=<var>PROTO (tcp/ssl)</var></code></p> + <p><code>--db-isb-cluster-remote-addr=<var>IP ADDRESS</var></code></p> + <p><code>--db-isb-cluster-remote-port=<var>PORT NUMBER</var></code></p> + <p><code>--db-isb-cluster-remote-proto=<var>PROTO (tcp/ssl)</var></code></p> <h1>Configuration files</h1> <p>Following are the optional configuration files. If present, it should be located in the etc dir</p> @@ -119,6 +175,27 @@ </p> <p><code>--ovnnb-db=tcp:x.x.x.x:6641 --ovnsb-db=tcp:x.x.x.x:6642</code></p> + <h2>ovninb-active.conf</h2> + <p> + If present, this file should hold the url to connect to the active + Interconnection Northbound DB server + </p> + <p><code>tcp:x.x.x.x:6645</code></p> + + <h2>ovnisb-active.conf</h2> + <p> + If present, this file should hold the url to connect to the active + Interconnection Southbound DB server + </p> + <p><code>tcp:x.x.x.x:6646</code></p> + + <h2>ovn-ic-db-params.conf</h2> + <p> + If present, this file should hold the database url parameters to be passed + to ovn-ic. + </p> + <p><code>--ovninb-db=tcp:x.x.x.x:6645 --ovnisb-db=tcp:x.x.x.x:6646</code></p> + <h1> Running OVN db servers without detaching </h1> <p><code># ovn-ctl run_nb_ovsdb</code></p> <p> @@ -134,6 +211,20 @@ This command will be useful for starting the OVN sb ovsdb-server in a container. </p> + <p><code># ovn-ctl run_inb_ovsdb</code></p> + <p> + This command runs the OVN IC-NB ovsdb-server without passing the + <code>detach</code> option, making it to block until ovsdb-server exits. + This command will be useful for starting the OVN IC-NB ovsdb-server in a + container. + </p> + <p><code># ovn-ctl run_isb_ovsdb</code></p> + <p> + This command runs the OVN IC-SB ovsdb-server without passing the + <code>detach</code> option, making it to block until ovsdb-server exits. + This command will be useful for starting the OVN IC-SB ovsdb-server in a + container. + </p> <h1>Example Usage</h1> <h2>Run ovn-controller on a host already running OVS</h2>
Add support for managing IC-NB and IC-SB DBs, and ovn-ic daemon. Signed-off-by: Han Zhou <hzhou@ovn.org> --- utilities/ovn-ctl | 362 +++++++++++++++++++++++++++++++++++++++++++++++- utilities/ovn-ctl.8.xml | 91 ++++++++++++ 2 files changed, 452 insertions(+), 1 deletion(-)