From patchwork Sat Jan 14 09:28:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladislav Odintsov X-Patchwork-Id: 1726562 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=140.211.166.137; helo=smtp4.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=hd5V9ahE; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (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 4NvCdS2NB9z23ft for ; Sat, 14 Jan 2023 20:28:28 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 67A1A41860; Sat, 14 Jan 2023 09:28:24 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 67A1A41860 Authentication-Results: smtp4.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=hd5V9ahE 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 P2hzpd9fSIOw; Sat, 14 Jan 2023 09:28:22 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id 6B2F7407D7; Sat, 14 Jan 2023 09:28:21 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6B2F7407D7 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 6CBA7C0083; Sat, 14 Jan 2023 09:28:19 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 67744C0033 for ; Sat, 14 Jan 2023 09:28:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 59EBC400BE for ; Sat, 14 Jan 2023 09:28:17 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 59EBC400BE 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 0M-zh6Q5dvRv for ; Sat, 14 Jan 2023 09:28:16 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org ADBD14090B Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by smtp4.osuosl.org (Postfix) with ESMTPS id ADBD14090B for ; Sat, 14 Jan 2023 09:28:15 +0000 (UTC) Received: by mail-lf1-x12c.google.com with SMTP id g13so36343350lfv.7 for ; Sat, 14 Jan 2023 01:28:15 -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=lC4csoMgcTbk8639pNF8petz9OP6SkSUSkbYwreLLxM=; b=hd5V9ahE8KwMGbvShIw3ZaYdFv/baQXXL5O5Nc99zi9dnziHpcFF3nqPNE4OQikRLk MWVVRmCVntitFlwEBZP1mVkN/MWH1S2C0xadhAgHVN2vowLQQMtDX/h4tvJ4wQNFnQcX suuECzj6wDZ6LmTWh85DNofnSOJDwQs0Ty822GnUOwKVVA8+SpUo6SnxgPLViKYM4I7U D1/f6eWuJ8p9UeobydUpQRBeCfiyFyr02u4c/2JawCiFdnrsBgv1CYL+zKNrdPg/b/Ti yZpt1nRzLMX6fN638PKWnrOC9Q0Wd/FzTRTNOBEFoDwkNHmexvj9jQ2GlaBT2DZU+OkO W08g== 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=lC4csoMgcTbk8639pNF8petz9OP6SkSUSkbYwreLLxM=; b=ow9vWdF8pbT/clC6NsQg8nBTBMeMKyxrn+1eVrdsGWrKjCUaXgUyUB8hH3tvPT21OY 7GoqgC1tH7tnQZv6L1ojbAGwjDksg1rdCDSY4yhFZ6+wk3YvHHOJWYoaR8utfhpOXMv3 wtW7ESbyW3pz95gAXE+ukVyVDmGTcfOIUUuOPPcklsllNWneWZJEcg3iYRzgUZiaQ7hZ QwR6xbTqMlFoMEXW/8xUU2Qr0GPxwXaX7yK4jbwAE+U0P+pRhKrsYabbkD2xZy98cQgQ fMvGMG4VyPaPZkY6jXwH5XDGLXNck6DH28V0IvN4hO+E2m/1dMUKCuithyr7JP4IJN+R 1+FQ== X-Gm-Message-State: AFqh2krMQtyUwzbdD36LK1r4kvwTZJTg6PHJ8mDAyjNxdgS+VvFMUlN+ mGOfIqQQB83FlVx+kA2iuSzRkZ+rRjPEEw== X-Google-Smtp-Source: AMrXdXt4NLRK0PT0qFQHp8qT5XOA0ZEScz3IQy+tORohlpoBiVat05xSK8Kjqwqh5sy59w7Fb4ooFA== X-Received: by 2002:a19:3812:0:b0:4cc:7a61:dad5 with SMTP id f18-20020a193812000000b004cc7a61dad5mr895141lfa.44.1673688493043; Sat, 14 Jan 2023 01:28:13 -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 q22-20020a056512211600b0049462af8614sm4271250lfr.145.2023.01.14.01.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jan 2023 01:28:12 -0800 (PST) From: Vladislav Odintsov To: dev@openvswitch.org Date: Sat, 14 Jan 2023 12:28:05 +0300 Message-Id: <20230114092808.3538014-2-odivlad@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230114092808.3538014-1-odivlad@gmail.com> References: <20230114092808.3538014-1-odivlad@gmail.com> MIME-Version: 1.0 Cc: Vladislav Odintsov Subject: [ovs-dev] [PATCH ovn v2 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 Reviewed-by: Ales Musil --- 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 ;;