On Tue, Jul 19, 2016 at 12:21 AM, Amitabha Biswas <azbis...@gmail.com> wrote:
> NB and SB dbs are handled by separate ovsdb-server processes. The
> ovsdb-server processes manage dbs based on the schemas for OVN NorthBound
> and SouthBound. These schemas do not have any Manager Options similar
> to the Open_vSwitch schema. As a result, for e.g., the frequency of
> inactivity probes sent to clients from the ovsdb-server cannot be
> modified.
>
> This patch addresses the above problem by creating independent
>  "conf.db"s for NB and SB. The ovsdb-server process which handles
> the NB will handle a NB_conf.db as well, ditto for the ovsdb-server
> that handles the SB.
>
> A similar result can be obtained by adding a Manager Table to the
> NorthBound and SouthBound DBs as well. In such case there would
> not be a need for a separate "config" database. I'm willing to
> consider this solution as well pending feedback.
>
> Sample Calls for modifying the inactivity probe timeout value:
>
> ovs-appctl -t /usr/local/var/run/openvswitch/ovnnb_db.ctl vlog/set any:any:dbg
> ovs-appctl -t /usr/local/var/run/openvswitch/ovnnb_db.ctl 
> ovsdb-server/list-remotes
>
> manager_ip=`ovs-appctl -t /usr/local/var/run/openvswitch/ovnnb_db.ctl 
> ovsdb-server/list-remotes | grep ptcp | awk -F\: '{print $3}'`
> manager_port=`ovs-appctl -t /usr/local/var/run/openvswitch/ovnnb_db.ctl 
> ovsdb-server/list-remotes | grep ptcp | awk -F\: '{print $2}'`
>
> ovs-vsctl --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock --no-wait 
> set-manager ptcp:$manager_port:$manager_ip
> ovs-vsctl --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock list Manager
> manager_uuid=`ovs-vsctl 
> --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock list Manager | grep 
> _uuid | awk -F\: '{print $2}'`
> manager_uuid=${manager_uuid//[[:blank:]]/}
> ovs-vsctl --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock --no-wait 
> set Manager $manager_uuid inactivity_probe=0
> ovs-vsctl --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock list Manager
>
> ovs-vsctl --db=unix:/usr/local/var/run/openvswitch/ovnnb_db.sock --no-wait 
> set Manager $manager_uuid inactivity_probe=5
>
> Signed-off-by: Amitabha Biswas <abis...@us.ibm.com>

Thanks for pushing this out! This addresses a concern we've seen when
overwhelming the NB DB with Neutron and getting timeouts, and being
able to configure the probe timeout value like this would help us to
fine tune it in a running system.

This version looks ok, but before Acking, I think the broader
community should discuss if this approach is better vs. adding the
"Manager Table" to the NB and SB DBs.

Thanks,
Kyle

> ---
>  ovn/utilities/ovn-ctl       | 21 +++++++++++++++++----
>  ovn/utilities/ovn-ctl.8.xml |  2 ++
>  2 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/ovn/utilities/ovn-ctl b/ovn/utilities/ovn-ctl
> index dad6db6..384d876 100755
> --- a/ovn/utilities/ovn-ctl
> +++ b/ovn/utilities/ovn-ctl
> @@ -49,22 +49,30 @@ start_ovsdb () {
>      # Check and eventually start ovsdb-server for Northbound DB
>      if ! pidfile_is_running $DB_NB_PID; then
>          upgrade_db "$DB_NB_FILE" "$DB_NB_SCHEMA" 1>/dev/null 2>/dev/null
> +        upgrade_db "$DB_NB_CONF" "$DB_CONF_SCHEMA" 1>/dev/null 2>/dev/null
>
>          set ovsdb-server
>
> -        set "$@" --detach $OVN_NB_LOG --log-file=$OVN_NB_LOGFILE 
> --remote=punix:$DB_NB_SOCK --remote=ptcp:$DB_NB_PORT:$DB_NB_ADDR 
> --pidfile=$DB_NB_PID --unixctl=ovnnb_db.ctl
> +        set "$@" --detach $OVN_NB_LOG --log-file=$OVN_NB_LOGFILE \
> +            --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
> +            --remote=punix:$DB_NB_SOCK --remote=ptcp:$DB_NB_PORT:$DB_NB_ADDR 
> \
> +            --pidfile=$DB_NB_PID --unixctl=ovnnb_db.ctl
>
> -        $@ $DB_NB_FILE
> +        $@ $DB_NB_FILE $DB_NB_CONF
>      fi
>
>      # Check and eventually start ovsdb-server for Southbound DB
>      if ! pidfile_is_running $DB_SB_PID; then
>          upgrade_db "$DB_SB_FILE" "$DB_SB_SCHEMA" 1>/dev/null 2>/dev/null
> +        upgrade_db "$DB_SB_CONF" "$DB_CONF_SCHEMA" 1>/dev/null 2>/dev/null
>
>          set ovsdb-server
>
> -        set "$@" --detach $OVN_SB_LOG --log-file=$OVN_SB_LOGFILE 
> --remote=punix:$DB_SB_SOCK --remote=ptcp:$DB_SB_PORT:$DB_SB_ADDR 
> --pidfile=$DB_SB_PID --unixctl=ovnsb_db.ctl
> -        $@ $DB_SB_FILE
> +        set "$@" --detach $OVN_SB_LOG --log-file=$OVN_SB_LOGFILE \
> +            --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
> +            --remote=punix:$DB_SB_SOCK --remote=ptcp:$DB_SB_PORT:$DB_SB_ADDR 
> \
> +            --pidfile=$DB_SB_PID --unixctl=ovnsb_db.ctl
> +        $@ $DB_SB_FILE $DB_SB_CONF
>      fi
>  }
>
> @@ -159,17 +167,20 @@ set_defaults () {
>      DB_NB_SOCK=$rundir/ovnnb_db.sock
>      DB_NB_PID=$rundir/ovnnb_db.pid
>      DB_NB_FILE=$dbdir/ovnnb_db.db
> +    DB_NB_CONF=$dbdir/ovnnb_conf.db
>      DB_NB_ADDR=0.0.0.0
>      DB_NB_PORT=6641
>
>      DB_SB_SOCK=$rundir/ovnsb_db.sock
>      DB_SB_PID=$rundir/ovnsb_db.pid
>      DB_SB_FILE=$dbdir/ovnsb_db.db
> +    DB_SB_CONF=$dbdir/ovnsb_conf.db
>      DB_SB_ADDR=0.0.0.0
>      DB_SB_PORT=6642
>
>      DB_NB_SCHEMA=$datadir/ovn-nb.ovsschema
>      DB_SB_SCHEMA=$datadir/ovn-sb.ovsschema
> +    DB_CONF_SCHEMA=$datadir/vswitch.ovsschema
>
>      DB_SOCK=$rundir/db.sock
>      DB_CONF_FILE=$dbdir/conf.db
> @@ -245,7 +256,9 @@ Options:
>  File location options:
>    --db-sock=SOCKET     JSON-RPC socket name (default: $DB_SOCK)
>    --db-nb-file=FILE    OVN_Northbound db file (default: $DB_NB_FILE)
> +  --db-nb-conf=FILE    NB Open_vSwitch conf file (default: $DB_NB_CONF)
>    --db-sb-file=FILE    OVN_Southbound db file (default: $DB_SB_FILE)
> +  --db-sb-conf=FILE    SB Open_vSwitch conf file (default: $DB_SB_CONF)
>    --db-nb-schema=FILE  OVN_Northbound db file (default: $DB_NB_SCHEMA)
>    --db-sb-schema=FILE  OVN_Southbound db file (default: $DB_SB_SCHEMA)
>    --db-nb-addr=ADDR    OVN Northbound db ptcp address (default: $DB_NB_ADDR)
> diff --git a/ovn/utilities/ovn-ctl.8.xml b/ovn/utilities/ovn-ctl.8.xml
> index 89ad934..2dff60e 100644
> --- a/ovn/utilities/ovn-ctl.8.xml
> +++ b/ovn/utilities/ovn-ctl.8.xml
> @@ -31,7 +31,9 @@
>      <h1>File location options</h1>
>      <p><code>--db-sock==<var>SOCKET</var></code></p>
>      <p><code>--db-nb-file==<var>FILE</var></code></p>
> +    <p><code>--db-nb-conf==<var>FILE</var></code></p>
>      <p><code>--db-sb-file==<var>FILE</var></code></p>
> +    <p><code>--db-sb-conf==<var>FILE</var></code></p>
>      <p><code>--db-nb-schema==<var>FILE</var></code></p>
>      <p><code>--db-sb-schema==<var>FILE</var></code></p>
>
> --
> 2.7.4 (Apple Git-66)
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to