Copia de seguridad de los invitados qcow2 kvm

13

No puedo encontrar ninguna buena información sobre cómo hacer una copia de seguridad de los invitados qcow2 kvm. No estoy realmente interesado en el estado de ejecución de los invitados, solo en el sistema de archivos. Esta pregunta sugiere usar savevmpero eso crea una instantánea en su lugar. Me gustaría hacer una copia de seguridad del sistema de archivos de forma remota.

¿Hay una mejor manera que:

  1. suspender virt_machine # pausa máquina virtual
  2. rsync --sparse /home/vm/image.qcow2 /tmp/image.dec_14_2010.qcow2 # copia la imagen en la misma unidad
  3. reanudar virt_machine
  4. rsync --sparse /tmp/image.dec_14_2010.qcow2 ssh: // backup @ backupmachine: / vmbackups

Hay un par de inconvenientes en esto. Primero, copiar un archivo de imagen enorme lleva un tiempo (relativamente) largo. En segundo lugar, siempre debo asegurarme de tener suficiente espacio para hacer una copia de seguridad de mis máquinas. Esto no es lo ideal. ¿Hay otras formas mejores de administrar las copias de seguridad de KVM?

Gracias.

Ochenta y ocho
fuente

Respuestas:

7

Sugeriría la función de instantánea de qemu-nbd:

qemu-nbd --snapshot --connect=/dev/nbd0 image.qcow2

luego monte / dev / nbd0p1 (partición 1), rsync, desmonte y finalmente desconecte:

qemu-nbd --disconnect / dev / nbd0

phhe
fuente
5

Imagen sucia con esto (su pausa probablemente pueda ayudar, pero aún así podría no ser completamente consistente):

Realice una instantánea en el sistema de archivos LVM que contiene el archivo disperso qcow2 (nuevamente suponiendo que tiene espacio para la instantánea LVM)

Monte la instantánea LVM.

Monta el control remoto usando sshfs.

Copie al punto de montaje sshfs usando una copia dispersa (cp --sparse = always src dest)

Menos tiempo para copiar, pero aún tomará el tiempo completo si la imagen está mayormente llena.

Las copias de seguridad de datos desde dentro de la VM son probablemente una mejor idea (menos espacio / tiempo). Trate las máquinas virtuales individuales como hosts regulares para realizar copias de seguridad / restaurar, es decir, obtenga lo que necesita y mantenga un conjunto de máquinas virtuales sin los datos para volver a funcionar rápidamente.

ax25
fuente
Interesante, gracias. No tengo LVM encima de mi sistema de archivos, por simplicidad. Preferiría copiar toda la imagen porque eso me permitiría tener una conmutación por error en espera lista para funcionar en caso de que la máquina falle en algún momento.
Ochenta
1
No hay problema. El LVM simplemente lo salvaría de tener que pausar la VM y le permitirá tomar una foto mientras continúa ejecutándose.
ax25
3

Personalmente, he tenido un momento MUY difícil con este problema y he descubierto que, incluso cuando está inactivo, las copias de seguridad de los invitados a menudo eran escamosas. Recuerde: si no está tratando regularmente de restaurar estas copias de seguridad, realmente no tiene idea si funcionan.

Después de mucha experimentación, utilicé la copia de seguridad de imagen por completo y elegí una solución de copia de seguridad de red tradicional que uno podría usar para servidores de metal. En mi caso, elegimos BackupPC, que es viejo pero muy confiable. En cada servidor, configuré la solución de respaldo para las aplicaciones particulares en uso. Por ejemplo, sqldump para MySQL, plugin para Joomla, etc.

Es un PIA, pero es mucho más rápido y muy confiable.

hdave
fuente
Gracias @ hdave. Siento que con este enfoque estoy perdiendo uno de los principales beneficios de las máquinas virtuales, la contención. Para restaurar, tendría que reinstalar todo manualmente y configurarlo. No es realmente el enfoque que quiero tomar. Sin embargo, gracias de todos modos, es una técnica válida.
Ochenta
100% de acuerdo en que es un dolor real. Si alguna vez rompes esta tuerca, ¡cuéntanos cómo lo hiciste!
hdave
@EightyEight: recomiendo un software de gestión de configuración como Chef o Puppet. Es mucho más flexible y también menos doloroso si desea configurar un segundo servidor idéntico (físico o virtual, no importa). Chef tiene complementos para casi todos los hipervisores y puede ayudarlo a aprovisionar y configurar un host. De esta manera, tiene la ventaja de utilizar menos espacio para las copias de seguridad (una VM completa es más grande en comparación con conjuntos de datos específicos) y un tiempo de implementación más rápido en nuevos entornos. Además, CM es como la documentación de infraestructura en código.
Rafael Bugajewski
2

No importa dónde realice la instantánea: LVM o qcow2, la VM aún debe estar inactiva antes de tomarla. De lo contrario, se pierden datos e imágenes corruptas.

dyasny
fuente
¿no más de lo que lo harías si tiraras del cable de alimentación?
1
no más, y no menos, por supuesto :)
dyasny
pensando en esto un poco más, inmovilizar el dominio no agrega nada; de cualquier manera, la instantánea es 'consistente con el bloqueo', nada más, nada menos, ¿estoy en lo cierto?
errr, defina "congruente". El sistema operativo invitado puede tener algunos datos en vuelo destinados al disco v, que se perderán si desconecta el enchufe. Teóricamente, estos datos pueden escribirse en la instantánea después de que se toman en vivo, pero hay una buena razón por la cual las instantáneas en vivo en todas las plataformas virt incluyen la suspensión / descongelación en los agentes invitados. Además, si los datos no se pierden, terminarán en la instantánea en lugar de en la imagen base, lo que
anula
"coherente con el bloqueo" solo significa "tan coherente como cabría esperar en un choque", es decir, confiar en revistas, etc. y aceptar alguna pérdida de datos debido a la falta de sincronización oportuna. "Hay una buena razón por la cual las instantáneas en vivo en todas las plataformas virtuales incluyen la inmovilización / descongelación en los agentes invitados". Según tengo entendido, la buena razón es exactamente la misma que tomar una instantánea LVM: ¿sabe algo diferente? ¿Parece que KVM no se sincroniza antes de la inmovilización más de lo que lo haría una instantánea de LVM? Por supuesto, si no está utilizando LVM para hacer instantáneas, sería una tontería no quedarse quieto, pero eso es diferente y no es lo que está diciendo.