lunes, 13 de agosto de 2012

Virtualización (xen)


1. XEN

2. VIRTUALIZACIÓN CON XEN

La herramienta XEN permite crear y gestionar servidores virtuales dentro de un servidor físico. XEN esta formado por los siguientes componentes:
  • Hypervisor.
  • Parche de kernel de Linux.
  • Herramientas de administración por vía comando o gráfico.
El hypervisor es la pieza mas importante dentro de XEN, es lo primero que inicia el GRUB de Linux ya que se encarga de controlar el hardware (CPU, memoria, etc.) y distribuir su uso entre las diversas maquinas virtuales. También permite desde XEN crear,controlar, monitorear, y otras opciones a las maquinas virtuales.
Lo que también hace el hypervisor es que cada sistema operativo se maneja así mismo como si estuviera en un servidor real. El sistema base es común mente llamado Dom0 y a los servidores virtualizados se les conoce como DomU.


3. SISTEMA OPERATIVO
La presente instalación, se la hará en un Sistema Operativo Linux, Distribución Debian, Versión 6 (Squeeze).

4. PAQUETES INSTALADOS

Xen 4.0

5. INSTALACIÓN DEL PAQUETE XEN 4.0

Primero instalar xen para la arquitectura que se vaya a utilizar.

# apt-get install xen-linux-system-2.6.32-5-xen-amd64 xen-tools

Ahora reiniciar el equipo para que cargue el kernel de Xen que se instaló anteriormente.

Posiblemente al verificar si xen inició, aparecerá un error como este:

# xm list
WARING! Can't find hypervisor information in sysfs!
Error: Unable to connect to xend: No such file or directory. Is xend running?

Esto se da ya que squeeze utiliza grub2 y los valores de inicio están equivocados para xen. Para solucionar hacer lo siguiente

# mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux
# update-grub2


Luego hacer un reboot del equipo y verificar el inicio de xen.

# xm list
Name                     ID   Mem   VCPUs     State   Time(s)
Domain-0                 0    1879      4     r-----     84.4

5.1. CREACIÓN DE UNA VM

Ahora editar el archivo "xen-tools.conf" que se encuentra en /etc/xen-tools/, donde se coloca los parámetros por default de cada maquina virtual que se utilizarán al momento de crear la imagen si esque se omiten los mismos, como son el tamaño del disco, memoria, swap, entre otras opciones.

Se pueden editar las siguientes opciones que son básicas para la creación de la maquina virtual:

dir = /srv/xen (directorio donde se guardaran las imagenes de las maquinas virtuales).
size = 20Gb #Tamaño del disco de la maquina virtual
memory = 512Mb #Tamaño de la memoria Ram de la Maquina Virtual
swap = 128Mb #Tamaño del area de intercambio de la Maquina Virtual
fs = ext3 #Filesystem de la maquina virtual por defecto es ext3
dist = squeeze #Distribucion de la maquina virtual
image = sparse #Tipo de imagen, Full o Reducida
passwd = 1 #Activacion del pasword de root al momento de crear la maquina virtual
mirror = http://mirror/debian/ #Mirror de debian o de la distribucion que se vaya a utilizar para crear la maquina virtual
serial_device = hvc0 #Para poder acceder a la consola de la maquina virtual debemos activar esta opcion

Con eso ya se tiene el archivo para crear las maquinas virtuales, recordando que se pueden pasar los parámetros que se requieran al momento de crear la VM.

Ahora falta crear la máquina virtual (claramente antes de iniciar la maquina virtual debemos reiniciar el equipo Dom0, para poder inicial con el kernel de xen que instalamos anteriormente).

# xen-create-image --hostname maquinaxen --dhcp --role udev

Si se desea asignar una ip estática, basta con reemplazar el --dhcp, por –ip=xxx.xxx.xxx.xxx

Con esta sintaxis se creará la máquina virtual, nos pedirá el password de root por que esta opción fue activada en el xen-tools.

