virtualización con xen
DESCRIPTION
Introducción a la virtualización con Xen.TRANSCRIPT
- 1. Xen
2. ndice
- Breve introduccin a Xen
-
- Sistemas de virtualizacin.
-
- Ventajas y desventajas.
-
- mbitos de aplicacin.
- Componentes de Xen, arquitectura
- Requisitos hardware
- Instalacin: modo sencillo
-
- Instalacin de paquetes
-
- Administracin va consola
-
- Configuracin
-
- Ejemplos
- Instalacin: modo hacker
-
- Uso del kernel original de XenSource
-
- Distintos kernels
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.
- Rpido, escalable
- Caracterstivas avanzadas
-
- PCI passtrough
-
- Live migration
- Es Software Libre!!
4. Sistemas de Virtualizacin
- Xen soporta las siguientes formas de virtualizacin:
-
- Full Virtualization:
-
-
- Parecido a la emulacin.
-
-
-
- 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'.
-
-
-
- Paravirtualizacin:
-
-
- 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
- Full Virtualization:
-
- No hay que modificar el sistema operativohusped
-
- Muchas instrucciones seejecutan directamenteen el hardware.
- Paravirtualizacin:
-
- Mejor rendimiento.
-
- 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
-
- Desarrollo + produccin
- Tener entornos de ejecucin aislados
- Aunar servidores para ahorrar costes y espacio
- Pruebas de servicios
- Just 4 fun!!
7. Componentes de Xen, arquitectura 8. Componentes de Xen, arquitectura (2)
- Sistema servidor (dom0)
-
- Kernel modificado para que se comunique con el hypervisor (oficial: 2.6.18 de XenSource).
-
- Hypervisor y utilidades de Xen instaladas.
-
- Hardware real.
- Sistema husped (domU)
-
- 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)
- Arquitectura de red
10. Componentes de Xen, arquitectura (4)
- Modalidades de funcionamiento:
-
- Modo bridge
-
-
- NIC virtual en el domU
-
-
-
- Bridge Ethernet con la interfaz real del dom0
-
-
-
- El domU aparece como un host ms de la red
-
-
- Modo routing
-
-
- NIC virtual en el domU
-
-
-
- 2 redes diferentes: la red real y la virtual.
-
-
-
- Routing IP entre ambas redes
-
-
- Modo NAT
-
-
- NIC virtual en el domU
-
-
-
- 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:
-
- Intel-VT
-
-
- cat /proc/cpuinfo | grep vmx
-
-
- AMD-V
-
-
- cat /proc/cpuinfo | grep svm
-
- Disco duro
-
- Todos los guests accediendo al mismo tiempo
- RAM
-
- 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.
- Welcome to Xen!
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
- Paravirtualizacin
-
- 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.
-
- Poca flexibilidad.
-
- 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)
- Distintos Kernels:
-
- 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
- Acceso sin X
-
- xm console
-
- SSH
- Acceso con X
-
- Tarjeta grfica real, PCI passthrough
-
- VNC
-
- SDL
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).
- Virtualizacin completa
-
- Emulacin
- Paravirtualizacin
-
- Drivers especficos
-
- Mejora de rendimiento
29. Virtualizacin de Hardware (2)
- SIN virtualizacin!
-
- Hardware real!
-
- 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.
-
- xm save
- Recuperar el estado de un domU
-
- xm restore
- Migracin
-
- Esttica
-
-
- Suspender -> Migrar -> Recuperar
-
-
- Live
-
-
- No se interrumpe el funcionamiento del domU.
-
-
- xm migrate
31. Salvar, recuperar y migrar un domU (2)
- Live migration
-
- 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
-
- No hay ni que compilar.
-
-
- Descomprimir
-
-
-
- ./ConVirt
-
33. Administracin mediante GUI: ConVirt (2) 34. Tips & Tricks
- Elegir un hardware super-compatible, no vamos a complicarnos desde el principio...
- La RAM esta barata... :)
- El rendimiento global es mejor con dispositivos fsicos
-
- LVM
- Si no vamos a hacer nada raro no necesitamos Kernels distintos...
- Para aprender, no es necesario complicarse
-
- apt es tu amigo!!
35. Referencias
- Libro: Running Xen (Prentice Hall)
- http://wiki.xensource.com/xenwiki/
- http://jailtime.org/
- 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.