Inicio > Blog de copias de seguridad y recuperación > Por qué realizar copias de seguridad de máquinas virtuales QEMU: métodos, configuración y prácticas recomendadas
Actualizado 21st abril 2025, Rob Morrison

Contents

¿Por qué hacer copias de seguridad de las máquinas virtuales QEMU?

Las máquinas virtuales son la columna vertebral de casi cualquier infraestructura informática moderna, y las máquinas virtuales basadas en QEMU son una opción muy popular en entornos virtuales. Crear copias de seguridad adecuadas de estos entornos virtuales no es solo una recomendación, sino que suele ser una parte obligatoria de cualquier plan adecuado de continuidad del negocio y recuperación ante desastres. Las copias de seguridad mantenidas correctamente se convierten en la red de seguridad de una empresa cuando falla su hardware (y no existe el hardware infalible).

Los entornos virtuales tienen ventajas únicas sobre el hardware físico a la hora de crear copias de seguridad eficientes y coherentes. En cuanto a QEMU, se trata de un emulador gratuito y de código abierto que utiliza la traducción binaria dinámica para emular el procesador de un ordenador. QEMU puede emular una gran variedad de arquitecturas informáticas, ejecutar sistemas operativos invitados e incluso admitir muchas opciones de hardware diferentes. Además, QEMU funciona fácilmente como backend de emulación de dispositivos o hipervisor para máquinas virtuales, lo que lo hace muy atractivo para una amplia gama de usuarios.

Las máquinas virtuales QEMU incorporan sistemas operativos personalizados, datos críticos de aplicaciones y configuraciones valiosas. La pérdida de un entorno de este tipo suele suponer la pérdida de horas o días de trabajo de instalación y configuración, además de la posible interrupción de las operaciones comerciales, las operaciones de servicio al cliente y, en el peor de los casos, consecuencias aún más graves. Por lo tanto, esta información debe protegerse, y las copias de seguridad se consideran a menudo una de las formas más fiables y versátiles de hacerlo.

La mayoría de los marcos de cumplimiento normativo exigen ahora copias de seguridad, incluidos marcos de retención específicos. Si a esto le añadimos que las copias de seguridad también pueden proteger la información contra los ataques de ransomware, es fácil comprender por qué este tema es tan importante.

La inversión en estrategias adecuadas de copia de seguridad de máquinas virtuales reporta beneficios en muchos sentidos: reducción del tiempo de inactividad, mejora de la continuidad del negocio y la tranquilidad general que supone saber que los datos se pueden recuperar después de prácticamente cualquier desastre posible. La arquitectura abierta de QEMU también hace que las estrategias de copia de seguridad sean más flexibles, lo que permite utilizar tanto enfoques sencillos basados en archivos como soluciones incrementales complejas. En este artículo se exploran las copias de seguridad de QEMU, se revisan diferentes métodos, procesos de configuración y posibles prácticas recomendadas.

Métodos de copia de seguridad para QEMU

Existen varios tipos de copias de seguridad que se pueden utilizar para proteger las máquinas virtuales QEMU, y cada enfoque tiene sus propias ventajas e inconvenientes. La solución de copia de seguridad y recuperación más eficaz para cada situación concreta dependerá de los requisitos de rendimiento y seguridad de la empresa, sus políticas, las limitaciones de almacenamiento y otros factores, por lo que no es realista identificar una solución de copia de seguridad que sea mejor en todas las situaciones.

A continuación, el artículo explora las principales estrategias de copia de seguridad que han demostrado su eficacia en entornos QEMU.

Copia de seguridad completa

Las copias de seguridad completas deben capturar toda la información de una ubicación específica de una sola vez, es decir, todo el disco virtual con todos sus archivos de configuración y otra información de la máquina virtual asociada a él. En otras palabras, una copia de seguridad completa crea una réplica completa y autónoma de una máquina virtual, lo que facilita su restauración sin necesidad de ningún otro conjunto de copias de seguridad.

La combinación de simplicidad y velocidad de recuperación es, sin duda, la mayor ventaja de las copias de seguridad completas. Una copia de seguridad completa elimina la necesidad de reunir varios componentes de copia de seguridad para restaurar la información cuando se produce un desastre: basta con restaurar la copia de seguridad completa y continuar con las tareas empresariales. Es un método especialmente útil para proteger las máquinas virtuales más críticas del entorno, donde el coste del tiempo de inactividad es significativamente mayor que el coste del almacenamiento.

Dicho esto, las copias de seguridad completas requieren una cantidad significativa de espacio de almacenamiento y ancho de banda de red para llevarse a cabo. También existe el riesgo de que la información se duplique varias veces, debido a la falta de granularidad de las copias de seguridad completas, lo que las hace aún menos eficientes en términos de almacenamiento. Por lo tanto, los entornos con capacidad de almacenamiento limitada encontrarían poco prácticas las copias de seguridad completas como única estrategia, y lo mismo podría decirse de las máquinas virtuales generalmente grandes.

