Quiero un método robusto para hacer una copia de seguridad de KVM VPS del archivo qcow2, mientras se ejecuta. Después de buscar durante mucho tiempo, descubrí que podemos usar rsync para la copia de seguridad en vivo. Usé el siguiente comando para rsync:
rsync -avh /vms/base.qcow2 /backup/backup.qcow2
Funcionó correctamente. Pero me temo que puede dañar la imagen de copia de seguridad qcow2 si se realiza una copia de seguridad mientras se cambia el VPS debido a operaciones de escritura y eliminación (como instalar un nuevo software o actualización).
Por lo tanto, hacer una copia de seguridad de la instantánea de VPS en vivo parece una opción más interesante.
Usé los siguientes comandos para hacer una copia de seguridad de ejecutar VPS:
1.Crear instantánea:
qemu-img create -f qcow2 -b base.qcow2 snapshot.qcow2
2.Convertir instantánea en formato de imagen sin formato (.img):
qemu-img convert -O raw snapshot.qcow2 /backup/backup.img
Para restaurar VPS:
3.Convierta la imagen en bruto en la imagen qcow2:
qemu-img convert -O qcow2 /backup/backup.img base.qcow2
Entonces podemos iniciar VPS por virsh create base.xml
comando.
Aunque este método también funciona perfectamente, todavía no estoy seguro de si este es el método adecuado para hacer una copia de seguridad de la ejecución de VPS. Encontré buena documentación sobre los comandos qemu-img aquí y aquí . Pero no mencionaron nada sobre la conversión de instantáneas de VPS en vivo en imágenes sin formato.
¿Qué método es más adecuado para la copia de seguridad de VPS en vivo? ¿Es seguro convertir una instantánea en una imagen sin formato?
Si pudiera obtener buena documentación detallada sobre cómo se comportan los archivos de instantáneas y base en ciertas condiciones, sería muy útil.
Tal vez también podamos convertir la imagen base qcow2 en un archivo de copia de seguridad sin formato en lugar de convertir una instantánea. Por lo tanto, el flujo de comandos será:
1. Crear una instantánea
2. Convertir la base qcow2 en una imagen cruda de respaldo
3. Confirmar los cambios de la instantánea en la imagen base
4. Eliminar la instantánea
Probé esto y funcionó bien en pequeños VPS de 5GB. Pero, ¿hay alguna posibilidad de error o corrupción de VPS cuando el tamaño de VPS es enorme?
Gracias por adelantado...
Respuestas:
Lo único que falta es inmovilizar el sistema de archivos invitado antes de tomar la instantánea, para garantizar que sea coherente. Esto se puede hacer
virsh domfsfreeze
si está usando libvirtd.Por ejemplo, el orden de las operaciones es:
Tenga en cuenta que esto requiere que
qemu-guest-agent
esté instalado y ejecutándose en la VM. Dependiendo de las opciones de distribución e instalación, este puede o no ser el caso.El
qemu-guest-agent
también es extensible; puede agregarle scripts para admitir software específico. Por ejemplo, incluye un script de muestra para poner MySQL en un estado consistente.fuente
virsh domfsfreeze $VM_NAME
, obtengo permiso denegado en mi sistema de archivos invitado. Mis sistemas de archivos invitados están encriptados, no estoy seguro de que eso importe.Existe otro enfoque que implica la creación de instantáneas temporales durante la copia de seguridad y su posterior confirmación.
Para obtener más información, consulte: https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
fuente