UPDATE: If you need help to run Open vSwitch 2.5.0 LTS have a look at a more recent post
Hi,
this post has been rewritten (reloaded?). I’ve found a little spare time to update this article. A couple months ago I wrote a post about how to install openvswitch 1.9.0 version. It was a tricky installation and I even had to create a little patch, but with the latest stable 1.10 version the installation is a piece of cake. Only 5 minutes!.
Update: I’ve checked that the following instructions allows me to build openvswitch 2.0.0 and openvswitch LTS 1.9.3
I’m showing you the steps after a clean minimal installation of CentOS. If you see # it means that the command must be executed as root, and if you see $ the command must me executed as the ovswitch user that I’ve created.
Note that all this information is in the INSTALL.RHEL file that comes with the tar.gz file, but if you’re too lazy (like me) that’s what I’ve executed.
I’d like to thank Openvswitch creators for such a great code and Nicira Inc for the daemon scripts.
#yum install wget openssl-devel
#yum groupinstall "Development Tools"
#adduser ovswitch
#su ovswitch
$cd
$wget http://openvswitch.org/releases/openvswitch-1.10.0.tar.gz
$tar xvfz openvswitch-1.10.0.tar.gz
$cd openvswitch-1.10.0
$mkdir -p /home/ovswitch/rpmbuild/SOURCES
$cp ../openvswitch-1.10.0.tar.gz /home/ovswitch/rpmbuild/SOURCES/
$cp rhel/openvswitch-kmod.files /home/ovswitch/rpmbuild/SOURCES/
$rpmbuild -bb rhel/openvswitch.spec
$rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
$exit
#yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/kmod-openvswitch-1.10.0-1.el6.x86_64.rpm
#yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-1.10.0-1.x86_64.rpm
Let’s start the daemon!
#/etc/init.d/openvswitch start /usr/share/openvswitch/scripts/ovs-lib: line 49: /var/log/openvswitch/ovs-ctl.log: No such file or directory tee: /var/log/openvswitch/ovs-ctl.log: No such file or directory /etc/openvswitch/conf.db does not exist ... (warning). Creating empty database /etc/openvswitch/conf.db [ OK ] Starting ovsdb-server [ OK ] Configuring Open vSwitch system IDs [ OK ] Inserting openvswitch module [ OK ] Starting ovs-vswitchd [ OK ] Enabling remote OVSDB managers [ OK ] Enabling gre with iptables [ OK ]
CentOS 6.4 kernel comes with a openvswitch kernel module but the kmod-openvswitch installation will deal with it and load the new module. Let’s check what module is loaded:
# modinfo openvswitch filename: /lib/modules/2.6.32-358.el6.x86_64/weak-updates/openvswitch/openvswitch.ko version: 1.10.0 license: GPL description: Open vSwitch switching datapath srcversion: 33CB73C0C5A83F3CD6B7B0F depends: vermagic: 2.6.32-358.6.2.el6.x86_64 SMP mod_unload modversions parm: vlan_tso:Enable TSO for VLAN packets (int)
Great! The installation is quick and clean.
P.S: If you need information about openvswitch installation for 1.9 version let me know (use a comment or contact me) because I’ve retired the old post info and I have a copy.
Hi,
Thank you for the install guide.
I am having problem when following your instruction.
Upon building the rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec, it fails with errors:
error: Installed (but unpackaged) file(s) found:
/etc/depmod.d/openvswitch.conf
RPM build errors:
Installed (but unpackaged) file(s) found:
/etc/depmod.d/openvswitch.conf
Any help will be appreciated.
Thank you.
LikeLike
Hi,
I’m sorry that you’ve a problem with the guide but I really appreciate your comment to improve it.
As I’ve used the git version, maybe something has changed. I’ve downloaded the source code again an when executing make dist the tar.gz generated is
openvswitch-1.10.90.tar.gz. I’ve tried to rpmbuild the openvswitch with that source and I got the same error that you’ve found. It seems that the spec file has been
updated. I don’t want to use the GIT version but I couldn’t compile the stable version. I’ll try again, maybe this time works.
I’m trying to figure out how to solve it, I’ve read here http://comments.gmane.org/gmane.network.openvswitch.devel/19542 that an openvswitch module is already
in CentOS 6.4, maybe my guide is useless after all? but I guess I need the openvswitch utilities and bin files. I’ll test it in my lab.
In the meantime I can send you the spec file that works for me in an email (just reply to this post if you want the file), it builds the rpm but I can guarantee it would work.
Regards,
Miguel
LikeLike
Yes, please do send me the spec file. I appreciate that.
Thanks,
Roni
LikeLike
The installation worked perfect for me. I’m running CentOS 6.4 under VMWare Workstation 9 and experienced no issues.
LikeLike
Thanks a lot for your feedback!
LikeLike
Hi, I have exactly the same problem.
Could you send also to me the spec file?
Tnx in advance.
LikeLike
Hi Vincenzo,
sorry being late, very busy these days. Have you tried to install the 1.9.3 LTS version or the latest stable 2.0.1 version? What’s exactly the problem you’re having?. I’m afraid the spec file is a bit old. Also maybe you can check if my post about CentOS 6.5 can help you in any way…
Cheers!
LikeLike
Hi,
I solved this problem by adding the following 3 lines to the .spec file for the kmod. You can place it after %install and %clean statements.
%files
/etc/*
/lib/*
LikeLike
Than you!!!
LikeLike
Hello,
I have a problem when I run ./boot.sh. This is message:
./boot.sh
configure.ac:15: error: Autoconf version 2.64 or higher is required
configure.ac:15: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
autoreconf: aclocal failed with exit status: 63
I checked autoconf version:
[root@64 openvswitch]# autoconf -V
autoconf (GNU Autoconf) 2.63
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Can you help me?
Thank.
LikeLike
Hi,
I’m sorry but your post was in my wordpress.com categorized as spam. In the post you’ve the steps I followed to get autoconf 2.64:
# Let’s compile latest autoconf
cd /tmp
wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xvfz autoconf-latest.tar.gz
cd autoconf-2.69
If you need more help let me know.
LikeLike
Dear N40Lab or M. Cabrerizo,
Thank You, Thank You, Thank You for this Guide. I am a Sr. Engineer Oracle and I needed to install openvswitch on CentOS 6.4. I had followed your guide (without brcompat) but found that bonded ports on my openv switches were not working properly and also were not listed at all when running “ovs-appctl bond/show” or “ovs-appctl bond/show bondX” where X=0 or X=1. After completing your final section of this post to include BRCOMPAT, my bondX information is showing correctly. For example, here is the code that I use to create a bonded interface between 2 openv switches:
### Code Begin ###
ovs-vsctl add-bond sw2 bond0 sw2p2 sw2p1 trunks=322
ovs-vsctl add-bond sw1 bond1 sw1p2 sw1p1 trunks=322
ovs-vsctl set interface sw1p1 type=patch options:peer=sw2p1
ovs-vsctl set interface sw2p1 type=patch options:peer=sw1p1
ovs-vsctl set interface sw1p2 type=patch options:peer=sw2p2
ovs-vsctl set interface sw2p2 type=patch options:peer=sw1p2
ovs-vsctl set port bond1 bond_mode=active-backup other_config:bond-detect-mode=miimon other_config:bond-miimon-interval=100
ovs-vsctl set port bond0 bond_mode=active-backup other_config:bond-detect-mode=miimon other_config:bond-miimon-interval=100
### Code End ###
When I go to check their status I get the following (correct output now thanks to following you post for brcompat integration).
### Begin Snip ###
root@lw-virbox1:~# ovs-appctl bond/show
—- bond0 —-
bond_mode: active-backup
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: off
slave sw2p1: enabled
may_enable: true
slave sw2p2: enabled
active slave
may_enable: true
—- bond1 —-
bond_mode: active-backup
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: off
slave sw1p1: enabled
active slave
may_enable: true
slave sw1p2: enabled
may_enable: true
root@lw-virbox1:~#
### End Snip ###
Previously, before I had followed your Guide for brcompat inclusion, I got null output for the command:
### Begin Snip ###
root@lw-virbox1:~# ovs-appctl bond/show bond0
no such bond
ovs-appctl: ovs-vswitchd: server returned an error
### End Snip ###
Thanks Again!! Your post is the ONLY one on setting up openvswitch on CentOS 6.4 that I was able to find that actually works perfectly!
LikeLike
First of all I want to thank you for your feedback, I’m glad that the guide has helped you with CentOS 6.4 and openvswitch and it encourages me to write new posts if they are useful. Also thank you for sharing your configuration tips for bonding, it’s great to have your explanations about this topic in this post as it will help others to know that brcompat is needed for bonding.
LikeLike
You have said something about 1.9 🙂
I think it would be great to make article about this version, since it is LTS.
LikeLike
Hi Arthur,
I’ll post again the old information about 1.9 in a new article.
Regards,
Miguel
LikeLike
In version 1.10 brcompat is removed. How to create a bridge in this version and attach it to a bond?
LikeLike
Hi,
sorry being late I’ve been very busy. I haven’t used bonding but I’ll try to check if I can make it work with 1.10 but meanwhile you can read this post where I explain how to use 1.9 version: https://n40lab.wordpress.com/2013/06/05/openvswitch-1-9-centos-6-4/
Regards,
Miguel
LikeLike
Your instructions worked perfectly on a fresh CentOS 6.4 without any errors. About the only thing I can think of is to remind users to create the log file that openvswitch uses but I’m not sure why that step isn’t taken care of in the spec file. Thanks again!
LikeLike
Sir you are a champion.. I had no problems, ovs up and running in less than 10 minutes. A word to those who don’t want to wait on the dev tools, customize your install to include those features.
LikeLike
Dear Miguel,
I have got the following compilation error when attempting to build the user module. My system is CentOS 6.4.
rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
error: line 25: Dependency tokens must begin with alpha-numeric, ‘_’ or ‘/’: BuildRequires: %kernel_module_package_buildreqs
[root@sdn-ctl1 openvswitch-1.10.0]#
BR,
Philip
LikeLike
Sorry for being so late answering you.
What’s the content of your openvswitch-kmod-rhel6.spec? maybe there’s a typo in line number 25.
Regards,
Miguel
LikeLike
Miguel,
Oh, i didn’t change anything. It is shown below:
BuildRequires: %kernel_module_package_buildreqs
Thanks!!!!
Philp
LikeLike
For others fighting with “error: line 25: Dependency tokens must begin with alpha-numeric, ‘_’ or ‘/’: BuildRequires: %kernel_module_package_buildreqs” on RHEL6, installing the redhat-rpm-config package resolves it. I found the answer under “Caveats” in http://downloads.linux.hp.com/SDR/psp/suse/11.2/i386/8.50/hp-tg3-3.99p-9.src.txt :
“3. The rpmbuild will fail if the redhat-rpm-config package is not installed
because it cannot resolve the %kernel_module_package_buildreqs macro. The
error will be similar to the following:
error: line xx: Dependency tokens must begin with alpha-numeric,’_’or’/’: Build
Requires: %kernel_module_package_buildreqs”
LikeLike
Hi,
Thank you for the guide.
I tried to install the openvswitch on Centos 6.4, but when I try “/etc/init.d/openvswitch start” I received the following error:
Inserting openvswitch module FATAL: Module openvswitch not found.
What cause this error? and how can it be solved?
Thank you.
LikeLike
Hi,
sorry I’ve been very busy these days. Have you install the kmod-openvswitch module package? What is the output if you run “lsmod | grep openvswitch” and “modinfo openvswitch”?
Cheers!
LikeLike
Hi,
Thank you for the reply – it work out fine.
I managed to install it !
Cheers
LikeLike
Great! I’m glad you made it, thanks for reading!
LikeLike
Installing Openvswitch 2.1.0 on Centos 6.5 just worked fine for me following these instructions. Thanks!
LikeLike
Oh, great news! Thanks for your feedback I’ll update the post with your info and thanks for reading my blog!
LikeLike
what do i need to install on CentOS 5.5?
LikeLike
Hi! I’ve never tried to do it on CentOS 5, maybe I can download the ISO version of 5.11 but probably the kernel version is too old or hasn’t been backported to support openvswitch main features. If you really need openvswitch on 5.X let me know and I’ll try to prepare a test machine when I’ve some free time.
Cheers
LikeLike
What about CentOS 6.x and OVS 2.5.0?
LikeLike
Hi! Give me five minutes I’m creating a new post.
LikeLike
Ok! I’ve just published a post that may be useful. Please any feedback is welcomed. Thanks for visiting my blog!
LikeLike
Hi,
I’m in the rpmbuild test phase now! 😉 It seems working.
What do you thing is that any problem between CentOS 6.8 (which is running an LXC container Under Ubuntu 16.04 for making rpm builds) and RHEL 6.4?
Thanks for your blog about COS 6.8 and OVS 2.5.0!
LikeLike
Well I guess that a package for CentOS 6.8 would not work with RHEL 6.4 as libraries are older… 😕 I can help you to compile it for RHEL 6.4 if that machine can download packages from a RHN subscription I can chat with you and solve errores… I could even download CentOS 6.4 if you want and try… Tell me how can I help! Cheers
LikeLike