Q: Невозможно создать "живой" снимок запуска KVM с использованием virsh

Меня любезно направили сюда, Serverfault из Stackoverflow, чтобы задать свой вопрос.

Я выполняю следующую команду на гипервизоре RHEL7, чтобы создать живую резервную копию (образ диска) работающего kvm, на котором запущена производственная служба докеров в kvm. Мне нужен живой снимок.

Многие документы I прочитал, приведите меня к этой команде, чтобы получить оперативный снимок работающего KVM:

# virsh snapshot-create-as \
    --domain undercloud-vm undercloud-vm-snapshot \
    --diskspec vda,file=/backup/images/undercloud-vm.qcow2 \
    --quiesce \
    --disk-only \
    --atomic    

ошибка: внутренняя ошибка: невозможно выполнить команду агента QEMU m выполнив следующую команду на гипервизоре RHEL7 для создания живой резервной копии (образа диска) работающего kvm, ...

Меня любезно направили сюда, Serverfault из Stackoverflow, чтобы задать свой вопрос.

Я выполняю следующую команду на гипервизоре RHEL7, чтобы создать живую резервную копию (образ диска) работающего kvm, на котором запущена производственная служба докеров в kvm. Мне нужен живой снимок.

Многие документы I прочитал, приведите меня к этой команде, чтобы получить оперативный снимок работающего KVM:

# virsh snapshot-create-as \
    --domain undercloud-vm undercloud-vm-snapshot \
    --diskspec vda,file=/backup/images/undercloud-vm.qcow2 \
    --quiesce \
    --disk-only \
    --atomic    

ошибка: внутренняя ошибка: невозможно выполнить команду агента QEMU m выполнив следующую команду на гипервизоре RHEL7 для создания живой резервной копии (образа диска) работающего kvm, ...

Меня любезно направили сюда, Serverfault из Stackoverflow, чтобы задать свой вопрос.

Я выполняю следующую команду на гипервизоре RHEL7, чтобы создать живую резервную копию (образ диска) работающего kvm, на котором запущена производственная служба докеров в kvm. Мне нужен живой снимок.

Многие документы I прочитали, привели меня к этой команде, чтобы получить оперативный снимок работающего KVM:

# virsh snapshot-create-as \
    --domain undercloud-vm undercloud-vm-snapshot \
    --diskspec vda,file=/backup/images/undercloud-vm.qcow2 \
    --quiesce \
    --disk-only \
    --atomic    

ошибка: внутренняя ошибка: невозможно выполнить команду агента QEMU 'guest-fsfreeze-freeze': не удалось открыть / var / lib / docker / overlay2: Permission denied

Не желая вмешиваться в права доступа к каталогу / var / lib / docker / overlay2 KVM, я решил задать этот вопрос здесь. И если кто-то сталкивался с этой проблемой при попытке сделать живой снимок KVM, который, как правило, запускает докер внутри. Главное здесь то, что KVM является производственным, и его нельзя просто приостановить или заморозить для создания моментального снимка, он должен продолжать работать и обрабатывать данные.

Мы будем очень признательны за любые указатели, которые позволят мне получить живую резервную копию.

ИНФОРМАЦИЯ ............

В KVM: (выполняется: / usr / libexec / qemu-kvm ...)

  • ОС: Red Hat Enterprise Linux Server версии 7.5 (Maipo)
  • Канал: org.qemu.guest_agent.0 добавлен как виртуальный H / W
  • YUM: yum install qemu-guest-agent
  • S / W: Docker версия 1.13.1, сборка 6e3bb8e /1.13.1

Гипервизор:

  • HW: PowerEdge FC630, Dell FX2s 36 процессоров, 128 ГБ ОЗУ
  • ОС: Red Hat Enterprise Linux Server, выпуск 7.6 (Maipo)
  • ПО: qemu-img-rhev = 10: 2.10.0-21.el7_5.4
  • qemu-kvm - (common-) rhev = 10: 2.10.0-21.el7_5.4
2
задан 23 November 2018 в 20:56
1 ответ

Я только что запустил в ту же проблему. Это проблема selinux: selinux (на гостевой системе) не позволяет гостевому агенту QEMU приостанавливать работу целевой файловой системы. Краткое описание проблемы можно увидеть следующим образом:

# ausearch -c qemu-ga --raw | audit2allow


#============= virt_qemu_ga_t ==============

allow virt_qemu_ga_t container_var_lib_t:dir { ioctl open read search };

allow virt_qemu_ga_t proc_net_t:file read;

Вы можете сгенерировать соответствующий локальный модуль безопасности, который позволяет qemu-ga работать правильно следующим образом:

# ausearch -c qemu-ga --raw | audit2allow -M local
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i local.pp
# semodule -i local.pp

После внесения этого изменения мы можем использовать - параметр quiesce при создании снимков.


Обновление: после проверки это решение действительно отображается в сообщении об ошибке, включенном в отчет об ошибке:

16 января 10:59:49 localhost python: SELinux is предотвращение / usr / bin / qemu-ga доступа к поиску в каталоге /var/lib/docker.#012#012***** Плагин catchall (100. уверенность)предлагает ************************* # 012 # 012 Если вы считаете, что qemu-ga должен иметь доступ для поиска в каталоге докеров по умолчанию. # 012Затем вы должны сообщить об этом как об ошибке. # 012Вы можете сгенерировать локальный модуль политики, чтобы разрешить этот доступ. # 012Do # 012разрешите этот доступ сейчас, выполнив: # 012 # ausearch -c 'qemu-ga' --raw | audit2allow -M my-qemuga # 012 # semodule -i my-qemuga.pp # 012

Если вы посмотрите на конец ошибки, там написано L

You can generate a local policy module to allow this access.
allow this access for now by executing:
# ausearch -c 'qemu-ga' --raw | audit2allow -M my-qemuga
# semodule -i my-qemuga.pp

... это именно то, что я написал здесь.

1
ответ дан 3 December 2019 в 12:31

Теги

Похожие вопросы