Centos安装OpenVSwitch历程

工作需要,要在公司的虚拟机Centos系统上安装部署openvswitch,前前后后忙了两天才安装成功,下面记录一下安装过程和发现的问题及最后的解决方法。

操作系统:

[[email protected] RPMS]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 

openvswitch版本:

[[email protected] ovswitch]# ll openvswitch-2.11.1.tar.gz
-rw-r--r--. 1 ovswitch ovswitch 7682693 Oct 10 06:58 openvswitch-2.11.1.tar.gz

一、 错误的安装方法:

根据以往源码安装方式已经上网搜索的安装方式,

1、 先下载安装包:openvswitch-2.11.1.tar.gz;

2、 解压:tar zxvf openvswitch-2.11.1.tar.gz

3、 执行配置脚本:./configure --with-linux=/lib/modules/`uname -r`/build;如果没有配置文件则执行./boot.sh生成;

到这一步报错,发现是因为没有安装内核开发包,于是按照网上方法:

4、 安装内核开发包:yum -y install kernel-devel,安装完成后运行rpm -qa | grep "kernel-devel"发现默认安装的包和系统内核版本不一致;

执行配置文件还是报错,以为是内核安装包版本不一致导致,于是从网上下载了kernel-devel-3.10.0-957.21.3.el7.centos.plus.x86_64.rpm这个包,安装后依然报错:

configure error: linux kernel source in /lib/modules/3.10.0-957.1.3.el7.x86_64/build is not configured.

在这里卡住了很久,不知道解决方法,后来想到去配置文件里面找问题;

5、 进入配置文件:vi configure,搜索错误信息is not configured

有如下脚本:

    if (test ! -e "$KBUILD"/include/linux/version.h &&         test ! -e "$KBUILD"/include/generated/uapi/linux/version.h)||        (test ! -e "$KBUILD"/include/linux/autoconf.h &&         test ! -e "$KBUILD"/include/generated/autoconf.h); then
        as_fn_error $? "Linux kernel source in $KBUILD is not configured" "$LINENO" 5
    fi

想到可能是由于缺少文件导致,遂去目录找相关文件,并把文件按照相关路径拷贝过去;执行配置脚本,配置成功;

6、 编译程序:make;发现有很多错误,基本上都是定义冲突的错误,上网找不到资料,最后根据错误提示,去源码中注释掉一些冲突的定义,再编译还是无法通过;

7、 这边卡住了一段时间,思考是不是系统版本和OpenVSwitch版本不兼容所致,接着就去官网查了一下版本:

发现版本原来的OpenVSwitch1.3版本对内核3.10不支持,随即换成了最新的版本,再编译依然不通过;接着在官方网站http://docs.openvswitch.org上搜索查找,仍然没找到解决方法;

7、 最后无意中搜索相关的冲突代码,找到一些相关信息:

链接:https://blog.csdn.net/sqzhao/article/details/71077143

大概意思就是Centos系统安装openvswitch会出问题,和其他系统不太一致;

最后上网搜索了Centos系统安装OpenVSwitch,发现了很多资料,找了一篇教程安装,最后安装成功;

二、正确的安装方法

1、 安装依赖包:yum -y install openssl-devel wget kernel-devel

2、 安装开发工具:yum groupinstall "Development Tools"

3、 添加用户:adduser ovswitch,切换用户并跳转至用户文件夹:su - ovswitch  //此步骤并不是必须,仅仅为为了有一个用户文件夹好用来执行后面的命令,可以是用当前的非root 用户执行下面相关的命令

4、 下载源码:openvswitch-2.11.1.tar.gz

5、 解压:tar xfz openvswitch-2.11.1.tar.gz

6、 创建编译目录:mkdir -p ~/rpmbuild/SOURCES

7、 从spec文件中删除openvswitch-kmod的依赖包,并创建一个新的spec文件:

sed ‘s/openvswitch-kmod, //g‘ openvswitch-2.11.1/rhel/openvswitch.spec > openvswitch-2.11.1/rhel/openvswitch_no_kmod.spec

8、  开始编译:rpmbuild -bb --without=check ~/openvswitch-2.11.1/rhel/openvswitch_no_kmod.spec

可能出现以下错误:

error: File /home/ovswitch/rpmbuild/SOURCES/openvswitch-2.11.1.tar.gz: No such file or directory

解决办法:cp openvswitch-2.11.1.tar.gz rpmbuild/SOURCES

(rpmbuild是一个工具,需要自己安装)

9、 退出当前用户使用root: exit

10、  安装编译生成的rpm文件:

yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.11.1-1.x86_64.rpm

11、 启动服务:systemctl start openvswitch.service

12、 查看服务状态:systemctl -l status openvswitch.service

可能出现以下错误:

openvswitch.service - LSB: Open vSwitch switch
   Loaded: loaded (/etc/rc.d/init.d/openvswitch)
   Active: activating (start) since 四 2014-12-04 18:35:32 CST; 1min 30s ago
  Control: 13694 (openvswitch)
   CGroup: /system.slice/openvswitch.service
           ├─13694 /bin/sh /etc/rc.d/init.d/openvswitch start
           ├─13696 /bin/sh /usr/share/openvswitch/scripts/ovs-ctl start --system-id=random
           ├─13697 tee -a /var/log/openvswitch/ovs-ctl.log
           ├─13723 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
           ├─13724 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
           └─13725 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor

12月 04 18:35:33 localhost.localdomain openvswitch[13694]: /etc/openvswitch/conf.db does not exist ... (warning).
12月 04 18:35:33 localhost.localdomain openvswitch[13694]: Creating empty database /etc/openvswitch/conf.db ovsdb-tool: I/O error: /etc/openvswitch/conf.db: failed to lock lockfile (Resource temporarily unavailable)
12月 04 18:35:33 localhost.localdomain openvswitch[13694]: [FAILED]
12月 04 18:35:33 localhost.localdomain openvswitch[13694]: Inserting openvswitch module [  OK  ]

解决办法:

yum install policycoreutils-python.x86_64 0:2.2.5-11.el7

mkdir /etc/openvswitch
semanage fcontext -a -t openvswitch_rw_t "/etc/openvswitch(/.*)?"
restorecon -Rv /etc/openvswitch

再次使用:

systemctl stop openvswitch.service

systemctl start openvswitch.service

再次查看服务状态:systemctl -l status openvswitch.service

openvswitch.service - LSB: Open vSwitch switch
   Loaded: loaded (/etc/rc.d/init.d/openvswitch)
   Active: active (running) since 四 2014-12-04 18:38:52 CST; 6s ago
  Process: 13741 ExecStart=/etc/rc.d/init.d/openvswitch start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvswitch.service
           ├─13724 ovs-vswitchd: monitoring pid 13725 (healthy)                                                                                                                                                                                    
           ├─13725 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
           ├─13764 ovsdb-server: monitoring pid 13765 (healthy)                                                                                                                                                                                                                                                                                                                                                        
           └─13765 ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/var/run/openvswitch/db.sock --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --no-chdir --log-file=/var/log/openvswitch/ovsdb-server.log --pidfile=/var/run/openvswitch/ovsdb-server.pid --detach --monitor

12月 04 18:38:51 localhost.localdomain systemd[1]: Starting LSB: Open vSwitch switch...
12月 04 18:38:51 localhost.localdomain openvswitch[13741]: /etc/openvswitch/conf.db does not exist ... (warning).
12月 04 18:38:51 localhost.localdomain openvswitch[13741]: Creating empty database /etc/openvswitch/conf.db [  OK  ]
12月 04 18:38:52 localhost.localdomain openvswitch[13741]: Starting ovsdb-server [  OK  ]
12月 04 18:38:52 localhost.localdomain openvswitch[13741]: Configuring Open vSwitch system IDs [  OK  ]
12月 04 18:38:52 localhost.localdomain openvswitch[13741]: ovs-vswitchd is already running.
12月 04 18:38:52 localhost.localdomain openvswitch[13741]: Enabling remote OVSDB managers [  OK  ]
12月 04 18:38:52 localhost.localdomain systemd[1]: Started LSB: Open vSwitch switch.
12月 04 18:38:52 localhost.localdomain openvswitch[13694]: Starting ovs-vswitchd [  OK  ]
12月 04 18:38:52 localhost.localdomain openvswitch[13694]: Enabling remote OVSDB managers [  OK  ]

正确方法参考:https://www.cnblogs.com/bethal/p/6043899.html

原文地址:https://www.cnblogs.com/slz-coder150315/p/11650019.html

时间: 2024-10-23 05:37:04

Centos安装OpenVSwitch历程的相关文章

Centos7.4安装openvswitch

