Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 0 (more)

Virtualización conXen

From saghul, 1 month ago

Introducción a la virtualización con Xen.

537 views  |  0 comments  |  0 favorites  |  26 downloads  |  3 embeds (Stats)
Embed
options

More Info

This slideshow is Public
Total Views: 537
on Slideshare: 501
from embeds: 36

Slideshow transcript

Slide 1: Xen 101 Introducción a la virtualización con Xen. Saúl Ibarra Corretgé aka saghul <http://www.saghul.net>

Slide 2: Í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 E-Ghost – Cursillos de verano Julio 2k8 2

Slide 3: 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!! E-Ghost – Cursillos de verano Julio 2k8 3

Slide 4: 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. E-Ghost – Cursillos de verano Julio 2k8 4

Slide 5: 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. E-Ghost – Cursillos de verano Julio 2k8 5

Slide 6: Á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!! E-Ghost – Cursillos de verano Julio 2k8 6

Slide 7: Componentes de Xen, arquitectura E-Ghost – Cursillos de verano Julio 2k8 7

Slide 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 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. E-Ghost – Cursillos de verano Julio 2k8 8

Slide 9: Componentes de Xen, arquitectura (3) Arquitectura de red E-Ghost – Cursillos de verano Julio 2k8 9

Slide 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 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'. E-Ghost – Cursillos de verano Julio 2k8 10

Slide 11: 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 E-Ghost – Cursillos de verano Julio 2k8 11

Slide 12: 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! E-Ghost – Cursillos de verano Julio 2k8 12

Slide 13: 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 E-Ghost – Cursillos de verano Julio 2k8 13

Slide 14: Administración vía consola (2) Estado del sistema: xentop Mensajes de arranque de Xen: xm dmesg Listado de guests arrancados: xm list E-Ghost – Cursillos de verano Julio 2k8 14

Slide 15: 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 '') E-Ghost – Cursillos de verano Julio 2k8 15

Slide 16: 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' E-Ghost – Cursillos de verano Julio 2k8 16

Slide 17: 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' E-Ghost – Cursillos de verano Julio 2k8 17

Slide 18: 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 E-Ghost – Cursillos de verano Julio 2k8 18

Slide 19: 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. E-Ghost – Cursillos de verano Julio 2k8 19

Slide 20: 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) E-Ghost – Cursillos de verano Julio 2k8 20

Slide 21: 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 E-Ghost – Cursillos de verano Julio 2k8 21

Slide 22: 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 E-Ghost – Cursillos de verano Julio 2k8 22

Slide 23: 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 E-Ghost – Cursillos de verano Julio 2k8 23

Slide 24: 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 E-Ghost – Cursillos de verano Julio 2k8 24

Slide 25: 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 E-Ghost – Cursillos de verano Julio 2k8 25

Slide 26: 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. E-Ghost – Cursillos de verano Julio 2k8 26

Slide 27: Acceso a los domU Acceso sin X xm console SSH Acceso con X Tarjeta gráfica real, PCI passthrough VNC SDL E-Ghost – Cursillos de verano Julio 2k8 27

Slide 28: 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 E-Ghost – Cursillos de verano Julio 2k8 28

Slide 29: 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'] E-Ghost – Cursillos de verano Julio 2k8 29

Slide 30: 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 E-Ghost – Cursillos de verano Julio 2k8 30

Slide 31: 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. E-Ghost – Cursillos de verano Julio 2k8 31

Slide 32: 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 E-Ghost – Cursillos de verano Julio 2k8 32

Slide 33: Administración mediante GUI: ConVirt (2) E-Ghost – Cursillos de verano Julio 2k8 33

Slide 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 físicos LVM Si no vamos a hacer nada raro no necesitamos Kernels distintos... Para aprender, no es necesario complicarse apt es tu amigo!! E-Ghost – Cursillos de verano Julio 2k8 34

Slide 35: Referencias Libro: Running Xen (Prentice Hall) http://wiki.xensource.com/xenwiki/ http://jailtime.org/ http://del.icio.us/saghul/xen E-Ghost – Cursillos de verano Julio 2k8 35

Slide 36: 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. E-Ghost – Cursillos de verano Julio 2k8 36