Copia de seguridad incremental

Las copias de seguridad incrementales pueden considerarse como el «término medio» de la metodología de copia de seguridad. Una vez completada una copia de seguridad completa, todas las copias de seguridad incrementales posteriores capturan solo la información que ha cambiado desde la última copia de seguridad (de cualquier tipo). De este modo, las copias de seguridad se vuelven mucho más eficientes en términos de almacenamiento y exponencialmente más rápidas que las copias de seguridad completas.

El enfoque de copia de seguridad incremental de QEMU utiliza el «seguimiento de bloques sucios» a través de mapas de bits para supervisar qué bloques se han modificado desde la última copia de seguridad. Este mecanismo ayuda a minimizar el impacto de la copia de seguridad en el rendimiento del sistema, al tiempo que crea una cadena de archivos de copia de seguridad gestionables que representan el estado completo de la máquina virtual.

Dicho esto, el proceso de restauración es donde las ventajas de las copias de seguridad incrementales pierden algo de su atractivo. Cada proceso de restauración requiere procesar tanto la copia de seguridad completa original como todos y cada uno de los archivos incrementales en una secuencia específica. Es necesario prestar mucha atención a la gestión de estas cadenas para garantizar que no haya archivos dañados o enlaces perdidos que puedan comprometer toda la estrategia de copia de seguridad.

Las copias de seguridad incrementales siguen siendo bastante populares en la mayoría de los entornos en los que la eficiencia del almacenamiento y las ventanas de copia de seguridad más pequeñas son prioritarias.

Copia de seguridad diferencial

Por otro lado, las copias de seguridad diferenciales ofrecen un equilibrio entre los métodos de copia de seguridad completa e incremental. Una vez creada la copia de seguridad completa inicial, cada operación diferencial posterior capturará todos los cambios realizados desde la copia de seguridad original.

En comparación con las copias de seguridad incrementales, las copias de seguridad diferenciales ofrecen un proceso de restauración mucho más sencillo, ya que solo se necesitan la copia de seguridad completa y la última copia de seguridad diferencial. Como resultado, los procesos de restauración que utilizan copias de seguridad diferenciales son más rápidos y predecibles, en contraste con el lento proceso de reconstrucción de largas cadenas incrementales. Las copias de seguridad diferenciales son una buena solución para entornos de tamaño medio que necesitan tanto simplicidad en la recuperación como eficiencia en el almacenamiento.

El mayor problema de las copias de seguridad diferenciales es simplemente el paso del tiempo. A medida que pasa el tiempo desde la última copia de seguridad completa, cada archivo diferencial posterior crece, a veces rivalizando con el tamaño original de una copia de seguridad completa si ha pasado demasiado tiempo. Como resultado, las copias de seguridad diferenciales suelen ser más eficaces cuando se realizan copias de seguridad completas periódicas que restablecen la línea de base para las copias de seguridad diferenciales y mantienen la eficiencia operativa.

¿Cómo configurar la copia de seguridad incremental en QEMU?

La implementación de copias de seguridad incrementales en QEMU es especialmente interesante, ya que suele ser el método preferido para este tipo de virtualización. Una vez más, una configuración e implementación adecuadas requieren un conocimiento profundo de los distintos mecanismos subyacentes, algo que se trata a continuación en este artículo. Aquí se describen tres pasos importantes del proceso: la creación de la infraestructura de copia de seguridad inicial, el aprovechamiento de libvirt para la gestión de copias de seguridad y el establecimiento de procedimientos coherentes para las operaciones regulares en el futuro.

Creación de la tarea de copia de seguridad inicial

Establecer la copia de seguridad completa inicial con seguimiento de mapas de bits es la base de cualquier estrategia de copia de seguridad incremental futura en QEMU. Es un paso muy importante que crea un punto de referencia para todas las copias de seguridad futuras.

El proceso en cuestión no es especialmente difícil, pero puede resultar complicado en algunas situaciones. El primer paso es crear un mapa de bits persistente para realizar un seguimiento de los bloques modificados en un disco virtual. Este mapa de bits se puede tratar como la memoria de QEMU, de modo que QEMU sabe qué sectores del disco se han modificado desde la última operación de copia de seguridad.

Un comando ejecutable para habilitar el mapa de bits (en el monitor de QEMU) debería tener este aspecto: block-dirty-bitmap-add drive0 backup-bitmap persistent=on

Una vez establecido el mapa de bits, es el momento de realizar la copia de seguridad completa inicial teniendo en cuenta la máquina virtual en ejecución. Este comando en particular solo debe incluir la configuración mínima: ubicación de destino, formato, etc.

drive-backup drive0 sync=full target=/backup/path/vm-base.qcow2 format=qcow2
Este ejemplo crea un archivo de copia de seguridad de referencia utilizando el formato qcow2, que sirve como punto de partida para la cadena incremental. Es fundamental almacenar esta imagen base en un entorno seguro, ya que su corrupción puede comprometer todas las copias de seguridad incrementales que la utilizan como punto de partida.