openvSwitch是一种基于开源Apache 2许可证的多层软件交换机.openvSwitch非常适合在VM环境中用作虚拟交换机.除了将标准控制和可视化接口暴露给虚拟网络层之外,它还旨在支持跨多个物理服务器的分发.Open vSwitch支持多种基于Linux的虚拟化技术,包括Xen / XenServer,KVM和VirtualBox. 其主要组成部分是: ovs-vswitchd,一个实现交换机的守护程序,以及用于基于流的切换的配套Linux内核模块. ovsdb-server是一个轻量

CentOS 安装redis 2.8.7

波折了好几下才装上 1.下载 wget http://download.redis.io/releases/redis-2.8.7.tar.gz 下载后的文件在当前目录里 redis-2.8.7.tar.gz 2.编译安装 tar xf redis-2.8.7.tar.gz cd redis-2.8.7 make make install 如果没有安装gcc的话会提示gcc not found 于是就需要安装一下gcc: yum -y install gcc 因为刚开始把yum的源换成163的了

centos安装gearman

centos安装gearman post by rocdk890 / 2012-8-4 1:11 Saturday linux技术 发表评论 今天公司让我在服务器上安装gearman,服务器环境是lamp,那gearman是什么?其实这个gearman是一个处理分布式过程通信的健壮系统.它提供了一个通用的应用程序框架,主要用来把任务转发给到其他机器或进程.使用Gearman 能让程序实现并行工作.负载均衡和跨语言调用.它能够用于不同类型的应用程序,从高可用的web站点到数据库复制传输. 系统:c

Centos 安装 禅道

Centos 安装  禅道 一.环境准备: 1.服务器:Centos6.7 新系统 2.查看对应的系统版本:uname -a和cat /etc/redhat CentOS release 6.7 (Final) 二.安装: 1.下载对应系统版本的zbox禅道一键安装包,解压至/opt目录下 从window  电脑 到下面的地址下载最新的禅道版本 https://sourceforge.net/projects/zentao/files/9.0.1/ZenTaoPMS.9.0.1.zbox_64.

centos安装net-speeder

以前介绍过VPS上安装锐速对VPS的加速效果,但是这货对 Linux 内核有要求,一般就只能在XEN或者KVM的机子上安装.不过还好锐速有一个免费的代替品:net-speeder,所以这里介绍一下 Debian/Ubuntu 上安装 net-speeder 并对 net-speeder 的夸张带宽占用做一些优化. 软件 Github 地址:net-speeder 安装过程: CentOS安装 wget --no-check-certificate https://gist.github.com/

CentOS安装桌面环境

相信很多人在学习linux的时候,看的教程(书,或视频),很多都是说,在安装系统的时候, 选择最小化安装,装好系统之后,需要什么软件就装什么软件.不去好好找找,是不会知道系统 默认会安装多少软件,软件安装的位置...当然,作为图形界面的桌面环境,服务器上是绝对 不会安装的,因为图像处理是最消耗计算机性能的软件,windows慢,也是因为这个原因了(这 句是发闹骚) 当然,在一个伟大的linux系统工程师,刚接触linux的时候,把linux作为自己日常使用的计算机( 特别是从winddow转过来

centos 安装memcache服务后memcahce本机连接Permission

自己手动在虚拟机下装了下memcache,整个过程真是充满波折,本身用php5.3安装memcache扩展就麻烦很多,无法通过yum直接安装,安装方法详见http://chenwei.me/blog/server/69.html,接下来安装memcache服务,安装成功后,telnet可以成功,不过好像不是立即成功生效,过一会用stats才会有详细显示. 本机用 <?php $mem = new Memcache; $mem->connect(‘192.168.124.129′,11211)

CentOS 安装软件时,错误Transaction check error ... file...conflicts with file from package zzz的解决

CentOS 安装软件时(比如:# yum install subversion),有时候会碰到类似如下的错误: Transaction check error: file /usr/lib64/libsvn_client-1.so.0.0.0 from install of subversion-1.8.11-1.x86_64 conflicts with file from package subversion-libs-1.7.14-7.el7_0.x86_64 file /usr/lib

centos 安装视频播放器mplayer

centos 桌面安装mplayer播放器看视频今天安装上centos 6.3 的 桌面环境来搭配 java开发环境.   完事之后,发现centos6.3 桌面程序应用中的 电视播放器 无法播放AVI 等视频(原来都是命令行) 本身centos 属于服务器系统 对于影音软件的集成 就比较 含蓄来.那我们就使用常用的mplayer 播放器来作为我们的视频播放器吧. 因为我装的系统是 64位的 所以 一下链接 都是64位的 第一: rpm -ivh [url=http://tree.repofor