解决ovs-ofctl dump-flow报错:“is not a bridge or a socket”

1.官方对于此问题的解释:

解决ovs-ofctl dump-flow报错:“is not a bridge or a socket”_第1张图片简单来说,就是ovs数据库里保存的和ovs-vsctl show里的不一致。这样使用ovs-ofctl dump-flows想查看某个网桥的流表时,库里找不到,自然就会报错。

2.排查过程和问题解决

按照官方的建议,我查看了/var/log/openvswitch/ovs-vswitchd.log,但是里面没有异常。

官方文档又说,可能是ovs-vswtichd服务没有启动,导致ovs-vsctl命令挂起。我使用systemctl status ovs-vswitchd查看,服务也处于active状态,一切正常。

最后,只好使用重启大法,但是在实验的过程中,使用systemctl restart openvswitch是无效的。

需要这样重启(如果运行的时候,报pid已经存在,则先进行kill再运行如下命令):

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
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach

你可能感兴趣的:(虚拟化技术)