Uso de Libvirt para gestionar las operaciones de copia de seguridad

Libvirt es un conjunto de bibliotecas y programas de código abierto que proporciona una gestión centralizada para una gran variedad de hipervisores, entre los que se incluyen QEMU, Xen, KVM, LXC, VMware y otros. Libvert consiste en un demonio, una API y utilidades de línea de comandos para operar esa API.

Libvirt ayuda a mejorar la gestión de las copias de seguridad de QEMU mediante el uso de una capa API coherente que abstrae las numerosas y complejas complejidades del entorno. Libvirt es un potente kit de herramientas que puede mejorar las tareas del hipervisor al proporcionar capacidades de automatización y una estructura flexible, que de otro modo deberían realizarse mediante secuencias de comandos manuales.

Lo primero que hay que hacer después de intentar configurar las copias de seguridad de libvirt en QEMU es verificar que la instalación actual admite las funciones de copia de seguridad incremental (todas las versiones superiores a 6.0.0 deberían admitirlas). El comando correcto para comprobar la versión de libvirt es el siguiente:

$ virsh –version
A continuación, configure el XML del dominio para incluir las definiciones de copia de seguridad necesarias. El archivo XML del dominio actual se puede ver con:
$ virsh dumpxml vm_name > vm_config.xml
Una vez extraído el archivo, modifique la configuración para incluir elementos de copia de seguridad como este:
<domain>

<backup>
<disks>
<disk name=’vda’ backup=’yes’ type=’file’>
<target file=’/backup/path/incremental1.qcow2’/>
</disk>
</disks>
</backup>

</domain>
Una vez modificada la configuración, la operación de copia de seguridad se puede ejecutar con el siguiente comando:
$ virsh backup-begin vm_name –backupxml vm_config.xml
La capacidad de la funcionalidad de punto de control de Libvirt para gestionar la coordinación entre varios discos, si es necesario, puede resultar muy valiosa para los usuarios.
$ virsh checkpoint-create vm_name checkpoint_config.xml

Guía paso a paso para realizar una nueva copia de seguridad incremental

Una vez completados todos los procesos de configuración básica, se pueden ejecutar copias de seguridad incrementales periódicas utilizando la siguiente secuencia de comandos:

  1. Para congelar el sistema de archivos invitado (si el agente invitado ya está configurado):
$ virsh qemu-agent-command nombre_de_su_vm ‘{«execute»:»guest-fsfreeze-freeze»}’
  1. Para crear una nueva copia de seguridad incremental y especificar el mapa de bits de seguimiento:
drive-backup drive0 sync=incremental bitmap=backup-bitmap \
target=/path/to/backup/vm-incremental-$(date +%Y%m%d).qcow2 format=qcow2
  1. Para descongelar el sistema de archivos invitado y reanudar las operaciones normales:
$ virsh qemu-agent-command vm_name ‘{«execute»:»guest-fsfreeze-thaw»}’
  1. Para restablecer el mapa de bits de seguimiento de cambios y preparar el siguiente ciclo de copia de seguridad:
block-dirty-bitmap-clear drive0 backup-bitmap
  1. Para verificar la finalización y la documentación de la copia de seguridad:
$ qemu-img info /backup/path/vm-incremental-$(date +%Y%m%d).qcow2
  1. Para comprobar periódicamente la integridad de la copia de seguridad y garantizar su recuperabilidad:
$ qemu-img check /backup/path/vm-incremental-$(date +%Y%m%d).qcow2

Este flujo de trabajo concreto logra equilibrar la eficiencia y la exhaustividad, minimizando el impacto en las cargas de trabajo en ejecución y garantizando también una cadena de copias de seguridad fiable para posibles situaciones de recuperación ante desastres.

¿Qué son los comandos QMP para copias de seguridad incrementales?

El protocolo QEMU Machine Protocol, a menudo denominado QMP, ofrece una interfaz basada en JSON para supervisar y controlar mediante programación diversas instancias de QEMU. En lo que respecta específicamente a las operaciones de copia de seguridad, QMP puede proporcionar un control preciso, lo que resulta especialmente valioso para la automatización o la integración con soluciones de copia de seguridad personalizadas. Los siguientes comandos se pueden ejecutar directamente mediante el monitor QEMU o mediante scripts para crear operaciones programadas:

Introducción a los comandos QMP básicos

Los comandos QMP utilizan una estructura JSON coherente para facilitar tareas como la creación de scripts y la automatización. La creación de scripts y la automatización proporcionan un control preciso sobre los mecanismos internos de QEMU sin necesidad de acceder directamente a la interfaz de la consola de un hipervisor.

Para entrar en el modo QMP mientras QEMU está en ejecución, conéctese al socket del monitor QEMU e inicialice la conexión de la siguiente manera:

