У меня есть сервер Ubuntu 12.04, на котором размещено несколько виртуальных машин. Я хочу сделать резервные копии этих ВМ, используя механизм моментальных снимков.
Цель этих снимков - создать резервную копию на внешнем устройстве. В настоящее время я пытаюсь просто создать резервную копию в /var/tmp.
Когда я набираю
sudo virsh snapshot-create-as test-vm --memspec /var/tmp/test-vm-snapshot
, я получаю сообщение
ошибка: внутренняя ошибка: невозможно выполнить команду QEMU 'транзакция': не удалось открыть '/ var / lib /libvirt/images/test-vm.img ': В доступе отказано
Я попытался решить эту проблему, временно предоставив разрешения на чтение / запись (chmod og + rw), но затем получаю то же сообщение.
Я читал, что это связано с AppArmor, и это, кажется, подтверждается системным журналом. Однако, если я временно остановлю AppArmor, я получу то же сообщение об ошибке и те же записи в системном журнале.
Как создать внутреннюю резервную копию виртуальной машины для определенного файла?
Для получения 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
Таким образом, файл "test-vm-snapshot" был создан в/var/tmp.
Впоследствии, я использовал sudo aa-enforce
для откладывания, эти процессы в "осуществляют" режим.
, Но то, почему /etc/init.d/apparmor stop
не помог, в то время как намного более тонкое aa-complain
сделало, все еще вне меня...