virtualización con xen

Download Virtualización con Xen

If you can't read please download the document

Upload: saul-ibarra-corretge

Post on 19-May-2015

5.556 views

Category:

Documents


1 download

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.