administración de servidores virtuales con xen y gnu

Upload: edwin-guillermo-avila-montalvo

Post on 13-Jul-2015

930 views

Category:

Documents


0 download

TRANSCRIPT

Administracin de servidores virtuales con Xen y GNU/LinuxJorge Armando MedinaComputacin Grfica de Mxico. Documentacin Tcnica

Alejandro Gabriel Snchez MartnezComputacin Grfica de Mxico. Documentacin Tcnica

Copyright 2008-2010 Jorge Armando Medina, Alejandro Snchez Martnez Se otorga permiso para copiar, distribuir y/o modificar ste documento bajo los trminos de la Licencia de Documentacin Libre GNU GFDL, Versin 1.2 o cualquier otra posterior publicada por la Fundacin de Software Libre; sin secciones invariantes, sin textos en portada y contraportada. Una copia de la licencia en ingles la puede encontrar en los apendices al final del ibro, tambien una traduccin libre no oficial al espaol de la licencia GFDL y referencias de como utilizarla en sus proyectos, si por alguna razn se tuviera que utilizar por cuestiones legales la licencia GFDL la unica valida es la versin en inlges de ella. 2011/08/18 Resumen Esta es una guia de referencia para la instalacin y administracin de servidores virtuales GNU/Linux en Xen. Se describen los procedimientos para la instalacin del servidor de virtualizacin, configuraciones de los ambientes de red y almacenamiento, instalacin del hypervisor Xen, creacin de maquinas virtuales Linux y la administracin de maquinas y recursos virtuales en ambientes Xen y GNU/Linux. Tabla de contenidos Prefacio Convenciones del Documento Convenciones Tipogrficas Convenciones del documento Notas y Advertencias Necesitamos sus comentarios! 1. Introduccin a la Virtualizacin Historia de la virtualizacin Ventajas de la virtualizacin

Tecnicas de virtualizacin 2. Introduccin al hypervisor Xen Historia del proyecto Xen Caracteristicas Xen Arquitectura de Xen Recursos adicionales Sitios web Pginas de manual 3. Instalacin y configuracin del servidor Xen en GNU/Linux Requerimientos de sistema Requerimientos de hardware Requerimientos de sofware Instalando Xen desde el cdigo fuente en Ubuntu Server Compilando Xen 3.4.x desde las fuentes en Ubuntu Server Instalando el kernel XenLinux desde el cdigo fuente Instalando el kernel XenLinux desde apt Configurando GRUB para arrancar Xen 3.4.x Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen en Ubuntu Server desde apt Instalando el hypervisor Xen y el kernel XenLinux desde apt Configurando GRUB para arrancar Xen Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen en CentOS 5 Instalando Xen con yum Configurando GRUB para arrancar Xen Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen 3.4 desde el repositorio gitco.de en CentOS 5 Configurando el demonio xend y la herramienta xm Configuracin de los medios de almacenamiento local para las VMs en Xen Creando discos virtuales basados en archivos Creando archivos de imagen ISO para medios de instalacin Creando discos virtuales basados en particiones Linux nativas Creando discos virtuales basados en volmenes lgicos Linux LVM Configuracin de los dispositivos de red fsicos y virtuales en Xen Introduccin a los modos de red en Xen Configurando Xen en modo bridge Configurando mltiples switches virtuales con Xen y bridges Linux Como crear un bridge dummy para una red privada sin conexin fsica Creando los bridge Linux usando las herramientas del sistema operativo Como generar direcciones MAC nicas para Xen Recursos adicionales Sitios web Pginas de manual 4. Creacin de maquinas virtuales en Xen Requisitos para las Maquinas Virtuales Xen

CPU y memoria para las maquinas virtuales Xen Medios de Almacenamiento para las maquinas virtuales Xen Dispositivos de red virtuales Xen Requisitos de software para las maquinas virtuales Medios de instalacin para las maquinas virtuales Parmetros de configuracin para maquinas virtuales Xen Creando maquinas virtuales Xen PV Linux Creando maquinas virtuales Xen PV Linux con Debian o Ubuntu Creando maquinas virtuales Xen PV Debian con con debootstrap Creando maquinas virtuales Xen PV Ubuntu con xen-tools Instalando xen-tools Definiendo los parmetros de configuracin globales para xen-tools Creando maquinas PV Debian o Ubuntu Definiendo esquemas de particiones de xen-tools Modificando las plantillas de configuracin para xen-tools Creando maquinas virtuales PV Linux CentOS Creando maquinas virtuales PV CentOS usando imagenes de stacklet Creando maquinas virtuales PV CentOS con xen-tools y rinse Creando maquinas virtuales Xen HVM Windows Recursos adicionales Sitios web Pginas de manual 5. Administracin de maquinas y recursos virtuales en Xen Controlando el estado de las maquinas virtuales Xen Usando la herramienta xm para controlar maquinas virtuales Xen Arranque y apagado automtico de maquinas virtuales Xen Administracin de recursos virtuales en Xen Introduccin a la administracin de recursos de maquinas virtuales Xen Asignacin de memoria a las maquinas virtuales Xen Asignacin de CPUs virtuales a las maquinas virtuales Xen Asignacin de dispositivos de bloque para maquinas virtuales Xen Listando los dispositivos de bloque asignados a una maquina virtual Xen Asignando un archivo de imagen como disco duro a una maquina virtual PV Linux Asignando un disco duro o particin fsica a una maquina virtual Asignando un volumen lgico LVM a una maquina virtual PV Linux Asignando un volumen lgico LVM a una maquina virtual HVM Windows Desconectando un dispositivo de bloque virtual de una maquina virtual Administracin de interfaces de red para maquinas virtuales Xen Respaldo y clonacin de maquinas virtuales Xen Como respaldar maquinas virtuales basada en archivos Verificaciones previas del hardware de la maquina virtual Apagar la maquina virtual DomU Crear respaldo de datos del archivo de imagen Crear la maquina virtual Como restaurar maquinas virtuales basada en archivos Como respaldar maquinas virtuales basada en LVM Verificaciones previas del hardware de la maquina virtual Apagar la maquina virtual

Crear snapshot del volmen lgico del disco raz Crear la maquina virtual Crear respaldo de datos del snapshot Eliminar el snapshot Como restaurar maquinas virtuales basada en LVM Como clonar una maquina virtual basada en LVM Como convertir una maquina virtual de archivos a LVM 6. Resolucin de problemas Resolucin de problemas relacionados al reloj de las maquinas virtuales Resolucin de problemas relacionados a la red de las maquinas virtuales Recursos adicionales Sitios web Pginas de manual A. Historial de Revisiones B. Licencia de Documentacin Libre de GNU PREMBULO APLICABILIDAD Y DEFINICIONES COPIA LITERAL COPIADO EN CANTIDAD MODIFICACIONES COMBINACIN DE DOCUMENTOS COLECCIONES DE DOCUMENTOS AGREGACIN CON TRABAJOS INDEPENDIENTES TRADUCCIN TERMINACIN REVISIONES FUTURAS DE ESTA LICENCIA ADENDA: Cmo usar esta Licencia en sus documentos C. GNU Free Documentation License Lista de figuras 3.1. Servidor Linux sin Xen 3.2. Servidor Linux con Xen y un bridge 3.3. Servidor Linux con Xen, un bridge y un DomU 3.4. Servidor Linux con Xen, dos bridges, y dos Domu 3.5. Servidor Linux con Xen, dos bridges, uno dummy, y tres Domu 3.6. Servidor Linux con Xen, un bridge y un DomU va OS 3.7. Servidor Linux con Xen, dos bridges, y dos Domu va OS 3.8. Servidor Linux con Xen, tres bridges, y cuatro Domu va OS Lista de tablas 4.1. Esquema de particiones

PrefacioTabla de contenidos Convenciones del Documento Convenciones Tipogrficas Convenciones del documento Notas y Advertencias

Necesitamos sus comentarios!

Convenciones del DocumentoEste manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atencin sobre ciertas partes especficas de informacin.

Convenciones TipogrficasSe utilizan cuatro convenciones tipogrficas para llamar la atencin sobre palabras o frases especficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes: Negrita monoespaciado Utilizada para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de archivo y rutas. Tambin se utiliza para resaltar teclas claves y combinaciones de teclas. Para ver el contenido del archivo my_next_bestselling_novel en su directorio actual de trabajo, escriba el comando cat my_next_bestselling_novel en el intrprete de comandos de shell y pulse Enter para ejecutar el comando. Lo anterior incluye un nombre de archivo, un comando de shell y una tecla clave, todo en negrita-monoespaciado y distinguible gracias al contexto. Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el guin que conecta cada parte de una combinacin de tecla. Por ejemplo: Pulse Enter para ejecutar el comando. Pulse Control+Alt+F1 para cambiar a la primera terminal virtual. Pulse Control+Alt+F7 para volver a su sesin de Ventanas-X. La primera oracin resalta la tecla clave determinada que se debe pulsar. La segunda resalta dos conjuntos de tres teclas claves, cada conjunto presionado simultneamente. Si el cdigo fuente es discutido, nombres de clase, mtodos, funciones, nombres de variables, y valores de retorno mencionados dentro de un prrafo sern presentados como lo anterior, en Negrita-monoespaciado. Por ejemplo: Las clases de archivo relacionadas incluyen filename para sistema de archivos, file para archivos y dir para directorios. Cada clase tiene su propio conjunto asociado de permisos. Proportional Bold Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicacin; texto de cuadro de dilogo, botones etiquetados, etiquetas de cajilla de verificacin y botn de radio; ttulos de men y ttulos del sub-men. Por ejemplo: Seleccionar Sistema > Preferencias > Ratn desde la barra del men principal para lanzar Preferencias de Ratn. En la pestaa de Botones, haga clic en la cajilla ratn de mano izquierda y luego haga clic en Cerrar para cambiar el botn principal del ratn de la izquierda a la derecha (adecuando el ratn para la mano izquierda). Para insertar un caracter especial en un archivo gedit, seleccione desde la barra del men principal Aplicaciones > Accesorios > Mapa de caracteres. Luego, desde la barra del men elija Bsqueda > Hallar mapa de caracteres, teclee el nombre del caracter en el campo de Bsqueda y haga clic en Siguiente. El caracter buscado se resaltar en la Tabla de caracteres. Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto

para copiar y luego haga clic en el botn de Copiar. Ahora regrese a su documento y elija Editar > Pegar desde la barra de men de gedit. El texto anterior incluye nombres de aplicacin; nombres de men de todo el sistema y elementos; nombres de men de aplicaciones especficas y botones y texto hallados dentro de una interfaz GUI, todos presentados en negrita proporcional y distinguibles por contexto. Observe la > abreviatura utilizada para indicar recorrido a travs de un men y sus submenes. Esto es para evitar la dificultad de seguir el mtodo 'Seleccionar Ratn desde el sub-men Preferencias en el men de Sistema de la barra de men principal'.Itlicas-negrita monoespaciado

o Itlicas-negrita proporcional

