Opciones avanzadas
Nota: Ésta es la vista de impresión del Manual de referencia completo en una sola página. Si lo prefiere puede encontrar la versión original aquÃ.
1. Hacer copias de máquinas virtuales
Has hecho un buen trabajo instalando una máquina virtual. ImagÃnate que ahora necesitamos crear otra máquina virtual muy parecida para cualquier otra cosa. ¿Tenemos que repetir todo el proceso? Pues no, aprovecharemos el trabajo realizado previamente.
Haremos una copia de la instalación existente y en adelante cuando necesitemos una máquina virtual precida, nos basaremos en la instalación que acabamos de hacer.
Como estamos utilizando LVM, obtendremos un snapshot (foto) del volumen lógico que utiliza la máquina virtual original.
Necesitamos conocer el tamaño del volumen que queremos clonar. En nuestro caso 10 GB.
root@IMH01XEN01:~# lvdisplay
 --- Logical volume ---
 LV Name               /dev/volgroupxen/xenwinxp01
 VG Name               volgroupxen
 LV UUID               9U95Sb-SjSS-28cw-0wUG-3rCe-eX81-xHEppQ
 LV Write Access       read/write
 LV Status             available
 # open                0
 LV Size               10,00 GB
 Current LE            2560
 Segments              1
 Allocation            inherit
 Read ahead sectors    0
 Block device          254:8
Crearemos un volumen intermedio para hacer la copia y al finalizar lo borraremos. Al volumen lo llamaremos FotoWindows.
root@IMH01XEN01:~# lvcreate -LÂ 10G -s -n FotoWindows /dev/volgroupxen/xenwinxp01
 Logical volume "FotoWindows" created
La nueva máquina virtual se llamará xenwinxp02 por lo tanto a su volumen lógico lo llamaremos: /dev/volgroupxen/xenwinxp02
root@IMH01XEN01:~# lvcreate -L 10G -n xenwinxp02 volgroupxen
 Logical volume "xenwinxp02" createdÂ
Ahora copiaremos la foto que tenemos en el snapshot al volumen que acabamos de crear. Necesita tiempo, pero al finalizar estará todo perfectamente copiado.
root@IMH01XEN01:~# dd if=/dev/volgroupxen/FotoWindows of=/dev/volgroupxen/xenwinxp02
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 1070,87 s, 10,0 MB/s
Si lo preferimos, desde el snapshot podrÃamos copiar el disco a una imagen ISO en vez de copiarla a LVM. Este serÃa el comando:
root@IMH01XEN01:~# dd if=/dev/volgroupxen/FotoWindows of=/home/pedro/xenwinxp02.img
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 387,568 s, 27,7 MB/s
Ahora es importante no olvidarnos que hay que borrar el snapshot :
root@IMH01XEN01:~# lvremove /dev/volgroupxen/FotoWindows
Do you really want to remove active logical volume "FotoWindows"? [y/n]: y
 Logical volume "FotoWindows" successfully removed
Con esto hemos conseguido clonar el disco para la nueva máquina virtual. ¿Qué nos falta? Pues crear el fichero de configuración de la nueva máquina virtual. Hacemos una copia del fichero de configuración de la máquina original:
root@IMH01XEN01:/etc/xen# cp xenwinxp01.cfg xenwinxp02.cfg
Lo editamos y ponemos los parámetros correctos:
root@IMH01XEN01:/etc/xen# cat xenwinxp02.cfg
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
memory = 512
name = 'xenwinxp02'
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr0' ]
# cdrom = '/dev/sdc0'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot='d'
sdl = 1
vnc = 0
# nographic=1 Para que no arranque las ventanas al arrancar la maquina
# y poder asi arrancarla desde consola
nographic = 1
disk = [ 'phy:/dev/volgroupxen/xenwinxp02,hda,w','phy:/dev/loop1,ioemu:hdc:cdrom,r']
device_model = '/usr/lib/xen/bin/qemu-dm'
usbdevice='tablet'
Ahora arrancamos la máquina virtual:
root@IMH01XEN01:/etc/xen# xm create xenwinxp02.cfg
Using config file "./xenwinxp02.cfg".
Started domain xenwinxp02
Windows intentará obtener una IP por DHCP con lo cual miramos cual es la IP que ha recibido y configuramos nuestro servidor DHCP para que a su MAC le asigne una nueva dirección IP.
Por último, hay que tener en cuenta que hemos hecho un clon de un Windows, y si no queremos tener problemas en la red Windows deberÃamos cambiarle el nombre, ya que es el mismo que el del original.
Para hacerlo:
- Hay que cambiar el nombe de PC y sacarlo del dominio (lo añadimos a Workgroup).
- Reiniciamos la máquina virtual y entramos como administrador local del PC virtual
- Lo añadimos de nuevo al dominio y reiniciamos (otra vez)
¿ Harto de tantos reinicios para cambiar el nombre del PC? Que quieres, es un Windows !! :-(
Si no ha habido problemas, el clon virtual del Windows es ya operativo.
2. Migrar una máquina virtual de VMWare a XEN
Al comienzo hemos comentado que algo tenÃamos con VMWare. Hace un par de años instalamos la versión gratuita de VMWare Server sobre una debian, y tenÃamos un par de máquinas virtuales trabajando en esa instalación. Migrarlas a XEN es sencillo.
Lo primero que hacemos es instalar qemu en el servidor VMWare (máquina fÃsica linux debian)
vmware01:~# apt-get install qemu
Lo siguiente es crear una carpeta donde trabajar:
vmware01:/home/vmware# mkdir vmwaretoxen
vmware01:/home/vmware# cd vmwaretoxen/
vmware01:/home/vmware/vmwaretoxen#
La máquina virtual vmware que vamos a clonar debe estar apagada, por lo que nos conectamos a ella y le hacemos un halt. Si no lo hacemos el proceso dará error.
A continuación comienza el clonado:
# vmware-vdiskmanager -r /home/vmware/VirtualMachines/DebianEtch/DebianEtch.vmdk -t 0 temporary_image.vmdk
Using log file /tmp/vmware-root/vdiskmanager.log
Creating a monolithic growable disk 'temporary_image.vmdk'
 Convert: 100% done.
Virtual disk conversion successful.
Ahora creamos la imagen IMG compatible con XEN:
vmware01:/home/vmware/vmwaretoxen# qemu-img convert -f vmdk temporary_image.vmdk -O raw xen_compatible.imgTras esto hemos conseguido en el fichero xen_compatible.img el clon que copiaremos al servidor fÃsico Xen mediante scp y lo tendremos listo para usar.
3. Transformar un servidor fÃsico linux en servidor virtual
ImagÃnate que tienes un servidor linux instalado hace tiempo que te interesa virtualizar, pero tienes software instalado que serÃa problemático instalar de nuevo.
Una opción que tienes es la de virtualizar el servidor fÃsico. Yo para eso he utilizado la herramienta Virt-P2V , y he conseguido migrar a XEN sin problemas algunos servidores linux viejos.
Virt-P2VÂ es un "Live CD" , y estos son los pasos a seguir::
- Mete el CD en el servidor a clonar y reinicialo.
- en el menu que te aparece introduce la IP del servidor XEN y configura la conexión ssh (usuario y password) y dile en que carpeta remota del servidor XEN tiene que dejar la imagen
- Te puedes ir a tomar un café mientras envÃa por ssh el clon. Bueno, como va a tardar un buen rato, mejor te tomas el café y vuelves al trabajo, que seguro que tienes cosas que hacer :-)
Como ves, el proceso es sencillo.
Una vez ha finalizado, en la carpeta del servidor XEN que has configurado, verás dos ficheros:
- Una imagen en formato IMG
- Un fichero de configuración xml
Yo me suelo quedar con el fichero imagen y me cargo el XML. Luego creo un fichero de configuración con el que usarlo en XEN siguiendo los ejemplos que hemos visto antes.
4. Migrar un servidor virtual de formato IMG a formato LVM
ImagÃnate que tienes un servidor virtual en formato IMG y prefieres tenerlo en formato LVM. A nosotros nos ha pasado con el servidor de faxes Hylafax. En su fichero de configuración podemos ver que usaba una imagen como disco.
disk = [ 'tap:aio:/etc/xen/irudiak/XenHylafax20090126.img,hda,w']
Lo primero es crear un nuevo volumen lógico con el tamaño que tiene la imagen, en nuestro caso 4,1 Gb:
#lvcreate -L 4,1G -n XenHylafax volgroupxen
Luego paramos el servidor virtual que corre sobre esa imagen antes de hacer la copia. Una vez que lo hemos parado utilizamos el comando dd para la copia:
dd if= /etc/xen/irudiak/XenHylafax20090126.img  of=/dev/volgroupxen/XenHylafax bs=16M
Cuando finaliza la copia modificamos el fichero de configuración y donde antes hacÃa referencia a la imagen IMG, ponemos la referencia al volumen LVM:
disk = [ 'phy:/dev/volgroupxen/XenHylafax,hda,w']
Ya podemos arrancar de nuevo la máquina virtual.
Fácil, ¿verdad ?5. Los últimos detalles
Si queremos que cuando arranque el servidor fÃsico XEN arranquen también las máquinas virtuales, tenemos que añadir un enlace por cada servidor virtual, por ejemplo:
root@IMH01XEN01:/etc/xen# ln -s /etc/xen/XenNagios.cfg /etc/xen/auto/
Si no lo ponemos, tendremos que arrancar las máquinas virtuales a mano