Назад | Перейти на главную страницу

Как (правильно) сделать резервную копию виртуальной машины QEMU / KVM?

В настоящее время я разрабатываю решение для резервного копирования виртуальных машин KVM в качестве дополнительной меры к традиционному резервному копированию.

К сожалению, все существующие на данный момент (август 2013 г.) решения, с которыми я столкнулся, либо:

Мне известно о функциональности QEMU / libvirt по созданию снимков, однако она еще не используется, поскольку:

По указанным выше причинам я сейчас реализую сценарий, который:

  1. Сохраняет состояние виртуальной машины и останавливает его
  2. Устанавливает моментальные снимки устройства, в которых находятся образы дисков и состояние виртуальной машины.
  3. Возобновляет виртуальную машину
  4. Установите снимки из шага 2.
  5. Резервное копирование диска и состояния виртуальной машины (конфигурация для удобства)
  6. Объединяет снимки.

Если я все сделал правильно, это потребует постоянных резервных копий виртуальных машин с простоями всего за секунды (если вообще, поскольку 1-3 - это быстро, возможно, менее чем за секунду). Конечно, при восстановлении ВМ будет путь в прошлом, но, по крайней мере, давая мне возможность упорядоченного выключения / перезагрузки.

Мне что-то не хватает в этом решении? Или это действительно кто-то уже реализовал?

https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit

Это возможно с версиями: QEMU 2.1 (и выше), libvirt-1.2.9 (и выше).

$ virsh domblklist vm1
Target     Source
------------------------------------------------
vda        /export/images/base.img 

$ virsh snapshot-create-as --domain vm1 guest-state1 \
--diskspec vda,file=/export/images/overlay1.qcow2 \
--disk-only --atomic --quiesce

$ rsync -avhW --progress /export/images/base.img \
/export/images/copy.img

$ virsh blockcommit vm1 vda --active --verbose --pivot

Остановка виртуальной машины не сбрасывает текущие операции ввода-вывода, вам следует использовать qemu-ga чтобы остановить ВМ.

Поскольку QEMU представил миграцию блоков, вы можете попробовать использовать его для миграции виртуальной машины в образ резервной копии, сохранив как состояние памяти, так и диск.