Negrita monoespaciado o Negrita proporcional, la adicin de itlicas indica texto reemplazable o variable. Las itlicas denotan texto que usted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia. Por ejemplo: Para conectar a una mquina remota utilizando ssh, teclee ssh [email protected] en un intrprete de comandos de shell. Si la mquina remota es example.com y su nombre de usuario en esa mquina es john, teclee ssh [email protected]. El comando mount -o remount file-system remonta el sistema de archivo llamado. Por ejemplo, para volver a montar el sistema de archivo /home, el comando es mount -o remount /home. Para ver la versin de un paquete actualmente instalado, utilice el comando rpm -q paquete. ste entregar el resultado siguiente: paquete-versin-lanzamiento. Observe las palabras en itlicas- negrita sobre nombre de usuario, domain.name, sistema de archivo, paquete, versin y lanzamiento. Cada palabra es un marcador de posicin, tanto para el texto que usted escriba al ejecutar un comando como para el texto mostrado por el sistema. Aparte del uso estndar para presentar el ttulo de un trabajo, las itlicas denotan el primer uso de un trmino nuevo e importante. Por ejemplo: cuando el servidor Apache HTTP acepta solicitudes, enva procesos hijos o hilos para manejarlos. Este grupo de procesos hijos o hilos se conoce como un server-pool. Bajo el servidor HTTP de Apache 2.0, la responsabilidad para crear o mantener estos server-pool se resume en un grupo de mdulos llamado Mdulos de multi-procesamiento (MPMs). A diferencia de otros mdulos, slo un mdulo del grupo MPM puede ser cargado por el servidor HTTP de Apache.

Convenciones del documentoDos, usualmente de varias lneas, los tipos de datos se distinguen visualmente del texto circundante. Salida enviada a una terminal est establecida en tipo romano monoespaciado y presentada as:books books_tests Desktop Desktop1 documentation downloads drafts images mss notes photos scripts stuff svgs svn

Los listados de cdigo fuente tambin se establecen en romano monoespaciado, pero se presentan y resaltan de la siguiente manera:

package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); } } System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));

Notas y AdvertenciasFinalmente, utilizamos tres estilos visuales para llamar la atencin sobre la informacin que de otro modo se podra pasar por alto. Nota Una nota es una sugerencia, atajo o enfoque alternativo que se tiene a mano para la tarea. Ignorar una nota no debera tener consecuencias negativas, pero podra perderse de algunos trucos que pueden facilitarle las cosas. Importante Los cuadros de importante dan detalles de cosas que se pueden pasar por alto fcilmente: cambios de configuracin nicamente aplicables a la sesin actual, o servicios que necesitan reiniciarse antes de que se aplique una actualizacin. Ignorar estos cuadros de importante no ocasionar prdida de datos, pero puede causar enfado y frustracin. Advertencia Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionar prdida de datos.

Necesitamos sus comentarios!Si encuentra errores tipogrficos en este manual, o si ha pensando en alguna manera de mejorarlo, nos gustara escuchar lo. Por favor enve cualquier comentario o correccin a la direccin de correo: . Cuando envie reportes de mejoras o errores acerca de este manual, asegurese de mencionar el nombre del manual: Administracion_de_Servidores_Virtuales_con_Xen_y_GNU_Linux.

Si tiene sugerencias para mejorar la documentacin, trata de ser tan especifico como sea posible cuando las describa. Si ha encontrado un error, por favor incluya el nmero de seccin y algn otro texto cercano de tal manera que podamos localizarlo facilmente.

Captulo 1. Introduccin a la VirtualizacinTabla de contenidos Historia de la virtualizacin Ventajas de la virtualizacin Tecnicas de virtualizacin Parrafo 1

Historia de la virtualizacin Ventajas de la virtualizacin Tecnicas de virtualizacinMeter info sobre: En el campo de la virtualizacin existen diferentes tecnicas, entre las principales se encuentran: Para Virtualization Esta es una tcnica de Virtualizacin en la cual el sistema operativo de la maquina virtual se comunica con los dispositivos de hardware mediante una interfaz entre el OS de la maquina virtual y el Virtual Machine Monitor, esta tecnica permite que las maquinas virtuales ofrezcan un alto rendimiento al realizar operaciones importantes relacionadas al uso de los recursos de hardware, Esta tecnica require que el sistema operativo del las maquinas virtuales sea modificado. Sistemas operativos como Linux, FreeBSD, NetBSD, OpenSolaris con buenos candidatos para ejecutarse en entornos de Para Virtualizacin. Virtualizacin asistida por Hardware (Full Virtualization) La tcnica de Virtualizacin asistida por hardware permite que sistemas operativos NO modificas puedan ser ejecutados en Maquinas Virtuales, esta tcnica requiere que el CPU soporte las extensines Intel VT o AMD-V. Esta tcnica permite ejecutar sistemas operativos propietarios como Windows sin que sea modificado. Esta tecnica no ofrece por si sola el mejor rendimiento.

Captulo 2. Introduccin al hypervisor XenTabla de contenidos Historia del proyecto Xen Caracteristicas Xen Arquitectura de Xen Recursos adicionales Sitios web Pginas de manual

Historia del proyecto Xen

Xen is a virtual machine monitor (VMM) for x86-compatible computers. Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance.

Caracteristicas Xen Arquitectura de XenMeter la imagen:

Recursos adicionalesSi desea obtener ms informacin sobre los programas y pginas de manual relacionadas se aconseja que acceda a los siguientes recursos adicionales.

Sitios webEn las paginas listadas a continuacin encontrar mayor informacin sobre los programas utilizados en este capitulo.

http://www.xen.org - Sitio oficial Xen http://wiki.xensource.com/xenwiki/XenArchitecture? action=AttachFile&do=get&target=Xen+Architecture_Q1+2008.pdf - Xen Architecture Overview (February 2008) http://www.xen.org/community/xenhistory.html - Xen.org History http://wiki.xensource.com/xenwiki/XenKernelFeatures - Xen Kernel Features http://tx.downloads.xensource.com/downloads/docs/user/ - Xen 3.0 Users' Manual http://wiki.xensource.com - Xen.org Community Wiki http://blog.xen.org - Xen Community Blog

Pginas de manualPara conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se recomienda leer los manuales relacionados.

Captulo 3. Instalacin y configuracin del servidor Xen en GNU/LinuxTabla de contenidos Requerimientos de sistema Requerimientos de hardware Requerimientos de sofware Instalando Xen desde el cdigo fuente en Ubuntu Server Compilando Xen 3.4.x desde las fuentes en Ubuntu Server Instalando el kernel XenLinux desde el cdigo fuente Instalando el kernel XenLinux desde apt Configurando GRUB para arrancar Xen 3.4.x Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen en Ubuntu Server desde apt

Instalando el hypervisor Xen y el kernel XenLinux desde apt Configurando GRUB para arrancar Xen Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen en CentOS 5 Instalando Xen con yum Configurando GRUB para arrancar Xen Activando el demonio xend Arrancando y verificando el funcionamiento de Xen Instalando Xen 3.4 desde el repositorio gitco.de en CentOS 5 Configurando el demonio xend y la herramienta xm Configuracin de los medios de almacenamiento local para las VMs en Xen Creando discos virtuales basados en archivos Creando archivos de imagen ISO para medios de instalacin Creando discos virtuales basados en particiones Linux nativas Creando discos virtuales basados en volmenes lgicos Linux LVM Configuracin de los dispositivos de red fsicos y virtuales en Xen Introduccin a los modos de red en Xen Configurando Xen en modo bridge Configurando mltiples switches virtuales con Xen y bridges Linux Como crear un bridge dummy para una red privada sin conexin fsica Creando los bridge Linux usando las herramientas del sistema operativo Como generar direcciones MAC nicas para Xen Recursos adicionales Sitios web Pginas de manual En este capitulo veremos diferentes mtodos para implementar un servidor de virtualizacin con el hypervisor Xen y diferentes distribuciones GNU/Linux como: Debian, Ubuntu y aquellas basadas en RHEL 5 como CentOS 5. Se hace especial nfasis en la instalacin del hypervisor y las herramientas de Xen desde el cdigo fuente y usando los paquetes incluidos de la distribucin Ubuntu Server 8.04 LTS amd64.. A razgos generales, la instalacin de un servidor de virtualizacin con Xen y GNU/Linux incluye los siguientes procedimientos: Identificar los requerimientos de hardware y software para el servidor de virtualizacin Xen. Instalacin de Ubuntu Server 8.04 LTS amd64 en servidor. Instalacin del hypervisor Xen junto con sus herramientas, bibliotecas y archivos de configuracin. Instalar el kernel XenLinux para el Domain-0 y domUs. Configuracin del gestor de arranque grub para ejecutar Xen y el Domain-0 con el kernel XenLinux. Configurar el demonio xend en el Domain-0. Configurar un medio de almacenamiento local para las maquinas virtuales. Configurar el entorno de red local y virtual para el Domain-0 y las maquinas virtuales.

En las siguientes veremos los procedimientos paso a paso usando diferentes mtodos para diferentes distribuciones GNU/Linux.

Requerimientos de sistemaEs importante tener en claro cuales son los requerimientos para una correcta implementacin del servidor de virtualizacin Xen, los ejemplos de las instalaciones y configuraciones que se refieren al servidor Xen se realizan en las distribuciones Ubuntu 8.04 LTS y CentOS 5.5 en sus versiones 64-bit (amd64/x86_64). Es importante notar que en las arquitecturas de 64-bit se pueden crear maquinas virtuales con sistemas operativos guest tanto en 32 y 64 bit, esto le permitir una gran flexibilidad tanto para realizar pruebas como para entornos de produccin con sistemas operativos y aplicaciones viejas.

Requerimientos de hardwareLa instalacin de un host Xen requiere por lo menos un equipo fsico x86, el servidor Xen ser dedicado para hospedar y ejecutar las maquinas virtuales o VMs (Virtual Machines), se recomienda que se dedique el sistema exclusivamente para la ejecucin de Xen ya que cualquier otra operacin podra afectar el rendimiento del sistema host como de las mquinas virtuales. Aunque el hypervisor Xen puede ser ejecutado en sistemas x86 de 32-bit (i386) se limitara a solo ejecutar VMs de 32-bit. Si tiene que ejecutar maquinas virtuales tanto en 32-bit y 64bit entonces dedique un servidor con soporte 64-bit. Los requerimientos del hardware para el servidor Xen van a depender del tipo de maquinas virtuales que vaya a ejecutar. El tema depende de si va a ejecutar maquinas virtuales en modo Paravirtualized (PVM) o en Full virtulization (HVM). Para ejecutar maquinas virtuales en modo Full virtualization va a requerir que el BIOS de la tarjeta madre tenga el soporte de Virtualizacin activado y que el procesador tambin incluya el soporte de virtualizacin. Tanto AMD como Intel incluyen soporte de virtualizacin asistida por hardware en sus procesadores actuales, AMD-V es la tenologa introducida por AMD e Intel VT VT-x es la tenologa introducida por Intel. En cuanto al uso de memoria RAM, se recomienda que dedique por lo menos 512 de RAM para el Domain0 ya que requiere recursos para realizar las operaciones de I/O y comunicacin entre el hypervisor y las maquinas virtuales. Si cree que va a tener maquinas virtuales que hace uso intensivo de I/O como por ejemplo usando sistemas con RAID por software, iSCSI o LVM entonces se recomienda agregar otros 512MB extras de RAM para el Domain0. Para las maquinas virtuales usted haga el calculo, recuerde que en la mayora de los casos las maquinas virtuales harn mayor uso de memoria que de CPU por lo que no escatime en recursos. La asignacin de disco se recomienda que dedique por lo menos 20 GB de espacio para el sistema operativo del Domain0, ya que va a ejecutar Xen en un Domain0 Linux no va a usar demasiado espacio, 4GB seran suficientes, sin embargo, se recomienda agregar ms espacio para los logs de sistema, archivo de imgenes de sistemas operativos, imgenes ISO, directorio para almacenar el estado (RAM) de las maquinas virtuales, entre otras cosas. La configuracin de red para el servidor Xen influenciara en grande el modo de conexin de las maquinas virtuales, la mayora de modos y dispositivos de red disponibles en un

