我有一个托管多个虚拟机的 Ubuntu 12.04 服务器。我想使用快照机制备份这些 VM。
这些快照的目的是在外部设备上进行备份。我目前正在尝试在 /var/tmp 中简单地创建备份。
当我打字
sudo virsh snapshot-create-as test-vm --memspec /var/tmp/test-vm-snapshot
Run Code Online (Sandbox Code Playgroud)
我收到消息
错误:内部错误:无法执行 QEMU 命令“事务”:无法打开“/var/lib/libvirt/images/test-vm.img”:权限被拒绝
我试图通过临时授予读/写权限 (chmod og+rw) 来解决这个问题,但随后我收到了相同的消息。
我读到这是由于 AppArmor 造成的,这似乎得到了系统日志的确认。但是,如果我暂时停止 AppArmor,我仍然会收到相同的错误消息,以及 syslog 中的相同条目。
如何创建 VM 到特定文件的内部备份?
S.L*_*rth 11
为了让 AppArmor(暂时)脱离图片,我使用了aa-complain,它告诉 AppArmor 不要在某些进程上强制执行它的策略,但仍然在日志中输入一个条目。这需要sudo apt-get install apparmor-utils.
首先,我曾经sudo aa-status查看哪些进程处于“强制”模式。这些相关进程是 libvirtd 和 VM。然后我将这些设置为“抱怨”模式并制作了快照:
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
Run Code Online (Sandbox Code Playgroud)
这样,在/var/tmp 中创建了一个文件“test-vm-snapshot”。
之后,我曾经sudo aa-enforce将这些进程重新置于“强制”模式。
但是为什么/etc/init.d/apparmor stop没有帮助,而更微妙的帮助,aa-complain我仍然无法理解......
| 归档时间: |
|
| 查看次数: |
5846 次 |
| 最近记录: |