Instantánea de qemu-img en VM en vivo

Instantánea de qemu-img en VM en vivo

He creado varias máquinas virtuales KVM utilizando imágenes QCOW2.
Cada VM tiene su propio archivo qcow2 y no se basa en ningún archivo de respaldo.
Mi pregunta está relacionada específicamente con las instantáneas de imágenes QCow2 en estas máquinas virtuales en ejecución.
Si ejecuto el siguiente comando en una VM en ejecución:
qemu-img snapshot -c backup /vms/vm10001.qcow2

¿El comando anterior dañará el sistema de archivos de las máquinas virtuales en ejecución?
Mi intención es luego convertir la instantánea en una imagen qcow2 usando lo siguiente:
qemu-img convert -s backup /vms/vm10001.qcow2 /vms/output.qcow2

No puedo usar los comandos "virsh" y por eso estoy tratando de encontrar una manera de realizar mi tarea con qemu-img

Respuesta / Actualización 1:
Ok, probé esto en varias de mis máquinas virtuales de prueba y lo anterior no es posible. No puede ejecutar qemu-img snapshotuna máquina virtual en vivo sin pausarla.

La única forma de hacerlo en los nodos base de RHEL es utilizar:
virsh snapshot-create <dom>

Lo anterior guardará el estado de la VM y luego llamará internamente qemu-img snapshot -c. Sin embargo, esto puede llevar algún tiempo, lo que me lleva a mi segunda pregunta.

Pregunta 2 : virsh snapshot-create <dom> --disk-only --atomicno es compatible con nodos base que sean de tipo RHEL (incluido RHEL 7) porque qemu-kvm es muy antiguo.
Entonces la única opción es usar virsh snapshot-create <dom>el cual es un poco lento.
¿Es posible hacer lo siguiente?
virsh suspend <dom>
qemu-img snapshot -c backup /vms/<dom>.qcow2
virsh resume <dom>

La operación anterior parece ser mucho más rápida que crear una instantánea.

Respuesta / Actualización 2:

Incluso la pregunta 2 anterior no es posible. Después de investigar mucho he llegado a la misma conclusión.

Pregunta 3 :

¿Existe algún método para crear una instantánea para una máquina virtual en línea que tenga un disco Qcow2 en un nodo base RHEL 6/7 y luego hacer una copia de seguridad de la instantánea para restaurarla más adelante?

Respuesta1

Esta no es una respuesta exacta pero le mostrará el camino.

Usamos Linux KVM durante mucho tiempo. En los viejos tiempos, qcow2 no admitía instantáneas. En nuestro primer host KVM no queríamos utilizar instantáneas de LVM y por eso no podíamos realizar copias de seguridad en vivo.

Entonces encontramosHerramientas de copia en caliente de Linux.

Usando esta herramienta; Podríamos congelar todo el sistema de archivos del host y copiar qcows en discos externos con un script de respaldo personalizado.

Nuestro script de respaldo era algo como esto;

# 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

Respuesta2

Mi experiencia con KVM es bastante limitada, pero al estar en una situación muy similar, eso fue lo que funcionó para mí:

En primer lugar hago una copia de seguridad de la configuración de la VM llamada MÁQUINA:

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

Luego suspendo la VM llamada MACHINE para evitar daños en la máquina recién creada:

# virsh suspend MACHINE

A continuación, creo una instantánea llamada MACHINE-BAK.qcow2 desde la VM llamada MACHINE usando el comando qemu-img, incluso si normalmente se usa para convertir entre formatos:

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

A continuación, reanudo la operatividad normal de la VM original denominada MÁQUINA:

# virsh resume MACHINE

Al aplicar estos sencillos pasos en un script que se ejecuta a través de la automatización crontab, puedo obtener una copia de seguridad completa periódica de las máquinas virtuales en ejecución con un tiempo de inactividad mínimo (dependiendo del tamaño de la máquina virtual original, ya que, como se dijo anteriormente, es mejor suspender el VM original durante la duplicación)

información relacionada