Administracion de Servidores Virtuales Con Xen y GNU Linux

Embed Size (px)

Citation preview

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    1/105

    Administracin de servidores virtuales con Xen y

    GNU/Linux

    Jorge Armando Medina

    Computacin Grfica de Mxico.

    Documentacin Tcnica

    Alejandro Gabriel Snchez Martnez

    Computacin 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

    Remen

    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 conenido

    Prefacio

    Convenciones del Documento

    Convenciones TipogrficasConvenciones 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    2/105

    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 XenMedios 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    3/105

    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 razCrear la maquina virtual

    Crear respaldo de datos del snapshot

    Eliminar el snapshot

    Como restaurar maquinas virtuales basada en LVM

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    4/105

    Como clonar una maquina virtual basada en LVMComo convertir una maquina virtual de archivos a LVM

    6. Resolucin de problemas

    Resolucin de problemas relacionados al reloj de las maquinas virtualesResolucin de problemas relacionados a la red de las maquinas virtualesRecursos adicionales

    Sitios web

    Pginas de manual

    A. Historial de RevisionesB. Licencia de Documentacin Libre de GNU

    PREMBULOAPLICABILIDAD Y DEFINICIONESCOPIA LITERALCOPIADO EN CANTIDADMODIFICACIONESCOMBINACIN DE DOCUMENTOSCOLECCIONES DE DOCUMENTOS

    AGREGACIN CON TRABAJOS INDEPENDIENTESTRADUCCINTERMINACINREVISIONES FUTURAS DE ESTA LICENCIAADENDA: Cmo usar esta Licencia en sus documentos

    C. GNU Free Documentation License

    Lia de figa

    3.1. Servidor Linux sin Xen3.2. Servidor Linux con Xen y un bridge3.3. Servidor Linux con Xen, un bridge y un DomU3.4. Servidor Linux con Xen, dos bridges, y dos Domu3.5. Servidor Linux con Xen, dos bridges, uno dummy, y tres Domu3.6. Servidor Linux con Xen, un bridge y un DomU va OS3.7. Servidor Linux con Xen, dos bridges, y dos Domu va OS3.8. Servidor Linux con Xen, tres bridges, y cuatro Domu va OS

    Lia de abla

    4.1. Esquema de particiones

    Prefacio

    Tabla de conenido

    Convenciones del Documento

    Convenciones TipogrficasConvenciones del documento

    Notas y Advertencias

    Necesitamos sus comentarios!

    Convenciones del Documento

    Este manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atencin sobre ciertas partes especficas deinformacin.

    Convenciones Tipogrficas

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    5/105

    Se utilizan cuatro convenciones tipogrficas para llamar la atencin sobre palabras o frases especficas. Dichas convenciones y lascircunstancias 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 resaltarteclas claves y combinaciones de teclas.

    Para ver el contenido del archivo m_net_bestselling_novel en su directorio actual de trabajo, escriba el comando catm_net_bestselling_novelen 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 alcontexto.

    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 deun 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, botonesetiquetados, 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 pestaade Botones, haga clic en la cajilla ratn de mano izquierda y luego haga clic en Cerrar para cambiar el botn principal del ratnde 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 delcaracter en el campo de Bsqueda y haga clic en Siguiente. El caracter buscado se resaltar en la Tabla de caracteres. Hagadoble 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 aplicacionesespecficas 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 sub-menes. Esto es para evitar la dificultad de seguir elmtodo 'Seleccionar Ratn desde el sub-men Preferencias en el men de Sistema de la barra de men principal'.

    o

    Negrita monoespaciado o Negrita proporcional, la adicin de itlicas indica texto reemplazable o variable. Las itlicas denotan texto queusted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia. Por ejemplo:

    Para conectar a una mquina remota utilizando ssh, teclee ssh @ en un intrprete decomandos de shell. Si la mquina remota es eample.com y su nombre de usuario en esa mquina es john, teclee ssh

    [email protected].

    El comando mount -o remount remonta el sistema de archivo llamado. Por ejemplo, para volver a montar elsistema de archivo /home, el comando es mount -o remount /home.

    Para ver la versin de un paquete actualmente instalado, utilice el comando rpm -q . ste entregar el resultadosiguiente: .

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    6/105

    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 unserver-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 documento

    Dos, 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 Desktop documentation drafts mss photos stuff svn

    books_tests Desktop1 downloads images notes scripts svgs

    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 Advertencias

    Finalmente, 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 deberatener 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.

    Adertencia

    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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    7/105

    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__GNU_Linu .

    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 Virtualizacin

    Tabla 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 virtualizacin

    Meter 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 Xen

    Tabla 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    8/105

    Arquitectura de Xen

    Meter la imagen:

    Recursos adicionales

    Si desea obtener ms informacin sobre los programas y pginas de manual relacionadas se aconseja que acceda a los siguientes recursos

    adicionales.

    Sitios web

    En 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 manual

    Para 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/Linux

    Tabla de conenido

    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.xActivando 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    9/105

    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 sistema

    Es 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 hardare

    La 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 (Vial Machine), se recomienda que se dedique el sistema exclusivamente para la ejecucin de Xen ya quecualquier 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 64-bit entonces dedique un servidor con soporte 64-bit.

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    10/105

    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-Ves la tenologa introducida por AMD e Intel VT VT- 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 famil : 6

    model : 23

    model name : Intel(R) Xeon(R) CPU E5405 @ 2.00GH

    stepping : 10

    cpu MH : 1995.043

    cache sie : 6144 KB

    phsical id : 0siblings : 1

    core id : 0

    cpu cores : 1

    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 vm, por ejemplo:

    # grep 'vm' /proc/cpuinfo

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lmflags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    flags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lmflags : fpu de tsc msr pae mce c8 apic sep mtrr mca cmov pat pse36 clflush

    dts acpi mm fsr sse sse2 ss ht tm pbe sscall n lm constant_tsc arch_perfmon pebs

    bts rep_good pni monitor ds_cpl vmx tm2 ssse3 c16 tpr dca sse4_1 lahf_lm

    En sistemas con CPU AMD, busque el flag svm (Secure Virtual Machine), por ejemplo:

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    11/105

    # gep 'm' /poc/cpinfo

    flag : fp de c m pae mce c8 apic m mca cmo pa pe36 clflh mm

    f e e2 h call n mme f_op lm 3dnoe 3dno ep_good pni c16

    lahf_lm cmp_legac sm eapic c8_legac

    flag : fp de c m pae mce c8 apic m mca cmo pa pe36 clflh mm

    f e e2 h call n mme f_op lm 3dnoe 3dno ep_good pni c16

    lahf_lm cmp_legac sm eapic c8_legac

    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 sofware

    Para 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 Booloader), 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 dominioprivilegiado 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 bidge-il 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 lm2 Debian/Ubuntu.

    Instalando Xen desde el cdigo fuente en Ubuntu Server

    En 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    12/105

    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:

    # /ec/ini.d/appamo op

    # pdae-c.d -f appamo emoe

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

    Compilando Xen 3.4. desde las fuentes en Ubuntu Server

    Para 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:

    # ap-ge inall \

    bcc bin86 binil bidge-il bild-eenial bip2 debhelpe gak gcc ial ipoe fle make \

    modle-ini-ool gi-coe gee mecial gik pach de id-de libcl3 libncee0 \

    libb2-de libc6-de libcl4-openl-de libjpeg62-de libnce5-de libdl-de libl-de \

    libncee-de lib11-de lib1g-de e2flib-de dpkg-de ee-og-de \

    anfig gif einfo elie-lae-bae elie-lae-ecommended elie-fon-ea elie-fon-ecomphon phon-de phon-popenl phon-pam phon-ied

    Noa

    Para ms informacin acerca de las dependencias lea el archivo README incluido en la raz de las fuentes de Xen.

    Impoane

    Para incluir el soportePCI pahogh debe instalar el paquete pciil-de antes de compilar xen tools.

    Impoane

    Para sistemas de 64-bit debe instalar paquete gcc-mlilib.

    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 //c:

    # cd //c

    # ge hp://bi.enoce.com/o-en/eleae/3.4.3/en-3.4.3.a.g

    # a -f en-3.4.3.a.g

    # cd en-3.4.3

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

    # make old

    Impoane

    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.

    Impoane

    El parmetro old crear una imagen de kernel XenLinux (mlin-2.6.-en) que puede ser usado tanto en el

    dominio privilegiado Domain0 o en dominios no provilegiados domUs..

    Ejecute el comando make inall para instalar el hypervisor Xen, el kernel XenLinux, las herramientas y la documentacin de Xen en el

    sistema:

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    13/105

    # 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 en

    # make tools

    # make install-en

    # 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/en*

    -r-r--r-- 1 root root 549722 2010-07-18 23:36 /boot/en-3.4.3.g

    lrrr 1 root root 12 2010-07-18 23:36 /boot/en-3.4.g -> en-3.4.3.g

    lrrr 1 root root 12 2010-07-18 23:36 /boot/en-3.g -> en-3.4.3.g

    lrrr 1 root root 12 2010-07-18 23:36 /boot/en.g -> en-3.4.3.g

    -r-r--r-- 1 root root 8950258 2010-07-18 23:36 /boot/en-sms-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-en.

    Mdulos kernel XenLinux: /lib/modules/2.6.18.8-en.

    El demonio de control xend se instala en /usr/sbin/end junto con la herramienta /usr/bin/m y otros programas de control, algunas

    bibliotecas compartidas son instaladas en/usr/lib, como /usr/lib/libenctl.so y /usr/lib/libenstore.so, el emulador de

    dispositivos para maquinas DomU HVM Guests QEMU se instala en /usr/lib/en/bin/qemu-dm.

    En las siguientes secciones veremos como instalar el kernel Linux con soporte Xen (XenLinux).

    Instalando el kernel XenLinux desde el cdigo fuente

    Como se menciono en la seccin anterior, el comando make orld 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-en.

    Mdulos kernel XenLinux: /lib/modules/2.6.18.8-en.

    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-en

    # cd /boot

    # mkinitramfs -o initrd.img-2.6.18.8-en 2.6.18.8-en

    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-en.

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

    Instalando el kernel XenLinux desde apt

    En 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,

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    14/105

    este kernel es compatible para arquitecturas de 32 y 64 bits, los paquetes del kernel y mdulos XenLinux son:

    linu-image-2.6.24-28-en - Imagen del kernel y mdulos con soporte Xen.

    linu-ubuntu-modules-2.6.24-28-en - Mdulos del kernel adicionados por Ubuntu con soporte Xen.

    linu-restricted-modules-2.6.24-28-en - 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 linu-ubuntu-modules-2.6.24-28-en y linu-restricted-modules-2.6.24-28-enpara 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/vmlinu-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.

    Para 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 Xen 3.0 / XenLinux 2.6

    kernel /boot/xen-3.0.g

    module /boot/vmlinu-2.6-xen root= ro console=tt0

    module /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/vmlinu-2.6.24-28-server root=UUID=557cfe8a-e2db-4bdd-a965-d5925ebc28a3 ro quiet spl

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

    En este caso se usa la ruta /boot/vmlinu-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-a965-d5925ebc28a3 puede ser

    obtenido con el comando blkid.

    Cuando instalamos el kernel con el paquete linu-image-2.6.24-28-en en Ubuntu Server 8.04, automticamente se agrega la siguiente

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    15/105

    entrada a la configuracin de GRUB:

    title Xen 3.4.3 / Ubuntu 8.04.4 LTS, kernel 2.6.18.8-en

    root (hd0,0)

    kernel /boot/en-3.4.3.g

    module /boot/vmlinu-2.6.18.8-en root=UUID=557cfe8a-e2db-4bdd-a965-d5925ebc28a3 ro console=tt0

    module /boot/initrd.img-2.6.18.8-en

    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-en

    root (hd0,0)

    kernel /en-3.4.3.g

    module /vmlinu-2.6.18.8-en root=UUID=557cfe8a-e2db-4bdd-a965-d5925ebc28a3 ro console=tt0

    module /initrd.img-2.6.18.8-en

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

    Activando el demonio end

    El demonio /usr/sbin/end debe ser iniciado automticamente al arranque del sistema, xend es necesario ya que es la interfaz entre las

    herramientas my 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/end, 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 end 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 endomains defaults 21 20

    El script /etc/init.d/endomains incluye algunas variables de control desde el archivo /etc/ssconfig/endomains, 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/ssconfig/endomains /etc/default/

    Ahora debemos editar el script /etc/init.d/endomains para adaptar las rutas, cambie el valor de las variables LOCKFILE y

    XENDOM_CONFIG, por ejemplo:

    LOCKFILE=/var/lock/endomains

    XENDOM_CONFIG=/etc/default/endomains

    Nota

    Por default LOCKFILE apunta a /var/lock/subss, 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/endomains, por default esta as:

    XENDOMAINS_SAVE=/var/lib/en/save

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

    # mkdir -p /var/lib/en/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.

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    16/105

    Arrancando verificando el funcionamiento de Xen

    Para verificar el correcto funcionamiento de un sistema con Xen, primero verifique que esta ejecutando el kernel linux modificado, use uname

    para dicha tarea:

    # name -a

    Lin h01.eample.com 2.6.18.8-en #1 SMP Th Ma 27 01:27:21 UTC 2010 86_64 GNU/Lin

    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 /poc/en/capabiliie muestra conol_d, lo cual

    nos indica que se esta ejecutando en el dominio de control o privilegiado, por ejemplo:

    # ca /poc/en/capabiliie

    conol_d

    Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando xm, veamos la informacin del sistema xen:

    # m info

    ho : h01.eample.com

    eleae : 2.6.18.8-en

    eion : #1 SMP Te Oc 12 20:58:31 CDT 2010

    machine : 86_64n_cp : 2

    n_node : 1

    coe_pe_ocke : 2

    head_pe_coe : 1

    cp_mh : 2700

    h_cap : 178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f:00000000

    i_cap : hm

    oal_memo : 1919

    fee_memo : 119

    node_o_cp : node0:0-1

    node_o_memo : node0:119

    en_majo : 3

    en_mino : 4

    en_ea : .3

    en_cap : en-3.0-86_64 en-3.0-86_32p hm-3.0-86_32 hm-3.0-86_32p hm-3.0-86_64en_chedle : cedi

    en_pageie : 4096

    plafom_paam : i_a=0ffff800000000000

    en_changee : naailable

    cc_compile : gcc eion 4.2.4 (Ubn 4.2.4-1bn4)

    cc_compile_b : oo

    cc_compile_domain : eample.com

    cc_compile_dae : Te Oc 12 21:09:51 CDT 2010

    end_config_foma : 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_mh

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    17/105

    Frecuencia del CPU

    total_memor

    Memoria total disponible en el sistema

    en_major, en_minor, en_etra

    Versiones mayores, menores y extras de xen, por ejemplo 3.4.3

    en_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:

    # m list

    Name ID Mem VCPUs State Time(s)

    Domain-0 0 512 2 r----- 15.7

    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. Ademsincluye 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 hpervisor Xen el kernel XenLinu desde apt

    El sistema de paquetes apt incluye el meta paquete ubuntu-en-serverel cual instala los paquetes requeridos para el servidor Xen, la lista

    de los paquetes incluidos son:

    en-hpervisor-3.2 - Hypervisor Xen.

    en-docs-3.2 - Documentacin de Xen 3.2.

    linu-image-2.6.24-28-en - Imagen del kernel y mdulos con soporte Xen.

    linu-ubuntu-modules-2.6.24-28-en - Mdulos del kernel adicionados por Ubuntu con soporte Xen.

    linu-restricted-modules-2.6.24-28-en - Mdulos del kernel restrictivos adicionados por Ubuntu con soporte Xen.

    liben3 - Bibliotecas requeridas para la ejecucin de Xen en el Domain0.

    pthon-en-3.2 - Soporte mdulos python para Xen.

    en-utils-3.2 - Incluye el servidor xend y la herramienta de administracin xm.

    Adems instala los siguientes paquetes adicionales o dependencias:

    binutils 2.18.1 - Utilerias de sistema.

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    18/105

    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.

    en-tools - Herramientas para automatizar la creacin y administracin de maquinas virtuales Debian/Ubuntu.

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

    rinse

    xfsprogs

    libc6-xen

    xen-hypervisor-amd64

    xen-hypervisor-i386

    xen-hypervisor-i386-pae

    xen-shell

    Instalamos el metapaquete ubuntu-en-server, el cual instalar todos los paquetes requeridos para nuestro entorno de virtualizacin.

    # ap-ge inall bn-en-ee

    El paquete xen-hypervisor-3.2 instal el hypervisor xen en el directorio /boo:

    # l -l /boo/en*

    ------ 1 oo oo 401328 2009-02-20 21:04 /boo/en-3.2.g

    Adems el paquete xen-utils instalan el demonio //bin/end y el programa //bin/m 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: /boo/mlin-2.6.24-28-en.

    Imagen Initrd XenLinux: /boo/inid.img-2.6.24-28-en.

    Configuracin kernel XenLinux: /boo/config-2.6.24-28-en.

    Mdulos kernel XenLinux: /lib/modle/2.6.24-28-en.

    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.

    Configrando GRUB para arrancar Xen

    Para 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

    /boo/gb/men.l, por ejemplo:

    ile Xen 3.0 / XenLin 2.6

    kenel /boo/en-3.0.g

    modle /boo/mlin-2.6-en oo= o conole=0modle /boo/inid-2.6-en

    Importante

    Antes de modificar el archivo de GRUB es recomendable documentar la configuracin del kernel actual y agregar una

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    19/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    20/105

    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 verificando el funcionamiento de Xen

    Para verificar el correcto funcionamiento de un sistema con Xen, primero verifique que esta ejecutando el kernel linux modificado, use uname

    para dicha tarea:

    # name -a

    Lin co00.eample.com 2.6.24-28-en #1 SMP Th Ma 27 01:27:21 UTC 2010 86_64 GNU/Lin

    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 86_64, es decir, 64-bit.

    Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo /poc/en/capabiliie muestra conol_d, lo cual

    nos indica que se esta ejecutando en el dominio de control o privilegiado, por ejemplo:

    # ca /poc/en/capabiliie

    conol_d

    Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando m, veamos la informacin del sistema xen:

    # m info

    ho : co00.eample.com

    eleae : 2.6.24-28-eneion : #1 SMP Th Ma 27 01:27:21 UTC 2010

    machine : 86_64

    n_cp : 2

    n_node : 1

    coe_pe_ocke : 2

    head_pe_coe : 1

    cp_mh : 2613

    h_cap : 178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f

    oal_memo : 2047

    fee_memo : 125

    ma_fee_memo : 1664

    ma_paa_memo : 1660

    ma_hm_memo : 1648

    node_o_cp : node0:0-1

    en_majo : 3

    en_mino : 2

    en_ea : .1-c1-pe

    en_cap : en-3.0-86_64 en-3.0-86_32p hm-3.0-86_32 hm-3.0-86_32p hm-3.0-86_64

    en_chedle : cedi

    en_pageie : 4096

    plafom_paam : i_a=0ffff800000000000

    en_changee : naailable

    cc_compile : gcc eion 4.2.4 (Ubn 4.2.4-1bn4)

    cc_compile_b : bildd

    cc_compile_domain : bildd

    cc_compile_dae : Sa Feb 21 03:01:02 UTC 2009

    end_config_foma : 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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    21/105

    Nmero de ncleos por zcalo

    cpu_mh

    Frecuencia del CPU

    total_memor

    Memoria total disponible en el sistema

    en_major, en_minor, en_etra

    Versiones mayores, menores y extras de xen, por ejemplo 3.2.1_rc1-pre

    en_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:

    # m listName ID Mem VCPUs State Time(s)

    Domain-0 0 1879 2 r----- 26.0

    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 5

    En 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 um

    CentOS 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:

    # um install kernel-en en

    Al instalar los paquetes kernel-en y en automticamente se instalan las siguientes dependencias:

    kernel-xen

    xen

    bridge-utils

    e4fsprogs-libs

    iscsi-initiator-utils

    libvirt

    libvirt-python

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    22/105

    python-virtinst

    qemu

    xen-libs

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

    Configurando GRUB para arrancar Xen

    Para arrancar un host con Xen es necesario configurar el gestor de arranque GRUB para iniciar el hypervisor Xen y arrancar el kernel deldominio privilegiado, la documentacin de xen incluye este ejemplo de entrada en el archivo de configuracin de GRUB:

    title Xen 3.0 / XenLinu 2.6

    kernel /boot/en-3.0.g

    module /boot/vmlinu-2.6-en root= ro console=tt0

    module /boot/initrd-2.6-en

    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/vmlinu-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/vmlinu-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 conLABEL=/ puede ser obtenido con el comando blkid.

    Cuando se instala el paquete kernel-en en CentOS 5.x, automticamente se agrega la siguiente entrada a la configuracin de GRUB:

    title CentOS (2.6.18-194.3.1.el5en)

    root (hd0,0)

    kernel /boot/en.g-2.6.18-194.3.1.el5

    module /boot/vmlinu-2.6.18-194.3.1.el5en ro root=LABEL=/ rhgb quiet

    module /boot/initrd-2.6.18-194.3.1.el5en.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 arrancarcon 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.el5en)

    root (hd0,0)

    kernel /en.g-2.6.18-194.3.1.el5

    module /vmlinu-2.6.18-194.3.1.el5en ro root=LABEL=/ rhgb quiet

    module /initrd-2.6.18-194.3.1.el5en.img

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

    Activando el demonio end

    El demonio /usr/sbin/end debe ser iniciado automticamente al arranque del sistema, xend es necesario ya que es la interfaz entre las

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    23/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    24/105

    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_mh

    Frecuencia del CPU

    total_memor

    Memoria total disponible en el sistema

    en_major, en_minor, en_etra

    Versiones mayores, menores y extras de xen, por ejemplo 3.1.2-194.3.1.el5

    en_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:

    # m li

    Name ID Mem(MiB) VCPU Sae Time()

    Domain-0 0 1689 2 ----- 22.5

    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.

    Inalando Xen 3.4 dede el epoioio gico.de en CenOS 5

    Sascha 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:

    # im /ec/m.epo.d/GITCO-XEN3.4.3_86_64.epo

    Con el contenido:

    [gico-en3.4.3]

    name=RHEL/CenOS-$eleaee - GITCO XEN3.4.3

    bael=hp://.gico.de/epo/en3.4.3

    gpgcheck=0

    enabled=1

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    25/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    26/105

    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:

    (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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    27/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    28/105

    Dispositivos RAID por softaware: /de/mdX.

    Volmenes Lgicos LVM: /de/VGOSDaa/domY-oo, /de/VGOSDaa/domY-ap, /de/VGAPPDaa/domY-

    home.

    Xen usa el manejadorph 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.

    Ceando dico iale baado en achio

    Los 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 et3 montada con opcin noatime.

    El punto de montaje es /en/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 ma_loop al mdulo loop, usando los archivos en el directorio /ec/modpobe.d/ , por

    ejemplo:

    # echo "opion loop max_loop=64" > /ec/modpobe.d/loop

    Si el soprte del driver loopback se compilo como built-in (CONFIG_BLK_DEV_LOOP=) y desea permitir la creacin de ms de 8

    dispositivos loop agregue el parmetro ma_loop a la lnea del que carga el kernel XenLinux en el archivo de configuracin de grub/boo/gb/men.l, por ejemplo:

    modle /mlin-2.6.18.8-en oo=/de/da3 o conole=0 max_loop=64

    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/ero of=/xen/storage/0/images/domuX-root.img b=1024k con=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 tiposparse 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/ero of=/xen/storage/0/images/domuX-root.img b=1024k eek=4096 con=0

    Es posible crear un sistema de archivos ext3 sobre un archivo de imagen de bloque, por ejemplo:

    # mkf.e3 /en/oage/0/image/domX-oo.img

    Tambin puede crear un sistema de archivo swap en un archivo de imagen, por ejemplo:

    # mkap /en/oage/0/image/domX-ap.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

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    29/105

    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 fdik, cfdiko paed.

    Creando archivos de imagen ISO para medios de instalacin

    Si 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 /en/storage/isos/:

    # dd if=/dev/scd0 of=/en/storage/isos/ubuntu-10.04-server-amd64.iso

    Para verificar que efectivamente es un archivo ISO use el comando file, por ejemplo:

    # file /en/storage/isos/ubuntu-10.04-server-amd64.iso

    /en/storage/isos/ubuntu-10.04-server-amd64.iso: # ISO 9660 CD-ROM filesstem data 'Ubuntu-Server 8.04.4 a

    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 /en/storage/isos/ubuntu-10.04-server-amd64.iso

    Noa

    La opcin -f busca un dispositivo loop libre y lo asocia al archivo de imagen.

    Noa

    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 (/en/storage/isos/ubuntu-10.04-server-amd64.iso)

    Noa

    Este es el mismo modo en el que Xen monta los discos duros virtuales basados en archivos de imagen usando el

    manejadorfile.

    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 nativas

    Para asignar particiones linux nativas a como discos duros a las maquinas virtuales cree las particiones con la herramienta fdisk, por ejemplo:

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    30/105

    # fdik /de/db

    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:

    # cfdik /de/db

    Otra alternativa es usar el programa parted, por ejemplo:

    # paed /de/db

    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 /de, por ejemplo:

    # papobe /de/da

    Verifique que los archivos de dispositivo esten en el directorio /de.

    Para crear un sistema de archivos ext3 en una nueva particin use el comando mkfs.et3, por ejemplo:

    # mkf.e3 /de/db1

    Importante

    Si va dedicar una particin linux nativa al directorio /boo 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:

    # mkap /de/db2

    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 LVM

    Antes que nada asegurese de tener instaladas las herramientas para manipular los volmenes lgicos LVM, instale el paquete lvm2:

    # ap-ge inall lm2

    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:

    # pdae-iniamf - -k 2.6.18.8-en

    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:

    # cfdik /de/dc

    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 (Phsical Volume) LVM:

    # pceae /de/dc1

    Importante

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    31/105

    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:

    # gceae VGXen01 /de/dc1

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

    # gdipla 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:

    # lceae --ie 4G --name f1.eample.com-oo VGXen01

    Logical olme "f1.eample.com-oo" ceaed

    Tambin puede crear volmenes lgicos para la particin swap:

    # lceae --ie 1G --name f1.eample.com-ap VGCen01

    Logical olme "f1.eample.com-oo" ceaed

    Cree volmenes lgicos para las particiones de datos del DomU fs1:

    # lceae --ie 100G --name f1.eample.com-home VGXen01

    Logical olme "f1.eample.com-home" ceaed

    Para crear un sistema de archivos ext3 en un volmen lgico use:

    # mkf.e3 /de/VGXen01/f1.eample.com-oo

    Parar crear un sistema de archivos swap en un volmen lgico use:

    # mkap /de/VGXen01/nedom-ap

    Puede clonar un volmen lgivo LV usando el comando dd, por ejemplo:

    # dd if=/de/VGXen01/enbae-dik of=/de/VGXen01/nedom-dik

    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:

    # leend --ie +10G /de/VGXen01/f1.eample.com-home

    Importante

    El sistema de archivos en /de/VGXen01/f1.eample.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:

    # e2fck -f /de/VGXen01/f1.eample.com-home

    # eie2f /de/VGXen01/f1.eample.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:

    # lemoe /de/VGXen01/f1.eample.com-home

    Para ms informacin para la administracin de volmenes lgicos LVM se recomienda que lea el LVM HOWTO official.

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    32/105

    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 Xen

    En 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 Xen

    Xen 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 Linu sin Xen

    Bsicamente existen dos tipos de configuracin de red en xen, configuracin basada en bridge (bridged) y configuracin enrutada (roed).

    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 (Eher Channel).

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    33/105

    En las siguientes secciones veremos como crear el o los bridges usando los scripts de xen y usando las herramientas de su distribucin.

    Configrando Xen en modo bridge

    En 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 /ec/en/end-config.p, en este archivo deben

    de haber dos lineas donde se define el script para la creacin de bridges (neok-cip) y otra para la creacin de las interfaces

    virtuales para los domUs(if-cip)

    .

    Importante

    Asegurese que solo haya una linea descomentada de neok-bidge y una de if-cip.

    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:

    (netork-script neok-bidge)

    (if-script if-bidge)

    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.

    # hdon - no

    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 /ec/en/cip/neok-bidge realiza las siguientes tareas:

    Crea un nuevo bridge llamado enbr0 (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 enbr0/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 enmodo bridge se debera de ver con en el siguiente figura:

    Figura 3.2. Servidor Linu con Xen un bridge

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    34/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    35/105

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    36/105

    La configuracin actual no nos sirve del todo ya que solo se crea un bridge al que se le conecta una sola interfaz fsica, en nuestro casovamos a agregar una interfaz fsica al sistema, la cual queremos que sea usada exclusivamente por el firewall/gateway, para esta nueva

    configuracin tendremos que crear un script wrapper para /etc/xen/scripts/network-bridge el cual lo ejecutar dos veces para

    crear dos bridges.

    En Xen 3.2 cree el script /etc/xen/scripts/multi-network-bridge con el siguiente contenido:

    #!/bin/sh

    /etc/xen/scripts/network-bridge $1 netdev=eh0

    /etc/xen/scripts/network-bridge $1 netdev=eh1

    En Xen 3.4 cree el script /etc/xen/scripts/multi-network-bridge con el siguiente contenido:

    #!/bin/sh

    /etc/xen/scripts/network-bridge "$@" netdev=eh0 bridge=eth0

    /etc/xen/scripts/network-bridge "$@" netdev=eh1 bridge=eth1

    Guarde el archivo y asigne permisos de ejecucin.

    # chmod +x /etc/xen/scripts/multi-network-bridge

    Configure la interfaz de red eth1 en modo manual en el archivo interfaces(5), por ejemplo:

    # Interfa fisica para bridge eth1

    auto eh1

    iface eh1 inet manual

    Ahora tiene que cambiar la ruta del script para crear bridges en el archivo de configuracin /etc/xen/xend-config.sxp, cambiar de:

    (network-script network-bridge)

    Por:

    (network-script multi-network-bridge)

    Como ltimo paso reiniciamos el sistema para que los cambios tomen efecto.

    Al iniciar Xend se ejecutar el script /etc/xen/scripts/multi-network-script y crear dos bridges, uno para eh0 y otro para eh1,

    como se muestra a continuacin:

    # ifconfig peth1

    peth1 Link encap:Ethernet HWaddr 00:15:17:38:3e:28

    UP BROADCAST PROMISC MULTICAST MTU:1500 Metric:1

    RX packets:0 errors:0 dropped:0 overruns:0 frame:0

    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 txqueuelen:1000

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    37/105

    RX be:0 (0.0 B) TX be:0 (0.0 B)

    Bae adde:0ece0 Memo:fe9e0000-fea00000

    Tambin podemos ver la informacin de los bridges:

    # bcl ho

    bidge name bidge id STP enabled ineface

    eh0 8000.00188bfd7b7c no peh0

    eh1 8000.001517383e28 no peh1

    En la salida del comando anterior se nota lo siguiente:

    eth0 de DomU2 estar conectada al bridge eth0

    eth1 de Domu2 estar conectada al bridge eth1 que estar conectada directamente al mdem de internet

    Modificaremos el archivo de configuracin /ec/en/fieall.cfg y cambiaremos la linea vif para indicarle los bridges Por default est

    as:

    if = [ 'mac=00:16:3E:EF:91:2F' ]

    Ese MAC address se genero automticamente y por default quedamos que utiliza el primer bridge eth0, para agregarle otra interfaz a este

    DomU debemos de cambiar la linea a

    if = [

    'mac=00:16:3E:EF:91:2F, bidge=eth0',

    'mac=00:16:3e:07:31:85, bidge=eth1'

    ]

    Se recomienda utilizar el rango de direcciones MAC reservadas para Xen, el rango es 00:16:3e:::, puede utilizar un script para

    generar MAC de forma aleatoria: /usr/local/bin/macgen.p.

    Como crear un bridge dummy para una red privada sin conexin fsica

    Los dispositivos de red virtual dummy tienen todas las funcionalidades que una interfaz de red fsica, son usados para crear redes privadas

    que no tengan acceso a una red fsica.

    Para crear una interfaz de red dummy, debe definir el nombre de la interfaz asociada al mdulo y el nmero mximo de interfaces dummy

    que el kernel soporta. Edite las opciones para el mdulo dummy, por ejemplo:

    # im /ec/modpobe.d/dmm

    Con el siguiente contenido:

    alia dumm0 dmm

    opion dmm nmdmmie=1

    Nota

    Si va a crear ms de un dispositivo dummy recuerde incrementar el nmero en la opcin nmdmmie.

    Tambin debe habilitar la interfaz en interfaces(5), por ejemplo:

    # Inefa fiica paa bidge dmm0

    ao dumm0

    iface dumm0 ine manal

    Si quiere agregar un bridge a esta interfaz agregue:

    /ec/en/cip/neok-bidge $1 nede=dumm0

    Al archivo /ec/en/cip/mli-neok-bidge y reincie el sistema.

    Veamos como se vera un bridge privado y un switch fsico:

    Figura 3.5. Servidor Linu con Xen, dos bridges, uno dumm, tres Domu

  • 7/29/2019 Administracion de Servidores Virtuales Con Xen y GNU Linux

    38/105

    En las siguientes secciones veremos como crear los bridges usando las herramientas del sistema operativo.

    Creando los bridge Linu usando las herramientas del sistema operativo

    Es posible prescindir del script /ec/en/cip/neok-bidge para la creacin del o los bridge y utilizar las herramientas de

    configuracin de red propias de la distribucin, por ejemplo, en Debian/Ubuntu es posible crear un bridge usando el archivo de

    configuracin /ec/neok/ineface, por ejemplo, para crear un bridge para la interfaz fsica eth0 use:

    # im /ec/neok/ineface

    Cambie la configuracin para la interfaz eth0 as:

    # The loopback neok ineface

    ao lo

    iface lo ine loopback

    # WAN Bidge

    ao enbr0

    iface enbr0 ine aic

    adde 192.168.1.20

    neok 192.168.1.0

    boadca 192.168.1.255

    nemak 255.255.255.0

    gaea 192.168.1.1

    bidge_fd 9bidge_hello 2

    bidge_maage 12

    bidge_maai 0

    bidge_po eth0

    bidge_p off

    Imporane

    Cuando cree bridges desd