Xen para impostores
En cualquier trabajo, el día a día siempre es sota, caballo y rey. Realmente solo es necesario conocer un par de cosas sobre una herramienta para manejarla bien y eso es lo que voy a mostrar ahora con Xen. Si aprendes a hacer estas dos cosas podrás ir por ahí diciendo que sabes Xen ... aunque sea mentira. ;-) |
¿Que es Xen?
Primero que nada, Xen sirve para montar un servidor de máquinas virtuales. También podíamos haber usado qemu, virtualbox u openvz (me encanta openvz), pero el mejor cuando hay dinero y recursos es Xen.
Este guiaburros es para máquinas que soportan virtualización por hardware. Por ejemplo, si tu procesador es intel y miras /proc/cpuinfo deberías ver que uno de los flags de la CPU es vmx.
Paso 1: instalar Xen
Necesitamos instalar el núcleo, el hypervisor y las utils.
En resumen, si estás en Debian apt-get install xen-linux-system-2.6.26-2-xen-686 qemu y reiniciar. Si estás en Ubuntu apt-get install linux-xen bridge-utils xen-hypervisor-3.2 xen-utils-3.2 qemu y reiniciar con el núcleo que sale arriba del todo. Si no arranca algo hay mal hecho pero ya no es objeto de esta entrada.
Paso 2: configurar la red
Necesitamos configurar la red para que las máquinas virtuales puedan ser uno más con su IP y su mac. A todos los efectos, el único que se enterará de que la máquina virtual es una máquina virtual será el que la haya creado.
Debemos hacer estos cambios en nuestro /etc/network/interfaces:
Reiniciamos y vemos si tenemos red.
Paso 3: crear una máquina virtual
- Crear el disco duro: qemu-img create -f raw MiDiscoDuro.img 20G
- Copiar el CD de instalación a algún lugar accesible
- Crear la configuración de la máquina configuracionMaquina.cfg:
kernel = '/usr/lib/xen-default/boot/hvmloader'
builder = 'hvm'
device_model = '/usr/lib/xen-default/bin/qemu-dm'
#
memory = '512'
#
# Para arrancar desde el CD
disk = [ 'file:/ruta/al/disco/duro,ioemu:hda,w', 'file:/ruta/al/CD/de/instalacion,hdc:cdrom,r' ]
boot = 'd'
# Para arrancar desde el disco duro
#disk = [ 'file:/ruta/al/disco/duro,ioemu:hda,w' ]
#boot = 'c'
#
name = 'nombreVirtual'
#
dhcp = 'dhcp'
# Puedes poner cualquier MAC que empiece por 02
vif = [ 'mac=02:ca:ca:de:ba:ca,type=ioemu,bridge=xenbr0' ]
#
vnc = 0
sdl = 1
# nographic=0 -> interfaz gráfica, nographic=1 -> sin interfaz gráfica
nographic = 0
serial = 'pty'
- Arrancar la máquina con un xm create configuracionMaquina.cfg
- Instalar la máquina
- Para la máquina con un xm shutdown configuracionMaquina.cfg. Si se niega a pararse cambia el shutdown por un destroy.
Paso 4: dejarla lista para su uso
Hay que cambiar la configuración para que no se vea la gráfica y no arranque desde el CD:
Comandos básicos
- xm create configuracionMaquina.cfg crea la máquina virtual.
- xm shutdown configuracionMaquina.cfg le dice a la máquina virtual que se cierre.
- xm destroy configuracionMaquina.cfg destruye la máquina virtual. Es como tirar del cable.
- xm list muestra las máquinas virtuales en funcionamiento.
- xm info muestra información sobre el estado del anfitrión.
Pequeño ajuste
Se puede variar la memoria reservada para el contenedor de las máquinas virtuales en la configuración del grub en /boot/grub/menu.lst
## Xen hypervisor options to use with the default Xen boot option
# xenhopt=dom0_mem=1024M