miércoles, 25 de febrero de 2009

Xen virtualizando winxp en centos 5.1 en un Dell Power Edge 1950s

La historia empezo, cuando fue necesario que las maquinas de la granja de render, tuvieran varios SO. Inicialmente tenian CentOS 5.1 x86_64, luego fue tambien Windows xp 64. Despues, como todas las maquinas de composicion son Ubuntu, porque no ponerles Ubuntu?

La solución inicial fue instalar y levantar el sistema que fuera necesario para cada ocasion; luego me dio flojera tener que reiniciar las maquinas y desde el grub seleccionar el SO, ademas de que el hecho de que estuvieran en un determinado SO hacia inoperable las otras herramientas usadas en los otros sistemas operativos. Asi que debi recurrir a la virtualizacion.

Segun lei, la alternativa por default de CentOS es XEN. XEN funciona tanto con paravirtualizacion como con virtualizacion completa.

Siguiendo a grandes rasgos el manual

http://www.eslomas.com/index.php/archives/2008/03/11/virtualizacion-linux-y-windows-en-ubuntu-con-xen

La instalación de XEN fue realmente sencilla:

1) # yum install xen

2) los paquetes instalados fueron:

* xen-libs-3.0.3-64.el5_2.9
* xen-libs-3.0.3-25.el5
* xen-3.0.3-64.el5_2.9
* kernel-xen-2.6.18-92.1.22.el5

3) # vi /etc/xen/xend-config.sxp

(xend-unix-server yes)
(xend-unix-path /var/lib/xend/xend-socket)
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 256)
(dom0-cpus 0)
(vncpasswd '')


4) Verificar que el kernel de Xen este en el menu del grub y adicionarle la opcion loop max_loops=64 al final del module del kernel

# vi /boot/grub/menu.lst

5) Deshabilitar iptables, SELinux y mover /lib64/tls a /lib64/tls.disabled

6) # shutdown -r now


Máquinas virtuales con virtualización completa - Windows XP 64bits -

1) Comprobar que la maquina soporta virtualizacion:

# egrep '(vmx|svm)' /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm


2) Hacer un archivo que sera la imagen del SO de la maquina virtual:

# mkdir /opt/VM/winxp
# dd if=/dev/zero of=/opt/VM/winxp/win2_64.img bs=1M count=10240

3) Hacer el archivo de configuracion de la maquina virtual:

# vi /etc/xen/win2xp_64.cfg



kernel = "/usr/lib/xen/boot/hvmloader"
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
memory = 5120
name = "winxp"
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr1' ]
disk = [ 'file:/root/winxp/win2_64.img,ioemu:hda,w' ]
cdrom='/dev/scd0'
ne2000=0
boot='d'
vnc=1
vncunused=0
vncviewer=0
sdl=0



4) Tuve un error al intentar hacer

# xm create /etc/xen/win2xp_64.cfg

Error: HVM guest support is unavailable: is VT/AMD-V supported by your CPU and enabled in your BIOS?

La solucion fue activar la virtualizacion por hardware en un Dell PowerEdge 1950s .

Para activar la virtualización asistida por hardware:
1 Pulse en la pantalla de inicio para acceder al programa de configuración del BIOS.
2 Vaya a la sección CPU Information (Información de la CPU).
3 Pulse y vaya a Virtualization Technology (Tecnología de virtualización).
4 Seleccione Enabled (Activada) alternando las teclas de flecha izquierda y derecha.
5 Guarde la selección y salga del programa de configuración del BIOS.

NOTA: No uso el eth0 por eso en el archivo de configuracion esta referenciado xenbr1 ~= eth1.

La otra opcion que vi para crear administrar una maquinas virtuales desde consola grafica: virt-manager





Otro link de documentacion al respecto

No hay comentarios: