Project

General

Profile

Actions

Errores #424

closed

Corrupción de datos en imágenes qcow2

Added by Martin Andres Gomez Gimenez almost 10 years ago. Updated almost 10 years ago.

Status:
Resuelta
Priority:
Normal
Category:
Funcionalidades
Target version:
Start date:
02/23/2015
Due date:
02/28/2015
% Done:

100%

Estimated time:
Spent time:

Description

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.

Actions #1

Updated by Martin Andres Gomez Gimenez almost 10 years ago

  • Status changed from Nueva to En curso
  • % Done changed from 0 to 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
Actions #2

Updated by Martin Andres Gomez Gimenez almost 10 years ago

  • Status changed from En curso to Resuelta
  • % Done changed from 90 to 100
Actions

Also available in: Atom PDF