From: Gurucharan Shetty Date: Fri, 11 Jul 2014 21:50:50 +0000 (-0700) Subject: debian: Automatically start openvswitch before first invocation of ovs-vsctl. X-Git-Tag: v2.3.1~39 X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=7c2041483f649cdef1d93466ac959aaa20cd9d66 debian: Automatically start openvswitch before first invocation of ovs-vsctl. 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 Acked-by: Ben Pfaff --- diff --git a/debian/ifupdown.sh b/debian/ifupdown.sh index a621100b3..525fa4106 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 44154bd21..b1c2c654c 100644 --- a/debian/openvswitch-switch.README.Debian +++ b/debian/openvswitch-switch.README.Debian @@ -176,3 +176,30 @@ ex 7: 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.