ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu下安装部署openvswitch和一些安装的异常处理(ovs安装)

2021-11-07 18:32:47  阅读:458  来源: 互联网

标签:ovs 执行命令 ovsdb -- openvswitch 安装


最近为了安装ovs,可废了老大劲了,按照网上的教程安装基本都会出现各种各样的报错,最终安装失败。最后还是官方的文档比较好,按照ovs网址上的步骤操作下来,结果还真行了,下面是我的安装步骤,以及参考的链接,希望可以给你带来一些帮助。

OVS安装过程

官网安装指导(ahttps://docs.openvswitch.org/en/latest/intro/install/general/)

参考博客(https://www.cnblogs.com/popsuper1982/p/3800431.html)

参考博客(https://www.cnblogs.com/manmanchanglu/p/11787279.html)

[1]、安装之前,执行命令apt-get install build-essential,apt-get install openssl确保这两个已经被安装,执行命令:sudo apt-get install python,sudo apt-get install python-pip,安装python和pip避免后面执行的时候报错。此外,还需要了解自己系统的内核版本,进而选择匹配的Open vSwitch版本,具体的匹配表格如下,详细参见https://docs.openvswitch.org/en/latest/faq/releases/;http://www.openvswitch.org/download/。

  

[2]、执行命令uname -a查看当前系统的内核版本,如下图我的内核版本为5.4.0,所以接下来我下载2.14.x版本的ovs,使用命令wget http://openvswitch.org/releases/openvswitch-2.14.0.tar.gz。

 

 

 

 

 

 然后执行命令 tar -xzf openvswitch-2.14.0.tar.gz,进行解压,解压完成后,进入openvswitch-2.14.0目录下,cd openvswitch-2.14.0。

 

 

 

 

[3]、接下来,使用命令ls /lib/modules/查看本系统的内核源码编译目录,然后执行命令./configure --with-linux=/lib/modules/5.4.0-51-generic/build。

或者直接执行:./configure

 

 

 [4]、接下来执行make && make install进行安装Open Vswitch,安装过程比较漫长,耐心等待,并且注意各种打印的错误。

[5]、如果在安装的过程中生成了修改了内核模块,那么需要重新编译内核,输入命令make modules_install。

 

 

 

 OVS部署配置

[1]、需要载入模块,载入openvswitch的模块到内核中,输入命令:/sbin/modprobe openvswitch;/sbin/lsmod | grep openvswitch。如图所示,相当于加载入依赖的模块。

 

 

 [2]、启动ovs,首先输入命令:export PATH=$PATH:/usr/local/share/openvswitch/scripts导入环境变量,然后执行命令:ovs-ctl start。执行完成后,如下图所示证明执行成功。

 

 

 

 [3]、启动ovsdb-server服务,首先执行命令:export PATH=$PATH:/usr/local/share/openvswitch/scripts导入环境变量,然后执行命令:ovs-ctl --no-ovs-vswitchd start。执行完成后,如下图所示即代表ovsdb-server服务启动成功。

 

 

 

[4]、启动ovs-vswitchd服务,首先执行命令:export PATH=$PATH:/usr/local/share/openvswitch/scripts导入环境变量,然后执行命令:ovs-ctl --no-ovsdb-server start。执行完成后,如下图所示即代表ovs-vswitchd服务启动成功。

 

 

 

[5]、建立Open vSwitch配置文件和数据库,并根据ovsdb模板创建ovsdb数据库,用于存储虚拟交换机的配置信息。

依次执行命令:mkdir -p /usr/local/etc/openvswitch;ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema。如果如图所示,出现报错Resource temporarily unavailable,此时可以忽略。

 

 

 

[6]、配置ovsdb-server使用上面创建的数据库,监听Unix域套接字,首先执行命令:mkdir -p /usr/local/var/run/openvswitch,建立文件;然后启动ovsdb数据库,数据库默认支持SSL,但是如果在build openvswitch时不允许了SSL支持,则在命令中需省略—private-key,--certificate,--bootstrap-ca-cert等相关命令。执行命令:

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach --log-file。

 

 

 

[7]、执行命令:ps -ef|grep ovsdb-server,查看OVSDB数据库是否启动成功。

 

 

 

[8]、执行命令:ovs-vsctl --no-wait init,初始化数据库。

[9]、执行命令:ovs-vswitchd --pidfile --detach --log-file,启动主OpenvSwitch守护进程,即启动OpenvSwitch daemon。

 

 

 

[10]、执行到此步,ovs的安装部署算是完成了。此时执行命令:ps -ef|grep ovs,查看当前ovs进程。

 

 

 

[11]、最后一步,执行命令:ovs-vsctl show,查看当前ovs的版本信息,如下图正确显示,说明ovs安装部署已经成功,接下来就是ovs的使用了。

 

 

 

 

对于一些其他安装教程的出现异常的处理(按照以上步骤,此处可忽略)

执行命令insmod ./datapath/linux/openvswitch.ko,加载Open vswitch内核模块openvswitch.ko,(DataPath的概念,OpenFlow就是控制和数据转发分离,而控制端,就叫做Controller Path,比如floodlight等;负责转发数据的数据转发端,就叫做DataPath,也就是支持OpenFlow的硬件或者软件交换机Switch)。

 

 

 

如上图,如果加载完成后出现的报错为insmod: ERROR: could not insert module ./datapath/linux/openvswitch.ko: Invalid module format,此时解决方案比较困难,一种方法是进入Linux内核进行内核修改,另一种是换一种Linux版本,可能安装的太新,导致内核与ovs不匹配。

如果加载模块后出现的错误为insmod: ERROR: could not insert module ./datapath/linux/openvswitch.ko:Unknown symbol in module这时可能就是因为openvswitch.ko依赖的模块没有被加载,所以此时,需要先查看需要加载什么依赖的模块,输入命令modinfo ./datapath/linux/openvswitch.ko |grep depends,如下图所示,此时的依赖模块包括nf_conntrack,nf_nat,udp_tunnel,libcrc32c,nf_defrag_ipv6。

 

 

 

所以接下来,对这几个依赖模块进行加载,如图所示。

 

 

 

加载结束后,再次执行命令insmod ./datapath/linux/openvswitch.ko
————————————————
版权声明:本文为CSDN博主「楊木木8023」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40042248/article/details/109862069

标签:ovs,执行命令,ovsdb,--,openvswitch,安装
来源: https://www.cnblogs.com/zywnnblog/p/15521161.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有