Em uma estação de trabalho que tenho, libvirt parou de funcionar; ele não iniciará mais VMs:
$ virsh --connect qemu:///system 'start westerley-pool'
error: Failed to start domain westerley-pool
error: Invalid value '+cpu' for 'cgroup.subtree_control': Invalid argument
Esta máquina está usando a hierarquia unificada cgroupv2 (que deveria ser suportada a partir de 4.9.0 ). Os controladores habilitados são memória e pids (verificados via cat /sys/fs/cgroup/cgroup.subtree_control
), portanto, não é surpreendente que a CPU não funcione. Mas a documentação do libvirt cgroups diz que o controlador não é obrigatório, ele simplesmente não será usado se não estiver disponível.
Eu tentei reiniciar libvirtd.service, apenas no caso de consertá-lo. Nenhuma mudança.
A documentação também diz que posso definir explicitamente quais controladores usar, então tentei configurar cgroup_controllers = [ "memory" ]
( /etc/libvirt/qemu.conf
não foi definido anteriormente). Novamente reiniciei o libvirtd.service; ainda não funciona.
Não vi nada nos logs além de uma repetição da mensagem de erro acima.
Prefiro não habilitar o controlador de cpu, pois acredito que tem um custo de desempenho e não preciso dele.
SO: Debian testando
libvirt: 5.0.0-3, do Debian.
kernel: 4.19.0-5-amd64, novamente Debian.
Como posso fazer o libvirt funcionar nesta máquina novamente?
(Atualizado em 30 de junho) Faça
/etc/systemd/system/libvirtd.service.d/cpu.conf
com seu conteúdoe tudo funciona bem no meu ambiente. Este é um bug upstream reconhecido e corrigido pelos desenvolvedores upstream: https://libvirt.org/git/?p=libvirt.git;a=commit;h=1d49cdcd116186e079db5668893da17f56141652
Enviei um relatório de bug detalhado para o Debian como https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931243 com um patch.
Ryutaroh Matsumoto