ahora solo queda  levantarla para que esté disponible.

# xm create maquinaxen.cfg -c

Esperar que levante la nueva maquina. El Switch -c indica que automáticamente luego de levantar la VM, acceda a ella por medio de consola, si se omite el -c entonces esta únicamente se levantará

Suele suceder en ocaciones que aveces las maquinas xen arrojan un error con el clocksource. Para ello, se coloca la siguiente linea "extra='clocksource=jiffies'" dentro del archivo de configuracion de la maquina virtual "maquinaxen.cfg" que se encuentra en /etc/xen/.

5.2. ACCESO A UNA VM

Para acceder a la VM desde una consola de comandos, se ejecuta la siguiente instrucción:

# xm console maquinaxen.cfg

5.3. DAR DE BAJA UNA VM

Para dar de baja o apagar una VM desde una consola de comandos, se ejecuta la siguiente instrucción:

# xm destroy maquinaxen.cfg

5.4. EMULAR UNA VM CON QEMU

QEMU emula un sistema informático completo, incluyendo procesador y varios periféricos. Este puede ser usado para proveer hosting virtual a varios ordenadores virtuales en un único ordenador. QEMU puede arrancar varios sistemas operativos, incluyendo entre otros Linux, Microsoft Windows, etc. Admite además la emulación de varias plataformas de hardware, incluyendo x86, AMD64, Alpha, Mips, y Sparc.

Para instalar el paquete qemu:

# apt-get install qemu xen-qemu-dm-4.0

Una vez instalado el paquete qemu y su extensión para xen, será necesario también instalar un paquete adicional para poder dar formato tipo NTFS (Qué es el que utiliza Windows).

# apt-get install ntfsprogs

Ahora para crear un archivo de configuración para una VM qemu, se puede utilizar el siguiente esquema:

---- maqwin.hvm ----
##### ARCHIVO CONFIGURACION MAQUINA WINDOWS ######
name = 'nombrehost'
kernel = '/usr/lib/xen-4.0/boot/hvmloader'
builder = 'hvm'
device_model = '/usr/lib/xen-4.0/bin/qemu-dm'
memory = 4096 # Memoria RAM en Kbytes
shadow_memory = 8
vcpus=2 # Número de núcleos a utilizar
acpi=1
apic=1
# Choose a better mac address
vif = [ 'bridge=eth0, mac=00:11:22:33:44:66' ]
## The VM has the following block devices
#  - A boot disk with a single partition for the OS, swap, and programs
#  - The installation DVD
#  - The PV drivers CD
disk = [ 'phy: /dev/dsk0/diskC,hda,w', # PATH DEL DISCO C
'file:/home/Windows2008S.iso,hdc:cdrom,r'] # PATH DE LA ISO DEL S.O.
# Boot from the DVD first
boot='dc' # Bootea primero D y luego C
usbdevice='tablet'
## Use VNC for the console.
Vnc=1
vncunused=0
vnclisten = '0.0.0.0'
vncdisplay=2
vncconsole=1
vncviewer=0
sdl=0
stdvga=0
serial='pty'
ne2000 = "0"
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Una vez creado el archivo de configuración, se procede a arrancarla de la misma forma que cualquier otra vm, pero sin el switch -c:

# xm create maqwin.hvm

Ahora para visualizar la máquina, será necesario establecer una conexión via VNC, conectándose por medio de la dirección IP del dom0, por el puerto 590x, (donde x inicia en 2, e incrementa +1 cuántas máquinas qemu sean creadas).

6. RECOMENDACIONES

Es recomendable distribuir bien los recursos del equipo físico hacia los equipos virtuales, de acuerdo al servicio que cada VM vaya a ofrecer, y no todos por igual, con el fin de que cada servidor físico rinda óptimamente en su trabajo.

No hay comentarios:

Publicar un comentario