我的情况如下:我运行的是带有 Openvswitch 和 Libvirt/Qemu 的 CentOS 7。我的域配置为使用虚拟端口类型 openvswitch,因此当我启动虚拟机时,它会在 ovs 桥中创建一个端口。没什么复杂的。
我的问题是,如果我重新启动虚拟机管理程序,一切似乎都不会按正确的顺序关闭,并且当机器重新启动时,我会得到陈旧的 OVS 端口。
a7c1e36d-26b5-43d8-a422-452b013c4009
Bridge "ovsbr0"
Port "vnet1"
tag: 46
Interface "vnet1"
error: "could not open network device vnet1 (No such device)"
Port "vnet0"
tag: 41
Interface "vnet0"
error: "could not open network device vnet0 (No such device)"
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Port "bond0"
Interface "bond0"
ovs_version: "2.5.1"
如果我停止 openvswitch 服务,关闭虚拟机,然后再次启动 openvswitch,我可以复制此情况。有其他人见过这种情况吗?如果我在此之后重新启动虚拟机,ovs 端口将被非过时的端口覆盖,但我想修复此处的实际问题。当重新启动期间发生此问题时,Libvirt 也会出现段错误。
我想说这就像修改我的 systemd 文件以确保顺序正确一样简单,但不幸的是 openvswitch 仍然附带 CentOS 的 init 脚本,因此 systemd 文件是自动生成的,我无法用插件或任何东西覆盖“After”参数(至少,它对我来说不起作用)。
任何事情,哪怕是一个新想法,都可以尝试!提前谢谢!