一、下載安裝包
在http://www.openvswitch.org/download/中下載想要安裝的版本
筆者下載的是最新的openvswitch-2.12.0.tar.gz
二、安裝
- 解壓、生成Makefile、編譯、安裝
tar zxvf openvswitch-2.12.0.tar.gz
cd openvswitch-2.12.0
./configure
make -j4
sudo make install
以上是正常的編譯安裝流程。
還有一種配置方式,即編譯成內核模塊:
./configure -with-linux=/lib/modules/$(uname -r)/build
- 如果在安裝的過程中生成了修改了內核模塊,那麼重新編譯內核。
sudo make modules_install
- 將openvswitch模塊載入到內核中
sudo modprobe openvswitch
可以通過下面的命令來驗證是否成功
sudo lsmod | grep openvswitch
三、運行
openvswitch有幾個腳本放在/usr/local/share/openvswitch/scripts下,爲了方便使用,可以設置PATH路徑。由於運行需要root權限,可以切換到root,再設置PATH。
export PATH=$PATH:/usr/local/share/openvswitch/scripts
ovs-ctl start
system ID not configured, please use --system-id ... failed!
這裏有一個失敗,可以不用管它。
這樣的方式在下次啓動後,還需要再手動開啓,可以加入服務中自動啓動。
驗證是否開啓:
ps -e | grep ovs
ovs-vsctl show
四、卸載OVS的內核模塊
如果想要卸載,先停止服務:
ovs-ctl stop
查看OVS datapath:
ovs-dpctl show
刪除datapath:
ovs-dpctl del-dp ovs-system
卸載openvswitch內核模塊
rmmod openvswitch
此時查看內核模塊,不再有openvswitch
lsmod | grep openvswitch
五、加入服務自動啓動
- CentOS6:
在/etc/init.d/目錄創建一個ovs文件,內容如下:
#!/bin/bash
# chkconfig: 2345 30 80
# description: Starts, stops ovs
#
# ovs Linux service controller script
cd "/usr/local/share/openvswitch/scripts/ovs-ctl"
case "$1" in
start)
./ovs-ctl start
;;
stop)
./ovs-ctl stop
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
並將之添加運行權限:
chmod 755 ./ovs
然後使用
chkconfig on
設置爲開機啓動。
- CentOS7及以上版本:
在/usr/lib/systemd/system/下創建一個ovs.service文件,內容如下:
[Unit]
Description=Open vSwitch server daemon
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/share/openvswitch/scripts/ovs-ctl start
ExecStop=/usr/local/share/openvswitch/scripts/ovs-ctl stop
[Install]
WantedBy=multi-user.target
並將之添加運行權限:
chmod 777 ./ovs.service
然後使用:
systemctl enable ovs
設置爲開機啓動。
重啓系統後可以看到進程:
參考:
https://www.cnblogs.com/goldsunshine/p/10331606.html
https://www.cnblogs.com/yearsj/p/9648749.html