Toda vez que executo virsh destroy ${KVM}
como root, recebo o seguinte erro ( virsh shutdown ${KVM}
não mostra absolutamente nenhuma reação, nada acontece):
error: Failed to destroy domain ${KVM}
error: Failed to terminate process 11956 with SIGTERM: Permission denied
Quando executo shutdown -h now
dentro do KVM, ele trava para sempre até eu matar o processo qemu-system-x86_64 ( kill ${PID_OF_QEMU_PROCESS}
). Conforme declarado no syslog, apparmor está bloqueando as chamadas (ambos para virsh shutdown
e virsh destroy
):
apparmor="DENIED" operation="ptrace" profile="/usr/sbin/libvirtd" pid=23212
comm="libvirtd" requested_mask="trace" denied_mask="trace" peer="unconfined"
No arquivo de configuração do qemu /etc/libvirt/qemu.conf
, tentei desabilitar o Apparmor ( security_driver = "none"
), mas ainda recebo o mesmo erro.
Alguns detalhes: SO = Debian 9
, Kernel = 4.14.0-0.bpo.2-amd64
, libvirt-version = 3.0.0-4
.
Alguém sabe como resolver o problema sem desabilitar o apparmor?
A configuração
security_driver = "none"
não desativará o apparmor no kernel, apenas algum suporte emlibvirt
siOlhando para o perfil apparmor no atual estável (debian 9/stretch) e aquele atualmente no instável, vejo algumas diferenças.
Acredito que você poderia adicionar a seguinte regra
/etc/apparmor.d/local/usr.sbin.libvirtd
(essa é uma das muitas diferenças entre as duas versões):E então reinicie o serviço apparmor com
service restart apparmor
Outras regras provavelmente seriam necessárias para fazer tudo funcionar.
Uma outra solução seria definir o perfil no modo "reclamar" com
aa-complain /usr/sbin/libvirtd
, o que evitará que o apparmor negue qualquer coisa, mas você manteria os problemas registrados.Você pode usar mais tarde
aa-logprof
para gerar as regras ausentes (depois de analisá-las cuidadosamente ) ou tentar obter os arquivos de perfil apparmor da instável.