【问题标题】:restart libvirtd --listen error重启 libvirtd --listen 错误
【发布时间】:2017-11-20 09:25:12
【问题描述】:

libvirt 版本:3.2.0

这是我的 libvirtd.conf 配置。

vim /etc/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

如果我不使用上面的配置,我关闭并重新启动 libvirt 没有任何问题。但是因为我要live migrate,所以需要添加上面的参数,添加后出现问题,并且导致关机重启失败

cat /usr/lib/systemd/system/libvirtd.service 

[root@localhost wl]# cat /usr/lib/systemd/system/libvirtd.service 
# NB we don't use socket activation. When libvirtd starts it will
# spawn any virtual machines registered for autostart. We want this
# to occur on every boot, regardless of whether any client connects
# to a socket. Thus socket activation doesn't have any benefit

[Unit]
Description=Virtualization daemon
Requires=virtlogd.socket
Requires=virtlockd.socket
Before=libvirt-guests.service
After=network.target
After=dbus.service
After=iscsid.service
After=apparmor.service
After=local-fs.target
After=remote-fs.target
Documentation=man:libvirtd(8)
Documentation=http://libvirt.org

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/libvirtd
ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS **-d -l**
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
# At least 1 FD per guest, often 2 (eg qemu monitor + qemu agent).
# eg if we want to support 4096 guests, we'll typically need 8192 FDs
# If changing this, also consider virtlogd.service & virtlockd.service
# limits which are also related to number of guests
LimitNOFILE=8192

[Install]
WantedBy=multi-user.target
Also=virtlockd.socket
Also=virtlogd.socket

-d -l 上面加粗的工作,也支持live migrate plus

首先我使用“systemctl start libvirtd”来启动libvirt,

然后 systemctl 停止 libvirtd,但 libvirt 不'关闭

问题是我使用“systemctl restart libvirtd”命令会报错

想问是什么问题?我该如何解决?

【问题讨论】:

    标签: migrate libvirt systemctl


    【解决方案1】:

    您设置的以下参数:

    listen_tls = 0
    listen_tcp = 1
    auth_tcp = "none"
    

    一个巨大的安全漏洞。与 libvirtd 的连接被视为授予与 root 帐户等效的权限。因此,通过关闭所有身份验证,并使用 TCP 套接字而不是 TLS 套接字,您打开了一个没有加密或身份验证的远程根 shell。这与运行 telnet 服务器并允许不带密码的 root 登录相当。 永远不要这样做。任何告诉您为实时迁移执行此操作的文档都是错误的 - 我一直试图让所有此类文档脱机很久,但人们不断地一次又一次地发布这个虚假的建议。

    以下页面描述了如何为 TLS 设置证书

    https://libvirt.org/remote.html#Remote_certificates

    如果你真的不想使用 TLS,那么最好的后备方法是告诉 libvirtd 使用 SSH 隧道连接到远程主机。

    WRT 到单元文件,您不需要直接修改它。请注意,它引用了一个文件 /etc/sysconfig/libvirtd,只需编辑该 cnofig 文件并将 LIBVIRTD_ARGS 变量设置为包含 --listen

    您说您在运行 systemctl start 时遇到了错误,但不要说错误是什么...在不知道您遇到的真正错误的情况下提供有关问题所在的指导非常困难/不可能。尝试“systemctl status libvirtd.service”以查找有用的错误消息。

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 1970-01-01
      • 2015-05-31
      • 2016-06-28
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多