Virtualización con Xen
Upcoming SlideShare
Loading in...5
×
 

Virtualización con Xen

on

  • 8,338 views

Introducción a la virtualización con Xen.

Introducción a la virtualización con Xen.

Statistics

Views

Total Views
8,338
Views on SlideShare
7,871
Embed Views
467

Actions

Likes
1
Downloads
320
Comments
0

6 Embeds 467

http://www.saghul.net 220
http://saghul.net 208
http://www.slideshare.net 36
http://feeds.feedburner.com 1
http://www.clearspring.com 1
http://static.slidesharecdn.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Virtualización con Xen Virtualización con Xen Presentation Transcript

  • Xen
  • Índice
    • Breve introducción a Xen
      • Sistemas de virtualización.
      • Ventajas y desventajas.
      • Ámbitos de aplicación.
    • Componentes de Xen, arquitectura
    • Requisitos hardware
    • Instalación: modo sencillo
      • Instalación de paquetes
      • Administración vía consola
      • Configuración
      • Ejemplos
    • Instalación: modo hacker
      • Uso del kernel original de XenSource
      • Distintos kernels
  • Introducción a Xen
    • Monitor de máquinas virtuales (hypervisor)
      • Varios SO distintos en el mismo hardware
      • Abstracción de recursos físicos
      • Interface uniforme para el hardware -> portabilidad
    • Funciona en hardware 'barato' *
      • Para sacarle todo el partido -> extensiones de Intel y AMD.
    • Rápido, escalable
    • Característivas avanzadas
      • PCI passtrough
      • Live migration
    • Es Software Libre!!
  • Sistemas de Virtualización
    • Xen soporta las siguientes formas de virtualización:
      • Full Virtualization:
        • Parecido a la emulación.
        • 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.
          • Traducción de instrucciones binarias 'al vuelo'.
      • Paravirtualización:
        • El sistema operativo huésped ha de estar modificado.
        • La comunicación con el hardware se realiza a través del hypervisor.
        • Dificultades con SO cerrados.
        • Ventajas: rendimiento, escalabilidad.
  • Ventajas y desventajas
    • Full Virtualization:
      • No hay que modificar el sistema operativo huésped
      • Muchas instrucciones se ejecutan directamente en el hardware.
    • Paravirtualización:
      • Mejor rendimiento.
      • Las modificaciones en el kernel huésped ayudan a una ejecución más eficiente.
    • A la hora de elegir el sistema hay que tener en cuenta que cuando mayor sea el aislamiento entre máquinas virtuales menor será el rendimiento.
    • Xen en un entorno paravirtualizado obtiene un perfecto equilibrio entre rendimiento y aislamiento.
  • Ámbitos de aplicación
    • Mantener varios sistemas paralelamente
      • Desarrollo + producción
    • Tener entornos de ejecución aislados
    • Aunar servidores para ahorrar costes y espacio
    • Pruebas de servicios
    • Just 4 fun!!
  • Componentes de Xen, arquitectura
  • 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 huésped (domU)
      • Kernel modificado para interactuar con el hypervisor (dom0). Soporte en el mainline del kernel desde la versión 2.6.23
      • Resto del sistema operativo y aplicaciones sin modificar.
      • Posibilidad de acceso exclusivo a hardware real: pci passthrough.
  • Componentes de Xen, arquitectura (3)
    • Arquitectura de red
  • 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 más 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'.
  • Requisitos hardware
    • Se recomienda la arquitectura x86, es donde mejor funciona.
    • Para poder trabajar con HVM, necesario procesador con extensiones de virtualización:
      • 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
  • Instalación: modo sencillo
    • Instalación de paquetes necesarios
      • apt-get install bridge-utils libc6-xen libxen3 linux-xen python-xen-3.2 xen-docs-3.2 xen-hypervisor-3.2 xen-tools xen-utils-3.2
      • Debería funcionar un simple apt-get install ubuntu-xen-desktop pero actualmente en Hardy esta roto (¿no era LTS?)
    • Reiniciar y arrancar con el nuevo Kernel.
    • Welcome to Xen!
  • Administración vía consola
    • Comandos de administración:
      • 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
  • Administración vía consola (2)
      • Estado del sistema: xentop
      • Mensajes de arranque de Xen: xm dmesg
      • Listado de guests arrancados: xm list
  • Configuración (1)
    • Configuración general de Xen:
      • /etc/xen/xend-config.sxp # Configuración 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 '')
  • Configuración (2)
    • Configuración 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'
  • Configuración (3)
    • Configuración 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'
  • Creación de un domU
    • Paravirtualización
      • Se puede hacer diréctamente con Debootstrap, pero xen-tools automatiza el proceso:
      • /etc/xen-tools/xen-tools.cfg dir = /var/xen-gests #donde se almacenan las máquinas virtuales debootstrap = 1 #indicamos que haremos deboot size = 2Gb #tamaño del disco memory = 128Mb #cuanta memoria queremos utilizar swap = 128Mb #tamaño de la swap fs = ext3 #tipo de sistema de ficheros dist = etch #distribución de GNU/Linux arch = i386 #arquitectura passwd = 1 #indicar si se pedirá contraseña 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
  • Creación 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 instalación.
  • Ejemplos
    • Arranque de domU paravirtualizado: Debian Etch 4.0
    • Arranque de domU paravirtualizado: FreeBSD 7
    • Inicio de instalación de Debian Etch (HVM)
    • Inicio de instalación de Windows XP (HVM)
  • Instalación: modo 'hacker'
    • La instalación sencilla utilizaba el mismo Kernel para todo.
      • Poca flexibilidad.
      • Imposibilidad de realizar cambios en la configuración del Kerne.
    • En ocasiones puede ser necesario utilizar Kernels distintos para el dom0 y para los domU
    • Necesidad de realizar cambios en la configuración del Kernel.
    • Compilación de Xen y del Kernel desde las fuentes
  • Instalación: modo 'hacker' (2)
    • Instalación 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 wget http://bits.xensource.com/oss-xen/release/3.2.1/xen-3.2.1.tar.gz
    • Descargamos el Kernel parcheado de XenSource hg clone http://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
  • Instalación: 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
  • Instalación: 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: title Xen 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
  • Instalación: modo 'hacker' (5)
    • Para finalizar, automatizamos el arranque del demonio de control de Xen y el gestor automático de domUs. # update-rc.d xend defaults 20 21 # update-rc.d xendomains defaults 21 20
    • Para hacer que un domU arranque automáticamente al iniciar el sistema, basta con situar el fichero de configuración en /etc/xen/auto/ # ln -s /etc/xen/farsa.cfg /etc/xen/auto/farsa.cfg
  • Instalación: 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 configuración.
  • Acceso a los domU
    • Acceso sin X
      • xm console
      • SSH
    • Acceso con X
      • Tarjeta gráfica real, PCI passthrough
      • VNC
      • SDL
  • Virtualización de Hardware
    • Virtualizar/paravirtualizar hardware es más sencillo que virtualizar la CPU
    • Xen utiliza el modelo de paravirtualización también para el resto del hardware
      • Interfaz más sencilla de comunicación.
      • Mayor independencia del hardware real (mejor a la hora de hacer migraciones).
    • Virtualización completa
      • Emulación
    • Paravirtualización
      • Drivers específicos
      • Mejora de rendimiento
  • Virtualización de Hardware (2)
    • SIN virtualización!
      • Hardware real!
      • Ocultamos el dispositivo PCI al dom0 y de lo damos a un domU -> PCI passthrough En la configuración del GRUB (dom0): pciback.permisive pciback.hide=(02:03.0)(0000:02:03.1) En el fichero de configuración del domU: pci=['02:03.0', '02:03.1']
  • Salvar, recuperar y migrar un domU
    • Salvar el estado de un domU
      • Como la función hibernar en los portátiles.
      • Facilita un arranque rápido.
      • xm save
    • Recuperar el estado de un domU
      • xm restore
    • Migración
      • Estática
        • Suspender -> Migrar -> Recuperar
      • Live
        • No se interrumpe el funcionamiento del domU.
      • xm migrate
  • Salvar, recuperar y migrar un domU (2)
    • Live migration
      • Los 2 hosts con xend corriendo y configurado para escuchar peticiones de reubicación: /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 versión de Xen en ambos hosts.
      • Fichero de configuración para el domU en los 2 hosts.
  • Administración mediante GUI: ConVirt
    • ConVirt, anteriormente XenMan, es una utilidad gráfica de administración de Xen.
      • http://xenman.sourceforge.net
    • Instalación de dependencias:
      • apt-get install python-glade2 python-gtk2 python-paramiko python-rpm python-vte yelp
      • No hay ni que compilar.
        • Descomprimir
        • ./ConVirt
  • Administración mediante GUI: ConVirt (2)
  • 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 físicos
      • LVM
    • Si no vamos a hacer nada raro no necesitamos Kernels distintos...
    • Para aprender, no es necesario complicarse
      • apt es tu amigo!!
  • Referencias
    • Libro: Running Xen (Prentice Hall)
    • http://wiki.xensource.com/xenwiki/
    • http://jailtime.org/
    • http://del.icio.us/saghul/xen
  • Licencia
    • Saúl 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 créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.