Among a great many other things, openvswitch is an alternative to managing your virtual networking stacks for KVM with bridge-utils. It supports VLANs, LACP, QoS, sFlow, and so forth. Listed below are the steps required to get openvswitch running on Debian 7.0 (wheezy).
This article is written with the presumption that you are running a source-installed kernel (3.6.6 with the openvswitch module in this case), and want to use the latest openvswitch from git.
Apply any available updates, get all the build dependencies for openvswitch, and install module-assistant.
apt-get update && apt-get dist-upgrade apt-get install build-essential apt-get build-dep openvswitch apt-get install module-assistant
Prep your environment
bridge-utils has a kernel modules that conflicts with the brcompat module in openvswitch. Lets remove that and at the same time stop libvirt and KVM for a bit.
apt-get remove --purge bridge-utils /etc/init.d/libvirt-bin stop /etc/init.d/qemu-kvm stop
Clone the openvswitch git repo and build debian packages from it.
git clone git://openvswitch.org/openvswitch cd openvswitch dpkg-buildpackage -b
Install the packages you just built.
cd ../ dpkg -i openvswitch-switch_1.9.90-1_amd64.deb openvswitch-common_1.9.90-1_amd64.deb \ openvswitch-brcompat_1.9.90-1_amd64.deb openvswitch-datapath-source_1.9.90-1_all.deb \ openvswitch-controller_1.9.90-1_amd64.deb openvswitch-pki_1.9.90-1_all.deb
Build openvswitch-datapath for your running kernel.
module-assistant auto-install openvswitch-datapath
Configure brcompat to load on startup.
sed -i 's/# BRCOMPAT=no/BRCOMPAT=yes/' /etc/default/openvswitch-switch
Verify your configuration
At this point you should reboot and verify that the proper modules are loaded, the service starts normally, and the status output is correct.
[email protected]:~$ lsmod | grep brcompat brcompat 12982 0 openvswitch 73431 1 brcompat [email protected]:~$ /etc/init.d/openvswitch-switch restart [ ok ] Killing ovs-brcompatd (5439). [ ok ] Killing ovs-vswitchd (5414). [ ok ] Killing ovsdb-server (5363). [ ok ] Starting ovsdb-server. [ ok ] Configuring Open vSwitch system IDs. [ ok ] Starting ovs-vswitchd. [ ok ] Starting ovs-brcompatd. [email protected]:~$ /etc/init.d/openvswitch-switch status ovsdb-server is running with pid 6281 ovs-vswitchd is running with pid 6332 ovs-brcompatd is running with pid 6357
And that’s it! You now have a working openvswitch installation upon which you can do all the usual things you did with bridge-utils, and so much more.