2. ndice
-
- Sistemas de virtualizacin.
- Componentes de Xen, arquitectura
- Instalacin: modo sencillo
-
- Uso del kernel original de XenSource
3. Introduccin a Xen
- Monitor de mquinas virtuales (hypervisor)
-
- Varios SO distintos en el mismo hardware
-
- Abstraccin de recursos fsicos
-
- Interface uniforme para el hardware -> portabilidad
- Funciona en hardware 'barato' *
-
- Para sacarle todo el partido -> extensiones de Intel y
AMD.
4. Sistemas de Virtualizacin
- Xen soporta las siguientes formas de virtualizacin:
-
-
- Los SO se quedan sin modificar.
-
-
- Solo funcionan sobre la misma arquitectura que el hardware
real.
-
-
- Necesarias las extensiones Intel VT o AMD V.
-
-
-
- Simplifica instrucciones x86.
-
-
-
- Traduccin de instrucciones binarias 'al vuelo'.
-
-
- El sistema operativo husped ha de estar modificado.
-
-
- La comunicacin con el hardware se realiza a travs del
hypervisor.
-
-
- Dificultades con SO cerrados.
-
-
- Ventajas: rendimiento, escalabilidad.
5. Ventajas y desventajas
-
- No hay que modificar el sistema operativohusped
-
- Muchas instrucciones seejecutan directamenteen el
hardware.
-
- Las modificaciones en el kernelhusped ayudan a una ejecucin ms
eficiente.
- A la hora de elegir el sistema hay que tener en cuenta que
cuando mayor sea el aislamiento entre mquinas virtuales menor ser
el rendimiento.
- Xen en un entorno paravirtualizado obtiene un perfecto
equilibrio entre rendimiento y aislamiento.
6. mbitos de aplicacin
- Mantener varios sistemas paralelamente
- Tener entornos de ejecucin aislados
- Aunar servidores para ahorrar costes y espacio
7. Componentes de Xen, arquitectura 8. Componentes de Xen,
arquitectura (2)
-
- Kernel modificado para que se comunique con el hypervisor
(oficial: 2.6.18 de XenSource).
-
- Hypervisor y utilidades de Xen instaladas.
-
- Kernel modificado para interactuar con el hypervisor (dom0).
Soporte en el mainline del kernel desde la versin 2.6.23
-
- Resto del sistema operativo y aplicaciones sin modificar.
-
- Posibilidad de acceso exclusivo a hardware real:pci
passthrough.
9. Componentes de Xen, arquitectura (3)
10. Componentes de Xen, arquitectura (4)
- Modalidades de funcionamiento:
-
-
- Bridge Ethernet con la interfaz real del dom0
-
-
- El domU aparece como un host ms de la red
-
-
- 2 redes diferentes: la red real y la virtual.
-
-
- Routing IP entre ambas redes
-
-
- Segmento de red virtual NO accesible desde el exterior
-
-
- Routing entre el segmento de red virtual oculto mediante
NAT.
- Cada guest puede tener hasta 3 VIFs, + las 'reales'.
11. Requisitos hardware
- Se recomienda la arquitectura x86, es donde mejor
funciona.
- Para poder trabajar con HVM, necesario procesador con
extensiones de virtualizacin:
-
-
- cat /proc/cpuinfo | grep vmx
-
-
- cat /proc/cpuinfo | grep svm
-
- Todos los guests accediendo al mismo tiempo
-
- Los domU se la 'roban' al dom0
12. Instalacin: modo sencillo
- Instalacin de paquetes necesarios
-
- apt-get install bridge-utils libc6-xen libxen3 linux-xen
python-xen-3.2 xen-docs-3.2 xen-hypervisor-3.2xen-tools
xen-utils-3.2
-
- Debera funcionar un simpleapt-get install ubuntu-xen-desktop
pero actualmente en Hardy esta roto (no era LTS?)
- Reiniciar y arrancar con el nuevo Kernel.
13. Administracin va consola
- Comandos de administracin:
-
- Arrancar domU y acceder a su consola: xm create
/etc/xen/farsa.cfg -c
-
- Arrancar un domU y dejarlo en background: xm create
/etc/xen/farsa.cfg
-
- Conectarse a la consola de un domU: xm console farsa
-
- Reiniciar domU: xm reboot farsa
-
- Apagar domU: xm shutdown farsa
-
- Apagar (malamente) domU: xm destroy farsa
-
- Todas las opciones de xm: xm help
14. Administracin va consola (2)
-
- Estado del sistema: xentop
-
- Mensajes de arranque de Xen: xm dmesg
-
- Listado de guests arrancados: xm list
15. Configuracin (1)
- Configuracin general de Xen:
-
- /etc/xen/xend-config.sxp # Configuracin del tipo de red
(network-script network-bridge) (vif-script vif-bridge) # Hardware
para el dom0 (dom0-min-mem 256) (dom0-cpus 0) # Acceso VNC
(vnc-listen '0.0.0.0') (vncpasswd '')
16. Configuracin (2)
- Configuracin de un domU (paravirt) [ejemplo]
-
- /etc/xen/farsa.cfg kernel= '/boot/vmlinuz-2.6.24.3' ramdisk =
'/boot/initrd.img-2.6.24.3' extra = 'console=hvc0 nomce' memory=
'128' root= '/dev/xvda1 ro' disk= [ 'phy:/dev/sdb1,xvda1,w',
'file:/var/xen/swp.img,xvda2,w' ] name= 'lvmbase' vif= [ '' ]
on_poweroff = 'destroy' on_reboot= 'restart' on_crash=
'restart'
17. Configuracin (3)
- Configuracin de un domU (HVM) [ejemplo]
-
- /etc/xen/farsa.hvm kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm' memory = 128 name = "debian-hvm" vif = [
'type=ioemu,bridge=xenbr0' ] disk = [
'file:/var/xen/debian.img,hda,w',
'file:/var/xen/debian.iso,hdb:cdrom,r' ] on_poweroff = 'destroy'
on_reboot= 'restart' on_crash= 'restart' device_model = '/usr/' +
arch_libdir + '/xen/bin/qemu-dm' boot="dc" sdl=0 vnc=1 nographici=0
stdvga=0 serial='pty' localtime=1 keymap='es'
18. Creacin de un domU
-
- Se puede hacer dirctamente con Debootstrap, pero xen-tools
automatiza el proceso:
-
- /etc/xen-tools/xen-tools.cfg dir = /var/xen-gests #donde se
almacenan las mquinas virtuales debootstrap = 1 #indicamos que
haremos deboot size= 2Gb #tamao del disco memory = 128Mb #cuanta
memoria queremos utilizar swap= 128Mb #tamao de la swap fs= ext3
#tipo de sistema de ficheros dist= etch #distribucin de GNU/Linux
arch = i386 #arquitectura passwd = 1 #indicar si se pedir contrasea
mirror =http://ftp.es.debian.org/debian/ #mirror gateway=
192.168.1.100 #puerta de enlace netmask= 255.255.255.0 #mascara de
subred kernel = /boot/vmlinuz-2.6.24.3 #el kernel que creamos
19. Creacin de un domU (2)
-
- Para crear un nuevo domU con xen-tools: xen-create-image
--hostname=base-domU ip=192.168.1.25
- Full Virtualization (HVM)
-
- Para crear un domU basta con lanzar el domU y seguir con la
instalacin.
20. Ejemplos
- Arranque de domU paravirtualizado: Debian Etch 4.0
- Arranque de domU paravirtualizado: FreeBSD 7
- Inicio de instalacin de Debian Etch (HVM)
- Inicio de instalacin de Windows XP (HVM)
21. Instalacin: modo 'hacker'
- La instalacin sencilla utilizaba el mismo Kernel para
todo.
-
- Imposibilidad de realizar cambios en la configuracin del
Kerne.
- En ocasiones puede ser necesario utilizar Kernels distintos
para el dom0 y para los domU
- Necesidad de realizar cambios en la configuracin del
Kernel.
- Compilacin de Xen y del Kernel desde las fuentes
22. Instalacin: modo 'hacker' (2)
- Instalacin de dependencias necesarias: apt-get install iproute
bridge-utils python-twisted binutils zlib1g-dev python-dev transfig
bzip2 screen ssh debootstrap libcurl3-dev libncurses5-dev x-dev
build-essential gettext gawk mercurial yaird bcc
libsdl1.2debian-all libsdl1.2-dev libx86-dev libvncserver-dev
- Descarga del Xen Hypervisor y las utilidades Xen
wgethttp://bits.xensource.com/oss-xen/release/3.2.1/xen-3.2.1.tar.gz
- Descargamos el Kernel parcheado de XenSource hg
clonehttp://xenbits.xensource.com/linux-2.6.18-xen.hg
- Instalamos el hypervisor y las herramientas Xen # tar zxvf
xen-3.2.1.tar.gz # cd xen-3.2.1 # make xen # make install-xen #
make tools # make install-tools
23. Instalacin: modo 'hacker' (3)
- Compilamos el Kernel de Xen. No podemos usar make-kpkg porque
actualmente (en Debian Etch) no esta soportada la arquitectura Xen
en make.kpkg # cd linux-2.6.18-xen.hg # make menuconfig
- Cuidado al habilitar las cosas, este es el Kernel del
dom0!
- Habilitar soporte para Xen dom0. # make # make modules # make
modules_install # make install
24. Instalacin: modo 'hacker' (4)
- Creamos en initrd y lo incluimos en el GRUB: # depmod 2.6.18.8
# mkinitrd.yaird -o /boot/initrd.img-2.6.18.8 2.6.18.8 #
update-grub
- Ejemplo de entrada generada en GRUB: titleXen 3.2.0 / Debian
GNU/Linux, kernel 2.6.18.8 root(hd0,0) kernel/boot/xen-3.2.0.gz
module/boot/vmlinuz-2.6.18.8 root=/dev/sda1 ro
module/boot/initrd.img-2.6.18.8 savedefault
25. Instalacin: modo 'hacker' (5)
- Para finalizar, automatizamos el arranque del demonio de
control de Xen y el gestor automtico de domUs. # update-rc.d xend
defaults 20 21 # update-rc.d xendomains defaults 21 20
- Para hacer que un domU arranque automticamente al iniciar el
sistema, basta con situar el fichero de configuracin en
/etc/xen/auto/ # ln -s /etc/xen/farsa.cfg
/etc/xen/auto/farsa.cfg
26. Instalacin: modo 'hacker' (6)
-
- Se compilan igual que el Kernel del dom0 (make, make modules,
...)
-
- Habilitar Xen domU (Paravirtualization -> Xen Guest)
-
- Seleccionar Kernel que queremos en el fichero de
configuracin.
27. Acceso a los domU
-
- Tarjeta grfica real, PCI passthrough
28. Virtualizacin de Hardware
- Virtualizar/paravirtualizar hardware es ms sencillo que
virtualizar la CPU
- Xen utiliza el modelo de paravirtualizacin tambin para el resto
del hardware
-
- Interfaz ms sencilla de comunicacin.
-
- Mayor independencia del hardware real (mejor a la hora de hacer
migraciones).
29. Virtualizacin de Hardware (2)
-
- Ocultamos el dispositivo PCI al dom0 y de lo damos a un domU
->PCI passthrough En la configuracin del GRUB (dom0):
pciback.permisive pciback.hide=(02:03.0)(0000:02:03.1) En el
fichero de configuracin del domU: pci=['02:03.0', '02:03.1']
30. Salvar, recuperar y migrar un domU
- Salvar el estado de un domU
-
- Como la funcin hibernar en los porttiles.
-
- Facilita un arranque rpido.
- Recuperar el estado de un domU
-
-
- Suspender -> Migrar -> Recuperar
-
-
- No se interrumpe el funcionamiento del domU.
31. Salvar, recuperar y migrar un domU (2)
-
- Los 2 hosts con xend corriendo y configurado para escuchar
peticiones de reubicacin: /etc/xen/xend-config.sxp
(xend-relocation-server yes) (xend-relocation-port 8002)
(xend-relocation-address '') (xend-relocation-hosts-allow '')
-
- Sistema de almacenamiento compartido entre ambos hosts.
-
- Misma versin de Xen en ambos hosts.
-
- Fichero de configuracin para el domU en los 2 hosts.
32. Administracin mediante GUI: ConVirt
- ConVirt, anteriormente XenMan, es una utilidad grfica de
administracin de Xen.
-
- http://xenman.sourceforge.net
- Instalacin de dependencias:
-
- apt-get install python-glade2 python-gtk2 python-paramiko
python-rpm python-vte yelp
33. Administracin mediante GUI: ConVirt (2) 34. Tips &
Tricks
- Elegir un hardware super-compatible, no vamos a complicarnos
desde el principio...
- El rendimiento global es mejor con dispositivos fsicos
- Si no vamos a hacer nada raro no necesitamos Kernels
distintos...
- Para aprender, no es necesario complicarse
35. Referencias
- Libro: Running Xen (Prentice Hall)
- http://wiki.xensource.com/xenwiki/
- http://del.icio.us/saghul/xen
36. Licencia
- Sal Ibarra Corretg -http://www.saghul.net
- Reconocimiento - No comercial - Compartir igual:El material
creado por un artista puede ser distribuido, copiado y exhibido por
terceros si se muestra en los crditos. No se puede obtener ningn
beneficio comercial y las obras derivadas tienen que estar bajo los
mismos trminos de licencia que el trabajo original.