libvirt 不会启动虚拟机并显示“错误:‘cgroup.subtree_control’的值‘+cpu’无效:参数无效”

libvirt 不会启动虚拟机并显示“错误:‘cgroup.subtree_control’的值‘+cpu’无效:参数无效”

在我拥有的一台工作站上,libvirt 已停止工作;它将不再启动虚拟机:

$ virsh --connect qemu:///system 'start westerley-pool'
error: Failed to start domain westerley-pool
error: Invalid value '+cpu' for 'cgroup.subtree_control': Invalid argument

该机器使用 cgroupv2 统一层次结构(即应该从 4.9.0 开始支持)。启用的控制器是内存和pid(通过检查cat /sys/fs/cgroup/cgroup.subtree_control),所以cpu不工作也就不足为奇了。但是libvirt cgroups 文档说控制器不是强制性的,如果不可用就不会使用。

我尝试重新启动 libvirtd.service,以防万一修复它。不用找了。

文档还说我可以明确设置要使用的控制器,因此我尝试设置cgroup_controllers = [ "memory" ]/etc/libvirt/qemu.conf以前未设置)。我再次重新启动libvirtd.service;仍然不起作用。

除了重复上述错误消息之外,我在日志中没有看到任何内容。

我不想启用 cpu 控制器,因为我相信它会带来性能成本,而且我不需要它。

操作系统:Debian 测试
libvirt:5.0.0-3,来自 Debian。
内核:4.19.0-5-amd64,还是 Debian。

如何让 libvirt 再次在这台机器上运行?

答案1

(6月30日更新)/etc/systemd/system/libvirtd.service.d/cpu.conf用其内容制作

[Service]
CPUQuota=10000%

在我的环境中一切正常。这是上游开发人员认识并修复的上游错误: https://libvirt.org/git/?p=libvirt.git;a=commit;h=1d49cdcd116186e079db5668893da17f56141652

我向 Debian 提交了一份详细的错误报告: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931243 带有补丁。

松本龙太郎

相关内容