升级Mininet内置OpenVSwitch(ovs)为2.9.0版本

Posted by chochi on April 22, 2018

查看Linu内核与OVS的匹配版本

image

  • Ubuntu 16.04.1,可以看到我的机子版本是4.8

image

  • Mininet 使用源码安装,使用安装参数为-a,故自带的ovs版本为2.5.4
  • 安装mininet的时候可以制定ovs的版本,但是使用参数 -V 2.9.0的时候,自带的安装脚本没有更新
  • 所以他自动安装ovs 2.9.0的时候会出现错误,因为2.9.0做了一些框架的调整。
  • 出现如下错误:
    • 无法定位软件包: openvswitch-datapath-dkms openvswitch-controller

升级OVS

  • Mininet官方的升级wiki 采用了第二种升级的方式。
  • 然而2.9.0的版本太新了,导致跟着官方走的时候有问题,比如 2.9.0 的版本已经没有openvswitch-controller.deb的安装包了,取而代之的是openvswitch-testcontroller.deb 。
  • 其实安装教程走选择第二种方式,可以编译成各种deb包,直接按 “自己的摸索-3” 安装顺序就ok啦,但是因为我自己把mininet也搞坏了,所以一并卸载了重新安装。

自己的摸索

  1. 安装Mininet + 制定版本的ovs
./util/install.sh -aV 2.9.0
#我安装的时候参数没选好导致mininet先安装了2.5.4的ovs,再安装2.9.0的版本,所以我要卸载。
#其实参数选择为 -n3V 2.9.0 更好。
  1. 首先使用了卸载Mininet给我默认的ovs 2.5.4 。
sudo apt-get remove openvswitch-common openvswitch-datapath-dkms openvswitch-controller openvswitch-pki openvswitch-switch
  1. 使用sudo mn -c,查看Mininet关联ovs的那些路径还没有被删除,找到该路径下有关ovs的所有文件,直接强行删除。 image
sudo mn -c
sudo rm -rf 文件
  1. 按序安装ovs的所有deb包。必须按如下顺序,有依赖。 image
sudo dpkg -i libo*.deb
sudo dpkg -i python-openvswith*.deb
sudo dpkg -i openvswitch*.deb
sudo dpkg -i ovn*.deb
  1. 此时已经安装完成了。查看版本信息

image

sudo mn --version
sudo ovs-vsctl --version
sudo ovs-vsctl show