【问题标题】:Mininet OVS-Controller can 't be loaded and runMininet OVS-Controller 无法加载和运行
【发布时间】:2014-03-08 09:12:09
【问题描述】:

当我尝试从主机终端登录 SSH 到我的 mininet VM 时,它会显示 Permission denied error 甚至从 VM 终端Mininet 使用以下命令托管:

sudo mn --topo single,3 --mac --switch ovsk --controller remote`

它显示以下错误:

ubuntu@ubuntu:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
Cannot find required executable ovs-controller.
Please make sure that it is installed and availabe in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin/:/bin)
ubuntu@ubuntu:~$

所以我无法继续使用 SDN 网络! 如何手动修复它以及为什么会发生此错误!

【问题讨论】:

  • 您使用的是哪个版本的 Mininet 和 Open vSwitch?我刚刚将 Open vSwitch 升级到 2.1,我得到了同样的错误。我想修复它应该不会太难。我在github.com/mininet/mininet/wiki/… 上找到了一些说明,但似乎 ovs 更改了 ovs-controller 二进制文件的名称(请参阅发行说明)。
  • 我的 Mininet 是 2.1,是的,我还将 OVS 升级到 2.1,每次我这样做:$ sudo mn *** 添加开关:2014-04-28T23:45:28Z|00001|reconnect|WARN |unix:/usr/local/var/run/openvswitch/db.sock: 连接尝试失败(连接被拒绝) ovs-vsctl: unix:/usr/local/var/run/openvswitch/db.sock: 数据库连接失败(连接被拒绝)ovs-vsctl exited with code 1 *** 使用 ovs-vsctl 连接到 ovs-db 时出错 确保 Open vSwitch 已安装,ovsdb-server 正在运行,并且“ovs-vsctl show”工作正常。您不妨试试“service openvswitch-switch start”。
  • 尝试用遥控器启动 Mininet,sudo mn --controller=remote。我认为这应该可行。
  • ya @csl 与 --controller=remote 配合良好
  • 好,好,那么这个问题已经解决了,我相信! :)

标签: ubuntu networking openvswitch mininet


【解决方案1】:

当我升级到 Open vSwitch 2.1 时,我遇到了完全相同的问题。 在 ovs (NEWS) 的发行说明中,我发现了这一点:

  - ovs-controller has been renamed test-controller.  It is no longer
     packaged or installed by default, because too many users assumed
     incorrectly that ovs-controller was a necessary or desirable part
     of an Open vSwitch deployment.

我在./tests/test-controller下也找到了test-controller(源码分发),所以才试了一下

sudo cp tests/test-controller /usr/bin/ovs-controller

这对我来说很好用!我也在使用 Mininet 2.1,但我必须执行上述操作才能使其正常工作。 这是输出:

$ sudo mn --controller=ovsc
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
*** Starting 1 switches
s1
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
mininet>

有趣的是,他们不鼓励使用test-controller,甚至让 Mininet 似乎依赖它。也许为此目的有更好的可执行文件?

让我知道这是否适合你!

【讨论】:

  • 感谢@csl 的洞察力。我试过这个:gregorygee.wordpress.com/2013/08/20/… 现在想完全删除 OVS 吗?你有什么建议我该怎么做?这样没有任何额外控制器的 sudo mn 可以像以前一样正常工作吗?
  • 如果要删除它,最好的方法是进入源目录并运行make uninstall。但是您必须确保您也停止服务并删除内核模块。见github.com/mininet/mininet/wiki/…
【解决方案2】:

更简洁的安装方式是使用 Ubuntu 软件包升级。这将使 OVS 的未来升级和删除更容易。一个例子是http://gregorygee.wordpress.com/2013/10/24/another-way-to-upgrade-open-vswitch-in-mininet/

如果您从源代码安装 Open vSwitch 并想将其删除,则只需返回源目录并运行“make uninstall”。

顺便说一句,我发现如果您在从源代码安装之前没有在系统上安装 Open vSwitch,则 Open vSwitch 安装将不包含系统启动脚本,因此您必须手动安装它们。最好尝试使用打包脚本安装 Open vSwtich。

【讨论】:

  • 公平点,但这仅解决了安装/卸载部分;不是 ovs 2.1 中丢失(或重命名)二进制文件的问题。
  • @Greg : 使用打包脚本安装 Open vSwtich 是否可用于 ubuntu 12.04 LTS?
  • Ubuntu 12.04 带有 OVS 1.4.3。我的博客文章说如何创建更新的 OVS 包。至于丢失的二进制文件,尚不清楚 Mininet 将在 OVS 控制器上做什么。 OVS 的最新 Ubuntu 14.04 包是 2.0.1,它仍然包含 ovs-controller。因此,一旦发布了不包含 ovs-controller 的 Ubuntu 版本,则必须更新 Mininet。
【解决方案3】:

正如上面csl的指针,你必须单独安装openvswitch控制器。在 ubuntu 中,这对我有用:

sudo apt-get install openvswitch-testcontroller
sudo cp /usr/bin/ovs-testcontroller /usr/bin/ovs-controller

【讨论】:

  • 你可以软链接它:sudo ln -s /usr/bin/ovs-testcontroller /usr/bin/controller
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
相关资源
最近更新 更多