Cannot find device br-ex fix for openvswitch on openstack
Cannot find device br-ex fix for openvswitch on openstack
During the installation of OpenStack on Debian Wheezy I noticed an unusual Behave. While booting up the networking task Debian complained about: Cannot find device br-ex. In this shortie i will give you an solution for that.
Since the upstart scripts are very susceptible in timing on Debian i tought myself why not start openvswitch before the networking script is loading?
So this is what we do now!
Prerequisites:
- editor: your preferred one
- insserv for enabling new init script
- init script config tool:
update-rc.d
Network interfaces like described in Openstack tutorial:
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
auto eth1
iface eth1 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down
auto br-ex
iface br-ex inet static
address 1.2.3.2
netmask 255.255.255.0
network 1.2.3.0
broadcast 1.2.4.254
gateway 1.2.3.1
dns-nameservers 8.8.8.8
dns-search your.name
First of all we need to smash out the old LSB symlinks:
update-rc.d -f openvswitch-switch remove
make sure that the symlinks are gone by entering:
ls /etc/rc[0-9].d/*openvswitch-switch
if everything is clean do backup the original script:
cp /etc/init.d/openvswitch-switch /etc/init.d/openvswitch-switch.orig
Now here comes the magic:
The original LSB header part of openvswitch-switch looks like this:
### BEGIN INIT INFO # Provides: openvswitch-switch # Required-Start: $network $named $remote_fs $syslog # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch switch ### END INIT INFO
But we want to look it like this:
### BEGIN INIT INFO # Provides: openvswitch-switch # Required-Start: mountkernfs $local_fs urandom # Required-Stop: $local_fs # X-Start-Before: networking # Default-Start: S # Default-Stop: 0 6 # Short-Description: Open vSwitch switch ### END INIT INFO
after you have edited openvswitch-switch and saved the changes you finally have to run update-rc.d again to get the symlinks corrected.
Enable it by running command:
insserv openvswitch-switch
and check if /etc/rcS.d/*openvswitch-switch exists.
You are ready to reboot now and check the results.
Happy fixing!
Thank you very much Jules!
This solve the same issue I was facing on Debian Jessie. The modification proposed to LSB header part of openvswitch-switch works fine, although jessie is using systemd
An additional modification is needed in my case in /etc/network/interfaces:
auto br-ex
iface br-ex inet static
address ...
netmask ...
up ifconfig eth0 up
up ip link set eth0 promisc on
down ip link set eth0 promisc off
down ifconfig eth0 down