2016年11月4日 星期五

CentOS 7 安裝 Open vSwitch


之前在CentOS 6上安裝Open vSwitch(OVS)一直失敗,這次要在CentOS 7上安裝。



首先要先確定OVS版本跟linux核心版本:

Open vSwitch Linux kernel
1.4.x 2.6.18 to 3.2
1.5.x 2.6.18 to 3.2
1.6.x 2.6.18 to 3.2
1.7.x 2.6.18 to 3.3
1.8.x 2.6.18 to 3.4
1.9.x 2.6.18 to 3.8
1.10.x 2.6.18 to 3.8
1.11.x 2.6.18 to 3.8
2.0.x 2.6.32 to 3.10
2.1.x 2.6.32 to 3.11
2.2.x 2.6.32 to 3.13
2.3.x 2.6.32 to 3.14
2.4.x 2.6.32 to 4.0
2.5.x 2.6.32 to 4.3
2.6.x 3.10 to 4.6

Source


CentOS上要確認上要確認核心版本,指令:
[root@localhost ~]# uname -r
3.10.0-327.36.3.el7.x86_64


然後這是現在我的CentOS 7版本:
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)


不過根據官網,目前LTS(Long Term Support)版本是2.5.1版,所以還是使用2.5.1版。


OVS目前還是需要自己編譯,所以先安裝toolchain。
[root@localhost ~]# yum groupinstall "Development Tools"


還有其他dependency要安裝。
[root@localhost ~]# yum install openssl-devel wget kernel-devel


先來增加一個使用者並切換過去(不是必要的,只是單純方便管理):
[root@localhost ~]# adduser ovs
[root@localhost ~]# su ovs
[ovs@localhost root]$ cd
[ovs@localhost ~]$


下載:
[ovs@localhost ~]$ wget http://openvswitch.org/releases/openvswitch-2.5.1.tar.gz


解壓縮:
[ovs@localhost ~]$ tar xzvf openvswitch-2.5.1.tar.gz


等等要打包成rpm方式,先建個資料夾並且把tar檔複製過去:
[ovs@localhost ~]$ mkdir -p ~/rpmbuild/SOURCES
[ovs@localhost ~]$ cp openvswitch-2.5.1.tar.gz ~/rpmbuild/SOURCES/


修改spec文件:
[ovs@localhost ~]$ sed 's/openvswitch-kmod, //g' openvswitch-2.5.1/rhel/openvswitch.spec > openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec


打包:
[ovs@localhost ~]$ rpmbuild -bb --nocheck ~/openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec


完成後應該在這個目錄下有兩個rpm檔:
[ovs@localhost ~]$ ls rpmbuild/RPMS/x86_64/
openvswitch-2.5.1-1.x86_64.rpm  openvswitch-debuginfo-2.5.1-1.x86_64.rpm


其中openvswitch-2.5.1-1.x86_64.rpm就是我們要的檔案,先退出使用者ovs回到root,再用yum安裝。
[ovs@localhost ~]$ exit
exit
[root@localhost ~]# yum localinstall /home/ovs/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm


先用指令檢查一下有沒有安裝成功:
[root@localhost ~]# ovs-vsctl -V
ovs-vsctl (Open vSwitch) 2.5.1
Compiled Nov  4 2016 14:06:47
DB Schema 7.12.1


最後啟動OVS這個service。
[root@localhost ~]# systemctl start openvswitch.service
[root@localhost ~]# chkconfig openvswitch on


最後最後我只能說,在CentOS 6上安裝毛有夠多,因為還需要編譯kernel module,而且編譯中有一些問題。

如果懶得編譯的話,這裡提供我編譯好的rpm檔,至於環境是什麼上面都有囉。

openvswitch-2.5.1-1.x86_64.rpm

MD5     4e5f2f1754508683c07c55aea40d05fa
SHA-1   51395e1cd277157f3ea14e37f38314e5f981a5f5
SHA-256 282827513acf15caa3cc487cb1d1bac8c46c9d1ea96cc956d3cf9b42477a15f5






參考
How To Install OpenvSwitch On CentOS 7: 'http://solomon.ipv6.club.tw/Course/SDN/howto_install_ovs_on_centos7.html'