kernel Linux es soportado por Xen, desde interfaces de red 100M/s, 1GB o 10GB Ethernet, Bonding (Link Aggregation), VLANs, NFS, iSCSI, y otros esquemas conocidos pueden ser configurados en el Domain0 para proveer entornos compartidos, seguros y aislados de red para las maquinas virtuales. Si desea saber que tipo de CPU tiene un sistema puede iniciar con cualquier disco Live Linux y ver el contenido del archivo /proc/cpuinfo para ver la informacin de los procesadores, por ejemplo:# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Xeon(R) CPU stepping : 10 cpu MHz : 1995.043 cache size : 6144 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1

E5405

@ 2.00GHz

Adems si desea saber si el CPU tiene soporte para virtualizacin asistida por hardware entonces debera ver la bandera que indique si el soporte esta disponible, Intel incluye la bandera vmx, por ejemplo:# grep 'vmx' /proc/cpuinfo flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc

bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm flags : fpu de tsc msr pae pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx lahf_lm

tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1 mce cx8 apic sep mtrr mca cmov pat pbe syscall nx lm constant_tsc tm2 ssse3 cx16 xtpr dca sse4_1

En sistemas con CPU AMD, busque el flag svm (Secure Virtual Machine), por ejemplo:# grep 'svm' /proc/cpuinfo flags : fpu de tsc msr pae mce cx8 pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy flags : fpu de tsc msr pae mce cx8 pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy apic mtrr mca cmov pat lm 3dnowext 3dnow rep_good apic mtrr mca cmov pat lm 3dnowext 3dnow rep_good

Si las banderas no aparecen entonces asegurese que el soporte de Virtualizacin este habilitado en el BIOS, si su BIOS no incluye el soporte verifique si hay actualizacin disponibles con el fabricante del hardware. Es importante mencionar que en algunas tarjetas madres el soporte de la virtualizacin no aparece aun despus de activar el soporte y reiniciar el sistema, se recomienda que apague por completo el servidor, de preferencia desconectndolo de la corriente y volver a encenderlo, se ha reportado que es un mtodo que ha funcionado en varias tarjetas madre. Se recomienda que pruebe la compatibilidad de su hardware usando el Xen Live CD, el cual es un disco Live con Debian Lenny 5.0 con opcin para 32 y 64 bit.

Requerimientos de sofwarePara la ejecucin del hypervisor Xen vamos a requerir de un gestor de arranque con soporte para arrancar el hypervisor Xen y cargar un kernel Linux con soporte Xen, por ejemplo GRUB (GRand Unified Bootloader), recuerde que el hypervisor se ejecuta entre el hardware (BIOS) y el sistema operativo, por lo que vamos a requerir que el gestor de arranque inicialice el hypervisor como si fuera un kernel de sistema y el kernel vmlinuz lo ejecute como un mdulo, este kernel ser requerido para inicializar el sistema operativo del dominio privilegiado Domain0.

El kernel que Xen va a cargar como modulo debe estar modificado para soportar Xen, el kernel va ser utilizado por el dominio privilegiado o Dom0, el cual tendr privilegios para iniciar y controlar nuevas maquinas virtuales o DomU, acceder directamente al hardware a travs de los drivers Backend los cuales multiplexan y re envan las peticiones de hardware desde los drivers Frontend en los DomU. Versiones modificadas de Linux, NetBSD y Solaris pueden ser usados como Dom0, algunas de las distribuciones que proveen kernels Dom0 para Linux son: Debian Ubuntu RHEL CentOS SLES OpenSUSE Gentoo

Vea la informacin oficial de cada distribucin para ms informacin sobre como instalar un kernel Dom0. Para ms informacin acerca de kernels Dom0 para diferentes distribuciones Linux vea la pagina del wiki: Xen dom0 kernels.. El desarrollo actual de Xen con respecto al kernel se esta por incluir en el kernel linux upstream, todo el trabajo se esta enfocando en el kernel Xen PVPOS, para ms informacin ver la pagina del wiki: Xen paravirt_ops for upstream Linux kernel.. Para ejecutar maquinas virtuales PVM Linux, va requerir un kernel linux del guest incluya soporte Xen, este kernel debe proveer de los drivers Frontend para comunicarse y hacer peticiones de hardware con los drivers Backend que se ejecutan en el Domain0, algunas distribuciones incluyen un kernel con los drivers backend y frontend para que pueda ser usando tanto para dom0 y domU. Para configurar el entorno de red fsico y virtual en el servidor Xen se va a requerir de las herramientas de configuracin de red en linux, asegurese de instalar el paquete bridge-utils en Debian/Ubuntu para la creacin de switches virtuales o bridges. Para configurar los sistemas de almacenamiento va se recomienda instalar el soporte para la creacin y administracin de volmenes lgicos LVM, instale el paquete lvm2 Debian/Ubuntu.

Instalando Xen desde el cdigo fuente en Ubuntu ServerEn esta seccin veremos como instalar el hypervisor Xen y sus herramientas desde el cdigo fuente en la distribucin GNU/Linux Ubuntu Server, en especifico instalaremos la versin 3.4.x la cual es la versin estable recomendada y la que cuenta con mayores carcteristicas y soporte por la comunidad. Al instalar Xen desde el cdigo fuente nos permite instalar el kernel XenLinux que podr ser usado tanto para el Domain-0 como para las domUs.

Antes de iniciar la instalacin de Xen, se recomienda deshabilitar el soporte de Apparmor ya que estando activado puede prevenir que algunas maquinas virtuales funcionen, para detener y desactivar el servicio Apparmor ejecute los siguientes comandos:# /etc/init.d/apparmor stop # update-rc.d -f apparmor remove

No se recomienda que active apparmor a menos que sepa administrarlo para que coopere con Xen.

Compilando Xen 3.4.x desde las fuentes en Ubuntu ServerPara instalar el hypervisor Xen, sus herramientas y el kernel XenLinux se recomienda que instale todas las dependencias requeridas para la compilacin y de tiempo de ejecucin. instale las siguientes paquetes:# apt-get install \ bcc bin86 binutils bridge-utils build-essential bzip2 debhelper gawk gcc iasl iproute flex make \ module-init-tools git-core gettext mercurial gitk patch udev uuid-dev libcurl3 libvncserver0 \ libbz2-dev libc6-dev libcurl4-openssl-dev libjpeg62-dev libncurses5-dev libsdl-dev libssl-dev \ libvncserver-dev libx11-dev zlib1g-dev e2fslibs-dev dpkg-dev xserverxorg-dev \ transfig tgif texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended \ python python-dev python-pyopenssl python-pam python-twisted

Nota Para ms informacin acerca de las dependencias lea el archivo README incluido en la raz de las fuentes de Xen. Importante Para incluir el soporte PCI passthrough debe instalar el paquete pciutils-dev antes de compilar xen tools. Importante Para sistemas de 64-bit debe instalar paquete gcc-multilib. Descargue las fuentes de Xen 3.4.x desde el sitio oficial de Xen, la versin 3.4.x se encuentra en la pgina Xen Hypervisor 3.4.3 Download. Descargue y prepare las fuentes en el directorio /usr/src:# # # # cd /usr/src wget http://bits.xensource.com/oss-xen/release/3.4.3/xen-3.4.3.tar.gz tar -zxvf xen-3.4.3.tar.gz cd xen-3.4.3

Compilamos un kernel XenLinux, el Hypervisor, las herramientas y documentacin de Xen:# make world

Importante Cuando se configura el kernel XenLinux se le preguntar acepte la instalacin de determinadas funcionalidades del kernel, algunas en modo built-in (Y) y otras como modulo (M/m), se recomiende acepte los parmetros predeterminados presionando solo Enter. Importante El parmetro world crear una imagen de kernel XenLinux (vmlinuz-2.6.x-xen) que puede ser usado tanto en el dominio privilegiado Domain0 o en dominios no provilegiados domUs.. Ejecute el comando make install para instalar el hypervisor Xen, el kernel XenLinux, las herramientas y la documentacin de Xen en el sistema:# make install

Si no desea instalar el kernel XenLinux 2.6.18, instale los elementos por separado, por ejemplo, para compilar e instalar el hypervisor Xen y las herramientas ejecute:# make xen # make tools # make install-xen # make install-tools PYTHON_PREFIX_ARG=

Opcionalmente puede instalar el soporte para Stub domain:# make stubdom # make install-stubdom

Espere a que termine la instalacin, al terminar revisamos el contenido del directorio /boot para verificar la instalacin del hypervisor:# ls -l /boot/xen* -rw-r--r-- 1 root root 549722 lrwxrwxrwx 1 root root 12 3.4.3.gz lrwxrwxrwx 1 root root 12 3.4.3.gz lrwxrwxrwx 1 root root 12 3.4.3.gz -rw-r--r-- 1 root root 8950258 2010-07-18 23:36 /boot/xen-3.4.3.gz 2010-07-18 23:36 /boot/xen-3.4.gz -> xen2010-07-18 23:36 /boot/xen-3.gz -> xen2010-07-18 23:36 /boot/xen.gz -> xen2010-07-18 23:36 /boot/xen-syms-3.4.3

Si instalo el kernel XenLinux 2.6.18 incluido en las fuentes de Xen, se instalan los siguientes archivos y directorios:

Imagen kernel XenLinux: /boot/vmlinuz-2.6.18.8-xen. Configuracin kernel XenLinux: /boot/config-2.6.18.8-xen. Mdulos kernel XenLinux: /lib/modules/2.6.18.8-xen.

El demonio de control xend se instala en /usr/sbin/xend junto con la herramienta /usr/bin/xm y otros programas de control, algunas bibliotecas compartidas son instaladas en /usr/lib, como /usr/lib/libxenctl.so y /usr/lib/libxenstore.so, el emulador

de dispositivos para maquinas DomU HVM Guests QEMU se instala en /usr/lib/xen/bin/qemu-dm. En las siguientes secciones veremos como instalar el kernel Linux con soporte Xen (XenLinux).

Instalando el kernel XenLinux desde el cdigo fuenteComo se menciono en la seccin anterior, el comando make world compila el kernel XenLinux 2.6.18.8 con sus respectivos mdulos, y el comando make install los instal en las rutas::

Imagen kernel XenLinux: /boot/vmlinuz-2.6.18.8-xen. Configuracin kernel XenLinux: /boot/config-2.6.18.8-xen. Mdulos kernel XenLinux: /lib/modules/2.6.18.8-xen.

