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

时间:2024-04-08 09:28:37

最近为了安装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/

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

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

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

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

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

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

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

         或者直接执行:./configure

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

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

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

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

         OVS部署配置

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

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

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

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

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

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

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

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

         [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,此时可以忽略。

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

         [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。

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

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

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

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

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

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

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

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

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

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

 

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

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

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

         如上图,如果加载完成后出现的报错为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。

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

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

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

         加载结束后,再次执行命令insmod ./datapath/linux/openvswitch.ko