Written by: thempra 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
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!
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.