viernes, 7 de octubre de 2011

Centos 5: Virtualizando Windows con Xen 4.x.

Ahora que ya logre que Xen 4.1.1 del repo de Gitco funcionara, es momento de llevar a cabo la instalacion de Windows7 para empezar, necesito correr a este software para instalar una app que solo se puede ejecutar ahi y ademas otras cosas que deben correr en Centos asi que vamos a virtualizar Windows 7 y Centos 5.7.

Este vez le toca a windows 7 Pro, ya que estara bajo un dominio con un PDC Linux por ello no debe ser una version home edition.

Vamos empezando:

1; Sacar la imagen del DVD de instalacion, mi maquinas virtuales estaran almacenadas en la particion:

/opt/

Ahi voy a crear un folder:

cd /opt
mkdir vmwin7
cd vmwin7

Sacamos la imagen:

dd if=/dev/dvdrw of=win7Pro.iso

Tarda un rato, pero con esto tenemos nuestra imagen lista para hacer usadas por Xen.

2; Crear la imagen para ser usada como disco duro virtual, vamos a crear una de unos 65GB, no requiero mas ya hice mis calculos y no es necesario mas.

dd if=/dev/zero of=win7Pro.img oflag=direct bs=1M count=65535

Tambien tarda un rato, ya tenemos nuestros 2 archivos:

-rw-r--r-- 1 root root 68718428160 Oct  7 20:31 win7Pro.img
-rw-r--r-- 1 root root  2564784128 Oct  7 19:01 win7Pro.iso

3; Crear la vm:

La gran ventaja de esto, que a mi en lo personal me agrada es:

a) No requiero tener una instalacion grafica en el server, un servidor solo debe ejecutar los programas necesarios.

b) Atraves de otra maquina puedo llevar a cabo las instalaciones de este tipo, ya que trae soporte para VNC de fabrica.

Que mas necesitamos?

Aqui vamos:

virt-install -n darwin -r 2048 -f /opt/vmwin7/win7Pro.img -b xenbr0 --vnc --vnclisten=192.168.2.48  -v -c /opt/vmwin7/win7Pro.iso

esto recibo de mensajes:

Starting install...
Creating domain...                                                                                                                                                             |    0 B     00:00

(virt-viewer:5331): Gtk-WARNING **: cannot open display:
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

Para Windows XP:

virt-install -n xp1 -r 2048 -f /opt/xp1/winxp.img -b virbr0 --vnc --vnclisten=192.168.2.48 -v -c /opt/xp1/windowsxppro.iso

Para Windows 2003:

virt-install --name win2k3 --ram 2048 --hvm --vcpus=2  --cpuset="auto" --disk path=/vm/win2k3/win2k3.img --network bridge=xenbr0 mac=mac-address --vnc --vnclisten=192.168.2.21  --os-type=windows --os-variant=win2k3 --noautoconsole --cdrom /vm/win2k3/win2k3.iso --video=cirrus

Aqui fuimos mas especificos, es cuestion de jugar con todos los parametros de virt-install, el parametro:

--noautoconsole

Nos sirve para eliminar el mensaje:

(virt-viewer:5331): Gtk-WARNING **: cannot open display:

Vamos revisando que dice xen:

xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     1     r-----    324.5
darwin                                       5  2048     1     -b----     13.7

Algo aparte del DOM-0 esta ejecutandose, como le dije me abriera una conexion a esta instalacion vnv a el IP del server, vamos revisando en otro equipo para ver si es cierto:

Figura 1: Instalacion desde una sesion VNC.

No voy a poner mas imagenes ya que me puede llevar mas tiempo, lo importante es saber como llevar a cabo esto con Xen+Centos.

La 1ra vez reiniciara y no abra manera de que reinicie solo, asi que vamos a crear el archivo de configuracion de Windows 7 en xen, lo voy a llamar vm-darwin y lleva esto:

name = "Darwin"
uuid = ""
memory = 2048
vcpus = 2
cpus = "1,2"
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "c"
pae = 1
acpi = 1
apic = 1
localtime = 0
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "destroy"
device_model = "/usr/lib64/xen/bin/qemu-dm"
sdl = 0
vnc = 1
display = "Darwin:0.0"
vncunused = 1
vnclisten = "192.168.2.48"
vncpassword = ""
keymap = "en-us"
disk = [ "file:/opt/vmwin7/win7Pro.img,hda,w" ]
vif = [ "mac=00:16:36:09:96:b6,bridge=xenbr0,script=vif-bridge" ]
parallel = "none"
serial = "pty"

El dato mas critico es la MAC address, yo tengo un control de ellas, atraves de otras se cual colocarlo, voy a meterme mas de lleno aqui para poner saber como generar este dato, aqui agarre la otra maquina y jugarle, los 2 primero digitos son de entrada.

Ahora lo volvemos arrancar para que continue la instalacion:

xm create /etx/xen/vm-darwin

Como ya le indicamos que cuando reciba un reboot --> reinicie entonces ya el debe hacerlo sin intervencion de nosotros.

Figura 2: Windows 7 Instalado bajo Xen

Ya solo vamos a terminar de configurarlo y listo.

Ya una vez terminado el proceso de instalacion, recordar que como en mi caso no estoy haciendo uso de ningun entorno grafico, le instale rapidamente el servicio VNC para poder administrarlo remotamente y no he tenido problemas hasta el momento.

Para Widows 2008:

virt-install -n win8-2 -r 2048 --hvm --vcpus=2 --cpuset=2-3 --disk path=/opt/win8-2/win8-disk.img --os-type=windows --os-variant=win2k8 -b bridge0 --noautoconsole --vnc --vnclisten=192.168.50.107 -v --cdrom /dev/dvdrw

Aqui estoy usando mi interface bridge0.

Imagen de la instalacion via VNC:

Figura 3: Arranque de instalacion de windows 2008.
Figura 4: Empieza la instalacion de windows 2008.

Esto tenemos en consola:

Starting install...
Creating domain...                                                                                                                                                     |    0 B     00:00
Domain installation still in progress. Waiting for installation to complete.
Domain has shutdown. Continuing.
Starting domain...                                                                                                                                                     |    0 B     00:01
Domain installation still in progress. Waiting for installation to complete.
Domain has shutdown. Continuing.
Guest installation complete... restarting guest.


Como podran ver, ya tenemos a windows 2008 virtualizado tambien, listo.

Ya solo debemos configurar su archivo de arranque para que cada que inicie el servidor cargue esta maquina virtual.
Quedaria en mi caso asi:

name = "Win8-2"
uuid = "6196ef50-71ed-e5e8-6b47-f109c7245139"
memory = 2048
vcpus = 2
cpus = "2,3"
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "c"
acpi = 1
apic = 1
localtime = 0
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "destroy"
device_model = "/usr/lib64/xen/bin/qemu-dm"
sdl = 0
vnc = 1
display = "Win8-2:0.0"
vncunused = 1
vnclisten = "192.168.50.107"
vncpassword = ""
keymap = "en-us"
disk = [ "file:/opt/win8-2/win8-disk.img,hda,w" ]
vif = [ "mac=MI-MAC-ADDRESS,bridge=bridge0,script=vif-bridge" ]
parallel = "none"
serial = "pty"

La 1ra vez habilito VNC, pero una vez configurado RDP ya me olvido de el y solo lo deshabilito.

Listo.

No hay comentarios: