From patchwork Thu Jan 5 23:33:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladislav Odintsov X-Patchwork-Id: 1722202 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=SBuGau8V; dkim-atps=neutral Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Np37N2mVGz23fF for ; Fri, 6 Jan 2023 10:48:00 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id AB0C3612B3; Thu, 5 Jan 2023 23:47:58 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org AB0C3612B3 Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=SBuGau8V X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jLMtn39-11xT; Thu, 5 Jan 2023 23:47:57 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 5C0346129A; Thu, 5 Jan 2023 23:47:56 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 5C0346129A Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 15D52C0084; Thu, 5 Jan 2023 23:47:56 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 731F1C0032 for ; Thu, 5 Jan 2023 23:47:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 435D841B36 for ; Thu, 5 Jan 2023 23:47:55 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 435D841B36 Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=SBuGau8V X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tR0tDO-3UfHT for ; Thu, 5 Jan 2023 23:47:54 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org C09E641A6F Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by smtp4.osuosl.org (Postfix) with ESMTPS id C09E641A6F for ; Thu, 5 Jan 2023 23:47:53 +0000 (UTC) Received: by mail-lf1-x135.google.com with SMTP id m6so46861673lfj.11 for ; Thu, 05 Jan 2023 15:47:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Fd4IG0rM+JzGCJGe+1/1xqCgADtDKGyBGprDsMZUHG4=; b=SBuGau8VSVNgk72fPdTcrI98m0s77/Bz9M9zmvcI7DXXiuSgnaAXIWCAgVF0hgVSAy /nOcZDl9P8B9bvw+ISkgWXYliKQPZHQPwGmK6DwL/7S5gePrUwPH8quSzw7sEwZn5tH5 CUOtzpZ6KfnECfTRcCeCj/79MDWxbzigB8Q8Wa96TL7ocvMjs26sKQbKbyIbOdi5Q+Ly S48yPBEX/lR9azZlaS6E53CnroGQ3azYuIweqKI9i4A8m3J+LYZEPU4sXFztlgbh+Y/Y iSyZzNBmmuu1KyGu1U1Q0kDzIdgURNgZCqgYtI23Ar6LhSMC2NeAZX6gXWF/2w3ORZ/D hdkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fd4IG0rM+JzGCJGe+1/1xqCgADtDKGyBGprDsMZUHG4=; b=VRWg/FgojThsrf4LNI0kEvebrB9OYvfzW7JHqP2dG3inMWsEgZ3xq5jhg100ld+UQn 2XD2HUsYvUUGaBuKEVyEVbm6GEKpnT+FtPjTyuaxINXu+ida1gM/5LTYuBBn7j4xQzyo 6XS2NBbEMHb77tUqwcpI5lAtrTvX2mLSjz6SLiKyPGRtezFDgnQFfLLWgnS4D8hs4FWm MHLfa7k2KLJYH08kKWVk98OgjpDZ2dWRLRo96g7xNl7xLgOxjINoesY3VbIX0anUKWFm ZSkp63WZWT75nC6rOwOhyvaJOO6Um9fgUrToPOcqeFAqLhLvQEznZPyiLhQAyKXmrk/4 PodA== X-Gm-Message-State: AFqh2krk69crOyDsli+vlJsBzXxB1h23J/iGY2r2RabXtoJ7bPYk79zz WGWa+/xwCu+U+WMymiCrbPyWARtopDvcOg== X-Google-Smtp-Source: AMrXdXuK0AXMsX1KBr+wwHXmxQeYu0UoXHsdzeyMnbvwGi5R40bKPLCRAb8SRadvUA7oVcjd15eu4w== X-Received: by 2002:a05:6512:3a91:b0:4b5:799b:6c8b with SMTP id q17-20020a0565123a9100b004b5799b6c8bmr15870159lfu.56.1672962471142; Thu, 05 Jan 2023 15:47:51 -0800 (PST) Received: from ip-10-70-112-12.vpc-1e810be1.internal (c2-178-216-98-9.elastic.cloud.croc.ru. [178.216.98.9]) by smtp.gmail.com with ESMTPSA id bq8-20020a056512150800b00492e5d31201sm5589792lfb.7.2023.01.05.15.47.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 15:47:50 -0800 (PST) From: Vladislav Odintsov To: dev@openvswitch.org Date: Fri, 6 Jan 2023 02:33:41 +0300 Message-Id: <20230105233344.3271729-2-odivlad@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230105233344.3271729-1-odivlad@gmail.com> References: <20230105233344.3271729-1-odivlad@gmail.com> MIME-Version: 1.0 Cc: Vladislav Odintsov Subject: [ovs-dev] [PATCH ovn 1/4] rhel, ovn-ctl: add support to run OVN SB relay X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" 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 --- NEWS | 1 + utilities/ovn-ctl | 56 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 27caf78d9..ade4b6da7 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,6 @@ Post v22.12.0 ------------- + - 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 ;;