Written by: on 04/02/2011 @ 07:55

Cuando nos encontramos en una situación de servidores en producción, es recomendable cada cierto tiempo realizar un backup completo de la maquina en ciertos servidores específicos, o simplemente queremos trasladar a otro sistema dicha maquina pero no podemos hacerlo de una manera tradicional. A continuación vamos a ver una técnica en la que no es necesario apagar la maquina virtual, y seguir dando servicio sin notar un excesivo deterioro del servicio, o la caída del mismo.

Primero generamos dentro los servidores XEN un volumen en el LVM donde guardar las imagenes de los servidores, los tamaños en todo momento los dejo a la eleccion del administrador de sistemas, ya que cada cual tiene conciencia de que cantidad de información va a tratar.

# lvcreate -n lvBackup --size 245g VolGroup00
# mkfs.ext3 -m0 /dev/VolGroup00/lvBackup
# mount /dev/VolGroup00/lvBackup /mnt/vm/

Partimos de la base que nuestra maquina virtual tiene un disco principal (NombreDeLaMaquina), en el que esta instalado el sistema (NombreDeLaMaquinaData), y otro adicional en el que por ejemplo están los datos. Ahora dentro de cada maquina virtual de la que deseamos obtener la copia ejecutaremos las siguientes acciones

Creamos un SnapShot de la maquina a copiar, de este modo conseguiremos una instantánea del estado actual.

# lvcreate -L 10G -s -n SnapNombreDeLaMaquina /dev/VolGroup00/lvNombreDeLaMaquina
# lvcreate -L 10G -s -n SnapNombreDeLaMaquinaData /dev/VolGroup00/lvNombreDeLaMaquinaData

Copiamos el snapshot a un fichero imagen.

# dd if=/dev/VolGroup00/SnapNombreDeLaMaquina of=/mnt/vm/NombreDeLaMaquina.img
# dd if=/dev/VolGroup00/SnapNombreDeLaMaquinaData of=/mnt/vm/NombreDeLaMaquinaData.img

Borramos el snapshot, ya que desde este momento no nos sera necesario, y es mejor dejar los sistemas lo mas limpios posibles
# lvremove /dev/VolGroup00/SnapNombreDeLaMaquina
# lvremove /dev/VolGroup00/SnapNombreDeLaMaquinaData

Copiamos la configuración de la maquina virtual, por si pretendemos llevárnosla a otro servidores, recordar modificarla si vas clonar esta maquina, ya que por ejemplo los identificadores de maquina virtual, y las MAC de las tarjetas de red han de ser únicas.

# cp /etc/xen/NombreDeLaMaquina /mnt/vm/

Empaquetamos para enviar a otra maquina, y ya tenemos listo todo.

# tar czfv NombreDeLaMaquina.tar.gz /mnt/vm/NombreDeLaMaquina*

Ya solo nos queda realizar la tarea para la que hemos destinado esta nueva copia.

Catogories: GNU/Linux, Servidores, Software Libre, Virtualizacion

2 Responses

  1. Craswer dice:

    Buenas Thempra, necesitaba hacer unos backups de unas maquinas virtuales y tu manual me ha venido perfecto!

    Voy a colaborar un poco. He creado un script tonto para automatizarlo el proceso. Lo he llamado backup_vm.sh

    ————————————
    #!/bin/bash

    ### Hacemos un snap de lvm en formato img
    lvcreate -L 10G -s -n Snap$1 /dev/VolGroup00/lv$1
    dd if=/dev/VolGroup00/Snap$1 of=/mnt/vm/$1.img
    lvremove /dev/VolGroup00/Snap$1 -f

    ### Copiamos el fichero de configuracion
    cp /etc/libvirt/qemu/$1.xml /mnt/vm/$1.xml

    ### Comprimimos
    tar czfv /mnt/vm/backup_$1.tar.gz /mnt/vm/$1*

    ### Eliminamos ficheros auxiliares creados
    rm -f /mnt/vm/$1.xml
    rm -f /mnt/vm/$1.img

    ————————————

    Y para ejecutarlo: «backup_vm.sh NombreDeLaMaquina»

    Espero que sirva de ayuda por si alguien mas lo ve. Un saludo!

  2. deivis dice:

    hola mi duda es la siguiente esta bueno el post pero si quiero levantar ese snap en otro equipo físico como lvm como lo transformo??
    Agradezco su respuesta.

Leave a Reply