Open vSwitch的安装与运行


在看《Docker 容器与容器云(第2版)》一书时,文章中有介绍到Docker的相关网络知识,其中使用到Open vSwitch,它是一个开源的虚拟交换机,支持VLAN,Qos等,功能相当强大。本文就简单记录一下学习过程:

一、下载安装包

在http://www.openvswitch.org/download/中下载想要安装的版本
在这里插入图片描述
笔者下载的是最新的openvswitch-2.12.0.tar.gz

二、安装

1. 解压、生成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

2. 如果在安装的过程中生成了修改了内核模块,那么重新编译内核。

sudo make modules_install

在这里插入图片描述

3. 将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

五、加入服务自动启动

1. 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

设置为开机启动。

2. 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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值