[ovs-dev] [PATCH 2/2] debian: Automatically start openvswitch before first invocation of ovs-vsctl.

Gurucharan Shetty shettyg at nicira.com
Mon Jul 14 19:35:43 UTC 2014


In the 'interfaces' file, if an admin adds the openvswitch interface
in 'auto', ifupdown will try to create OVS interfaces even before
openvswitch has started. In a case like that, assume that the admin
knows what he is doing and try to start openvswitch.

The negatives I see are
1. /usr is NFS mounted, in which case expect the admin
to mount it through initramfs.
2. syslog through network may not be accessible.

This is similar to what rhel does with commit 602453000e28ec10
(rhel: Automatically start openvswitch service before bringing an ovs
interface up or down)

Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
---
 debian/ifupdown.sh                      |    4 ++++
 debian/openvswitch-switch.README.Debian |   27 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/debian/ifupdown.sh b/debian/ifupdown.sh
index 77282e0..fe15b71 100755
--- a/debian/ifupdown.sh
+++ b/debian/ifupdown.sh
@@ -29,6 +29,10 @@ if (ovs_vsctl --version) > /dev/null 2>&1; then :; else
     exit 0
 fi
 
+if /etc/init.d/openvswitch-switch status > /dev/null 2>&1; then :; else
+    /etc/init.d/openvswitch-switch start
+fi
+
 if [ "${MODE}" = "start" ]; then
     eval OVS_EXTRA=\"${IF_OVS_EXTRA}\"
 
diff --git a/debian/openvswitch-switch.README.Debian b/debian/openvswitch-switch.README.Debian
index a0138f9..5f8f823 100644
--- a/debian/openvswitch-switch.README.Debian
+++ b/debian/openvswitch-switch.README.Debian
@@ -204,3 +204,30 @@ ex 8: Create and destroy bridges.
 
 ifup --allow=ovs $list_of_bridges
 ifdown --allow=ovs $list_of_bridges
+
+Notes on dependencies:
+---------------------
+
+openvswitch-switch depends on $network, $named $remote_fs and $syslog to start.
+This creates some startup dependency issues.
+
+* Since openvswitch utilities are placed in /usr and /usr can be mounted
+through NFS, openvswitch has to start after it.  But if a user uses openvswitch
+for all his networking needs and hence to mount NFS, there will be a deadlock.
+So, if /usr is mounted through NFS and openvswitch is used for all networking,
+the administrator should figure out a way to mount NFS before starting OVS.
+One way to do this is in initramfs.
+
+* Since openvswitch starts after $network, $remote_fs and $syslog, any startup
+script that depends on openvswitch but starts before it, needs to be changed
+to depend on openvswitch-switch too.
+
+* Ideally, an admin should not add openvswitch bridges in the 'auto'
+section of the 'interfaces' file.  This is because, when ifupdown starts
+working on bridges listed in 'auto', openvswitch has not yet started.
+
+But, if the admin wants to go down this route and adds openvswitch bridges
+in the 'auto' section, openvswitch-switch will forcefully be started when
+ifupdown kicks in. In a case like this, the admin needs to make sure that /usr
+has already been mounted and that a remote $syslog (if used) is ready to
+receive openvswitch logs.
-- 
1.7.9.5




More information about the dev mailing list