第四章:RPM包安装——配置YUM源、安装OVS RPM包、启动OVS服务、设置开机自启、验证服务状态

好,咱们继续往下走。前面几章聊了源码编译和内核模块那些事,说实话,源码编译虽然灵活,但生产环境里我其实不太推荐。为什么呢?你想想看,几十台甚至上百台服务器,每台都去编译一遍,光是等那个make就够你喝一壶的。

所以这一章,咱们聊聊RPM包安装。这是我在企业里最常用的方式,没有之一。说白了,就是利用YUM仓库,把OVS当成一个普通软件来装。省心、省力、还容易维护。

4.1 配置YUM源——先把路铺好

安装RPM包的第一步,是让系统知道去哪找包。我个人的习惯是,优先使用官方源,实在不行再考虑第三方。

OVS官方提供了RHEL/CentOS的YUM仓库。配置起来其实很简单:

# 安装yum-utils(如果还没装的话)
yum install -y yum-utils

# 添加OVS官方仓库
yum install -y https://rpm.ovn.org/centos/7.9/base/x86_64/ovn-release-2.13.0-1.el7.noarch.rpm

# 或者直接用rpm命令导入
rpm -ivh https://rpm.ovn.org/centos/7.9/base/x86_64/ovn-release-2.13.0-1.el7.noarch.rpm

嗯,这里要注意一点。不同版本的CentOS/RHEL,对应的仓库地址是不一样的。我曾经在CentOS 8上用了CentOS 7的仓库,结果依赖包死活装不上。后来查了半天才发现是版本不匹配。

避坑指南: 请务必确认你的操作系统版本,然后选择对应的仓库。CentOS 7用el7,CentOS 8用el8,别搞混了。

配置完成后,可以验证一下仓库是否生效:

yum repolist | grep openvswitch

如果能看到类似这样的输出,说明源已经配好了:

repo id                          repo name
openvswitch-2.13                 Open vSwitch 2.13

4.2 安装OVS RPM包——一行命令搞定

源配好了,安装就简单了。一行命令的事:

yum install -y openvswitch

如果你需要特定版本,也可以指定:

yum install -y openvswitch-2.13.0

安装过程中,YUM会自动处理依赖关系。我记得有一次在最小化安装的系统上装OVS,它自动拉了好几个依赖包进来,包括python、perl之类的。嗯,这些都是OVS运行需要的,不用慌。

小技巧: 如果你在内网环境,没法访问外网,可以先把RPM包下载下来,然后搭建本地YUM仓库。具体做法是:用yumdownloader openvswitch下载所有RPM包,然后放到本地服务器上,用createrepo创建仓库索引。

安装完成后,可以检查一下RPM包是否安装成功:

rpm -qa | grep openvswitch

输出应该类似:

openvswitch-2.13.0-1.el7.x86_64

4.3 启动OVS服务——让系统跑起来

包装好了,接下来就是启动服务。我个人习惯用systemctl来管理:

systemctl start openvswitch

等等,这里有个细节。OVS的服务名在不同版本里可能不一样。有的叫openvswitch,有的叫ovs-vswitchd。我建议你装完后先查一下:

systemctl list-unit-files | grep -i ovs

启动后,可以看看进程状态:

ps -ef | grep ovs

正常情况下,你应该能看到两个主要进程:ovs-vswitchdovsdb-server。前者负责数据转发,后者负责配置管理。缺一不可。

重要: 如果启动失败,先别急着重装。先看看日志:journalctl -u openvswitch -n 50。我遇到过好几次,都是因为内核模块没加载导致的。用modprobe openvswitch加载一下就好了。

4.4 设置开机自启——一劳永逸

服务启动后,还得让它开机自动运行。不然服务器重启了,你还得手动去启,那多麻烦。

systemctl enable openvswitch

这条命令会在/etc/systemd/system/multi-user.target.wants/目录下创建一个符号链接。下次系统启动时,systemd会自动拉起OVS服务。

验证一下是否设置成功:

systemctl is-enabled openvswitch

输出应该是enabled

个人经验: 我建议你在设置完开机自启后,手动重启一次服务器,确认OVS能自动启动。别问我为什么这么建议——有一次我在客户现场部署,明明设置了enable,结果重启后OVS没起来。后来发现是SELinux的锅。所以,重启验证一下,心里踏实。

4.5 验证服务状态——确认一切正常

最后一步,验证服务是否正常运行。我一般会做以下几个检查:

  1. 检查服务状态:
systemctl status openvswitch

输出应该包含active (running)字样。

  1. 检查OVS版本:
ovs-vsctl --version

输出类似:

ovs-vsctl (Open vSwitch) 2.13.0
  1. 检查OVS数据库:
ovs-vsctl show

刚安装完,输出应该是一个空的OVS实例:

a2a3b4c5-d6e7-4f8g-9h0i-1j2k3l4m5n6o
    ovs_version: "2.13.0"
  1. 检查网络接口:
ovs-vsctl list-br

刚安装完,这个命令应该没有任何输出,因为还没有创建任何网桥。

总结一下: 整个RPM安装流程其实就四步:配源、安装、启动、自启。每一步都有对应的验证方法。我建议你把验证步骤也写进你的部署脚本里,这样出了问题能第一时间发现。

好了,这一章就到这里。下一章咱们聊聊如何创建OVS网桥和端口,那才是真正开始用OVS干活的时候。

补充说明: 如果你用的是Ubuntu或Debian系统,对应的包管理工具是apt,安装命令是apt install openvswitch-switch。原理是一样的,只是命令不同。