$ socat UNIX:/path/to/qemu-monitor-socket –
{«execute»: «qmp_capabilities»}

Algunos de los comandos más valiosos para las operaciones de copia de seguridad son:

  • block-dirty-bitmap-add para el seguimiento de cambios;
  • drive-backup para ejecutar copias de seguridad; y
  • transaction para diversas tareas de agrupación, etc.

Cada uno de estos comandos también acepta una serie de parámetros específicos en JSON:

{«execute»: «block-dirty-bitmap-add»,
«arguments»: {«node»: «drive0», «name»: «backup-bitmap», «persistent»: true}}
Las respuestas estructuradas de QMP son perfectas para analizar recursos programáticos. Cada comando produce un objeto JSON que representa el éxito o el fracaso y una gran cantidad de detalles relevantes. Este enfoque estructurado hace que el manejo de errores de los scripts de copia de seguridad automatizados sea mucho más eficaz, lo cual es una característica muy valiosa en cualquier entorno de producción.

Cómo crear una nueva copia de seguridad incremental con QMP

La creación de copias de seguridad incrementales con QMP es una secuencia de operaciones lógica que captura solo los bloques modificados, manteniendo la coherencia de los datos. También utiliza el seguimiento de mapas de bits para minimizar la duración y el tamaño de la copia de seguridad, del mismo modo que se ha utilizado en los diferentes ejemplos anteriores.

Si no existe un mapa de bits de seguimiento, este debe crearse una sola vez antes de realizar una copia de seguridad completa. A continuación se explica cómo hacerlo:

{«execute»: «block-dirty-bitmap-add»,
«arguments»: {«node»: «drive0», «name»: «backup-bitmap», «persistent»: true}}
Una vez establecido el mapa de bits, se debe utilizar drive-backup para ejecutar una copia de seguridad completa utilizando los parámetros necesarios:
{«execute»: «drive-backup»,
«arguments»: {«device»: «drive0», «sync»: «full»,
«target»: «/path/to/vm-base.qcow2», «format»: «qcow2»}}
Cualquier copia de seguridad incremental posterior cambia esta secuencia solo de forma menor, cambiando full por incremental en los tipos de copia de seguridad y haciendo referencia al mapa de bits de seguimiento creado anteriormente para capturar solo los bloques modificados:
{«execute»: «drive-backup»,
«arguments»: {«device»: «drive0», «sync»: «incremental», «bitmap»: «backup-bitmap»,
«target»: «/path/to/vm-incr-20250407.qcow2», «format»: «qcow2»}}

Comprensión de las imágenes de respaldo y los mapas de bits

La relación entre las imágenes de respaldo y los mapas de bits sucios crea la base técnica para realizar copias de seguridad incrementales eficientes en QEMU. Solo es posible mantener cadenas de copias de seguridad limpias si se comprenden adecuadamente estas relaciones.

Las imágenes de respaldo crean relaciones padre-hijo entre los archivos qcow2, de modo que cada copia de seguridad incremental puede hacer referencia a su predecesora. Consulte la cadena de respaldo de cualquier imagen qcow2 con el siguiente comando QMP:

{«execute»: «query-block»,
«arguments»: {«query-backing-chain»: true}}

El mismo comando también se puede utilizar para ver los mapas de bits existentes en una unidad específica cambiando uno de los argumentos:
{«execute»: «query-block»,
«arguments»: {«filter-node-name»: «drive0»}}
La coherencia de los mapas de bits debe mantenerse cuidadosamente en todas las operaciones de copia de seguridad para crear cadenas incrementales fiables. Una vez completada una copia de seguridad incremental, se recomienda borrar también el mapa de bits para comenzar a rastrear todos los cambios desde cero para la siguiente operación potencial:
{«execute»: «block-dirty-bitmap-clear»,
«arguments»: {«node»: «drive0», «name»: «backup-bitmap»}}

Una operación de restablecimiento como esta marca la finalización de un ciclo de copia de seguridad único y prepara el sistema para ejecutar también el siguiente ciclo.

Problemas comunes y solución de problemas de las copias de seguridad incrementales de QEMU

Por muy buena que sea la planificación, no siempre es posible evitar que las operaciones de copia de seguridad de QEMU encuentren obstáculos o problemas. Saber cómo diagnosticarlos y resolverlos de manera eficiente es un conocimiento fundamental que puede marcar la diferencia entre sufrir pequeños inconvenientes y sufrir pérdidas importantes de datos. En esta sección se abordan algunos de los retos más comunes a los que se enfrentan los administradores con respecto a las soluciones de copia de seguridad incremental.

«Bitmap no encontrado»

Los errores «Bitmap no encontrado» suelen deberse a problemas con la persistencia del mapa de bits. Para que el seguimiento incremental sea coherente con QEMU, los mapas de bits deben persistir tras el reinicio de la máquina virtual. Se debe utilizar el indicador persistent=on al crear cada nuevo mapa de bits, ya que no hay forma de cambiar la configuración de persistencia del mapa de bits existente sin volver a crearlo desde cero.