Si su sistema requiere de una imagen initrd para el kernel XenLinux puede crearlo con el comando mkinitramfs, por ejemplo:# depmod 2.6.18.8-xen # cd /boot # mkinitramfs -o initrd.img-2.6.18.8-xen 2.6.18.8-xen

Importante Si instala soporte LVM en el Domain-0 se recomienda que actualice la imagen initrd, por ejemplo: update-initramfs -u -k 2.6.18.8-xen. En la siguiente seccin veremos como configurar el arrancador GRUB para inicializar el hypervisor Xen y el domain-0.

Instalando el kernel XenLinux desde aptEn Ubuntu Server 8.04 el deposito universe incluye un kernel XenLinux 2.4.24.x, la cual puede usar en lugar de la versin XenLinux 2.6.18 incluido en las fuentes de Xen 3.4.x, el kernel incluido en Ubuntu se puede usar tanto para el dominio privilegiado Domain-0 y las domUs, este kernel es compatible para arquitecturas de 32 y 64 bits, los paquetes del kernel y mdulos XenLinux son:

linux-image-2.6.24-28-xen - Imagen del kernel y mdulos con soporte Xen. linux-ubuntu-modules-2.6.24-28-xen - Mdulos del kernel adicionados por Ubuntu con soporte Xen. linux-restricted-modules-2.6.24-28-xen - Mdulos del kernel restrictivos adicionados por Ubuntu con soporte Xen.

Instale la imagen del kernel XenLinux y sus mdulos desde apt:# apt-get install linux-image-2.6.24-28-xen # depmod 2.6.24-28-xen

Importante Si va a instalar maquinas virtuales Ubuntu Server versiones 8.04 se recomienda instalar este kernel. Opcionalmente puede instalar los paquetes linux-ubuntu-modules-2.6.24-28-xen y linuxrestricted-modules-2.6.24-28-xen para instalar los drivers para dispositivos adicionales.

Los paquetes de la imagen y mdulos de kernel XenLinux instalan los siguientes archivos y directorios:

Imagen kernel XenLinux: /boot/vmlinuz-2.6.24-28-xen. Imagen Initrd XenLinux: /boot/initrd.img-2.6.24-28-xen. Configuracin kernel XenLinux: /boot/config-2.6.24-28-xen. Mdulos kernel XenLinux: /lib/modules/2.6.24-28-xen.

En la siguiente seccin veremos como configurar el arrancador GRUB para inicializar el hypervisor Xen y el domain-0.

Configurando GRUB para arrancar Xen 3.4.xPara arrancar un host con Xen es necesario configurar el gestor de arranque GRUB para iniciar el hypervisor Xen y arrancar el kernel XenLinux para el Domain-0, la documentacin de xen recomienda crear una entrada en el archivo de configuracin de grub /boot/grub/menu.lst, por ejemplo:title kernel module module Xen 3.0 / XenLinux 2.6 /boot/xen-3.0.gz /boot/vmlinuz-2.6-xen root= ro console=tty0 /boot/initrd-2.6-xen

Importante Antes de modificar el archivo de GRUB es recomendable documentar la configuracin del kernel actual y agregar una entrada adicional con el nuevo kernel, de manera que si no funciona el arranque de Xen el Domain-0 pueda iniciar con un kernel funcional. La entrada predeterminada para arrancar un kernel 2.6.24 no modificado de Ubuntu Server se ve as:title Ubuntu 8.04.4 LTS, kernel 2.6.24-28-server root (hd0,0) kernel /boot/vmlinuz-2.6.24-28-server root=UUID=557cfe8a-e2db4bdd-a965-d5925ebc28a3 ro quiet splash initrd /boot/initrd.img-2.6.24-28-server

En este caso se usa la ruta /boot/vmlinuz-2.6.24-28-server ya que el directorio /boot esta dentro de la particin raz (/) del sistema. Nota El nombre tipo /dev/sdX de la particin root con UUID 557cfe8a-e2db-4bdd-a965d5925ebc28a3 puede ser obtenido con el comando blkid. Cuando instalamos el kernel con el paquete linux-image-2.6.24-28-xen en Ubuntu Server 8.04, automticamente se agrega la siguiente entrada a la configuracin de GRUB:title Xen 3.4.3 / Ubuntu 8.04.4 LTS, kernel 2.6.18.8-xen root (hd0,0) kernel /boot/xen-3.4.3.gz module /boot/vmlinuz-2.6.18.8-xen root=UUID=557cfe8a-e2db-4bdda965-d5925ebc28a3 ro console=tty0 module /boot/initrd.img-2.6.18.8-xen

Es importante que si asigno una particin separada para el directorio /boot, por ejemplo /dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:title Xen 3.4.3 / Ubuntu 8.04.4 LTS, kernel 2.6.18.8-xen root (hd0,0) kernel /xen-3.4.3.gz module /vmlinuz-2.6.18.8-xen root=UUID=557cfe8a-e2db-4bdd-a965d5925ebc28a3 ro console=tty0 module /initrd.img-2.6.18.8-xen

Note que se especifica la particin de arranque con el parametro root y adems se incluye una imagen initrd.

Activando el demonio xendEl demonio /usr/sbin/xend debe ser iniciado automticamente al arranque del sistema, xend es necesario ya que es la interfaz entre las herramientas xm y el hypervisor Xen para realizar las operaciones requeridas por las maquinas virtuales. Cuando instalamos xen tools se instalo el script de control de ejecucin /etc/init.d/xend, con el script podemos controlar la ejecucin del demonio xend, para que el demonio xend se inicie automticamente al arranque del sistema use:# update-rc.d xend defaults 20 21

Tambin se recomienda que agregue el servicio xendomains, ms adelante hablaremos de el, por ahora basta saber que debe ser iniciado automticamente para apagar o iniciar automticamente las maquinas virtuales.# update-rc.d xendomains defaults 21 20

El script /etc/init.d/xendomains incluye algunas variables de control desde el archivo /etc/sysconfig/xendomains, sin embargo esta ruta no se usa en Debian/Ubuntu, es ms usada para distribuciones basadas en RPM, por lo que moveremos el archivo al directorio /etc/default que es ms apropiado para distribuciones Debian/Ubuntu:# mv /etc/sysconfig/xendomains /etc/default/

Ahora debemos editar el script /etc/init.d/xendomains para adaptar las rutas, cambie el valor de las variables LOCKFILE y XENDOM_CONFIG, por ejemplo:LOCKFILE=/var/lock/xendomains XENDOM_CONFIG=/etc/default/xendomains

Nota Por default LOCKFILE apunta a /var/lock/subsys, el cual no existe en Ubuntu/Debian, /var/lock est montado sobre un disco ramdisk tipo tmpfs. El script xendomains por default guarda el estado de las maquinas virtuales (disco y memoria) al apagar el sistema (Domain-0), por default guarda un archivo de cada VM en el directorio definido por la variable XENDOMAINS_SAVE dentro del archivo /etc/default/xendomains, por default esta as:XENDOMAINS_SAVE=/var/lib/xen/save

Cree el directorio para almacenar el estado de las VMs al apagar o re iniciar el sistema:

# mkdir -p /var/lib/xen/save

Ahora si re inicie el sistema para arrancar el Xen y el domain 0:# reboot

En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie el sistema para arrancar con Xen y el Dom0.

Arrancando y verificando el funcionamiento de XenPara verificar el correcto funcionamiento de un sistema con Xen, primero verifique que esta ejecutando el kernel linux modificado, use uname para dicha tarea:# uname -a Linux xh01.example.com 2.6.18.8-xen #1 SMP Thu May 27 01:27:21 UTC 2010 x86_64 GNU/Linux

Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema operativo GNU/Linux x86_64, es decir, 64-bit. Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo /proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando en el dominio de control o privilegiado, por ejemplo:# cat /proc/xen/capabilities control_d

Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando xm, veamos la informacin del sistema xen:# xm info host : xh01.example.com release : 2.6.18.8-xen version : #1 SMP Tue Oct 12 20:58:31 CDT 2010 machine : x86_64 nr_cpus : 2 nr_nodes : 1 cores_per_socket : 2 threads_per_core : 1 cpu_mhz : 2700 hw_caps : 178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f:00000000 virt_caps : hvm total_memory : 1919 free_memory : 119 node_to_cpu : node0:0-1 node_to_memory : node0:119 xen_major : 3 xen_minor : 4 xen_extra : .3 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler : credit xen_pagesize : 4096 platform_params : virt_start=0xffff800000000000 xen_changeset : unavailable

cc_compiler cc_compile_by cc_compile_domain cc_compile_date xend_config_format

: : : : :

gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) root example.com Tue Oct 12 21:09:51 CDT 2010 4

En la salida del comando anterior podemos determinar lo siguiente: host El nombre de host es visualizado. release Versin del kernel linux sobre el que esta corriendo machine Arquitectura del CPU x86_64 nr_cpus Nmero de CPUs en el sistema cores_per_socket Nmero de ncleos por zcalo cpu_mhz Frecuencia del CPU total_memory Memoria total disponible en el sistema xen_major, xen_minor, xen_extra Versiones mayores, menores y extras de xen, por ejemplo 3.4.3 xen_caps Capacidad de ejecucin de maquinas virtuales, muestra el tipo de VMs capaz de ejecutar Algo importante es ver xen_caps para saber que tipo de maquinas virtuales soporta nuestro entorno. Ahora podemos consultar la informacin de maquinas virtuales a travs de xend, use la opcin list del comando xm para ver un listado de maquinas virtuales en ejecucin:# xm list Name Time(s) Domain-0 15.7 ID 0 Mem VCPUs 512 2 State r-----

Nota Vea que la cantidad de memoria asignada al Domain-0 esta limitada a 512M. Si la informacin antes mostrada fue similar significa que Xen 3.4.x esta corriendo exitosamente sobre un Domain-0 Ubuntu 8.04 LTS Server edicin amd64.

Instalando Xen en Ubuntu Server desde apt

Ubuntu 8.04 LTS Server tiene soporte incluido para Xen, el soporte Xen para el kernel 2.6.24 funciona tanto para el Domain-0 y las domUs, tanto para las versiones i386 como amd64. El hypervisor soportado es Xen 3.2 as como las herramientas de sistema. Adems incluye el soporte de xen-tools, las cuales es un conjunto de scripts para automatizar la creacin y administracin de maquinas virtuales. En las siguientes secciones veremos como instalar un servidor Xen para hospedar maquinas virtuales tanto de tipo PVM como HVM sobre Ubuntu 8.04 LTS Server en la edicin amd64 la cual nos permitir ejecutar maquinas virtuales tanto en arquitecturas 32-bit (i386) como 64-bit (amd64).

Instalando el hypervisor Xen y el kernel XenLinux desde aptEl sistema de paquetes apt incluye el meta paquete ubuntu-xen-server el cual instala los paquetes requeridos para el servidor Xen, la lista de los paquetes incluidos son:

xen-hypervisor-3.2 - Hypervisor Xen. xen-docs-3.2 - Documentacin de Xen 3.2. linux-image-2.6.24-28-xen - Imagen del kernel y mdulos con soporte Xen. linux-ubuntu-modules-2.6.24-28-xen - Mdulos del kernel adicionados por Ubuntu con soporte Xen. linux-restricted-modules-2.6.24-28-xen - Mdulos del kernel restrictivos adicionados por Ubuntu con soporte Xen. libxen3 - Bibliotecas requeridas para la ejecucin de Xen en el Domain0. python-xen-3.2 - Soporte mdulos python para Xen. xen-utils-3.2 - Incluye el servidor xend y la herramienta de administracin xm. binutils 2.18.1 - Utilerias de sistema. bridge-utils - Herramientas para la creacin y administracin de switches virtuales (bridges). libdirectfb-1.0-0 - Soporte FrameBuffer. libsdl1.2debian - Soporte SDL. debootstrap - Herramientas para automatizar la creacin de instalaciones Debian/Ubuntu. xen-tools - Herramientas para automatizar la creacin y administracin de maquinas virtuales Debian/Ubuntu. rinse xfsprogs libc6-xen xen-hypervisor-amd64 xen-hypervisor-i386 xen-hypervisor-i386-pae

Adems instala los siguientes paquetes adicionales o dependencias:

Y por si fuera poco hace la recomendacin de otros paquetes tiles:

xen-shell

Instalamos el metapaquete ubuntu-xen-server, el cual instalar todos los paquetes requeridos para nuestro entorno de virtualizacin.# apt-get install ubuntu-xen-server

El paquete xen-hypervisor-3.2 instal el hypervisor xen en el directorio /boot:# ls -l /boot/xen* -rw-r--r-- 1 root root 401328 2009-02-20 21:04 /boot/xen-3.2.gz

Adems el paquete xen-utils instalan el demonio /usr/bin/xend y el programa /usr/bin/xm junto con un conjunto de bibliotecas requeridas para el funcionamiento de Xen. Los paquetes de la imagen y mdulos de kernel XenLinux instalan los siguientes archivos y directorios:

Imagen kernel XenLinux: /boot/vmlinuz-2.6.24-28-xen. Imagen Initrd XenLinux: /boot/initrd.img-2.6.24-28-xen. Configuracin kernel XenLinux: /boot/config-2.6.24-28-xen. Mdulos kernel XenLinux: /lib/modules/2.6.24-28-xen.

Al final de la instalacin de los paquetes arriba mencionados el sistema de paquetes actualizar el archivo de configuracin de GRUB para incluir una entrada para arrancar el sistema con el hypervisor Xen y un kernel Linux modificado con el soporte Xen, siga con la siguiente seccin para ver las configuraciones de GRUB. En la siguiente seccin veremos como configurar el arrancador GRUB para inicializar el hypervisor Xen y el domain-0.

Configurando GRUB para arrancar XenPara arrancar un host con Xen es necesario configurar el gestor de arranque GRUB para iniciar el hypervisor Xen y arrancar el kernel XenLinux para el Domain-0, la documentacin de xen recomienda crear una entrada en el archivo de configuracin de grub /boot/grub/menu.lst, por ejemplo:title kernel module module Xen 3.0 / XenLinux 2.6 /boot/xen-3.0.gz /boot/vmlinuz-2.6-xen root= ro console=tty0 /boot/initrd-2.6-xen

Importante Antes de modificar el archivo de GRUB es recomendable documentar la configuracin del kernel actual y agregar una entrada adicional con el nuevo kernel, de manera que si no funciona el arranque de Xen el Dom0 pueda iniciar con un kernel funcional. La entrada predeterminada para arrancar un kernel 2.6.24 no modificado de Ubuntu Server se ve as:title Ubuntu 8.04.4 LTS, kernel 2.6.24-28-server root (hd0,0) kernel /boot/vmlinuz-2.6.24-28-server root=UUID=557cfe8a-e2db4bdd-a965-d5925ebc28a3 ro quiet splash

initrd

/boot/initrd.img-2.6.24-28-server

En este caso se usa la ruta /boot/vmlinuz-2.6.24-28-server ya que el directorio /boot esta dentro de la particin raz (/) del sistema. Nota El nombre tipo /dev/sdX de la particin root con UUID 557cfe8a-e2db-4bdd-a965d5925ebc28a3 puede ser obtenido con el comando blkid. Cuando se instala el paquete ubuntu-xen-server en Ubuntu Server 8.04, automticamente se agrega la siguiente entrada a la configuracin de GRUB:title Xen 3.2 / Ubuntu 8.04.4 LTS, kernel 2.6.24-28-xen root (hd0,0) kernel /boot/xen-3.2.gz module /boot/vmlinuz-2.6.24-28-xen root=UUID=557cfe8a-e2db4bdd-a965-d5925ebc28a3 ro console=tty0 module /boot/initrd.img-2.6.24-28-xen

Es importante que si asigno una particin separada para el directorio /boot, por ejemplo /dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:title Xen 3.2 / Ubuntu 8.04.4 LTS, kernel 2.6.24-28-xen root (hd0,0) kernel /xen-3.2.gz module /vmlinuz-2.6.24-28-xen root=UUID=557cfe8a-e2db-4bdda965-d5925ebc28a3 ro console=tty0 module /initrd.img-2.6.24-28-xen

Note que se especifica la particin de arranque con el parametro root y adems se incluye una imagen initrd.

Activando el demonio xendEl demonio /usr/sbin/xend debe ser iniciado automticamente al arranque del sistema, xend es necesario ya que es la interfaz entre las herramientas xm y el hypervisor Xen para realizar las operaciones requeridas por las maquinas virtuales. El paquete xen-utils instalo el script de control de ejecucin /etc/init.d/xend, con el script podemos controlar la ejecucin del demonio xend, para que el demonio xend se inicie automticamente al arranque del sistema use:# update-rc.d xend defaults

Tambin se recomienda que agregue el servicio xendomains, ms adelante hablaremos de el, por ahora basta saber que debe ser iniciado automticamente para apagar o iniciar automticamente las maquinas virtuales.# update-rc.d xendomains defaults

El script xendomains por default guarda el estado de las maquinas virtuales (disco y memoria) al apagar el sistema (Domain-0), por default guarda un archivo de cada VM en el directorio definido por la variable XENDOMAINS_SAVE dentro del archivo /etc/default/xendomains, por default esta as:XENDOMAINS_SAVE=/var/lib/xen/save

Cree el directorio para almacenar el estado de las VMs al apagar o re iniciar el sistema:# mkdir -p /var/lib/xen/save

Ahora si re inicie el sistema para arrancar el Xen y el domain 0:# reboot

En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie el sistema para arrancar con Xen y el Dom0.

Arrancando y verificando el funcionamiento de XenPara verificar el correcto funcionamiento de un sistema con Xen, primero verifique que esta ejecutando el kernel linux modificado, use uname para dicha tarea:# uname -a Linux curso00.example.com 2.6.24-28-xen #1 SMP Thu May 27 01:27:21 UTC 2010 x86_64 GNU/Linux

Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema operativo GNU/Linux x86_64, es decir, 64-bit. Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo /proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando en el dominio de control o privilegiado, por ejemplo:# cat /proc/xen/capabilities control_d

Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando xm, veamos la informacin del sistema xen:# xm info host : curso00.example.com release : 2.6.24-28-xen version : #1 SMP Thu May 27 01:27:21 UTC 2010 machine : x86_64 nr_cpus : 2 nr_nodes : 1 cores_per_socket : 2 threads_per_core : 1 cpu_mhz : 2613 hw_caps : 178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f total_memory : 2047 free_memory : 125 max_free_memory : 1664 max_para_memory : 1660 max_hvm_memory : 1648 node_to_cpu : node0:0-1 xen_major : 3 xen_minor : 2 xen_extra : .1-rc1-pre xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler : credit

xen_pagesize platform_params xen_changeset cc_compiler cc_compile_by cc_compile_domain cc_compile_date xend_config_format

: : : : : : : :

4096 virt_start=0xffff800000000000 unavailable gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) buildd buildd Sat Feb 21 03:01:02 UTC 2009 4

En la salida del comando anterior podemos determinar lo siguiente: host El nombre de host es visualizado. release Versin del kernel linux sobre el que esta corriendo machine Arquitectura del CPU x86_64 nr_cpus Nmero de CPUs en el sistema cores_per_socket Nmero de ncleos por zcalo cpu_mhz Frecuencia del CPU total_memory Memoria total disponible en el sistema xen_major, xen_minor, xen_extra Versiones mayores, menores y extras de xen, por ejemplo 3.2.1_rc1-pre xen_caps Capacidad de ejecucin de maquinas virtuales, muestra el tipo de VMs capaz de ejecutar Algo importante es ver xen_caps para saber que tipo de maquinas virtuales soporta nuestro entorno. Ahora podemos consultar la informacin de maquinas virtuales a travs de xend, use la opcin list del comando xm para ver un listado de maquinas virtuales en ejecucin:# xm list Name Time(s) Domain-0 26.0 ID 0 Mem VCPUs 1879 2 State r-----

Nota Vea la cantidad de memoria asignada al Domain-0.

Si la informacin antes mostrada fue similar significa que Xen esta corriendo exitosamente sobre un Domain-0 Ubuntu 8.04 LTS Server edicin amd64.

Instalando Xen en CentOS 5En esta seccin veremos como instalar Xen y sus requerimientos en un sistema CentOS Server 5. La instalacin se realiza usando CentOS 5.5 en su versin x86_64.

Instalando Xen con yumCentOS 5.x incluye soporte para Xen, el soporte Xen para el kernel 2.6.18 funciona tanto para el Dom0 y DomU tanto para las versiones i386 como amd64. El hypervisor soportado es Xen 3.1 as como las herramientas de sistema. CentOS incluye la herramienta de administracin de maquinas virtuales Virtual Manager, la cual es una interfaz grfica para simplificar la administracin de un entorno de virtualizacin. Para instalar el soporte de Xen instale el paquete kernel-xen y xen usando la herramienta yum, por ejemplo:# yum install kernel-xen xen

Al instalar los paquetes kernel-xen y xen automticamente se instalan las siguientes dependencias: kernel-xen xen bridge-utils e4fsprogs-libs iscsi-initiator-utils libvirt libvirt-python python-virtinst qemu xen-libs

En las siguientes secciones veremos como verificar el funcionamiento de Xen en CentOS.

Configurando GRUB para arrancar XenPara arrancar un host con Xen es necesario configurar el gestor de arranque GRUB para iniciar el hypervisor Xen y arrancar el kernel del dominio privilegiado, la documentacin de xen incluye este ejemplo de entrada en el archivo de configuracin de GRUB:title kernel module module Xen 3.0 / XenLinux 2.6 /boot/xen-3.0.gz /boot/vmlinuz-2.6-xen root= ro console=tty0 /boot/initrd-2.6-xen

Importante Antes de modificar el archivo de GRUB es recomendable documentar la configuracin del kernel actual y agregar una entrada adicional con el nuevo kernel, de manera que si no funciona el arranque de Xen el Dom0 pueda iniciar con un kernel funcional.

La entrada predeterminada para arrancar un kernel 2.6.18 no modificado de CentOS se ve as:title CentOS (2.6.18-194.3.1.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.3.1.el5 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-194.3.1.el5.img

En este caso se usa la ruta /boot/vmlinuz-2.6.18-194.3.1.el5 ya que el directorio /boot esta dentro de la particin raz (/) del sistema. Nota El nombre tipo /dev/sdX de la particin root con LABEL=/ puede ser obtenido con el comando blkid. Cuando se instala el paquete kernel-xen en CentOS 5.x, automticamente se agrega la siguiente entrada a la configuracin de GRUB:title CentOS (2.6.18-194.3.1.el5xen) root (hd0,0) kernel /boot/xen.gz-2.6.18-194.3.1.el5 module /boot/vmlinuz-2.6.18-194.3.1.el5xen ro root=LABEL=/ rhgb quiet module /boot/initrd-2.6.18-194.3.1.el5xen.img

Recuerde actualizar la lnea default para definir el kernel predeterminado, por ejemplo, en CentOS cuando instala kernel-xen agrega la entrada de Xen se agrego hasta arriba (0), y cambia el default a 1 para arrancar con el kernel default, cambie el default a 0 para arrancar con el kernel de Xen, por ejemplo:default=0

Es importante que si asigno una particin separada para el directorio /boot, por ejemplo /dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:title CentOS (2.6.18-194.3.1.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-194.3.1.el5 module /vmlinuz-2.6.18-194.3.1.el5xen ro root=LABEL=/ rhgb quiet module /initrd-2.6.18-194.3.1.el5xen.img

Note que se especifica la particin de arranque con el parametro root y adems se incluye una imagen initrd.

Activando el demonio xendEl demonio /usr/sbin/xend debe ser iniciado automticamente al arranque del sistema, xend es necesario ya que es la interfaz entre las herramientas xm y el hypervisor Xen para realizar las operaciones requeridas por las maquinas virtuales. El paquete xen instalo el script de control de ejecucin /etc/init.d/xend, con el script podemos controlar la ejecucin del demonio xend, para que el demonio xend se inicie automticamente al arranque del sistema use:# chkconfig xend on

Tambin se recomienda que agregue el servicio xendomains, ms adelante hablaremos de el, por ahora basta saber que debe ser iniciado automticamente para apagar o iniciar automticamente las maquinas virtuales.# chkconfig xendomains on

Ahora si re inicie el sistema para arrancar el Xen y el domain 0:# reboot

En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie el sistema para arrancar con Xen y el Dom0.

Arrancando y verificando el funcionamiento de XenPara verificar el correcto funcionamiento de un sistema con Xen, primero verifique que esta ejecutando el kernel linux modificado, use el comando uname para dicha tarea:# uname -a Linux curso03.example.com 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 13:49:53 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema operativo GNU/Linux x86_64, es decir, 64-bit. Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo /proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando en el dominio de control o privilegiado, por ejemplo:# cat /proc/xen/capabilities control_d

Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando xm, veamos la informacin del sistema xen:# xm info host : curso03.example.com release : 2.6.18-194.3.1.el5xen version : #1 SMP Thu May 13 13:49:53 EDT 2010 machine : x86_64 nr_cpus : 2 nr_nodes : 1 sockets_per_node : 1 cores_per_socket : 2 threads_per_core : 1 cpu_mhz : 2411 hw_caps : 178bfbff:ebd3fbff:00000000:00000010:00002001:00000000:0000001f total_memory : 1983 free_memory : 240 node_to_cpu : node0:0-1 xen_major : 3 xen_minor : 1 xen_extra : .2-194.3.1.el5 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_pagesize : 4096

platform_params xen_changeset cc_compiler cc_compile_by cc_compile_domain cc_compile_date xend_config_format

: : : : : : :

virt_start=0xffff800000000000 unavailable gcc version 4.1.2 20080704 (Red Hat 4.1.2-48) mockbuild centos.org Thu May 13 12:59:18 EDT 2010 2

En la salida del comando anterior podemos determinar lo siguiente: host El nombre de host es visualizado. release Versin del kernel linux sobre el que esta corriendo machine Arquitectura del CPU x86_64 nr_cpus Nmero de CPUs en el sistema cores_per_socket Nmero de ncleos por zcalo cpu_mhz Frecuencia del CPU total_memory Memoria total disponible en el sistema xen_major, xen_minor, xen_extra Versiones mayores, menores y extras de xen, por ejemplo 3.1.2-194.3.1.el5 xen_caps Capacidad de ejecucin de maquinas virtuales, muestra el tipo de VMs capaz de ejecutar Algo importante es ver xen_caps para saber que tipo de maquinas virtuales soporta nuestro entorno. Ahora podemos consultar la informacin de maquinas virtuales a travs de xend, use la opcin list del comando xm para ver un listado de maquinas virtuales en ejecucin:# xm list Name Time(s) Domain-0 22.5 ID Mem(MiB) VCPUs State 0 1689 2 r-----

Nota Vea la cantidad de memoria asignada al Domain-0. Si la informacin antes mostrada fue similar significa que Xen esta corriendo exitosamente sobre un Domain-0 CentOS 5.x edicin amd64.

Instalando Xen 3.4 desde el repositorio gitco.de en CentOS 5Sascha Gnther mantiene el repositorio http://www.gitco.de/repo/ en el cual publican paquetes RPM del hypervisor Xen 3 y 4 listos para instalarse en CentOS-5/RHEL-5 (x86_64), cabe hacer mencin que estos paquetes fueron compilados usando las fuentes de http://www.xen.org y solo instalan el hypervisor y no el kernel, por lo que tendr que seguir usando el kernel que provee redhat o compilar un kernel con soporte Xen. Agregue el repositorio a YUM:# vim /etc/yum.repos.d/GITCO-XEN3.4.3_x86_64.repo

Con el contenido:[gitco-xen3.4.3] name=RHEL/CentOS-$releasever - GITCO XEN3.4.3 baseurl=http://www.gitco.de/repo/xen3.4.3 gpgcheck=0 enabled=1

E instale el hypervisor con:# yum install xen

Recuerde validar las entradas en la configuracin de GRUB y que el servicio xend y xendomains estn activos.

Configurando el demonio xend y la herramienta xmEl demonio xend es la interfaz entre el hypervisor y las maquinas virtuales, debe ser ejecutado en el Dom0 ya que requiere privilegios elevados al hardware, el demonio xend debe ser ejecutado como root al inicio del sistema. La ejecucin y comportamiento del demonio xend puede ser controlada a travs del archivo de configuracin /etc/xen/xend-config.sxp, en dicho archivo se definen directivas para controlar el comportamiento general del dominio y maquinas virtuales, a continuacin se describen algunos de los parmetros ms importantes. La directiva logfile define la ruta del archivo en la que el demonio xend registrar los eventos.(logfile /var/log/xen/xend.log)

La directiva network-script define la ruta al script de inicio y control de las interfaces y parmetros de red virtuales, el modo predeterminado es en modo bridge, por ejemplo:(network-script network-bridge)

En este caso network-script busca un script de shell localizado en el directorio /etc/xen/scripts/ con el nombre network-bridge. La directiva vif-script define la ruta al script que crear las interfaces de red virtuales para las domUs.(vif-script vif-bridge)

En este caso vif-script busca un script de shell localizado en el directorio /etc/xen/scripts/ con el nombre vif-bridge el cual se encargar de crear y destruir las interfaces virtuales (vif.X.X) para los DomU. Vea la seccin Configuracin de los dispositivos de red fsicos y virtuales en Xen para ms informacin del uso de los scripts network-bridge y vif-bridge y la creacin de redes virtuales publicas y privadas con Xen. La directiva dom0-min-mem define la cantidad mnima de memoria con la que puede operar el Domain-0.(dom0-min-mem 196)

Por default, el Domain-0 usa toda la memoria disponible en el sistema y va liberando memoria para asignarle a los domU de forma dinmica conforme van iniciando (balloning), se recomienda que limite la cantidad de memoria mxima como parmetro de ejecucin del hypervisor en la configuracin de GRUB. La directiva dom0-cpus define la cantidad de CPUs o ncleos que puede usar el Domain-0, en sistemas con multi-core se recomienda dedicar un CPU fisico o ncleo al domain-0, esto es recomendable para evitar compartir el CPU con otras VMS especialmente cuando en el domain-0 se realizan tareas de I/O adicionales, como por ejemplo uso de RAID por software, LVM, NFS o iSCSI por mencionar algunas. Por default se usa el varlor 0, el cual significa que puede usar cualquier CPU disponible, es decir, todos.(dom0-cpus 0)

Vea la seccin Administracin de recursos virtuales en Xen para obtener ms informacin para controlar el uso de memoria y CPU para el Dom0. Para que los cambios tomen efecto re inicie el demonio xend, si los cambios no se aplican ya que son cambios significativos como cambios de modo bridge a route entonces se recomienda que re inicie el servidor. La herramienta de administracin /usr/bin/xm es usada para interactuar con el demonio xend y ejecutar acciones sobre las maquinas virtuales incluyendo el Dom0, el programa xm requiere de privilegios de root para ser ejecutado. Con el subcomando info puede ver informacin relacionada al sistema y el hypervisor:# xm info host : xh01.example.com release : 2.6.24-28-xen version : #1 SMP Wed Apr 1 23:47:10 UTC 2009 machine : x86_64 nr_cpus : 8 nr_nodes : 1 cores_per_socket : 4 threads_per_core : 1 cpu_mhz : 1995 hw_caps : bfebfbff:20100800:00000000:00000140:040ce33d:00000000:00000001 total_memory : 6137 free_memory : 6 max_free_memory : 1419 max_para_memory : 1415 max_hvm_memory : 1403

node_to_cpu : node0:0-7 xen_major : 3 xen_minor : 2 xen_extra : .1-rc1-pre xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler : credit xen_pagesize : 4096 platform_params : virt_start=0xffff800000000000 xen_changeset : unavailable cc_compiler : gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4) cc_compile_by : buildd cc_compile_domain : buildd cc_compile_date : Sat Feb 21 03:01:02 UTC 2009 xend_config_format : 4

Tambin puede ver los mensajes que gener el hypervisor Xen al arrancar usando el subcomando dmesg, por ejemplo:# xm dmesg __ __ _____ ____ _ _ \ \/ /___ _ __ |___ / |___ \ / | _ __ ___/ | _ __ _ __ ___ \ // _ \ '_ \ |_ \ __) | | |__| '__/ __| |__| '_ \| '__/ _ \ / \ __/ | | | ___) | / __/ _| |__| | | (__| |__| |_) | | | __/ /_/\_\___|_| |_| |____(_)_____(_)_| |_| \___|_| | .__/|_| \___| |_| (XEN) Xen version 3.2.1-rc1-pre (buildd@buildd) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) Sat Feb 21 03:01:02 UTC 2009 (XEN) Latest ChangeSet: unavailable (XEN) Command line: (XEN) Video information: (XEN) VGA is text mode 80x25, font 8x16 (XEN) VBE/DDC methods: V2; EDID transfer time: 2 seconds (XEN) Disc information: (XEN) Found 2 MBR signatures (XEN) Found 2 EDD information structures (XEN) Xen-e820 RAM map: (XEN) 0000000000000000 - 0000000000098c00 (usable) (XEN) 0000000000098c00 - 0000000000100000 (reserved) (XEN) 0000000000100000 - 000000009e2b2000 (usable) (XEN) 000000009e2b2000 - 000000009e369000 (ACPI NVS) (XEN) 000000009e369000 - 000000009fa32000 (usable) (XEN) 000000009fa32000 - 000000009fa9a000 (reserved) (XEN) 000000009fa9a000 - 000000009faa9000 (usable) (XEN) 000000009faa9000 - 000000009fb1a000 (ACPI NVS) (XEN) 000000009fb1a000 - 000000009fb28000 (usable) (XEN) 000000009fb28000 - 000000009fb3a000 (ACPI data) (XEN) 000000009fb3a000 - 000000009fc00000 (usable) (XEN) 000000009fc00000 - 00000000b0000000 (reserved) (XEN) 00000000ffc00000 - 00000000ffc0c000 (reserved) (XEN) 0000000100000000 - 00000001e0000000 (usable) (XEN) System RAM: 6137MB (6285272kB) (XEN) Xen heap: 14MB (14864kB) (XEN) Domain heap initialised: DMA width 32 bits (XEN) Processor #0 7:7 APIC version 20 (XEN) Processor #2 7:7 APIC version 20 (XEN) Processor #4 7:7 APIC version 20

(XEN) Processor #6 7:7 APIC version 20 (XEN) Processor #1 7:7 APIC version 20 (XEN) Processor #3 7:7 APIC version 20 (XEN) Processor #5 7:7 APIC version 20 (XEN) Processor #7 7:7 APIC version 20 (XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23 (XEN) IOAPIC[1]: apic_id 9, version 32, address 0xfec80000, GSI 24-47 (XEN) Enabling APIC mode: Flat. Using 2 I/O APICs (XEN) Using scheduler: SMP Credit Scheduler (credit) (XEN) Detected 1995.059 MHz processor. (XEN) HVM: VMX enabled (XEN) CPU0: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 1/2 eip 8c000 (XEN) CPU1: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 2/4 eip 8c000 (XEN) CPU2: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 3/6 eip 8c000 (XEN) CPU3: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 4/1 eip 8c000 (XEN) CPU4: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 5/3 eip 8c000 (XEN) CPU5: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 6/5 eip 8c000 (XEN) CPU6: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Booting processor 7/7 eip 8c000 (XEN) CPU7: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz stepping 0a (XEN) Total of 8 processors activated. (XEN) ENABLING IO-APIC IRQs (XEN) -> Using new ACK method (XEN) Platform timer overflows in 14998 jiffies. (XEN) Platform timer is 14.318MHz HPET (XEN) Brought up 8 CPUs (XEN) xenoprof: Initialization failed. Intel processor model 23 for P6 class family is not supported (XEN) AMD IOMMU: Disabled (XEN) *** LOADING DOMAIN 0 *** (XEN) Xen kernel: 64-bit, lsb, compat32 (XEN) Dom0 kernel: 64-bit, lsb, paddr 0xffffffff80200000 -> 0xffffffff806d68c8 (XEN) PHYSICAL MEMORY ARRANGEMENT: (XEN) Dom0 alloc.: 00000001d4000000->00000001d8000000 (1492553 pages to be allocated) (XEN) VIRTUAL MEMORY ARRANGEMENT: (XEN) Loaded kernel: ffffffff80200000->ffffffff806d68c8 (XEN) Init. ramdisk: ffffffff806d7000->ffffffff81cde800 (XEN) Phys-Mach map: ffffffff81cdf000->ffffffff82862248 (XEN) Start info: ffffffff82863000->ffffffff828634a4 (XEN) Page tables: ffffffff82864000->ffffffff8287d000 (XEN) Boot stack: ffffffff8287d000->ffffffff8287e000 (XEN) TOTAL: ffffffff80000000->ffffffff82c00000 (XEN) ENTRY ADDRESS: ffffffff80200000 (XEN) Dom0 has maximum 8 VCPUs (XEN) Initrd len 0x1607800, start at 0xffffffff806d7000 (XEN) Scrubbing Free RAM: .done. (XEN) Xen trace buffers: disabled (XEN) Std. Loglevel: Errors and warnings

(XEN) (XEN) (XEN) input (XEN)

Guest Loglevel: Nothing (Rate-limited: Errors and warnings) Xen is relinquishing VGA console. *** Serial input -> DOM0 (type 'CTRL-a' three times to switch to Xen) Freed 100kB init memory.

Por ltimo, tambin puede ver los ltimos mensajes de log de Xen con el subcomando log, por ejemplo:# xm log

Para ms informacin del uso del comando xm vaya al capitulo Administracin de maquinas y recursos virtuales en Xen.

Configuracin de los medios de almacenamiento local para las VMs en XenXen, en conjunto con el kernel XenLinux ofrecen varias alternativas para el medios de almacenamiento de las mquinas virtuales, tambin conocidos como discos duros virtuales, el medio de almacenamiento para las maquinas virtuales Xen se le conoce como Dispositivo de Bloque Virtual (Virtual Block Device), los VBD pueden ser cualquier tipo de dispositivo de bloque soportado por el kernel Linux, como discos o particiones nativas, archivos de imagen raw, volmenes lgicos LVM entre otros. Los tipos de VBD soportados en Xen son:

Archivos de imagen con el driver loopback: El driver loopback propio del kernel Linux mapea dispositivos de bloque a dispositivos loopback. Soporta archivos RAW de tipo full y sparce. Xen usa el manejador file para este tipo de archivos. Archivos de imagen con el driver blktap: El driver propio de Xen ofrece mayor rendimiento que loopback, es ms escalable y asincrono. Soporta archivos RAW de tipo full y sparce.Xen usa el manejador tap:aio para este tipo de archivos. Dispositivos Fsicos - Las dispositivos fsicos de almacenamiento local incluye:

Particiones nativas: /dev/hdxx, /dev/sdxx, Dispositivos RAID por softaware: /dev/mdX. Volmenes Lgicos LVM: /dev/VGOSData/domuY-root, /dev/VGOSData/domuY-swap, /dev/VGAPPData/domuY-home. Xen usa el manejador phy para este tipo de dispositivos.

En las siguientes secciones veremos como crear diferentes medios de almacenamiento para las maquinas virtuales usando los tres tipos de almacenamiento local arriba mencionados.

Creando discos virtuales basados en archivosLos archivos de imagen para discos duros es el medio de almacenamiento ms flexible ya que permite respaldar de forma fcil las maquinas virtuales, adems que permite mover los discos de las maquinas virtuales a otros sistemas como si fueran archivos ordinarios. Se recomienda que dedique una particion para almacenar los archivos de imagen, para este documento dedicamos una particin con las siguientes caracteristicas:

Particin Linux nativa /dev/sda6 de 60G.

Sistema de archivos ext3 montada con opcin noatime. El punto de montaje es /xen/storage/0.

Si decide usar el manejador file para imagenes de archivos usando el driver loopback se encontrar con que, por default, la mayora de distribuciones Linux solo permiten la creacin de 8 dispositivos loop lo cual lo limitar al nmero de discos virtuales que podr asignar a las maquinas virtuales. Si usa un kernel en donde el driver loopback se compilo como mdulo (CONFIG_BLK_DEV_LOOP=m) y desea permitir la creacin de ms de 8 dispositivos loop agregue la opcin max_loop al mdulo loop, usando los archivos en el directorio /etc/modprobe.d/ , por ejemplo:# echo "options loop max_loop=64" > /etc/modprobe.d/loop

Si el soprte del driver loopback se compilo como built-in (CONFIG_BLK_DEV_LOOP=y) y desea permitir la creacin de ms de 8 dispositivos loop agregue el parmetro max_loop a la lnea del que carga el kernel XenLinux en el archivo de configuracin de grub /boot/grub/menu.lst, por ejemplo:module max_loop=64 /vmlinuz-2.6.18.8-xen root=/dev/sda3 ro console=tty0

Para crear un archivo de imagen de tipo full use el comando dd, por ejemplo, para crear archivo de imagen de 4GB:# dd if=/dev/zero of=/xen/storage/0/images/domuX-root.img bs=1024k count=4096

El archivo resultante no tendr ningn contenido pero si est ocupando el espacio fsico, este es la forma recomendada ya que da mejor rendimiento que el tipo sparse. Los archivos de imagen loop de tipo sparse inicialmente no ocupan espacio, pero si lo reflejan a un simple ls, estos archivos se van redimiensionando conforme se escribe en ellos, si tiene problemas de espacio y quiere aprovechar al mximo el espacio en disco use el tipo sparse pero recuerde que estar sacrificando rendimiento ya que este tipo causa una carga extra en el Dom0, para crear un archivo de imagen de tipo sparse con dd use:# dd if=/dev/zero of=/xen/storage/0/images/domuX-root.img bs=1024k seek=4096 count=0

Es posible crear un sistema de archivos ext3 sobre un archivo de imagen de bloque, por ejemplo:# mkfs.ext3 /xen/storage/0/images/domuX-root.img

Tambin puede crear un sistema de archivo swap en un archivo de imagen, por ejemplo:# mkswap /xen/storage/0/images/domuX-swap.img

Para mayor informacin de como agregar un disco duro a una maquina virtual vaya a la seccin Como agregar discos duros virtuales a maquinas virtuales Xen. Una de las desventajas de usar discos duros virtuales basados en imgenes es que agregan una carga extra al sistema host, ya que el archivo de imagen esta almacenado en un sistema de archivos del Domain0 lo cual implica que el OS del Dom0 debe realizar operaciones para actualizar la meta informacin de los archivos y datos, si desea mejor rendimiento se

recomienda que use particiones nativas o volmenes lgicos LVM con el modo de acceso raw, as se evita la carga extra. Para ver como asignar/export un archivo de imagen a una maquina virtual vaya a la seccin Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato del parmetro de configuracin de dispositivos de bloque a los DomU. En las siguientes secciones veremos como crear particiones nativas usando el comando fdisk, cfdisk o parted.

Creando archivos de imagen ISO para medios de instalacinSi desea crear un archivo de imagen ISO de un medio de instalacin para facilitar la creacin de maquinas virtuales puede hacer uso del comando dd, por ejemplo, el dispositivo para el CD/DVD es: /dev/scd0, crearemos el archivo de imagen /xen/storage/isos/:# dd if=/dev/scd0 of=/xen/storage/isos/ubuntu-10.04-server-amd64.iso

Para verificar que efectivamente es un archivo ISO use el comando file, por ejemplo:# file /xen/storage/isos/ubuntu-10.04-server-amd64.iso /xen/storage/isos/ubuntu-10.04-server-amd64.iso: # ISO 9660 CD-ROM filesystem data 'Ubuntu-Server 8.04.4 amd64 ' (bootable)

Para montar la imagen ISO y acceder a su contenido, asocie el archivo a un dispositivo loopback usando el comando losetup, por ejemplo:# losetup -f /xen/storage/isos/ubuntu-10.04-server-amd64.iso

Nota La opcin -f busca un dispositivo loop libre y lo asocia al archivo de imagen. Nota Si desea mapear el archivo de imagen ISO a un dispositivo loop en especifico use -r /dev/loopX. Para ver el nombre del dispositivo loop al que fu mapeado el archivo use:# losetup -a /dev/loop0: [0805]:269281 (/xen/storage/isos/ubuntu-10.04-serveramd64.iso)

Nota Este es el mismo modo en el que Xen monta los discos duros virtuales basados en archivos de imagen usando el manejador file. Ahora puede montar el archivo iso como si fuera un dispositivo de bloque normal:# mount /dev/loop0 /media/cdrom

Para desmontar el dispositivo use:# umount /dev/loop0

Tambin debe eliminar el mapeo del archivo al dispositivo loop:

# losetup -d /dev/loop0

No olvide desmontar el ISO cuando ya no lo necesite para liberar recursos. Para ver como asignar/export un archivo de imagen ISO a una maquina virtual vaya a la seccin Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato del parmetro de configuracin de dispositivos de bloque a los DomU.

Creando discos virtuales basados en particiones Linux nativasPara asignar particiones linux nativas a como discos duros a las maquinas virtuales cree las particiones con la herramienta fdisk, por ejemplo:# fdisk /dev/sdb

Crear particin linux native de tipo 83, y particin linux swap tipo 82. Tambin puede usar el comando cfdisk el cual es ms grfico, por ejemplo:# cfdisk /dev/sdb

Otra alternativa es usar el programa parted, por ejemplo:# parted /dev/sdb

Nota Si modifico la tabla de particiones en el mismo disco duro en el que esta la particin raz tendr que re iniciar el sistema o ejecutar el comando partprobe para que el kernel re lea la tabla de particiones y as cree los archivos de dispositivo de bloque en el directorio /dev, por ejemplo:# partprobe /dev/sda

Verifique que los archivos de dispositivo esten en el directorio /dev. Para crear un sistema de archivos ext3 en una nueva particin use el comando mkfs.ext3, por ejemplo:# mkfs.ext3 /dev/sdb1

Importante Si va dedicar una particin linux nativa al directorio /boot de un DomU PV Linux se recomienda que use un sistema de archivos ext2 para evitar problemas con versiones no soportadas de boot loaders como grub, pygrub y pv-grub. Para crear un sistema de archivos swap use mkswap:# mkswap /dev/sdb2

Para ver como asignar/export una particin linux nativa a una maquina virtual vaya a la seccin Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato del parmetro de configuracin de dispositivos de bloque a los DomU.

Creando discos virtuales basados en volmenes lgicos Linux LVMAntes que nada asegurese de tener instaladas las herramientas para manipular los volmenes lgicos LVM, instale el paquete lvm2:

# apt-get install lvm2

Es importante que actualice la imagen initrd con el soporte LVM, por ejemplo para actualizar la imagen initrd para el kernel 2.6.18.8-xen ejecute:# update-initramfs -u -k 2.6.18.8-xen

Primero debe crear una particin en el disco duro para ser incluido en un volume group, use cfdisk para crear una particin tipo LVM (8e), por ejemplo:# cfdisk /dev/sdc

Nota Haga lo mismo en cada disco que desee incluir. Use el comando pvcreate para inicializar la particin recien creada, es decir, crearemos un volmen fsico (Physical Volume) LVM:# pvcreate /dev/sdc1

Importante Nos se recomienda crear un physical volume en un disco duro completo, ejem: /dev/sda por los problemas de administracin que conlleva. Ahora use el comando vgcreate para crear un Volume Group conformado por los dos Physical Volumes recin inicializados:# vgcreate VGXen01 /dev/sdc1

Use el comando vgdisplay para mostrar ms detalles sobre el Volume Group VGXen01, por ejemplo:# vgdisplay VGXen01

Con el comando lvcreate creamos los volmenes lgicos dentro de un Volume Group, por ejemplo, para crear un volmen lgico de 4GB para la particin raz del DomU fs1.example.com use:# lvcreate --size 4G --name fs1.example.com-root VGXen01 Logical volume "fs1.example.com-root" created

Tambin puede crear volmenes lgicos para la particin swap:# lvcreate --size 1G --name fs1.example.com-swap VGCen01 Logical volume "fs1.example.com-root" created

Cree volmenes lgicos para las particiones de datos del DomU fs1:# lvcreate --size 100G --name fs1.example.com-home VGXen01 Logical volume "fs1.example.com-home" created

Para crear un sistema de archivos ext3 en un volmen lgico use:# mkfs.ext3 /dev/VGXen01/fs1.example.com-root

Parar crear un sistema de archivos swap en un volmen lgico use:# mkswap /dev/VGXen01/newdomu-swap

Puede clonar un volmen lgivo LV usando el comando dd, por ejemplo:# dd if=/dev/VGXen01/xenbase-disk of=/dev/VGXen01/newdomu-disk

Es posible extender el tamao de un LV siempre y cuando el Volume Group que lo aloja tenga espacio disponible, use el comando vgdisplay para verificar que tenga espacio y despus:# lvextend --size +10G /dev/VGXen01/fs1.example.com-home

Importante El sistema de archivos en /dev/VGXen01/fs1.example.com-home debe estasr desmontado para poder realizar la operacin de forma segura, en especial cuando pertenece a una maquina virtual encendida. Despus de extender el volmen lgico con lvextend use resize2fs para extender un sistema de archivos ext3, por ejemplo:# e2fsck -f /dev/VGXen01/fs1.example.com-home # resize2fs /dev/VGXen01/fs1.example.com-home

Importante Recuerde siempre revisar la consistencia del sistema de archivos con e2fsck antes de redimiensionar el sistema de archivos. Para eliminar un volmen lgico use el comando lvremove, por ejemplo:# lvremove /dev/VGXen01/fs1.example.com-home

Para ms informacin para la administracin de volmenes lgicos LVM se recomienda que lea el LVM HOWTO official. Para ver como asignar/export una volmen lgico LVM a una maquina virtual vaya a la seccin Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato del parmetro de configuracin de dispositivos de bloque a los DomU.

Configuracin de los dispositivos de red fsicos y virtuales en XenEn esta seccin veremos como configurar diferentes redes publicar y privadas para las maquinas virtuales, las configuraciones son basadas en switches virtuales o bridges, se usarn tanto herramientas de sistema como propias de xen para configurar el entorno de red virtual.

Introduccin a los modos de red en XenXen puede ser configurado para permitir que las maquinas virtuales puedan usar la infraestructura de red existente y los segmentos de red. Xen permite configurar la red tanto del Domain-0 como de las domUs, desde configuraciones bsicas hasta otras ms avanzadas usando bridges, STP, NAT, VLANs. En general, se puede configurar casi cualquier escenario que se pueda configurar en una red con Hosts no virtualizados. La primer vez que se arranca el sistema con el kernel de Xen y sin tener definido un modo de configuracin de red en Xen, se tiene un esquema similar al que se muestra en la siguiente figura:

Figura 3.1. Servidor Linux sin Xen

Bsicamente existen dos tipos de configuracin de red en xen, configuracin basada en bridge (bridged) y configuracin enrutada (routed). En este documento se describir la configuracin de red en Xen en modo bridge. La configuracin de red en modo bridge es la ms simple y fcil de configurar dentro de Xen. Este tipo de red permite de forma simple y transparente a los DomU usar una interfaz de red virtual conectada a un switch virtual (bridge) creado y configurado en Dom0, la interfaz de red fsica eth0 en Dom0 esta conectada fsicamente al switch de la empresa y esta misma a su vez esta conectada al switch virtual, por lo que toda la comunicacin es transparente para todos los hosts ya que todos estn conectados virtualmente a un mismo switch. Con una configuracin en modo bridge nos permitir:

Las maquinas virtuales podrn utilizar direcciones IP estticas tal y como lo hacen las dems maquinas conectadas a tu red fsica, o incluso utilizar un servicio DHCP. Quieres que las maquinas virtuales sean vistas de forma transparente desde las maquinas en la red fsica, es decir, que haya flujo entre las dos redes de forma transparente. Incluso puede utilizar tecnologas como VLAN para crear redes locales virtuales y completamente aisladas unas de otras. Su equipo Host puede tener varias interfaces de red fsicas y quiere asignar o delegar una interfaz o ms interfaces exclusivamente para un host, de esta forma puede tener DomU conectados a diferentes redes fsicas, o incluso puede

beneficiarse de las funcionalidades de VLAN y Bonding o Link Aggregation (Ether Channel). En las siguientes secciones veremos como crear el o los bridges usando los scripts de xen y usando las herramientas de su distribucin.

Configurando Xen en modo bridgeEn esta seccin veremos como configurar el servidor Xen para un entorno de red basado en bridges, estos bridges realizarn la funcion de switches virtuales para las maquinas virtuales e interfaces fisicas. La configuracin de los bridges la realiza xend a travs del archivo de configuracin /etc/xen/xend-config.sxp, en este archivo deben de haber dos lineas donde se define el script para la creacin de bridges (network-script) y otra para la creacin de las interfaces virtuales para los domUs (vif-script). Importante Asegurese que solo haya una linea descomentada de network-bridge y una de vifscript. Para configurar en entorno de red en el servidor Xen en modo bridge edite el archivo /etc/xen/xend-config.sxp y agregue las siguientes dos lneas:(network-script network-bridge) (vif-script vif-bridge)

Reinicie el sistema para que arranque con la configuracin de red en bridge, esto es necesario para que se reconfigure la red del servidor Xen.# shutdown -r now

Las configuraciones en modo bridge depender del numero de redes fsicas a conectar y de el nmero de interfaces fsicas en el Dom0, La configuracin de Xen 3.2 en Ubuntu Hardy esta preconfigurada para sistemas con una sola interfaz fsica, y todas las los DomU utilizarn esta interfaz para el flujo de datos entre las diferentes redes, tanto de entrada como de salida, Cuando Ubuntu inicia con xen en modo bridge se ejecuta el script /etc/xen/scripts/network-bridge realiza las siguientes tareas:

Crea un nuevo bridge llamado xenbr0 (xen 3.0) eth0 (xen 3.2) La interfaz Ethernet real eth0 es desactivada La direccin IP y MAC de eth0 es copiada a la interfaz de red virtual veth0 La interfaz real eth0 es renombrada a peth0 La interfaz virtual veth0 es renombrada a eth0 peth0 y vif0.0 son agregadas al bridge xenbr0/eth0 El bridge, peth0, eth0 y vif0.0 son activados

Despus del procedimiento arriba descrito y una vez que el brid y las interfaces de red fueron configuradas, la red del servidor Xen se en modo bridge se debera de ver con en el siguiente figura:

Figura 3.2. Servidor Linux con Xen y un bridge

Como vemos, la interfaz fsica peth0 esta conectada al switch de la red LAN y a su vez al bridge eth0, imagine peth0 como el puerto uplink entre switches L2, la interfaz eth0 del servidor Xen Dom0 es una interfaz virtual que tambin esta conectada al bridge de nombre eth0. Nota La interfaz fsica que origialmente era eth0, que posteriormene se convirtio a peth0 tambin podra ser una interfaz fsica Ethernet con soporte VLAN trunk 802.1q, o un Ethernet Channel Bonding. Importante En el ejemplo de arriba estamos hablando de dos switches conectados por un cable, tenga mucho cuidado de no conectar una segunda interfaz de red fisica, digamos eth1 y crear otro bridge sobre ella, esto y otros casos podran causar lo que se llama u