0

微栈被设置为具有 2 个计算节点的集群。

版本:微栈 ussuri 222 最新/beta 规范✓ devmode

但是 libvirtd 默认只附带套接字。

更改配置文件:

/var/snap/microstack/common/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
LIBVIRTD_ARGS="--listen"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/snap/microstack/common/run/libvirt"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"

并重新启动服务没有帮助。在这个特定的 snapd 环境中,如何启用 TCP 侦听以实现远程连接?

错误信息:

virsh -c qemu+tcp://node1/system list
error: failed to connect to the hypervisor
error: unable to connect to server at 'node1:16509': Connection refused
4

1 回答 1

0

我遇到了同样的问题并最终找到了它。首先,libvirt 最近发生了变化,导致它忽略了 libvirtd.conf参考中的端口/监听参数。经过一番挖掘后,我注意到 .socket 文件中没有必要的 .socket 文件/etc/systemd/system/。要解决此问题,请复制以下文件:

/snap/microstack/222/usr/lib/systemd/system/libvirtd-tcp.socket
/snap/microstack/222/usr/lib/systemd/system/libvirtd.socket

/etc/systemd/system/. 接下来,您需要进行一些小的编辑。在 libvirtd.socket 和 libvirtd-tcp.socket 中,您将更改两行:

#Before=libvirtd.service
Before=snap.microstack.libvirtd.service

#Service=libvirtd.service
Service=snap.microstack.libvirtd.service

在 libvirtd-tcp 中

删除或注释SocketGroup=libvirt from libvirtd.socket 下您将运行的行systemctl daemon-reloadsystemctl enable libvirtd-tcp.socket最后systemctl enable libvirtd.socket。一旦在任何和所有微堆栈计算/控制器节点上完成此操作,就会重新启动它们,您应该能够在主机之间实时迁移实例。

于 2021-04-22T23:21:32.390 回答