Proyecto

General

Perfil

Acciones

Errores #424

cerrada

Corrupción de datos en imágenes qcow2

Añadido por Martin Andres Gomez Gimenez hace más de 9 años. Actualizado hace más de 9 años.

Estado:
Resuelta
Prioridad:
Normal
Categoría:
Funcionalidades
Versión prevista:
Fecha de inicio:
2015-02-23
Fecha fin:
2015-02-28
% Realizado:

100%

Tiempo estimado:
Tiempo dedicado:

Descripción

Detalle

Se ha detectado que al realizar respaldo de imágenes de discos en formato qcow2, algunas de estas se corrompen.

Es posible que deba pausarse la ejecución de la maquina virtual, para que ello no ocurra.

Acciones #1

Actualizado por Martin Andres Gomez Gimenez hace más de 9 años

  • Estado cambiado de Nueva a En curso
  • % Realizado cambiado de 0 a 90

Desarrollo

Se realizaron las siguientes modificaciones en el archivo /usr/libexec/backup-cron/backup-cron_functions.sh:

Función libvirt_backup()

Se modificó la función libvirt_backup() para que realice lo siguiente:

  1. Encontrar los dominios correspondientes (nombre de las máquinas virtuales).
  2. Búsqueda de imágenes qcow2 utilizadas por cada dominio (maquina virtual).
  3. Por cada imagen qcow2 encontrada:
    • Se obtiene el nombre de la imagen sin la extensión.
    • Se crea el respaldo de la imagen qcow2.
    • Se cambian los permisos en el archivo de respaldo.
    • Se generan las sumas MD5, SHA1 y SHA256 del archivo de respaldo.

Función qcow2_backup()

Se creó una nueva función para crear un respaldo en formato qcow2 comprimido de una imagen de disco en cualquiera de los siguientes formatos: raw, bochs, qcow, qcow2, qed, vmdk, etc.

Función snapshot()

Se creó una la función snapshot() para gestionar la creación y eliminación de las instantáneas. Esta función antes de crear o borrar la instantánea pausa la máquina virtual correspondiente para evitar la posible corrupción de datos en la imagen qcow2 mediate el uso de la funcionalidad QEMU Guest Agent la cual debe ser instalada en la maquina virtual.

Requerimientos en la máquina virtual

dispositivo de canal del tipo "Unix Socket".

Es necesario crear en cada maquina virtual el siguiente dispositivo de canal del tipo "Unix Socket":

<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain_name.org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

Instalación de QEMU Guest Agent

Es necesario instalar en cada maquina virtual QEMU Guest Agent:

emerge app-emulation/qemu-guest-agent

Una vez instalado debe activarse el servicio QEMU Guest Agent de la siguiente manera:

rc-update add qemu-guest-agent default
rc-service qemu-guest-agent start
Acciones #2

Actualizado por Martin Andres Gomez Gimenez hace más de 9 años

  • Estado cambiado de En curso a Resuelta
  • % Realizado cambiado de 90 a 100
Acciones

Exportar a: Atom PDF