«Permiso denegado»

Los errores de permiso son bastante comunes en las operaciones de copia de seguridad, especialmente en entornos con reglas de seguridad complejas. Existe un comando de prueba que se puede ejecutar para asegurarse de que el proceso QEMU tiene permiso para escribir en el destino de la copia de seguridad:

$ sudo -u libvirt-qemu touch /path/to/backup/test-write.tmp
$ rm /path/to/backup/test-write.tmp
Si esta prueba falla, la única solución es ajustar manualmente los permisos o la propiedad del directorio de copia de seguridad.

«El dispositivo está bloqueado»

Si determinadas operaciones tienen bloqueos exclusivos en el dispositivo de destino, las operaciones de copia de seguridad pueden fallar con el mensaje «El dispositivo está bloqueado». Estos bloqueos pueden producirse durante instantáneas o tareas de copia de seguridad simultáneas, y la única forma de evitarlos es enumerar previamente las tareas de copia de seguridad activas para poder encontrar posibles conflictos manualmente:

block-job-list

También es posible cancelar determinadas operaciones, cuando sea necesario, con el siguiente comando:
block-job-cancel job-id

Cadenas de copias de seguridad dañadas

La corrupción de la cadena de copias de seguridad es especialmente problemática en este contexto, ya que inutiliza inmediatamente todas las copias de seguridad incrementales posteriores. El mejor método de recuperación en situaciones como estas es crear una nueva copia de seguridad completa y establecer una cadena nueva para empezar de nuevo:

drive-backup drive0 sync=full target=/path/to/backup/new-base.qcow2 format=qcow2

Estados inconsistentes de las aplicaciones

La inconsistencia puede interrumpir el proceso de copia de seguridad y dar lugar a copias de seguridad incompletas o dañadas. En ese caso, la solución exacta depende del núcleo del problema, por lo que no existe una solución única para todos los problemas.

Por ejemplo, si una aplicación estaba realizando operaciones de escritura durante la copia de seguridad, es posible que las copias de seguridad solo contengan datos parcialmente escritos. Esto solo se puede resolver deteniendo todas las máquinas virtuales asociadas antes de realizar las operaciones de copia de seguridad y desbloqueándolas después con estos comandos:

$ virsh qemu-agent-command vm-name ‘{«execute»:»guest-fsfreeze-freeze»}’
# Realizar operaciones de copia de seguridad
$ virsh qemu-agent-command vm-name ‘{«execute»:»guest-fsfreeze-thaw»}’

Agotamiento del espacio en disco

El agotamiento del espacio en disco puede interrumpir las operaciones de copia de seguridad, dejando archivos de copia de seguridad incompletos. Estos archivos solo consumen espacio de almacenamiento: no tienen ningún valor de recuperación en su forma incompleta. La supervisión del espacio es otra capa de comandos que debe implementarse en los scripts de copia de seguridad para evitar que se inicien operaciones cuando el espacio disponible pueda caer por debajo de un umbral determinado.

$ df -h /backup/path/ | awk ‘NR==2 {print $5}’ | sed ‘s/%//’

Se debe considerar la implementación de procesos de limpieza periódicos para eliminar los archivos de copia de seguridad parciales.

«Imagen no en formato qcow2»

Las operaciones de copia de seguridad pueden fallar con el error «Imagen no en formato qcow2«, incluso cuando se ha especificado previamente el formato correcto. Estos problemas suelen producirse al intentar realizar copias de seguridad incrementales cuando las imágenes base están almacenadas en un formato incompatible.

Esto se puede resolver verificando primero el formato de la imagen base:

$ qemu-img info /backup/path/base-image.qcow2

Una vez verificado el formato, la imagen en cuestión se puede convertir a qcow2, al tiempo que se inicia una nueva cadena de copias de seguridad, con el siguiente comando:
$ qemu-img convert -O qcow2 original-image.raw /backup/path/converted-base.qcow2
Una resolución eficaz de problemas siempre comienza con un registro detallado. El registro detallado de las operaciones de copia de seguridad es fundamental para capturar información detallada cuando aparecen diversos errores o problemas:
$ QEMU_MONITOR_DEBUG=1 virsh backup-begin vm-name backup-xml.xml
Estos registros resultan muy valiosos a la hora de diagnosticar problemas complejos que, de otro modo, serían prácticamente imposibles de resolver.

Métodos de copia de seguridad para máquinas virtuales QEMU en ejecución

Existen varias diferencias notables entre los dos enfoques de la gestión de copias de seguridad de QEMU que se han tratado aquí.

La primera es con la ayuda de los comandos del monitor QEMU: se ejecutan directamente a través de la consola del monitor QEMU utilizando una sintaxis basada en texto y se utilizan normalmente para realizar diversas tareas de forma manual. Si bien es cierto que libvirt ofrece ciertas funciones para ayudar a la automatización, su idea básica sigue siendo más cercana a los comandos directos del monitor QEMU.

