virsh O snapshot-create-as fornece “impossível executar o comando 'transação' do QEMU”

4

Eu tenho um servidor Ubuntu 12.04 que hospeda várias máquinas virtuais. Eu quero fazer backups dessas VMs usando o mecanismo de instantâneo.
O objetivo desses snapshots é ter um backup em um dispositivo externo. No momento, estou tentando simplesmente criar o backup em / var / tmp.

Quando eu digito

sudo virsh snapshot-create-as test-vm --memspec /var/tmp/test-vm-snapshot

Eu recebo a mensagem

  

erro: erro interno: incapaz de executar o comando QEMU 'transação': Não foi possível abrir '/var/lib/libvirt/images/test-vm.img': Permissão negada

Tentei resolver isso dando temporariamente permissões de leitura / gravação (chmod og + rw), mas recebi a mesma mensagem.

Eu li que isso é devido ao AppArmor, e isso parece ser confirmado pelo syslog. No entanto, se eu parar temporariamente o AppArmor, ainda recebo a mesma mensagem de erro e as mesmas entradas no syslog.

Como posso criar um backup interno de uma VM para um arquivo específico?

    
por S.L. Barth 01.07.2014 / 14:01

1 resposta

8

Para tirar o AppArmor (temporariamente) da foto, usei aa-complain , que diz ao AppArmor para não impor sua política em alguns processos, mas ainda faz uma entrada no log. Isso exigiu sudo apt-get install apparmor-utils .

Primeiro, usei sudo aa-status para ver quais processos estavam no modo "imposto". Esses processos relevantes foram libvirtd e a VM. Então eu os configurei para o modo "reclamar" e fiz o instantâneo:

sudo aa-complain /usr/sbin/libvirtd
sudo aa-complain /etc/apparmor.d/libvirt/libvirt-20683be9-691f-42f2-9fd7-7f44ab423c1e
sudo virsh snapshot-create-as test-vm --memspec /var/tmp/test-vm-snapshot

Desta forma, um arquivo "test-vm-snapshot" foi criado em / var / tmp.

Depois, usei sudo aa-enforce para colocar esses processos de volta no modo "enforce".

Mas por que /etc/init.d/apparmor stop não ajudou, enquanto o muito mais sutil aa-complain , ainda está além de mim ...

    
por S.L. Barth 03.07.2014 / 18:19

Tags