Снимок qemu-img на работающей виртуальной машине

Снимок qemu-img на работающей виртуальной машине

Я создал несколько виртуальных машин KVM с использованием образов QCOW2.
Каждая виртуальная машина имеет свой собственный файл qcow2 и не основана на каком-либо файле резервной копии.
Мой вопрос конкретно связан со снимками образов QCow2 на этих работающих виртуальных машинах.
Если я запускаю следующую команду на работающей виртуальной машине:
qemu-img snapshot -c backup /vms/vm10001.qcow2

Навредит ли указанная выше команда работающей файловой системе виртуальных машин?
Я намерен затем преобразовать снимок в образ qcow2, используя следующее:
qemu-img convert -s backup /vms/vm10001.qcow2 /vms/output.qcow2

Я не могу использовать команды «virsh» и поэтому пытаюсь найти способ выполнить свою задачу с помощью qemu-img.

Ответ / Обновление 1:
Хорошо, я проверил это на нескольких моих тестовых ВМ, и вышеизложенное невозможно. Вы не можете запустить qemu-img snapshotна живой ВМ, не приостановив ее.

Единственный способ сделать это на базовых узлах RHEL — использовать:
virsh snapshot-create <dom>

Вышеуказанное сохранит состояние VM и затем внутренне вызовет qemu-img snapshot -c. Однако это может занять некоторое время, что приводит меня ко второму вопросу

Вопрос 2 : virsh snapshot-create <dom> --disk-only --atomicне поддерживается на базовых узлах, которые являются типами RHEL (включая RHEL 7), поскольку qemu-kvm очень старый.
Поэтому единственный вариант — использовать virsh snapshot-create <dom>, который довольно медленный.
Возможно ли сделать следующее:
virsh suspend <dom>
qemu-img snapshot -c backup /vms/<dom>.qcow2
virsh resume <dom>

Вышеуказанная операция, по-видимому, выполняется намного быстрее, чем создание снимка.

Ответ / Обновление 2:

Даже вопрос 2 выше невозможен. После проведения большого количества исследований я пришел к такому же выводу.

Вопрос 3:

Есть ли способ создать снимок для онлайн-виртуальной машины с диском Qcow2 на базовом узле RHEL 6/7, а затем сделать резервную копию снимка для последующего восстановления?

решение1

Это не точный ответ, но он укажет вам путь.

Мы используем Linux KVM уже давно. Раньше qcow2 не поддерживал снимки. В нашем первом хосте KVM мы не хотели использовать снимки LVM, и из-за этого мы не могли делать резервные копии в реальном времени.

Затем мы нашлиИнструменты горячего копирования Linux.

Используя этот инструмент, мы смогли заморозить всю файловую систему хоста и скопировать qcows на внешние диски с помощью специального скрипта резервного копирования.

Наш сценарий резервного копирования был примерно таким:

# Mount Usb
mount /dev/sdb1 /USBDISK
# Mount file system as ro to temp folder
hcp --read-only --mount-point /SNAPSHOT /dev/md1
# Copy files out
cp /SNAPSHOT/*.qcow2 /USBDISK
# Stop Hot Copy
hcp --remove /dev/hcp1
# Remove Usb
umount /USBDISK

решение2

Мой опыт работы с KVM на самом деле весьма ограничен, но поскольку я оказался в очень похожей ситуации, вот что мне помогло:

Первым делом я делаю резервную копию конфигурации виртуальной машины с именем MACHINE:

# virsh dumpxml MACHINE > /path/to/configfile.xml

Затем я приостанавливаю работу виртуальной машины с именем MACHINE, чтобы предотвратить повреждение данных на вновь созданной машине:

# virsh suspend MACHINE

Далее я создаю снимок с именем MACHINE-BAK.qcow2 из виртуальной машины с именем MACHINE, используя команду qemu-img, даже если она обычно используется для преобразования между форматами:

# qemu-img convert -O qcow2 /path/to/MACHINE.qcow2 /path/to/MACHINE-BAK.qcow2

Далее я возобновляю нормальную работу исходной виртуальной машины с именем MACHINE:

# virsh resume MACHINE

Применяя эти простые шаги в скрипте, который запускается через автоматизацию crontab, я могу получать периодическую полную резервную копию работающих виртуальных машин с минимальным временем простоя (в зависимости от размера исходной виртуальной машины, поскольку, как было сказано выше, лучше приостановить работу исходной виртуальной машины во время дублирования)

Связанный контент