El segundo utiliza QMP, o QEMU Machine Protocol, un sistema diseñado para interacciones programáticas al que se puede acceder mediante una conexión de socket. Es perfecto para la creación de scripts, la automatización y la secuenciación de copias de seguridad con todos sus comandos y respuestas en formato JSON.

Su funcionalidad es esencialmente la misma en su núcleo; se trata simplemente de interfaces diferentes para acceder a las mismas funciones de QEMU.

Ambos enfoques ofrecen varias formas diferentes de crear una copia de seguridad de una máquina virtual en ejecución en QEMU. Algunas de estas posibilidades ya se han explorado, como el seguimiento de bloques sucios, las capacidades de congelación/descongelación del agente invitado de QEMU y la capacidad de punto de control de libvirt.

Una alternativa que aún no se ha mencionado es la capacidad de instantáneas externas. A menudo se considera uno de los enfoques más sencillos para trabajar con máquinas virtuales en ejecución, ya que crea un nuevo archivo superpuesto al que se redirigen todas las operaciones de escritura, mientras que la imagen de disco original se conserva tal cual para el proceso de copia de seguridad. Un comando para utilizar este método tiene el siguiente aspecto:

$ virsh snapshot-create-as –domain vm-name snap1 –diskspec vda,file=/path/to/overlay.qcow2 –disk-only
Una vez completado todo el proceso de copia de seguridad, es importante confirmar todos los cambios del archivo superpuesto en la imagen base de una manera específica:
$ virsh blockcommit vm-name vda –active –pivot
También hay que tener en cuenta que algunas soluciones de copia de seguridad de terceros ofrecen capacidades de integración con QEMU que proporcionan una variedad de características adicionales: gestión centralizada, compresión, deduplicación, soporte para copias de seguridad de máquinas virtuales activas, etc. Aprovechan la API de QEMU y añaden sus propias capas de orquestación y ajustes de optimización del almacenamiento. Para aclarar el tema, podemos tomar una de estas soluciones y explorar sus capacidades con más detalle, que es precisamente lo que hace el artículo a continuación con Bacula Enterprise.

Todos estos métodos de copia de seguridad tienen sus ventajas distintivas y contextos de producción en los que superan al resto, tales como:

  • Seguimiento de bloques sucios con copias de seguridad incrementales: uno de los enfoques más equilibrados, que ofrece un impacto mínimo en el rendimiento y una alta eficiencia; una gran opción para entornos de producción con limitaciones en la ventana de copia de seguridad y máquinas virtuales razonablemente grandes.
  • Integración de agentes invitados (congelación/descongelación): una opción habitual para aplicaciones con muchas transacciones y servidores de bases de datos que requieren una coherencia total de los datos, incluso a costa de breves ventanas de inactividad durante las copias de seguridad.
  • Capacidades de punto de control: proporcionan la recuperación más completa, pero a costa de un alto consumo de recursos, lo que las convierte en la opción preferida en entornos de desarrollo y sistemas críticos en los que la preservación del estado de la aplicación justifica una sobrecarga adicional.
  • Instantáneas externas: ideales en entornos que necesitan copias de seguridad con poca o ninguna configuración, lo que las hace perfectas para máquinas virtuales pequeñas y medianas con suficiente tolerancia a breves ralentizaciones.
  • Soluciones de copia de seguridad de terceros: proporcionan la mejor experiencia para empresas con una gran cantidad de máquinas virtuales y hosts, haciendo hincapié en la gestión centralizada y las funciones avanzadas para justificar sus elevados costes de licencia.

API de copia de seguridad de QEMU y herramientas de integración

El rico ecosistema de API de QEMU ofrece tanto a desarrolladores como a administradores un acceso programático profundo a versátiles capacidades de virtualización. Estas API funcionan como base para las operaciones de copia de seguridad, proporcionando interfaces coherentes y abstrayendo las complejidades de la gestión de múltiples entornos de máquinas virtuales.

Block Device Interface es el núcleo de las capacidades de copia de seguridad de QEMU. Permite operaciones para gestionar discos virtuales, incluyendo, entre otras, las capacidades de copia de seguridad y captura instantánea explicadas anteriormente. Esta interfaz puede admitir operaciones como la gestión de mapas de bits, blockdev-backup y drive-backup a través de QMP y QEMU Monitor. Estas funciones de bajo nivel también son perfectas para los desarrolladores que crean soluciones de copia de seguridad personalizadas, ya que ofrecen un control granular sobre prácticamente todos los aspectos del proceso de copia de seguridad.

