Я создал несколько виртуальных машин 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, я могу получать периодическую полную резервную копию работающих виртуальных машин с минимальным временем простоя (в зависимости от размера исходной виртуальной машины, поскольку, как было сказано выше, лучше приостановить работу исходной виртуальной машины во время дублирования)