Upload
hermis-ramos-espinal
View
224
Download
0
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
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