La API libvirt es otra opción popular en este contexto, ya que envuelve las interfaces nativas de QEMU con una capa de abstracción estandarizada que puede funcionar incluso en diferentes hipervisores. Como se ha mencionado anteriormente, libvirt ayuda a simplificar las operaciones de copia de seguridad con funciones de alto nivel que pueden gestionar automáticamente diversos detalles subyacentes. Por ejemplo, la función virDomainBackupBegin() puede gestionar todos los aspectos de la iniciación de una copia de seguridad incremental, desde el seguimiento de mapas de bits hasta las instantáneas temporales.

En cuanto a los desarrolladores de Python, los enlaces libvirt-python pueden utilizarse como un punto de entrada relativamente cómodo al conjunto de herramientas de copia de seguridad de QEMU. Los enlaces proporcionan la API libvirt completa en sintaxis Python, lo que hace que los scripts de automatización sean mucho más legibles y fáciles de mantener. Así es como se vería un script de copia de seguridad sencillo en Python:

import libvirt
conn = libvirt.open(‘qemu:///system’)
dom = conn.lookupByName(‘vm-name’)
dom.backupBegin(backup_xml, None)
La naturaleza estandarizada de estas API crea un rico ecosistema de soluciones de copia de seguridad de terceros para ampliar las capacidades existentes de QEMU. Existen muchas herramientas diferentes que pueden aprovechar estas API para crear experiencias de copia de seguridad con numerosas funciones, al tiempo que simplifican muchas de las complejidades técnicas que se han revisado en este artículo. El resto del artículo explora las características esenciales de las soluciones de copia de seguridad de QEMU de terceros, utilizando Bacula Enterprise para ilustrar cómo una solución de copia de seguridad puede funcionar con el conjunto de características originales de QEMU.

Características esenciales de una solución de copia de seguridad de QEMU

Hay ciertas capacidades clave que diferencian las soluciones de copia de seguridad robustas de los enfoques básicos de los procesos de copia de seguridad. Las características esenciales, como las que se mencionan a continuación, deben garantizar que una estrategia de copia de seguridad de QEMU siga siendo fiable, eficiente y recuperable en una amplia gama de entornos de virtualización.

Los mecanismos de coherencia de los datos son la característica más importante de cualquier solución de copia de seguridad competente en este contexto. Una solución de copia de seguridad debe integrarse fácilmente con la API del agente invitado de QEMU u ofrecer sus propios complementos sensibles a las aplicaciones para garantizar la coherencia de la base de datos. La capacidad de coordinarse con las aplicaciones en ejecución puede ayudar a crear copias de seguridad en un estado limpio y recuperable sin que se produzcan daños durante la transacción. También deben tenerse en cuenta, cuando sea aplicable, soluciones avanzadas para casos de uso específicos del almacenamiento que vayan más allá de los ciclos de congelación-descongelación, lo que permite gestionar los estados de las transacciones de aplicaciones específicas de forma independiente.

La gestión eficiente del almacenamiento es otro punto importante para las soluciones de copia de seguridad completas, con características comunes como la deduplicación, la compresión, la retención automatizada y mucho más. Los enfoques incrementales permanentes ofrecen ventanas de copia de seguridad mínimas y un consumo de almacenamiento reducido gracias al seguimiento inteligente de los cambios. En este contexto, la verificación automatizada de forma regular es prácticamente obligatoria, ya que permite comprobar la integridad y la recuperabilidad de las copias de seguridad siempre que sea posible para garantizar que estas sigan siendo viables y completas en todo momento.

La orquestación y la programación son increíblemente importantes para entornos más complejos, ya que transforman los procedimientos de copia de seguridad manuales en procesos fiables y automatizados sin necesidad de crear scripts complejos. En este caso, se espera que se disponga de opciones inteligentes de limitación de recursos, gestión de dependencias y programación flexible. Además de estas funciones básicas, cualquier solución de copia de seguridad competente para QEMU debe incluir mecanismos completos de generación de informes y alertas, así como la integración con los sistemas de supervisión existentes y la compatibilidad con RBAC para un mejor control del acceso.

Todas estas características cobran cada vez más importancia a medida que la infraestructura empresarial virtual crece en tamaño y complejidad, convirtiendo la copia de seguridad de un proceso técnico en una aplicación empresarial con requisitos de gobernanza específicos y responsabilidades definidas.

¿Cómo hacer una copia de seguridad de QEMU con Bacula?

Bacula Enterprise puede proporcionar un amplio soporte para entornos QEMU utilizando su módulo de virtualización, entre otras características. Bacula combina la naturaleza de código abierto del entorno con una gestión centralizada, un soporte premium y un control minucioso de prácticamente todos los procesos. Esta increíble combinación de parámetros lo convierte en la solución preferida para grandes empresas con diversos requisitos de infraestructura virtual.

La configuración de Bacula para las copias de seguridad de QEMU comienza con la instalación del demonio de archivos Bacula en los hosts del hipervisor. El demonio debe configurarse para acceder a sus instancias de QEMU con la ayuda de libvirt, lo que permite realizar copias de seguridad completas e incrementales sin riesgo de corrupción de datos.

La configuración básica para estas copias de seguridad se almacena en el archivo de configuración de Bacula Director, donde los usuarios pueden definir tareas de copia de seguridad para máquinas virtuales específicas:

Job {
Name = «QEMU-VM-Backup»
JobDefs = «DefaultJob»
Client = qemu-host-fd
Pool = VMPool
FileSet = «QEMU-VMs»
}
FileSet {
Nombre = «QEMU-VMs»
Incluir {
Opciones {
firma = MD5
compresión = GZIP
}
Complemento = «qemu: VM=vm-name»
}
}
Una configuración como esta aprovecha el complemento QEMU de Bacula para gestionar automáticamente todas las complejidades y matices de este proceso de copia de seguridad (incluido el seguimiento de mapas de bits).

Una de las características más destacadas de Bacula es su uso de un enfoque basado en catálogos para las capacidades de recuperación de múltiples máquinas virtuales. Bacula puede mantener metadatos detallados de cada copia de seguridad y todas las relaciones entre ellas cuando es necesario. De este modo, es posible realizar una recuperación precisa en un momento determinado sin necesidad de realizar un seguimiento manual de las cadenas de copias de seguridad o las dependencias de restauración.

Para la recuperación ante desastres, Bacula utiliza sus capacidades de recuperación bare metal para restaurar hipervisores completos y todas sus configuraciones de máquinas virtuales e imágenes de disco. Las completas pistas de auditoría y la aplicación de la retención de Bacula son especialmente útiles en empresas con estrictos requisitos de cumplimiento.

Las numerosas funciones empresariales de Bacula, combinadas con su arquitectura abierta, lo convierten en una opción interesante para las empresas que necesitan sólidas capacidades de copia de seguridad de QEMU capaces de escalar desde implementaciones de un solo servidor hasta vastos entornos con múltiples centros de datos.

Preguntas frecuentes

¿Cuáles son los diferentes métodos para realizar copias de seguridad de una máquina virtual QEMU?

Las máquinas virtuales QEMU tienen varias formas de crear copias de seguridad, incluyendo copias de seguridad completas, copias de seguridad incrementales, copias de seguridad diferenciales y instantáneas externas.

  • Las copias de seguridad completas capturan toda la máquina virtual, pero requieren un espacio de almacenamiento considerable.
  • Las copias de seguridad incrementales utilizan el seguimiento de bloques sucios para supervisar de forma eficiente los bloques modificados, pero son difíciles de restaurar.
  • Las copias de seguridad diferenciales son un término medio entre las dos, pero tampoco son especialmente universales en cuanto a su gama de casos de uso.
  • Las instantáneas externas redirigen las operaciones de escritura a archivos superpuestos de forma temporal mientras se realiza la copia de seguridad de la imagen base.

¿Es posible realizar una copia de seguridad de una máquina virtual QEMU en ejecución sin tiempo de inactividad?

Sí, QEMU admite copias de seguridad en vivo de máquinas virtuales en ejecución mediante sus propios mecanismos, como el seguimiento de bloques sucios o las instantáneas externas. Para obtener una consistencia óptima, los administradores suelen utilizar agentes invitados para congelar brevemente el sistema de archivos para copias de seguridad críticas, lo que garantiza la integridad de los datos de las aplicaciones, pero hace que estas copias de seguridad sean inaceptables para determinados tipos de negocios.

¿Cuál es la función de la función de instantáneas de QEMU en las soluciones de copia de seguridad?

Las instantáneas de QEMU crean capturas puntuales del estado actual de la máquina virtual que sirven de base para diferentes estrategias de copia de seguridad. El estado de las instantáneas internas se almacena en el archivo original, mientras que las instantáneas externas redirigen las operaciones de escritura a archivos superpuestos independientes. Las instantáneas también ayudan a habilitar diversas funciones útiles, como la reversión, la clonación, la migración y mucho más.

El uso de una solución de copia de seguridad y recuperación de alta seguridad para proteger los entornos QEMU suele aportar también una protección desde un único panel de control para todo el entorno informático de una organización, lo que supone una gran ventaja. Además, ofrece muchas más funciones de supervisión, generación de informes, cumplimiento normativo, seguridad y comodidad, que suelen ser necesarias para el funcionamiento de las medianas y grandes empresas. Esperamos que esta información le haya sido útil. Puede obtener más información en www.baculasystems.com.

Sobre el autor
Rob Morrison
Rob Morrison es el director de marketing de Bacula Systems. Comenzó su carrera de marketing de TI con Silicon Graphics en Suiza, desempeñando con fuerza varios puestos de gestión de marketing durante casi 10 años. En los siguientes 10 años, Rob también ocupó varios puestos de gestión de marketing en JBoss, Red Hat y Pentaho, asegurando el crecimiento de la cuota de mercado de estas conocidas empresas. Se graduó en la Universidad de Plymouth y tiene una licenciatura en Medios Digitales y Comunicaciones, y completó un programa de estudios en el extranjero.
Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *