Tecnicas de virtualizacin
2. Introduccin al hypervisor Xen
Historia del proyecto Xen
Caracteristicas Xen
Arquitectura de Xen
Recursos adicionales
Sitios web
Pginas de manual
3. Instalacin y configuracin del servidor Xen en GNU/Linux
Requerimientos de sistema
Requerimientos de hardware
Requerimientos de sofware
Instalando Xen desde el cdigo fuente en Ubuntu Server
Compilando Xen 3.4.x desde las fuentes en Ubuntu Server
Instalando el kernel XenLinux desde el cdigo fuente
Instalando el kernel XenLinux desde apt
Configurando GRUB para arrancar Xen 3.4.x
Activando el demonio xend
Arrancando y verificando el funcionamiento de Xen
Instalando Xen en Ubuntu Server desde apt
Instalando el hypervisor Xen y el kernel XenLinux desde apt
Configurando GRUB para arrancar Xen
Activando el demonio xend
Arrancando y verificando el funcionamiento de Xen
Instalando Xen en CentOS 5
Instalando Xen con yum
Configurando GRUB para arrancar Xen
Activando el demonio xend
Arrancando y verificando el funcionamiento de Xen
Instalando Xen 3.4 desde el repositorio gitco.de en CentOS 5
Configurando el demonio xend y la herramienta xm
Configuracin de los medios de almacenamiento local para las VMs en Xen
Creando discos virtuales basados en archivos
Creando archivos de imagen ISO para medios de instalacin
Creando discos virtuales basados en particiones Linux nativas
Creando discos virtuales basados en volmenes lgicos Linux LVM
Configuracin de los dispositivos de red fsicos y virtuales en Xen
Introduccin a los modos de red en Xen
Configurando Xen en modo bridge
Configurando mltiples switches virtuales con Xen y bridges Linux
Como crear un bridge dummy para una red privada sin conexin fsica
Creando los bridge Linux usando las herramientas del sistema operativo
Como generar direcciones MAC nicas para Xen
Recursos adicionales
Sitios web
Pginas de manual
4. Creacin de maquinas virtuales en Xen
Requisitos para las Maquinas Virtuales Xen
Prefacio
Tabla de contenidos
Convenciones del Documento
Convenciones Tipogrficas
Convenciones del documento
Notas y Advertencias
Convenciones Tipogrficas
Se utilizan cuatro convenciones tipogrficas para llamar la atencin sobre palabras o frases
especficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes:
Negrita monoespaciado
Utilizada para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de
archivo y rutas. Tambin se utiliza para resaltar teclas claves y combinaciones de teclas.
Para ver el contenido del archivo my_next_bestselling_novel en su directorio actual de
trabajo, escriba el comando cat my_next_bestselling_novel en el intrprete de comandos
de shell y pulse Enter para ejecutar el comando.
Lo anterior incluye un nombre de archivo, un comando de shell y una tecla clave, todo en
negrita-monoespaciado y distinguible gracias al contexto.
Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el guin que
conecta cada parte de una combinacin de tecla. Por ejemplo:
Pulse Enter para ejecutar el comando.
Pulse Control+Alt+F1 para cambiar a la primera terminal virtual. Pulse Control+Alt+F7
para volver a su sesin de Ventanas-X.
La primera oracin resalta la tecla clave determinada que se debe pulsar. La segunda resalta
dos conjuntos de tres teclas claves, cada conjunto presionado simultneamente.
Si el cdigo fuente es discutido, nombres de clase, mtodos, funciones, nombres de
variables, y valores de retorno mencionados dentro de un prrafo sern presentados como lo
anterior, en Negrita-monoespaciado. Por ejemplo:
Las clases de archivo relacionadas incluyen filename para sistema de archivos, file para
archivos y dir para directorios. Cada clase tiene su propio conjunto asociado de permisos.
Proportional Bold
Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicacin;
texto de cuadro de dilogo, botones etiquetados, etiquetas de cajilla de verificacin y botn
de radio; ttulos de men y ttulos del sub-men. Por ejemplo:
Seleccionar Sistema > Preferencias > Ratn desde la barra del men principal para lanzar
Preferencias de Ratn. En la pestaa de Botones, haga clic en la cajilla ratn de mano
izquierda y luego haga clic en Cerrar para cambiar el botn principal del ratn de la
izquierda a la derecha (adecuando el ratn para la mano izquierda).
Para insertar un caracter especial en un archivo gedit, seleccione desde la barra del men
principal Aplicaciones > Accesorios > Mapa de caracteres. Luego, desde la barra del men
elija Bsqueda > Hallar mapa de caracteres, teclee el nombre del caracter en el campo de
Bsqueda y haga clic en Siguiente. El caracter buscado se resaltar en la Tabla de
caracteres. Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto
para copiar y luego haga clic en el botn de Copiar. Ahora regrese a su documento y elija
Editar > Pegar desde la barra de men de gedit.
El texto anterior incluye nombres de aplicacin; nombres de men de todo el sistema y
elementos; nombres de men de aplicaciones especficas y botones y texto hallados dentro
de una interfaz GUI, todos presentados en negrita proporcional y distinguibles por contexto.
Observe la > abreviatura utilizada para indicar recorrido a travs de un men y sus submenes. Esto es para evitar la dificultad de seguir el mtodo 'Seleccionar Ratn desde el
sub-men Preferencias en el men de Sistema de la barra de men principal'.
Itlicas-negrita monoespaciado
o Itlicas-negrita proporcional
Desktop
Desktop1
documentation
downloads
drafts
images
mss
notes
photos
scripts
stuff
svgs
svn
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");
}
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 debera tener consecuencias negativas, pero podra perderse
de algunos trucos que pueden facilitarle las cosas.
Importante
Los cuadros de importante dan detalles de cosas que se pueden pasar por alto
fcilmente: cambios de configuracin nicamente aplicables a la sesin actual, o
servicios que necesitan reiniciarse antes de que se aplique una actualizacin. Ignorar
estos cuadros de importante no ocasionar prdida de datos, pero puede causar enfado
y frustracin.
Advertencia
Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionar prdida
de datos.
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.
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.
Xen is a virtual machine monitor (VMM) for x86-compatible computers. Xen can securely
execute multiple virtual machines, each running its own OS, on a single physical system
with close-to-native performance.
Caracteristicas Xen
Arquitectura de 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://wiki.xensource.com/xenwiki/XenArchitecture?
action=AttachFile&do=get&target=Xen+Architecture_Q1+2008.pdf - Xen
Architecture Overview (February 2008)
Pginas de manual
Para conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se
recomienda leer los manuales relacionados.
Instalacin del hypervisor Xen junto con sus herramientas, bibliotecas y archivos de
configuracin.
Configuracin del gestor de arranque grub para ejecutar Xen y el Domain-0 con el
kernel XenLinux.
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 hardware
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 (Virtual Machines), se
recomienda que se dedique el sistema exclusivamente para la ejecucin de Xen ya que
cualquier otra operacin podra afectar el rendimiento del sistema host como de las
mquinas virtuales.
Aunque el hypervisor Xen puede ser ejecutado en sistemas x86 de 32-bit (i386) se limitara
a solo ejecutar VMs de 32-bit. Si tiene que ejecutar maquinas virtuales tanto en 32-bit y 64bit entonces dedique un servidor con soporte 64-bit.
Los requerimientos del hardware para el servidor Xen van a depender del tipo de maquinas
virtuales que vaya a ejecutar. El tema depende de si va a ejecutar maquinas virtuales en
modo Paravirtualized (PVM) o en Full virtulization (HVM).
Para ejecutar maquinas virtuales en modo Full virtualization va a requerir que el BIOS de la
tarjeta madre tenga el soporte de Virtualizacin activado y que el procesador tambin
incluya el soporte de virtualizacin. Tanto AMD como Intel incluyen soporte de
virtualizacin asistida por hardware en sus procesadores actuales, AMD-V es la tenologa
introducida por AMD e Intel VT VT-x es la tenologa introducida por Intel.
En cuanto al uso de memoria RAM, se recomienda que dedique por lo menos 512 de RAM
para el Domain0 ya que requiere recursos para realizar las operaciones de I/O y
comunicacin entre el hypervisor y las maquinas virtuales. Si cree que va a tener maquinas
virtuales que hace uso intensivo de I/O como por ejemplo usando sistemas con RAID por
software, iSCSI o LVM entonces se recomienda agregar otros 512MB extras de RAM para
el Domain0. Para las maquinas virtuales usted haga el calculo, recuerde que en la mayora
de los casos las maquinas virtuales harn mayor uso de memoria que de CPU por lo que no
escatime en recursos.
La asignacin de disco se recomienda que dedique por lo menos 20 GB de espacio para el
sistema operativo del Domain0, ya que va a ejecutar Xen en un Domain0 Linux no va a
usar demasiado espacio, 4GB seran suficientes, sin embargo, se recomienda agregar ms
espacio para los logs de sistema, archivo de imgenes de sistemas operativos, imgenes
ISO, directorio para almacenar el estado (RAM) de las maquinas virtuales, entre otras
cosas.
La configuracin de red para el servidor Xen influenciara en grande el modo de conexin
de las maquinas virtuales, la mayora de modos y dispositivos de red disponibles en un
kernel Linux es soportado por Xen, desde interfaces de red 100M/s, 1GB o 10GB Ethernet,
Bonding (Link Aggregation), VLANs, NFS, iSCSI, y otros esquemas conocidos pueden ser
configurados en el Domain0 para proveer entornos compartidos, seguros y aislados de red
para las maquinas virtuales.
Si desea saber que tipo de CPU tiene un sistema puede iniciar con cualquier disco Live
Linux y ver el contenido del archivo /proc/cpuinfo para ver la informacin de los
procesadores, por ejemplo:
# cat /proc/cpuinfo
processor
: 0
vendor_id
: GenuineIntel
cpu family
: 6
model
: 23
model name
: Intel(R) Xeon(R) CPU
stepping
: 10
cpu MHz
: 1995.043
cache size
: 6144 KB
physical id
: 0
siblings
: 1
core id
: 0
cpu cores
: 1
E5405
@ 2.00GHz
Adems si desea saber si el CPU tiene soporte para virtualizacin asistida por hardware
entonces debera ver la bandera que indique si el soporte esta disponible, Intel incluye la
bandera vmx, por ejemplo:
# grep 'vmx' /proc/cpuinfo
flags
: fpu de tsc msr pae
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm
arch_perfmon pebs
bts rep_good pni monitor ds_cpl vmx
lahf_lm
flags
: fpu de tsc msr pae
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm
arch_perfmon pebs
bts rep_good pni monitor ds_cpl vmx
lahf_lm
flags
: fpu de tsc msr pae
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm
arch_perfmon pebs
bts rep_good pni monitor ds_cpl vmx
lahf_lm
flags
: fpu de tsc msr pae
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm
arch_perfmon pebs
bts rep_good pni monitor ds_cpl vmx
lahf_lm
flags
: fpu de tsc msr pae
pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm
arch_perfmon pebs
En sistemas con CPU AMD, busque el flag svm (Secure Virtual Machine), por ejemplo:
# grep 'svm' /proc/cpuinfo
flags
: fpu de tsc msr pae mce cx8
pse36 clflush mmx
fxsr sse sse2 ht syscall nx mmxext fxsr_opt
pni cx16
lahf_lm cmp_legacy svm extapic cr8_legacy
flags
: fpu de tsc msr pae mce cx8
pse36 clflush mmx
fxsr sse sse2 ht syscall nx mmxext fxsr_opt
pni cx16
lahf_lm cmp_legacy svm extapic cr8_legacy
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 Bootloader), recuerde que el hypervisor se ejecuta entre el
hardware (BIOS) y el sistema operativo, por lo que vamos a requerir que el gestor de
arranque inicialice el hypervisor como si fuera un kernel de sistema y el kernel vmlinuz lo
ejecute como un mdulo, este kernel ser requerido para inicializar el sistema operativo del
dominio privilegiado Domain0.
El kernel que Xen va a cargar como modulo debe estar modificado para soportar Xen, el
kernel va ser utilizado por el dominio privilegiado o Dom0, el cual tendr privilegios para
iniciar y controlar nuevas maquinas virtuales o DomU, acceder directamente al hardware a
travs de los drivers Backend los cuales multiplexan y re envan las peticiones de hardware
desde los drivers Frontend en los DomU.
Versiones modificadas de Linux, NetBSD y Solaris pueden ser usados como Dom0,
algunas de las distribuciones que proveen kernels Dom0 para Linux son:
Debian
Ubuntu
RHEL
CentOS
SLES
OpenSUSE
Gentoo
Vea la informacin oficial de cada distribucin para ms informacin sobre como instalar
un kernel Dom0. Para ms informacin acerca de kernels Dom0 para diferentes
distribuciones Linux vea la pagina del wiki: Xen dom0 kernels.. El desarrollo actual de Xen
con respecto al kernel se esta por incluir en el kernel linux upstream, todo el trabajo se esta
enfocando en el kernel Xen PVPOS, para ms informacin ver la pagina del wiki: Xen
paravirt_ops for upstream Linux kernel..
Para ejecutar maquinas virtuales PVM Linux, va requerir un kernel linux del guest incluya
soporte Xen, este kernel debe proveer de los drivers Frontend para comunicarse y hacer
peticiones de hardware con los drivers Backend que se ejecutan en el Domain0, algunas
distribuciones incluyen un kernel con los drivers backend y frontend para que pueda ser
usando tanto para dom0 y domU.
Para configurar el entorno de red fsico y virtual en el servidor Xen se va a requerir de las
herramientas de configuracin de red en linux, asegurese de instalar el paquete bridge-utils
en Debian/Ubuntu para la creacin de switches virtuales o bridges.
Para configurar los sistemas de almacenamiento va se recomienda instalar el soporte para la
creacin y administracin de volmenes lgicos LVM, instale el paquete lvm2
Debian/Ubuntu.
No se recomienda que active apparmor a menos que sepa administrarlo para que coopere
con Xen.
Nota
Para ms informacin acerca de las dependencias lea el archivo README incluido en la
raz de las fuentes de Xen.
Importante
Para incluir el soporte PCI passthrough debe instalar el paquete pciutils-dev antes de
compilar xen tools.
Importante
Para sistemas de 64-bit debe instalar paquete gcc-multilib.
Descargue las fuentes de Xen 3.4.x desde el sitio oficial de Xen, la versin 3.4.x se
encuentra en la pgina Xen Hypervisor 3.4.3 Download.
Descargue y prepare las fuentes en el directorio /usr/src:
#
#
#
#
cd /usr/src
wget http://bits.xensource.com/oss-xen/release/3.4.3/xen-3.4.3.tar.gz
tar -zxvf xen-3.4.3.tar.gz
cd xen-3.4.3
Importante
Cuando se configura el kernel XenLinux se le preguntar acepte la instalacin de
determinadas funcionalidades del kernel, algunas en modo built-in (Y) y otras como
modulo (M/m), se recomiende acepte los parmetros predeterminados presionando
solo Enter.
Importante
El parmetro world crear una imagen de kernel XenLinux (vmlinuz-2.6.x-xen) que
puede ser usado tanto en el dominio privilegiado Domain0 o en dominios no
provilegiados domUs..
Ejecute el comando make install para instalar el hypervisor Xen, el kernel XenLinux, las
herramientas y la documentacin de Xen en el sistema:
# make install
Si no desea instalar el kernel XenLinux 2.6.18, instale los elementos por separado, por
ejemplo, para compilar e instalar el hypervisor Xen y las herramientas ejecute:
# make xen
# make tools
# make install-xen
# make install-tools PYTHON_PREFIX_ARG=
Espere a que termine la instalacin, al terminar revisamos el contenido del directorio /boot
para verificar la instalacin del hypervisor:
# ls -l /boot/xen*
-rw-r--r-- 1 root root 549722
lrwxrwxrwx 1 root root
12
3.4.3.gz
lrwxrwxrwx 1 root root
12
3.4.3.gz
lrwxrwxrwx 1 root root
12
3.4.3.gz
-rw-r--r-- 1 root root 8950258
Si instalo el kernel XenLinux 2.6.18 incluido en las fuentes de Xen, se instalan los
siguientes archivos y directorios:
Si su sistema requiere de una imagen initrd para el kernel XenLinux puede crearlo con el
comando mkinitramfs, por ejemplo:
# depmod 2.6.18.8-xen
# cd /boot
# mkinitramfs -o initrd.img-2.6.18.8-xen 2.6.18.8-xen
Importante
Si instala soporte LVM en el Domain-0 se recomienda que actualice la imagen initrd,
por ejemplo: update-initramfs -u -k 2.6.18.8-xen.
En la siguiente seccin veremos como configurar el arrancador GRUB para inicializar el
hypervisor Xen y el domain-0.
Importante
Si va a instalar maquinas virtuales Ubuntu Server versiones 8.04 se recomienda instalar
este kernel.
Opcionalmente puede instalar los paquetes linux-ubuntu-modules-2.6.24-28-xen y linuxrestricted-modules-2.6.24-28-xen para instalar los drivers para dispositivos adicionales.
Los paquetes de la imagen y mdulos de kernel XenLinux instalan los siguientes archivos y
directorios:
Importante
Antes de modificar el archivo de GRUB es recomendable documentar la configuracin
del kernel actual y agregar una entrada adicional con el nuevo kernel, de manera que si
no funciona el arranque de Xen el Domain-0 pueda iniciar con un kernel funcional.
La entrada predeterminada para arrancar un kernel 2.6.24 no modificado de Ubuntu Server
se ve as:
title
Ubuntu 8.04.4 LTS, kernel 2.6.24-28-server
root
(hd0,0)
kernel
/boot/vmlinuz-2.6.24-28-server root=UUID=557cfe8a-e2db4bdd-a965-d5925ebc28a3 ro quiet splash
initrd
/boot/initrd.img-2.6.24-28-server
Es importante que si asigno una particin separada para el directorio /boot, por ejemplo
/dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:
title
Xen 3.4.3 / Ubuntu 8.04.4 LTS, kernel 2.6.18.8-xen
root
(hd0,0)
kernel
/xen-3.4.3.gz
module
/vmlinuz-2.6.18.8-xen root=UUID=557cfe8a-e2db-4bdd-a965d5925ebc28a3 ro console=tty0
module
/initrd.img-2.6.18.8-xen
Note que se especifica la particin de arranque con el parametro root y adems se incluye
una imagen initrd.
Ahora debemos editar el script /etc/init.d/xendomains para adaptar las rutas, cambie el
valor de las variables LOCKFILE y XENDOM_CONFIG, por ejemplo:
LOCKFILE=/var/lock/xendomains
XENDOM_CONFIG=/etc/default/xendomains
Nota
Por default LOCKFILE apunta a /var/lock/subsys, el cual no existe en
Ubuntu/Debian, /var/lock est montado sobre un disco ramdisk tipo tmpfs.
El script xendomains por default guarda el estado de las maquinas virtuales (disco y
memoria) al apagar el sistema (Domain-0), por default guarda un archivo de cada VM en el
directorio definido por la variable XENDOMAINS_SAVE dentro del archivo
/etc/default/xendomains, por default esta as:
XENDOMAINS_SAVE=/var/lib/xen/save
Cree el directorio para almacenar el estado de las VMs al apagar o re iniciar el sistema:
# mkdir -p /var/lib/xen/save
En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie
el sistema para arrancar con Xen y el Dom0.
Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos
muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema
operativo GNU/Linux x86_64, es decir, 64-bit.
Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo
/proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando
en el dominio de control o privilegiado, por ejemplo:
# cat /proc/xen/capabilities
control_d
Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando
xm, veamos la informacin del sistema xen:
# xm info
host
: xh01.example.com
release
: 2.6.18.8-xen
version
: #1 SMP Tue Oct 12 20:58:31 CDT 2010
machine
: x86_64
nr_cpus
: 2
nr_nodes
: 1
cores_per_socket
: 2
threads_per_core
: 1
cpu_mhz
: 2700
hw_caps
:
178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f:00000000
virt_caps
: hvm
total_memory
: 1919
free_memory
: 119
node_to_cpu
: node0:0-1
node_to_memory
: node0:119
xen_major
: 3
xen_minor
: 4
xen_extra
: .3
xen_caps
: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler
: credit
xen_pagesize
: 4096
platform_params
: virt_start=0xffff800000000000
xen_changeset
: unavailable
cc_compiler
cc_compile_by
cc_compile_domain
cc_compile_date
xend_config_format
:
:
:
:
:
ID
0
Mem VCPUs
512
State
r-----
Nota
Vea que la cantidad de memoria asignada al Domain-0 esta limitada a 512M.
Si la informacin antes mostrada fue similar significa que Xen 3.4.x esta corriendo
exitosamente sobre un Domain-0 Ubuntu 8.04 LTS Server edicin amd64.
Ubuntu 8.04 LTS Server tiene soporte incluido para Xen, el soporte Xen para el kernel
2.6.24 funciona tanto para el Domain-0 y las domUs, tanto para las versiones i386 como
amd64. El hypervisor soportado es Xen 3.2 as como las herramientas de sistema. Adems
incluye el soporte de xen-tools, las cuales es un conjunto de scripts para automatizar la
creacin y administracin de maquinas virtuales.
En las siguientes secciones veremos como instalar un servidor Xen para hospedar maquinas
virtuales tanto de tipo PVM como HVM sobre Ubuntu 8.04 LTS Server en la edicin
amd64 la cual nos permitir ejecutar maquinas virtuales tanto en arquitecturas 32-bit (i386)
como 64-bit (amd64).
rinse
xfsprogs
libc6-xen
xen-hypervisor-amd64
xen-hypervisor-i386
xen-hypervisor-i386-pae
xen-shell
Importante
Antes de modificar el archivo de GRUB es recomendable documentar la configuracin
del kernel actual y agregar una entrada adicional con el nuevo kernel, de manera que si
no funciona el arranque de Xen el Dom0 pueda iniciar con un kernel funcional.
La entrada predeterminada para arrancar un kernel 2.6.24 no modificado de Ubuntu Server
se ve as:
title
Ubuntu 8.04.4 LTS, kernel 2.6.24-28-server
root
(hd0,0)
kernel
/boot/vmlinuz-2.6.24-28-server root=UUID=557cfe8a-e2db4bdd-a965-d5925ebc28a3 ro quiet splash
initrd
/boot/initrd.img-2.6.24-28-server
Es importante que si asigno una particin separada para el directorio /boot, por ejemplo
/dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:
title
Xen 3.2 / Ubuntu 8.04.4 LTS, kernel 2.6.24-28-xen
root
(hd0,0)
kernel
/xen-3.2.gz
module
/vmlinuz-2.6.24-28-xen root=UUID=557cfe8a-e2db-4bdda965-d5925ebc28a3 ro console=tty0
module
/initrd.img-2.6.24-28-xen
Note que se especifica la particin de arranque con el parametro root y adems se incluye
una imagen initrd.
El script xendomains por default guarda el estado de las maquinas virtuales (disco y
memoria) al apagar el sistema (Domain-0), por default guarda un archivo de cada VM en el
directorio definido por la variable XENDOMAINS_SAVE dentro del archivo
/etc/default/xendomains, por default esta as:
XENDOMAINS_SAVE=/var/lib/xen/save
Cree el directorio para almacenar el estado de las VMs al apagar o re iniciar el sistema:
# mkdir -p /var/lib/xen/save
En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie
el sistema para arrancar con Xen y el Dom0.
Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos
muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema
operativo GNU/Linux x86_64, es decir, 64-bit.
Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo
/proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando
en el dominio de control o privilegiado, por ejemplo:
# cat /proc/xen/capabilities
control_d
Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando
xm, veamos la informacin del sistema xen:
# xm info
host
: curso00.example.com
release
: 2.6.24-28-xen
version
: #1 SMP Thu May 27 01:27:21 UTC 2010
machine
: x86_64
nr_cpus
: 2
nr_nodes
: 1
cores_per_socket
: 2
threads_per_core
: 1
cpu_mhz
: 2613
hw_caps
:
178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f
total_memory
: 2047
free_memory
: 125
max_free_memory
: 1664
max_para_memory
: 1660
max_hvm_memory
: 1648
node_to_cpu
: node0:0-1
xen_major
: 3
xen_minor
: 2
xen_extra
: .1-rc1-pre
xen_caps
: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler
: credit
xen_pagesize
platform_params
xen_changeset
cc_compiler
cc_compile_by
cc_compile_domain
cc_compile_date
xend_config_format
:
:
:
:
:
:
:
:
4096
virt_start=0xffff800000000000
unavailable
gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
buildd
buildd
Sat Feb 21 03:01:02 UTC 2009
4
ID
Nota
Vea la cantidad de memoria asignada al Domain-0.
Mem VCPUs
1879
State
r-----
Si la informacin antes mostrada fue similar significa que Xen esta corriendo exitosamente
sobre un Domain-0 Ubuntu 8.04 LTS Server edicin amd64.
kernel-xen
xen
bridge-utils
e4fsprogs-libs
iscsi-initiator-utils
libvirt
libvirt-python
python-virtinst
qemu
xen-libs
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.
Recuerde actualizar la lnea default para definir el kernel predeterminado, por ejemplo, en
CentOS cuando instala kernel-xen agrega la entrada de Xen se agrego hasta arriba (0), y
cambia el default a 1 para arrancar con el kernel default, cambie el default a 0 para arrancar
con el kernel de Xen, por ejemplo:
default=0
Es importante que si asigno una particin separada para el directorio /boot, por ejemplo
/dev/sda1 (hd0,0) se asigno para /boot, entonces cambie su configuracin a:
title CentOS (2.6.18-194.3.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-194.3.1.el5
module /vmlinuz-2.6.18-194.3.1.el5xen ro root=LABEL=/ rhgb quiet
module /initrd-2.6.18-194.3.1.el5xen.img
Note que se especifica la particin de arranque con el parametro root y adems se incluye
una imagen initrd.
En la siguiente seccin veremos como validar la ejecucin del servidor Xen, ahora re inicie
el sistema para arrancar con Xen y el Dom0.
Note que el comando anterior nos devuelve la versin del kernel y efectivamente nos
muestra que es la versin Xen, adems podemos ver que estamos ejecutando un sistema
operativo GNU/Linux x86_64, es decir, 64-bit.
Ahora verifique si el demonio xend se esta ejecutando, verifique que el archivo
/proc/xen/capabilities muestra control_d, lo cual nos indica que se esta ejecutando
en el dominio de control o privilegiado, por ejemplo:
# cat /proc/xen/capabilities
control_d
Ahora verifiquemos si nos podemos comunicar con el demonio xend usando el comando
xm, veamos la informacin del sistema xen:
# xm info
host
: curso03.example.com
release
: 2.6.18-194.3.1.el5xen
version
: #1 SMP Thu May 13 13:49:53 EDT 2010
machine
: x86_64
nr_cpus
: 2
nr_nodes
: 1
sockets_per_node
: 1
cores_per_socket
: 2
threads_per_core
: 1
cpu_mhz
: 2411
hw_caps
:
178bfbff:ebd3fbff:00000000:00000010:00002001:00000000:0000001f
total_memory
: 1983
free_memory
: 240
node_to_cpu
: node0:0-1
xen_major
: 3
xen_minor
: 1
xen_extra
: .2-194.3.1.el5
xen_caps
: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_pagesize
: 4096
platform_params
xen_changeset
cc_compiler
cc_compile_by
cc_compile_domain
cc_compile_date
xend_config_format
:
:
:
:
:
:
:
virt_start=0xffff800000000000
unavailable
gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)
mockbuild
centos.org
Thu May 13 12:59:18 EDT 2010
2
1689
2 r-----
Nota
Vea la cantidad de memoria asignada al Domain-0.
Si la informacin antes mostrada fue similar significa que Xen esta corriendo exitosamente
sobre un Domain-0 CentOS 5.x edicin amd64.
Con el contenido:
[gitco-xen3.4.3]
name=RHEL/CentOS-$releasever - GITCO XEN3.4.3
baseurl=http://www.gitco.de/repo/xen3.4.3
gpgcheck=0
enabled=1
node_to_cpu
: node0:0-7
xen_major
: 3
xen_minor
: 2
xen_extra
: .1-rc1-pre
xen_caps
: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler
: credit
xen_pagesize
: 4096
platform_params
: virt_start=0xffff800000000000
xen_changeset
: unavailable
cc_compiler
: gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
cc_compile_by
: buildd
cc_compile_domain
: buildd
cc_compile_date
: Sat Feb 21 03:01:02 UTC 2009
xend_config_format
: 4
Tambin puede ver los mensajes que gener el hypervisor Xen al arrancar usando el
subcomando dmesg, por ejemplo:
# xm dmesg
__ __
_____ ____
_
_
\ \/ /___ _ __
|___ / |___ \ / |
_ __ ___/ |
_ __ _ __ ___
\ // _ \ '_ \
|_ \
__) | | |__| '__/ __| |__| '_ \| '__/ _ \
/ \ __/ | | | ___) | / __/ _| |__| | | (__| |__| |_) | | | __/
/_/\_\___|_| |_| |____(_)_____(_)_| |_| \___|_| | .__/|_| \___|
|_|
(XEN) Xen version 3.2.1-rc1-pre (buildd@buildd) (gcc version 4.2.4
(Ubuntu 4.2.4-1ubuntu4)) Sat Feb 21 03:01:02 UTC 2009
(XEN) Latest ChangeSet: unavailable
(XEN) Command line:
(XEN) Video information:
(XEN) VGA is text mode 80x25, font 8x16
(XEN) VBE/DDC methods: V2; EDID transfer time: 2 seconds
(XEN) Disc information:
(XEN) Found 2 MBR signatures
(XEN) Found 2 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN) 0000000000000000 - 0000000000098c00 (usable)
(XEN) 0000000000098c00 - 0000000000100000 (reserved)
(XEN) 0000000000100000 - 000000009e2b2000 (usable)
(XEN) 000000009e2b2000 - 000000009e369000 (ACPI NVS)
(XEN) 000000009e369000 - 000000009fa32000 (usable)
(XEN) 000000009fa32000 - 000000009fa9a000 (reserved)
(XEN) 000000009fa9a000 - 000000009faa9000 (usable)
(XEN) 000000009faa9000 - 000000009fb1a000 (ACPI NVS)
(XEN) 000000009fb1a000 - 000000009fb28000 (usable)
(XEN) 000000009fb28000 - 000000009fb3a000 (ACPI data)
(XEN) 000000009fb3a000 - 000000009fc00000 (usable)
(XEN) 000000009fc00000 - 00000000b0000000 (reserved)
(XEN) 00000000ffc00000 - 00000000ffc0c000 (reserved)
(XEN) 0000000100000000 - 00000001e0000000 (usable)
(XEN) System RAM: 6137MB (6285272kB)
(XEN) Xen heap: 14MB (14864kB)
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) Processor #0 7:7 APIC version 20
(XEN) Processor #2 7:7 APIC version 20
(XEN) Processor #4 7:7 APIC version 20
(XEN)
(XEN)
(XEN)
input
(XEN)
Por ltimo, tambin puede ver los ltimos mensajes de log de Xen con el subcomando log,
por ejemplo:
# xm log
Archivos de imagen con el driver loopback: El driver loopback propio del kernel
Linux mapea dispositivos de bloque a dispositivos loopback. Soporta archivos
RAW de tipo full y sparce. Xen usa el manejador file para este tipo de archivos.
Archivos de imagen con el driver blktap: El driver propio de Xen ofrece mayor
rendimiento que loopback, es ms escalable y asincrono. Soporta archivos RAW de
tipo full y sparce.Xen usa el manejador tap:aio para este tipo de archivos.
En las siguientes secciones veremos como crear diferentes medios de almacenamiento para
las maquinas virtuales usando los tres tipos de almacenamiento local arriba mencionados.
Si decide usar el manejador file para imagenes de archivos usando el driver loopback se
encontrar con que, por default, la mayora de distribuciones Linux solo permiten la
creacin de 8 dispositivos loop lo cual lo limitar al nmero de discos virtuales que podr
asignar a las maquinas virtuales.
Si usa un kernel en donde el driver loopback se compilo como mdulo
(CONFIG_BLK_DEV_LOOP=m) y desea permitir la creacin de ms de 8 dispositivos
loop agregue la opcin max_loop al mdulo loop, usando los archivos en el directorio
/etc/modprobe.d/ , por ejemplo:
# echo "options loop max_loop=64" > /etc/modprobe.d/loop
Para crear un archivo de imagen de tipo full use el comando dd, por ejemplo, para crear
archivo de imagen de 4GB:
# dd if=/dev/zero of=/xen/storage/0/images/domuX-root.img bs=1024k
count=4096
El archivo resultante no tendr ningn contenido pero si est ocupando el espacio fsico,
este es la forma recomendada ya que da mejor rendimiento que el tipo sparse.
Los archivos de imagen loop de tipo sparse inicialmente no ocupan espacio, pero si lo
reflejan a un simple ls, estos archivos se van redimiensionando conforme se escribe en
ellos, si tiene problemas de espacio y quiere aprovechar al mximo el espacio en disco use
el tipo sparse pero recuerde que estar sacrificando rendimiento ya que este tipo causa una
carga extra en el Dom0, para crear un archivo de imagen de tipo sparse con dd use:
# dd if=/dev/zero of=/xen/storage/0/images/domuX-root.img bs=1024k
seek=4096 count=0
Es posible crear un sistema de archivos ext3 sobre un archivo de imagen de bloque, por
ejemplo:
# mkfs.ext3 /xen/storage/0/images/domuX-root.img
Tambin puede crear un sistema de archivo swap en un archivo de imagen, por ejemplo:
# mkswap /xen/storage/0/images/domuX-swap.img
Para mayor informacin de como agregar un disco duro a una maquina virtual vaya a la
seccin Como agregar discos duros virtuales a maquinas virtuales Xen.
Una de las desventajas de usar discos duros virtuales basados en imgenes es que agregan
una carga extra al sistema host, ya que el archivo de imagen esta almacenado en un sistema
de archivos del Domain0 lo cual implica que el OS del Dom0 debe realizar operaciones
para actualizar la meta informacin de los archivos y datos, si desea mejor rendimiento se
recomienda que use particiones nativas o volmenes lgicos LVM con el modo de acceso
raw, as se evita la carga extra.
Para ver como asignar/export un archivo de imagen a una maquina virtual vaya a la seccin
Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato del
parmetro de configuracin de dispositivos de bloque a los DomU.
En las siguientes secciones veremos como crear particiones nativas usando el comando
fdisk, cfdisk o parted.
Para verificar que efectivamente es un archivo ISO use el comando file, por ejemplo:
# file /xen/storage/isos/ubuntu-10.04-server-amd64.iso
/xen/storage/isos/ubuntu-10.04-server-amd64.iso: # ISO 9660 CD-ROM
filesystem data 'Ubuntu-Server 8.04.4 amd64
' (bootable)
Nota
La opcin -f busca un dispositivo loop libre y lo asocia al archivo de imagen.
Nota
Si desea mapear el archivo de imagen ISO a un dispositivo loop en especifico use
-r /dev/loopX.
Para ver el nombre del dispositivo loop al que fu mapeado el archivo use:
# losetup -a
/dev/loop0: [0805]:269281 (/xen/storage/isos/ubuntu-10.04-serveramd64.iso)
Nota
Este es el mismo modo en el que Xen monta los discos duros virtuales basados en
archivos de imagen usando el manejador file.
Ahora puede montar el archivo iso como si fuera un dispositivo de bloque normal:
# mount /dev/loop0 /media/cdrom
# losetup -d /dev/loop0
Crear particin linux native de tipo 83, y particin linux swap tipo 82.
Tambin puede usar el comando cfdisk el cual es ms grfico, por ejemplo:
# cfdisk /dev/sdb
Nota
Si modifico la tabla de particiones en el mismo disco duro en el que esta la particin
raz tendr que re iniciar el sistema o ejecutar el comando partprobe para que el kernel
re lea la tabla de particiones y as cree los archivos de dispositivo de bloque en el
directorio /dev, por ejemplo:
# partprobe /dev/sda
Importante
Si va dedicar una particin linux nativa al directorio /boot de un DomU PV Linux se
recomienda que use un sistema de archivos ext2 para evitar problemas con versiones no
soportadas de boot loaders como grub, pygrub y pv-grub.
Para crear un sistema de archivos swap use mkswap:
# mkswap /dev/sdb2
Para ver como asignar/export una particin linux nativa a una maquina virtual vaya a la
seccin Archivos de configuracin Xen para maquinas virtuales DomU para ver el formato
del parmetro de configuracin de dispositivos de bloque a los DomU.
Es importante que actualice la imagen initrd con el soporte LVM, por ejemplo para
actualizar la imagen initrd para el kernel 2.6.18.8-xen ejecute:
# update-initramfs -u -k 2.6.18.8-xen
Primero debe crear una particin en el disco duro para ser incluido en un volume group, use
cfdisk para crear una particin tipo LVM (8e), por ejemplo:
# cfdisk /dev/sdc
Nota
Haga lo mismo en cada disco que desee incluir.
Use el comando pvcreate para inicializar la particin recien creada, es decir, crearemos un
volmen fsico (Physical Volume) LVM:
# pvcreate /dev/sdc1
Importante
Nos se recomienda crear un physical volume en un disco duro completo, ejem: /dev/sda
por los problemas de administracin que conlleva.
Ahora use el comando vgcreate para crear un Volume Group conformado por los dos
Physical Volumes recin inicializados:
# vgcreate VGXen01 /dev/sdc1
Use el comando vgdisplay para mostrar ms detalles sobre el Volume Group VGXen01,
por ejemplo:
# vgdisplay VGXen01
Con el comando lvcreate creamos los volmenes lgicos dentro de un Volume Group, por
ejemplo, para crear un volmen lgico de 4GB para la particin raz del DomU
fs1.example.com use:
# lvcreate --size 4G --name fs1.example.com-root VGXen01
Logical volume "fs1.example.com-root" created
Cree volmenes lgicos para las particiones de datos del DomU fs1:
# lvcreate --size 100G --name fs1.example.com-home VGXen01
Logical volume "fs1.example.com-home" created
Importante
El sistema de archivos en /dev/VGXen01/fs1.example.com-home debe estasr
desmontado para poder realizar la operacin de forma segura, en especial cuando
pertenece a una maquina virtual encendida.
Despus de extender el volmen lgico con lvextend use resize2fs para extender un sistema
de archivos ext3, por ejemplo:
# e2fsck -f /dev/VGXen01/fs1.example.com-home
# resize2fs /dev/VGXen01/fs1.example.com-home
Importante
Recuerde siempre revisar la consistencia del sistema de archivos con e2fsck antes de
redimiensionar el sistema de archivos.
Para eliminar un volmen lgico use el comando lvremove, por ejemplo:
# lvremove /dev/VGXen01/fs1.example.com-home
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
Reinicie el sistema para que arranque con la configuracin de red en bridge, esto es
necesario para que se reconfigure la red del servidor Xen.
# shutdown -r now
Las configuraciones en modo bridge depender del numero de redes fsicas a conectar y de
el nmero de interfaces fsicas en el Dom0, La configuracin de Xen 3.2 en Ubuntu Hardy
esta preconfigurada para sistemas con una sola interfaz fsica, y todas las los DomU
utilizarn esta interfaz para el flujo de datos entre las diferentes redes, tanto de entrada
como de salida,
Cuando Ubuntu inicia con xen en modo bridge se ejecuta el script
/etc/xen/scripts/network-bridge realiza las siguientes tareas:
Crea un nuevo bridge llamado xenbr0 (xen 3.0) eth0 (xen 3.2)
Despus del procedimiento arriba descrito y una vez que el brid y las interfaces de red
fueron configuradas, la red del servidor Xen se en modo bridge se debera de ver con en el
siguiente figura:
Como vemos, la interfaz fsica peth0 esta conectada al switch de la red LAN y a su vez al
bridge eth0, imagine peth0 como el puerto uplink entre switches L2, la interfaz eth0 del
servidor Xen Dom0 es una interfaz virtual que tambin esta conectada al bridge de nombre
eth0.
Nota
La interfaz fsica que origialmente era eth0, que posteriormene se convirtio a peth0
tambin podra ser una interfaz fsica Ethernet con soporte VLAN trunk 802.1q, o un
Ethernet Channel Bonding.
Importante
En el ejemplo de arriba estamos hablando de dos switches conectados por un cable,
tenga mucho cuidado de no conectar una segunda interfaz de red fisica, digamos eth1 y
crear otro bridge sobre ella, esto y otros casos podran causar lo que se llama un bridge
loop, para ms informacin al respecto leer la pgina del wiki
http://wiki.xensource.com/xenwiki/XenBridgeLoop.
La interfaz de red eth0 del servidor Xen Dom0 se configura dentro del mismo Dom0 en el
archivo de configuracin /etc/network/interfaces, por ejemplo:
# Interfaz Local para red LAN
auto eth0
iface eth0 inet static
address 192.168.221.10
netmask 255.255.255.0
gateway 192.168.221.254
# ifconfig
eth0
Link encap:Ethernet HWaddr 00:1d:7d:d4:09:74
inet addr:192.168.221.10 Bcast:192.168.1.255
Mask:255.255.255.0
inet6 addr: fe80::21d:7dff:fed4:974/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1435 errors:0 dropped:0 overruns:0 frame:0
TX packets:940 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1695569 (1.6 MB) TX bytes:87112 (85.0 KB)
lo
peth0
bridge id
8000.001d7dd40974
STP enabled
no
interfaces
peth0
Si crea ms DomU se crearn ms interfaces vifX, por ejemplo el DomU 2 tendr asignada
una interfaz virtual eth0 la cual estar conectada al bridge mediante el puerto vif2.0, todas
las maquinas DomU por default saldrn por la interfaz fsica peth0 para comunicarse con la
dems red.
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 caso vamos 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=eth0
/etc/xen/scripts/network-bridge $1 netdev=eth1
Configure la interfaz de red eth1 en modo manual en el archivo interfaces(5), por ejemplo:
# Interfaz fisica para bridge eth1
auto eth1
iface eth1 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 eth0 y otro para eth1, 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
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Base address:0xece0 Memory:fe9e0000-fea00000
eth1 de Domu2 estar conectada al bridge eth1 que estar conectada directamente al
mdem de internet
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
vif = [
'mac=00:16:3E:EF:91:2F, bridge=eth0',
'mac=00:16:3e:07:31:85, bridge=eth1'
]
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:
# vim /etc/modprobe.d/dummy
Nota
Si va a crear ms de un dispositivo dummy recuerde incrementar el nmero en la
opcin numdummies.
Tambin debe habilitar la interfaz en interfaces(5), por ejemplo:
# Interfaz fisica para bridge dummy0
auto dummy0
iface dummy0 inet manual
En las siguientes secciones veremos como crear los bridges usando las herramientas del
sistema operativo.
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_ports eth0
bridge_stp off
Importante
Cuando cree bridges desde el archivo interfaces(5) asegurese de que no haya
ninguna interfaz (iface) configurada para las interfaces conectadas al bridge
(bridge_ports), por ejemplo, eth0 en el bridge de arriba.
Ya que ahora la configuracin de el bridge fue delegada a las herramientas del OS,
debemos comentar la lnea del parmetro network-script en el archivo de configuracin
/etc/xen/xend-config.sxp para evitar que cuando el demonio xend sea iniciado cree el
bridge y cause problemas.
# La configuracion del bridge se delego al OS
#(network-script network-bridge)
La creacin de las interfaces virtuales vifX.X (o puertos virtuales) para las VMs seguir
siendo controlada por el script /etc/xen/scripts/vif-bridge, por lo que el parmetro
vif-script del archivo xend-config.sxp debe seguir activa.
Adems, si cambio el nombre del bridge debe asegurarse de cambiar el nombre del bridge
en los archivos de configuracin de sus maquinas virtuales, por ejemplo:
vif = [ 'mac=00:16:3E:EF:91:2F, bridge=xenbr0']
Despus de reiniciar el sistema, y sin ninguna maquina virtual, el bridge quedara as:
Figura 3.6. Servidor Linux con Xen, un bridge y un DomU va OS
Veamos un ejemplo para una mezcla entre bridges con interfaces fsicas y bridges con
interfaces dummy:
# The loopback network interface
auto lo
iface lo inet loopback
# WAN Bridge
auto xenbr0
iface xenbr0 inet static
address 192.168.1.20
network 192.168.1.0
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_ports eth0
bridge_stp off
# LAN Bridge
auto xenbr1
iface xenbr1 inet manual
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_ports eth1
bridge_stp off
# DMZ Bridge
auto xenbr2
iface xenbr2 inet manual
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
bridge_ports dummy0
bridge_stp off
Nota
Puede configurar una interfaz bridge en diferentes modos, por ejemplo: con direccin
IP esttica (static), DHCP (dhcp) o sin direccin IP (manual).
Nota
Si desea crear un bridge sin ninguna interfaz conectada, use la opcin none, por
ejemplo: bridge ports none.
El diagrama de la red descrita arriba se vera as:
Figura 3.8. Servidor Linux con Xen, tres bridges, y cuatro Domu va OS
Una ventaja de realizar la configuracin del bridge de esta forma es que puede usar los
procedimientos probados y soportados por su distribucin.
Se recomienda que asigne direcciones MAC nicas a las maquinas virtuales, para
asegurarse de que las direcciones MAC elegidas no causen conflictos con las tarjetas de red
de algn fabricante o algn host interno, puede usar direcciones basadas en el espacio de
direcciones asignadas por la IANA: 00:16:3e:xx:xx:xx, crearemos un script en python para
semi automatizar la creacin de nuevas direcciones MAC para asignar a las maquinas.
Cree el script /usr/local/sbin/macgen.py:
# vim /usr/local/sbin/macgen.py
Con el contenido:
#! /usr/bin/python
#
# macgen.py script to generate a MAC address for Red Hat Virtualization
guests
#
import random
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
print ':'.join(map(lambda x: "%02x" % x, mac))
Nota
Aparentemente este script fue obtenido de algn documento de redhat,
Asigne privilegios de ejecucin:
# chmod +x /usr/local/sbin/macgen.py
Recuerde que puede ejecutar el comando macgen.py desde el editor vim, recuerdelo
cuando este editando archivos de configuracin de las mquinas virtuales y defina un MAC
Address nico para la mquina en cuestion.
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://wiki.xensource.com/xenwiki/XenArchitecture?
action=AttachFile&do=get&target=Xen+Architecture_Q1+2008.pdf - Xen
Architecture Overview (February 2008)
http://fedoraproject.org/wiki/Features/XenPvopsDom0 - Features/XenPvopsDom0
Pginas de manual
Para conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se
recomienda leer los manuales relacionados y el contenido de los archivos de configuracin.
yum (8) - .
update-rc.d (8) - install and remove System-V style init script links.
chkconfig (8) - .
cfdisk (8) - Curses/slang based disk partition table manipulator for Linux.
vgscan (8) - scan all disks for volume groups and rebuild caches.
/proc/cpuinfo.
/boot/grub/menu.lst.
/etc/modprobe.d/loop.
/etc/xen/xend-config.sxp.
/etc/init.d/xend.
/etc/init.d/xendomains.
/etc/xen/scripts/network-bridge.
/etc/xen/scripts/vif-bridge.
/etc/network/interfaces.
/etc/syscofig/network.
/etc/sysconfig/network-scripts/ifcfg-XXX.
Las maquinas virtuales as como cualquier maquina fsica requieren de ciertos componentes
de hardware base como CPU, memoria, disco duro, tarjetas de red, cada maquina virtual
PV o HVM require de estos mismos componentes de hardware en forma virtual.
En sistemas con un solo CPU o ncleo solo ser posible asignar un CPU virtual (VCPU) a
cada maquina virtual, en sistemas con soporte SMP (Symmetric Multi-Processing), es decir,
sistemas con ms de un CPU fsico o mltiples ncleos es posible asignar ms de un CPU a
las maquinas virtuales, claro, siempre y cuando el sistema operativo guest soporte SMP.
En CPUs tipo x86 AMD o Intel solo ser posible crear maquinas virtuales con sistemas
operativos guest de 32-bit, en CPUs AMD64 o x86_64 ser posible crear maquinas
virtuales con sistemas operativos guest de 32-bit y 64-bit (requiere hypervisor de 64-bit).
Para definir los CPU virtuales que sern asignados a las maquinas virtuales use los
parmetros cpu, cpus y vcpu.
En cuanto a la memoria RAM, es importante notar que la memoria total del sistema por
default ser asgnada al Domain-0, y cada vez que se cree una nueva maquina virtual
domU, el Domain-0 reduce su memoria para que sea asignada a la domU. Recuerde asignar
la memoria reservada para el Domain-0 y aquella para las domU.
uuid (opcional)
UUID para identificar la maquina virtual. Si no se define este parmetro Xen
generar un UUID aleatorio.
Importante
Se recomienda definir un UUID esttico para cada maquina virtual para as
mantener un control de las maquinas virtuales en su entorno, esto es
especialmente recomendado cuando se tiene ms de un servidor Xen, el uuid lo
puede generar con el comando uuidgen(1).
builder
Cual builder usar para construir la domU. El tipo linux es usado para maquinas PV,
y hvm para maquinas HVM, el builder linux es el predeterminado. Ejemplos:
PV Linux:
builder = 'linux'
HVM:
builder = 'hvm'
cpu
pae
PAE (Physical Address Extension) es un mecanismo para acceder a ms de 4GB de
memoria en sistemas 32-bit, aplica tanto para el Domain-0 y DomUs.
pae = '1'
memory
La cantidad de RAM, en megabytes, para asignar al DomU cuando inicia. Si asigna
memoria insuficiente para un dominio puede producir comportamientos bizarros. Si
no hay memoria libre suficiente en el host para atender la peticin el domain fallara
para iniciar.
memory = '1024'
Importante
Recuerde reservar la cantidad de memoria reservada para el Dom0 y recuerde
que Xen usa otros 64Mb adicionales.
disk
Arreglo de dispositivos de bloque asignados a la DomU, usa un formato de:
disk = [ "stanza1", "stanza2", ... ]
Importante
Para tener un buen rendimiento con archivos de imagen se recomienda use el
driver blktap.
tap:aio:/path/to/file - Exporta el archivo usando el driver blktap, este modo el
acceso al dispositivo es directo y funciona de forma asincrona lo cual da mejor
rendimiento especialmente en escrituras y menor consumo de CPU, se pueden
utilizar para archivos de imagen de tipo full o sparse.
frontend-dev
Como aparecer el dispositivo en el dominio guest. Se recomienda que para
maquinas PV use el formato xvdxx (Xen Virtual Disk XX).
mode
El modo de acceso al dispositivo, Hay dos opciones validas, r (read-only), w
(read/write).
Ejemplo de discos duros virtuales basados en archivo de imagen usando el
manejador file y el driver loopback:
disk =
['file:/xen/storage/0/images/fs1.example.com/disk.img,xvda1,w',
'file:/xen/storage/0/images/fs1.example.com/swap.img,xvda2
,w']
'tap:aio:/xen/storage/0/images/app.example.com/disk.img,xv
da1,w',
da2,w'
'tap:aio:/xen/storage/0/images/app.example.com/swap.img,xv
]
'phy:/dev/sdb1,xvda1,w',
'phy:/dev/sdc1,xvda2,w'
'phy:/dev/VGXenOS/fs2.example.com-root,xvda1,w',
'phy:/dev/VGXenOS/fs2.example.com-swap,xvda2,w',
'phy:/dev/VGXenData/fs2.example.com-data,xvda3,w'
Nota
Este es un ejemplo para una DomU HVM para un sistema Windows Server
2003, se le asigna un archivo de imagen como un disco completo que ser
particionado por el instalador, y adems un CD-ROM virtual basado en un
archivo ISO.
Para ms informacin sobre la administracin de dispositivos de almacenamiento
fisicos ver la seccin Configuracin de los medios de almacenamiento local para las
VMs en Xen.
vif (Virtual Interface)
Un arreglo de interfaces de red virtuales asignadas a la DomU, El parmetro vif
define las interfaces de red virtuales a las que se conectar la DomU
vif = [ "stanza1", "stanza2", ... ]
Cada stanza especifica un conjunto de opciones de tipo nombre = valor separada por
comas, en la forma de:
"name1=value1, name2=value2, ..."
bridge
mac
Para agregar una interfaz de red a una domU HVM use el modo ioemu:
vif = [
'type=ioemu, bridge=xenbr0, mac=00:16:3e:5e:76:50'
kernel
La imagen del kernel para el DomU. El formato de este parmetro es la ruta
absoluta para el archivo de la imagen del kernel en el Domain-0.
Ejemplo de parmetros kernel para PV DomU Debian/Ubuntu:
kernel = '/boot/vmlinuz-2.6.24-28-xen'
Nota
Ya que el kernel se localiza en el Domain-0 puede usar cualquier ruta, no tiene
que ser /boot, por ejemplo puede usar /xen/kernels.
ramdisk
El disco RAM inicial para el DomU. El formato de este parmetro es la ruta
absoluta al archivo del initrd, por ejemplo /boot/initrd.gz. En la mayora de las
distribuciones GNU/Linux va a requerir de un disco RAM inicial para cargar los
drivers del sistema de archivos de la particin raz, por ejemplo:
Ejemplo de parmetros ramdisk para PV DomU Debian/Ubuntu
ramdisk = '/boot/initrd.img-2.6.24-28-xen'
Ejemplo de parmetros initrd para PV DomU CentOS 5.x con imagen del kernel en
Dom0:
ramdisk = '/boot/initrd-2.6.18-194.3.1.el5xen.img'
Nota
Ya que la imagen initrd se localiza en el Domain-0 puede usar cualquier ruta,
no tiene que ser /boot, por ejemplo puede usar /xen/kernels.
root
Define el dispositivo raz para el DomU. Esto es requerido para dominios Linux y
posiblemente otros OSes.
root = '/dev/xvda1 ro'
Esta lnea es pasada como parmetro al kernel, por ejemplo al final la cmdline del
DomU sera algo as:
/boot/vmlinuz-2.6.24-28-xen /dev/xvda1 ro
Por lo que es muy importante que se asegure que el dispositivo definido con root
coincida con el nombre frontend asignado al dispositivo fsico definido en disk.
Este dispositivo tambin tendr que coincidir con el dispositivo raz en el archivo
/etc/fstab del DomU.
extra
Informacin extra que es anexada al final de la lnea del parmetro kernel. El
formato es una cadena, el contenido puede ser cualquiera que soporte el kernel. Por
ejemplo:
extra = "4"
Ejemplo de parmetros extra para PV DomU CentOS 5.x con imagen del kernel en
Dom0:
extra = 'fastboot'
bootloader
Ruta al programa arrancador (Bootloader) que usara el PV DomU, Xen incluye
pygrub, una versin de GRUB escrita en python para cargar maquinas virtuales PV,
por ejemplo:
bootloader
= '/usr/bin/pygrub'
disk = [
'tap:aio:/xen/storage/0/images/app.example.com/root.img,xv
da1,w',
'tap:aio:/xen/storage/0/images/app.example.com/swap.img,xv
da2,w'
]
Importante
La particin de arranque debe ser la primer listada en el parmetro disk, en este
caso xvda1, este mismo dispositivo debe ser el que se usa como parmetro root
del kernel en el grub del domU, y en el fstab para la particin raz.
device_model
Ruta del programa que emular los dispositivos para HVM DomU, por ejemplo:
device_model = '/usr/lib/xen/bin/qemu-dm'
Esta opcin es usada para arrancar una maquina virtual HVM Windows desde el cdrom o imagen ISO.
sdl
Habilitar el soporte de arranque grfico en del HVM DomU.
sdl = '1'
Esta opcin no puede ser activada junto con VNC, o se habilita una u otra.
vnc
Si no se define una direccin se usar por default 0.0.0.0, es decir, abrir el puerto
VNC en todas las interfaces de red activas del sistema.
Se recomienda definir 127.0.0.1 y utilice un tnel SSH para conectarse de forma
segura.
vncunused
Permite la creacin del servicio VNC en un puerto no utilizado, por ejemplo:
vncunused = '1'
vncpasswd (opcional)
Contrasea (en texto plano) para conectarse a la consola VNC.
vncpasswd = '123456'
usb
Habilita el soporte de USB para DomU.
usb = '1'
soundhw
Habilita el soporte de audio en la maquina HVM, defina un tipo de tarjeta
(sb16,es1370), por ejemplo:
soundhw='sb16'
localtime
Configura el reloj del sistema guest a el tiempo local (default=0, es decir, UTC),
esta opcin solo se usa para maquinas HVM.
localtime = '1'
on_poweroff
Que accin tomar cuando se ejecute el comando xm destroy en el Dom0.
on_poweroff = 'destroy'
= 'domu01.example.com'
= 'daa7e649-91ce-43b8-8a9f-abfc47fe3dd4'
builder
= 'linux'
kernel
ramdisk
= '/boot/vmlinuz-2.6.18.8-xen'
= '/boot/initrd.img-2.6.18.8-xen'
vcpus
memory
= '1'
= '128'
root
= '/dev/xvda1 ro'
extra
= '2 console=xvc0'
disk
= [
'tap:aio:/xen/storage/1/images/domu01/root.img,xvda1,w',
'tap:aio:/xen/storage/1/images/domu01/swap.img,xvda2,w',
]
vif
= [
'bridge=xenbr1, mac=00:16:3e:29:08:a5'
]
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
Otro ejemplo para una maquina virtual CentOS 5.4 PVM 32-bit con PyGRUB, por lo que la
configuracin del kernel, initrd y grub se realiza en el DomU:
#
# Xen PV Linux DomU config file:
#
name
uuid
= 'fs1.example.com'
= '8cdaddba-bd18-421f-a85f-f54ca55189d2'
builder
= 'linux'
bootloader
= '/usr/bin/pygrub'
vcpus
memory
= '2'
= '512'
disk
= [
'tap:aio:/xen/storage/1/images/fs1.example.com/root.img,xv
da1,w',
da2,w',
da3,w'
'tap:aio:/xen/storage/1/images/fs1.example.com/swap.img,xv
'tap:aio:/xen/storage/1/images/fs1.example.com/home.img,xv
]
vif
= [
'bridge=xenbr1, mac=00:16:3E:A9:01:42'
]
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
Un ejemplo de una maquina virtual HVM para WIndows 2003 en 32-bit con soporte PAE,
ACPI, APIC y USB:
#
# Xen HVM Windows DomU config file:
#
name
uuid
= 'dc1.example.com'
= '55173448-4f58-45ee-92d5-eeedb21febee'
builder
vcpus
memory
pae
=
=
=
=
device_model
kernel
boot
= '/usr/lib/xen/bin/qemu-dm'
= '/usr/lib/xen/boot/hvmloader'
= 'dc'
acpi
apic
= '1'
= '1'
usb
usbdevice
keymap
= '1'
= 'tablet'
= 'es'
disk
= [
'tap:aio:/xen/storage/2/images/dc1.example.com/disk-
'hvm'
'1'
'1024'
'1'
c.img,hda,w',
'file:/xen/storage/isos/win2k3-ED-32bit-esdisc1.iso,ioemu:hdc:cdrom,r'
'file:/xen/storage/isos/win2k3-ED-32bit-esdisc2.iso,ioemu:hdd:cdrom,r'
]
vif
= [
'type=ioemu, bridge=xenbr1, mac=00:16:3e:40:f4:3a'
]
sdl
vnc
vnclisten
vncpasswd
=
=
=
=
on_poweroff
on_reboot
on_crash
= 'destroy'
= 'restart'
= 'restart'
'0'
'1'
'0.0.0.0'
'secreto'
Para ms informacin sobre los parmetros de configuracin para los DomU vea la pgina
del manual xmdomain.cfg(5).
En las siguientes secciones veremos diferentes mtodos para la creacin de maquinas
virtuales PV Linux en distribuciones Debian/Ubuntu y CentOS.
En esta seccin veremos como crear maquinas virtuales Xen domU del tipo PV Linux,
veremos los mtodos para la creacin de maquinas con sistemas operativos guest
Debian/Ubuntu en arquitecturas de 32-bit y 64-bit, los mtodos descritos son manual y
automtico.
La versin de debootstrap incluida en Ubuntu Hardy 8.04 no tiene los scripts para crear
instalaciones de Ubuntu Lucid 10.04 ni de Debian Squeeze 6, para soportar la creacin de
instalaciones de estas distribuciones para las maquinas virtuales cree los scripts en el
directorio /usr/share/debootstrap/scripts, por ejemplo:
# cd /usr/share/debootstrap/scripts
# ln -s gutsy lucid
# ln -s sid squeeze
Nota
Solo se crean enlaces simblicos a los directorios de las distribuciones base, para
Ubuntu se usa gutsy y para Debian sid.
Primero vamos a crear los archivos de imagen que seran usados como discos duros por la
maquina virtual, para la maquina virtual de nombre dom01 con una instalacin simple
crearemos un archivo de imagen de 4GB para la particin raz y otro archivo de 512MB
para la particin swap.
Creamos un archivo de imagen de 4GB de tipo sparse para la particin raz:
# dd if=/dev/zero of=/xen/storage/0/images/domu01-root.img bs=1024k
seek=4096 count=0
Y tambin creamos un archivo de imagen de 512MB de tipo sparse para la particin swap:
# dd if=/dev/zero of=/xen/storage/0/images/domu01-swap.img bs=1024k
seek=512 count=0
Nota
Con la opcin -o loop del comando moount se mapeo el archivo de imagen al
dispositivo loopback /dev/loop0.
Ahora usaremos debootstrap para crear una instalacin de Debian Lenny i386 en el
directorio /mnt/tmp/vms/domu01 usando el mirror http://ftp.us.debian.org/debian:
# debootstrap --arch i386 lenny /mnt/tmp/vms/domu01
http://ftp.us.debian.org/debian
Nota
Para una maquina virtual Ubuntu hardy i386 use:
Despus de que debootrap termina de instalar los paquetes en el directorio veamos que se
creo una estructura de archivos:
# ls -1 /mnt/tmp/vms/domu01
bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
root
sbin
selinux
srv
sys
tmp
usr
var
Es importante instalar unos modulos de kernel apropiados para el kernel y distribucin, por
ejemplo, si el OS de la VMs es el mismo que el del Dom0 puede hacer:
# cp -a /lib/modules/2.6.18.8-xen /mnt/tmp/vms/domu01/lib/modules/
Nota
Recuerde que el kernel 2.6.18 que instalamos con Xen 3.4.3 incluye los drivers
Frontend por lo que es posible usarlos tambin en un PV DomU Linux.
Ahora debemos definir el nombre como se montarn los sistemas de archivos en la maquina
virtual, creamos el archivo /etc/fstab en el directorio temporal:
# vim /mnt/tmp/vms/domu01/etc/fstab
Nota
Recuerde que xvda1 ser el disco raz y xvda2 el swap, necesitar esta informacin
Nota
Si es Ubuntu 8.04 LTS entonces edite el archivo
/mnt/tmp/vms/domu01/etc/event.d/tty1 y cambie tty1 por xvc0.
Asegurese de que la TTY xvc0 aparezca listada en el archivo /etc/securetty, de lo
contrario no podr obtener una terminal getty cuando se conecte usando xm console, por
ejemplo:
...
...
...
# Consolas Xen:
xvc0
hvc0
localhost
domu01
http://ftp.us.debian.org/debian/
lenny
http://ftp.us.debian.org/debian/
lenny
http://security.debian.org/ lenny/updates
http://security.debian.org/ lenny/updates
main
main
main
main
contrib
contrib
contrib
contrib
non-free
non-free
non-free
non-free
Hemos terminado con la instalacin del sistema operativo para la maquina virtual, antes de
continuar se recomienda que desmonte el archivo de imagen:
# umount /mnt/tmp/vms/domu01
Ahora debemos crear el archivo de configuracin en el cual definimos los parmetros con
los que crearemos la maquina virtual as como los parmetros para arrancar el sistema
operativo que recien instalamos.
Cree el archivo de configuracin para una VM PV Linux en el directorio /etc/xen, por
ejemplo:
# vim /etc/xen/domu01.cfg
= 'domu01'
= 'daa7e649-91ce-43b8-8a9f-abfc47fe3dd4'
builder
= 'linux'
kernel
ramdisk
= '/boot/vmlinuz-2.6.18.8-xen'
= '/boot/initrd.img-2.6.18.8-xen'
vcpus
cpus
memory
= '1'
= '1'
= '512'
root
= '/dev/xvda1 ro'
extra
= 'console=xvc0'
disk
= [
'tap:aio:/xen/storage/0/images/domu01-root.img,xvda1,w',
'tap:aio:/xen/storage/0/images/domu01-swap.img,xvda2,w'
]
vif
= [
'bridge=xenbr1, mac=00:16:3e:29:08:a5'
]
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
Importante
En este caso la maquina virtual arrancara usando el kernel /boot/vmlinuz2.6.18.8-xen almacenado en Domain-0. verifique que las rutas son correctas.
Tambin debe asegurarse que esten correctas las rutas a los archivos de imagen de los
discos virtuales y que los nombres asignados corresponden a aquellos definidos en el
archivo /etc/fstab dentro del sistema de la maquina virtual.
Nota
Se pasan unos parmetros extra al kernel, 2 para indicar el nivel de ejecucin (runlevel)
y console=xvc0 para indicarle al kernel que use esa consola para enviar la salida
estandar.
Nota
La direccin MAC address para la interfaz de red virtual fue generada con el comando
/usr/local/sbin/macgen.py.
Antes de querer iniciar la maquina virtual con el sistema operativo que acabamos de crear
se recomiende que revise todos los pasos anteriores, cuando este seguro use el comando xm
create para crear la maquina virtual:, por ejemplo:
# xm create /etc/xen/domu01.cfg -c
En esta seccin veremos los pasos para isntalar xen-tools desde las fuentes, primero
instalaremos las dependencias:
# apt-get install git-core make libtest-pod-perl libtext-template-perl
debootstrap \
perl-modules libexpect-perl libtext-template-perl libconfig-inifilesperl libfile-slurp-perl \
e2fsprogs reiserfsprogs xfsprogs
Descargamos e instalamos el archivo tar de las fuentes de xen-tools desde su sitio oficial,
para este documento usaremos la versin 4.2.
#
#
#
#
#
cd /usr/src/
wget http://www.xen-tools.org/software/xen-tools/xen-tools-4.2.tar.gz
tar zxvf xen-tools-4.2.tar.gz
cd xen-tools-4.2
make install
cuales son usados para todos los tipos de maquinas virtuales. A continuacin se listan los
parmetros generales.
Antes de modificar los parmetros generales se recomienda realizar una copia de seguridad
del archivo:
# cp /etc/xen-tools/xen-tools.conf{,.orig}
Edite el archivo de configuracin para definir los parmetros generales para nuestro
entorno:
# vim /etc/xen-tools/xen-tools.conf
Para definir la arquitectura de hardware predeterminada para las maquinas virtuales use el
parmetro arch:
arch = amd64
Nota
Las arquitecturas disponibles son i386 para x_86 y amd64 para x_86_64.
Para definir la distribucin predeterminada para las maquinas virtuales use el parmetro
dist:
dist = hardy
Nota
Por default se usa el comando xt-guess-suite-and-mirror para definir la distribucin
en base al Domain-0.
El mtodo de instalacin se define usando el parmetro install-method, el default es
debootstrap.
install-method = debootstrap
Ya que la instalacin de las VMs las hace a travs de debootstrap defina el URL para los
servidores mirror para cada distribucin usando los parmetros mirror_dist, por ejemplo:
mirror_lenny = http://cdn.debian.net/debian
mirror_hardy = http://archive.ubuntu.com/ubuntu
Para mquinas PV Linux que mantienen la imagen del kernel e initrd en en un directorio
local del Domain-0 use los parmetros kernel e initrd, por ejemplo:
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
Nota
Por default se usa la misma versin del kernel que esta ejecutando el Domain-0, cuando
usa pygrub, ests opciones no tienen efecto.
Definiendo el tipo de imagen loop predeterminado para los discos virtuales de la DomU:
image = sparse
Nota
Los tipos soportados son sparse y full, el predeterminado es sparse.
Nota
Los tipos soportados son ext2, ext3.
Para definir el nombre de la terminal serial de la maquina virtual usando el parmetro
serial_device, por ejemplo:
serial_device=xvc0
Nota
El kernel predeterminado de hardy usa xvc0, pero en Lenny se usa hvc0, por lo que
defina la predeterminada de acuerdo al tipo de VM que ms vaya a instalar.
Para definir parmetros de configuracin diferentes a los predeterminados al momento de
crear maquinas virtuales defina las opciones especificas, por ejemplo, para definir una
consola hvc0 para una maquina Debian Lenny use --serial_device.
En las siguientes secciones veremos ejemplos para crear maquinas virtuales usando el
programa xen-create-image(8).
Creando maquinas PV Debian o Ubuntu
Para crear una maquina virtual PVM Linux con Ubuntu Hardy en arquitectura i386 usando
el mtodo de instalacin debootstrap y el dispositivo serial xvc0 use el siguiente comando:
# xen-create-image --hostname=www.example.com \
--dist=hardy --arch=i386 \
--vcpus=2 --memory=256Mb \
--dir=/xen-images \
--bridge=xenbr2 --dhcp \
--passwd
El comando anterior crear una maquina virtual PV Linux usando archivos de imagen loop
como medio de almacenamiento, crear los archivos:
/xen-images/domains/www.example.com/swap.img
Archivo de imagen loop (raw) para almacenar la particin raz del sistema
operativo.
/xen-images/domains/www.example.com/root.img
Archivo de imagen loop (raw) para almacenar la particin swap del sistema
operativo.
Adems crear el archivo de configuracin /etc/xen/www.example.com.cfg con el
siguiente contenido:
name
= 'www.example.com'
kernel
ramdisk
= '/boot/vmlinuz-2.6.24-28-xen'
= '/boot/initrd.img-2.6.24-28-xen'
vcpus
= '2'
memory
= '256'
root
= '/dev/xvda2 ro'
disk
= ['tap:aio:/xenimages/domains/www.example.com/swap.img,xvda1,w',
'tap:aio:/xenimages/domains/www.example.com/disk.img,xvda2,w']
vif
= ['bridge=xenbr2']
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
Para crear una maquina virtual Debian Lenny en arquitectura amd64 usamos el siguiente
comando:
# xen-create-image --hostname=proxy.example.com \
--dist=lenny --arch=amd64 \
--vcpus=2 --memory=1Gb \
--dir=/xen-images --fs=ext3 --size=8Gb --swap=2Gb \
--bridge=xenbr3 --dhcp \
--passwd
--vcpus
Set the number of vcpus that the new instance will have instead of the default value
of "1".
--bridge
Optionally, set a specific bridge for the new instance. This can be especially useful
when running multiple bridges on a machine.
-mac
Specify the MAC address to use for a given interface. This is only valid for the first
IP address specified, or for DHCP usage. (ie. you can add multiple --ip flags, but the
specific MAC address will only be used for the first interface.)
--ip
Setup the IP address of the machine, multiple IPs are allowed. When specifying
more than one IP the first one is setup as the "system" IP, and the additional ones
are added as aliases.
--netmask
Setup the netmask for the new instance.
--broadcast
Setup the broadcast address for the new instance.
--gateway
Setup the network gateway for the new instance.
--lvm
Specify the volume group to save images within. If you do not wish to use LVM
specify --dir or --evms. (These three options are mutually exclusive.)
La mayora de los parmetros de arriba pueden ser predefinidos en el archivo de
configuracin /etc/xen-tools/xen-tools.conf y simplificar los parmetros usados.
Definiendo esquemas de particiones de xen-tools
Para crear un nuevo DomU con que use este esquema utilizamos el siguiente comando:
# xen-create-image --hostname=fileserver --lvm=VGSystem01
--partitions=root-swap-home-var --dhcp --passwd
Nos mostrar una salida como la siguiente, donde nos muestra los volumenes logicos que
se crearon:
General Information
-------------------Hostname
: fileserver
Distribution
: hardy
Partitions
: swap
1G
(swap)
/
4G
(ext3)
/home
10G
(ext3)
/var
10G
(ext3)
Image type
: full
Memory size
: 128Mb
Kernel path
: /boot/vmlinuz-2.6.24-23-xen
Initrd path
: /boot/initrd.img-2.6.24-23-xen
Networking Information
---------------------IP Address
: DHCP [MAC: 00:16:3E:44:7F:74]
Creating swap on /dev/VGData01/fileserver-swap
Done
Creating ext3 filesystem on /dev/VGsystem01/fileserver-disk
Done
Creating ext3 filesystem on /dev/VGsystem01/fileserver-home
Done
Creating ext3 filesystem on /dev/VGsystem01/fileserver-var
Done
Installation method: debootstrap
= [
'phy:/dev/VGsystem01/fileserver-swap,xvda1,w',
'phy:/dev/VGsystem01/fileserver-disk,xvda2,w',
'phy:/dev/VGsystem01/fileserver-home,xvda3,w',
'phy:/dev/VGsystem01/fileserver-var,xvda4,w',
Es posible modificar la plantilla que genera los archivos de configuracin de las maquinas
virtuales, es decir, los archivos .cfg que se generan en el directorio /etc/xen, por ejemplo, si
desea agregar el parmetro clocksource=jiffies al kernel de la maquina virtual edite el
archivo de la plantilla principal /etc/xen-tools/xm.tmpl.
# vim /etc/xen-tools/xm.tmpl
Descargue la imagen:
# wget http://sitio/centos.5-3.x86.20090423.img.tar.bz2
Descomprima la imagen:
# tar -jxvf centos.5-3.x86.20090423.img.tar.bz2
Ya que la imagen descargada de stacklet no incluye una imagen para el swap, crearemos un
archivo vacio para el swap de 512M:
# dd if=/dev/zero of=/mnt/xen-images/samba-swap.img bs=1024k seek=512
count=0
Cree el swap:
# mkswap /mnt/xen-images/samba-swap.img
localhost.localdomain
samba.example.com
localhost
samba
/mnt/tmp/samba/etc/syconfig/network
Con:
NETWORKING=yes
HOSTNAME=samba.example.com
GATEWAY=192.168.1.1
Cambie el archivo de inicializacin para usar la terminal virtual hvc0 para la tty1, edite el
archivo /mnt/tmp/fwproxy/etc/inittab, por ejemplo:
# vim /mnt/tmp/samba/etc/inittab
Edite el archivo de configuracin de grub que ser usado por el arrancador pygrub:
# vim /mnt/tmp/samba/boot/grub/grub.conf
Verifique que los archivos de la imagen del kernel y del initrd existan en el sistema de
archivos del Domu:
# ls -1 /mnt/tmp/samba/boot/*xen*
/mnt/tmp/samba/boot/System.map-2.6.18-128.1.6.el5xen
/mnt/tmp/samba/boot/System.map-2.6.18-194.3.1.el5xen
/mnt/tmp/samba/boot/config-2.6.18-128.1.6.el5xen
/mnt/tmp/samba/boot/config-2.6.18-194.3.1.el5xen
/mnt/tmp/samba/boot/initrd-2.6.18-128.1.6.el5xen.img
/mnt/tmp/samba/boot/initrd-2.6.18-194.3.1.el5xen.img
/mnt/tmp/samba/boot/vmlinuz-2.6.18-128.1.6.el5xen
/mnt/tmp/samba/boot/vmlinuz-2.6.18-194.3.1.el5xen
Asigne una direccin MAC a la interfaz de red predeterminada (eth0) usando el comando
macgen.py, por ejemplo:
# /usr/local/bin/macgen.py
00:16:3e:17:e8:49
= 'samba'
bootloader
= '/usr/bin/pygrub'
vcpus
memory
= '1'
= '256'
root
= '/dev/xvda1 ro'
disk
= ['tap:aio:/mnt/xen-images/samba-root.img,xvda1,w',
'tap:aio:/mnt/xen-images/samba-swap.img,xvda2,w']
vif
= ['mac=00:16:3e:17:e8:49']
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
extra
= ''
Importante
Asegurese que los nombres de los arcihvos de imagenes existan y de que los nombres
de los dispositivos de bloque asignados a la VM coincidan con la configuracin de los
archivos fstab y grub dentro de la VM.
Note que cuando se usa pygrub para arrancar el kernel del DomU PV no es necesaria la
opcin extra ya que los parmetros extras al kernel deben ser agregados a la lnea kernel de
la configuracin de grub de la VM.
Desmonte la particin:
# umount /mnt/tmp/samba
La configuracin actual entre xen-tools y rinse al parecer no esta del todo completa y
confunde a YUM cuando se instala una VM CentOS 5 i386 sobre un Dom0 con kernel
amd64 (x86_64), para corregir el problema, cree un script post instalacin para rinse para
deinir la plataforma predefinida para RPM.
# vim /usr/lib/rinse/centos-5/00local-post-install.sh
Nota
El script 00local-post-install.sh
Cree el script con el siguiente contenido:
#!/bin/sh
#
# 00local-post-install.sh
#
prefix=$1
if [ ! -d "${prefix}" ]; then
echo "Serious error - the named directory doesn't exist."
exit
fi
#
#
#
echo "
Se desea agregar paquetes adicionales a la instalacin base de Centos 5.X agrege el nombre
del paquete al archivo /etc/rinse/centos-5.packages, en dicho archivo se almacena
una lista de paquetes a instalar, por ejemplo:
#
#
#
#
echo
echo
echo
echo
Si usa rinse para crear maquina virtuales sobre Ubuntu Server y Xen 3.2 entonces tendr
que modificar el hook que configura la terminal serial para el DomU ya que por default es
hvc0 y en xen 3.2 se debe usar xvc0, por lo que modifique el script hook 30-disablegettys, por ejemplo para CentOS 5:
# vim /usr/lib/xen-tools/centos-5.d/30-disable-gettys
Y cambie la lnea:
#
# Do the transformation.
#
sed -i -e 's/^\([2-6].*:respawn*\)/#\1/' -e 's/^T/#\t/' -e
's/tty1$/hvc0/' ${prefix}/etc/inittab
Por:
#
# Do the transformation.
#
sed -i -e 's/^\([2-6].*:respawn*\)/#\1/' -e 's/^T/#\t/' -e
's/tty1$/xvc0/' ${prefix}/etc/inittab
Si va a instalar distribuciones Fedora entonces edite el script /usr/lib/xentools/fedora-core-6.d/30-disable-gettys para que aplique para cualquier versin.
Opcionalmente tambin puede usar el parmetro --serial_device de xen-create-image
para definir el nombre de la termina serial para el DomU.
Hay que modificar el script /usr/bin/xen-create-image para permitir usar xvcX como
valor para el parmetro --serial_device.
Modifique el bloque que valida la entrada:
serialDev => {
check
=> qr/^(?:\/dev\/)?(?:tty|hvc)[0-9]+$/,
message => "must be a serial device (tty*, hvc*).\n",
},
Cambielo por:
serialDev => {
check
=> qr/^(?:\/dev\/)?(?:tty|[xh]vc)[0-9]+$/,
xvc*).\n",
},
Para crear una maquina virtual para CentOS 5 i386 con xen-create-image use el metodo de
instalacin rinse, por ejemplo
# xen-create-image --dist=centos-5 --arch=i386
--hostname=fs1.example.com \
--install-method=rinse --dir=/xen-images --size=4Gb --swap=512Mb
--memory=256Mb --dhcp --passwd
El comando anterior crear una maquina virtual PV Linux usando archivos de imagen
como medio de almacenamiento, crear los archivos:
/xen-images/domains/fs1.example.com/swap.img
/xen-images/domains/fs1.example.com/root.img
= 'fs1.example.com'
kernel
ramdisk
= '/boot/vmlinuz-2.6.24-28-xen'
= '/boot/initrd.img-2.6.24-28-xen'
vcpus
memory
= '1'
= '256'
root
= '/dev/xvda2 ro'
disk
= ['file:/xenimages/domains/fs1.example.com/swap.img,xvda1,w',
'file:/xenimages/domains/fs1.example.com/disk.img,xvda2,w']
dhcp
vif
= 'dhcp'
= [ 'mac=00:16:3E:42:92:E6' ]
on_poweroff = 'destroy'
on_reboot
= 'restart'
on_crash
= 'restart'
Rinse por default utiliza los servidores espejo definidos en el archivo vim
/etc/rinse/rinse.conf, por ejemplo, el mirror para CentOS 5 es:
[centos-5]
mirror
= http://mirror.bytemark.co.uk/centos/5/os/i386/CentOS/
mirror.amd64 = http://mirror.bytemark.co.uk/centos/5/os/x86_64/CentOS/
Crearemos una maquina virtual HVM para el OS Windows 2003 Enterprise Edition
32bits
= 'win.example.com'
kernel
builder
= '/usr/lib/xen/boot/hvmloader'
= 'hvm'
device_model
vcpus
memory
= '2'
= '1024'
acpi
apic
= '0'
= '0'
disk
= [
'/usr/lib/xen/bin/qemu-dm'
'phy:/dev/VGXen02/win2k3ED001-discoc,hda,w'
'phy:/dev/loop7,ioemu:hdc:cdrom,r',
]
vif
= [
'type=ioemu'
boot
= 'dc'
sdl
= '0'
vnc
vncviewer
vnclisten
vncpasswd
vncconsole
=
=
=
=
=
usb
usbdevice
= '1'
= 'tablet'
on_poweroff
on_reboot
on_crash
= 'destroy'
= 'restart'
= 'restart'
'1'
'0'
'0.0.0.0'
'123456'
'0'
Si activo el soporte VNC para la HVM DomU entonces Xen, a travs de qemu-dm crear
una instanca de VNC para conectarse a la maquina virtual.
A menos haya definido un puerto en especifico entonces la pridf -mer instanca HVM
abrir el puerto 5900, puede verlo con el comando netstat, por ejemplo:
# netstat -plutn | grep qemu-dm
tcp
0
0 0.0.0.0:5900
LISTEN
6320/qemu-dm
0.0.0.0:*
Use un cliente VNC para conectarse a la consola VNC de la HVM DomU para realizar el
proceso de instalacin, por ejemplo:
$ vncviewer localhost:5900
Si crea ms maquinas virtuales HVM use la opcin vncunused=1 para que use el siguiente
puerto disponible a partir del 5901, no te que cuando inicie la VM con xm create podr ver
el puerto al que se asocio la consola VNC.
Los drivers GPLPV permiten que Windows use los dispositivos de red y bloque en el
Dom0, en lugar de los dispositivos PCI virtuales provistos por QEMU. Esto da a Windows
un aumento de rendimiento substancial.
Los drivers GPLPV requiere de por lo menos una versin de Xen 3.2 o superior, estos
drivers han sido probados en Windows XP, 2003x32, 2003x64, y 2008x32. Al parecer
tambin funcionan en Windows 2008x64 y Vista. Algunos han reportado de que tambin
funcioan en Windows 2000 con algunos trucos, sin embargo no se proveen los binarios
para windows 2000.
Para ms informacin para instalar los drivers ParaVirtualized para Windows vaya a la
pgina del wiki de Xen XenWindowsGplPv.
El sitio para descargar los drivers GPLPV para Windows es:
http://www.meadowcourt.org/downloads/.
Hay un instalador por plataforma/arquitectura, nombrados como siguen:
gplpv_<chk/fre>_<platform>_<arch>_<version>.msi, cada opcin significa:
chk is a 'checked' build which contains debug info (please use these if you want any
assistance in fixing bugs)
platform is 'wxp' for XP, 'wnet' for 2003, and 'wlh' for Vista/2008
Ahora cambielo a:
vif = [ 'bridge=xenbr0, mac=00:16:3e:5e:76:50' ]
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://wiki.xensource.com/xenwiki/XenArchitecture?
action=AttachFile&do=get&target=Xen+Architecture_Q1+2008.pdf - Xen
Architecture Overview (February 2008)
http://wiki.xensource.com/xenwiki/PyGrub- PyGrub
http://wiki.debian.org/Debootstrap - Debootstrap
http://xen-tools.noone.org/software/rinse - Rinse
Pginas de manual
Para conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se
recomienda leer los manuales relacionados.
xen-create-image (8) - Easily create new Xen instances with networking and
OpenSSH.
chroot (8) - run command or interactive shell with special root directory
ID
Mem VCPUs
State
1896
r-----
512
-b----
512
-b----
1024
-b----
2048
-b----
Las tareas que realizaremos de aqu en adelante sern en especifico para una VM, puede
hacer referencia a una VM a travs del nombre (columna Name) o por el identificador
(columna ID).
Use la opcin uptime para ver el tiempo de ejecucin (uptime) de una VM:
# xm uptime domu-firewall
Name
ubuntu-firewall
ID Uptime
1 136 days, 22:46:12
Use el comando shutdown para apagar una maquina virtual, por ejemplo:
# xm shutdown domu-hvmwin2k3
Nota
La opcin shutdown causa un apagado en limpio de la VM, ejem en Linux usa un
shutdown -h now.
Use la opcin pause para detener el la ejecucin de una VM, cuando pausa una VM los
recursos asignados siguen en uso, simplemente no se estn usando.
# xm pause domu-web
# xm list domu-web
Name
Time(s)
domu-web
4268.3
ID
3
Mem VCPUs
1024
State
--p---
Para re anudar la ejecucin de una VM en estado pausado use la opcin unpause, por
ejemplo:
# xm unpause domu-web
Tambin puede guardar el estado de una maquina virtual, es decir, el estado de la memoria,
el estado de la maquina virtual se guardar en un archivo, por ejemplo:
# xm save ubuntu001 /var/lib/xen/save/ubuntu001.save
Nota
El tamao del archivo de estado ser igual al tamao de memoria asignada a la
maquina virtual por lo que considere el espacio necesario.
Cuando el estado de la maquina virtual sea guardado la maquina dejar de estar en
ejecucin y la memoria ser liberada para otras maquinas virtuales. Guardar el estado de
una maquina virtual sera el equivalente a hibernar una computadora en ejecucin.
Para restaurar el estado de la maquina virtual use xm restore, por ejemplo:
#xm restore /var/lib/xen/save/ubuntu001.save
Las conexiones de red pueden ser restauradas cuando la maquina virtual sea restablecida
siempre y cuando las sesiones TCP no hayan expirado.
Para ms informacin vea la pagina del manual xm(1).
Nota
Si desea arrancar las maquinas virtuales en un orden en especifico, se recomienda que
agregue un sufijo nmerico al nombre del enlace simblico en /etc/xen/auto, por
ejemplo: 00fwproxy, 01ns1, 02ldap1, etc.
El script de control de ejecucin /etc/init.d/xendomains iniciar toda maquina virtual
que tenga un archivo de configuracin en /etc/xen/auto, si desea desactivar la ejecucin
automtica solo borre el enlace simblico.
El script de /etc/init.d/xendomains guardar el estado de las maquinas virtuales cuando
el host Xen sea apagado o re iniciado.
Si en lugar de guardar el estado (xm save) de las maquinas virtuales al apagar el servidor
Xen desea apagarlas va xm shutdown, edite el archivo de configuracin
/etc/default/xendomains para controlar la ejecucin del script
/etc/init.d/xendomains:
# vim /etc/default/xendomains
Con este ltimo parmetro, al encender el servidor Xen, las maquinas sern iniciadas de
forma normal siempre y cuando haya un enlace simblico en /etc/xen/auto hacia el
archivo de configuracin original
Los recursos los administraremos de forma esttica mediante los archivos de configuracin
y algunos otros de forma dinmica con el comando xm.
CPU
Esttica en archivo de config o dinmica con xm
Discos duros
Esttica en archivo de config o dinmica con xm
Red
Esttica en archivo de config o dinmica con xm
Puede cambiar la memoria de una maquina con el comando xm mem-set, por ejemplo:
Vemos la memoria actual de la DomU:
# xm list ubuntu003
Name
Time(s)
ubuntu003
130.2
ID
2
Mem VCPUs
128
State
-b----
Mem VCPUs
State
ID
7
256
-b----
Note que la memoria no ser automticamente asignada a las maquinas virtuales que estn
en ejecucin.
El uso de memoria del Domain-0 se puede controlar a travs del parmetro dom0_mem al
cargar el hypervisor Xen con grub, el valor se define en MegaBytes. Si desea controlar el
uso de memoria para el Domain0 agregue el parmetro dom0_mem a la lneaque carga el
hypervisor xen en grub, por ejemplo:
# vim /boot/grub/menu.lst
Para limitar el uso de memoria para el Domain0 a 1024MB cambie la lnea kernel de:
kernel
/xen-3.4.3.gz
Por:
kernel
/xen-3.4.3.gz dom0_mem=1024M
Es necesario reiniciar el servidor para que el cambio tome efecto, al reiniciar use xm list
# xm list 0
Name
Time(s)
Domain-0
477.9
ID
0
Mem VCPUs
1024
State
r-----
Ahora si puede usar xm info para ver el uso de memoria RAM disponible en el sistema, por
ejemplo:
# xm info | grep -E 'total_memory|free_memory'
total_memory
: 4095
free_memory
: 295
ID
VCPU
CPU State
1
-b-
Time(s) CPU
158.2 any
En este caso nos muestra que el VCPU 0 corre en el CPU fsico 0, por default Xen
balancear los vcpus en todos los cpus fsicos.
Para asignar 2 vcpus a un DomU use:
# xm vcpu-set ubuntu001 2
ID
VCPU
CPU State
Time(s) CPU
16
-b-
0.6 any
16
-b-
1.0 any
Recuerde que los vcpus son balanceados en los dos cpus fsico, vuelva a ejecutar xm vcpulist y lo ver:
# xm vcpu-list ubuntu003
Name
Affinity
ubuntu003
cpu
ubuntu003
cpu
ID
VCPU
CPU State
Time(s) CPU
16
-b-
2.4 any
16
-b-
2.2 any
Si desea amarrar un CPU virtual en un CPU fsico use xm vcpu-pin, por ejemplo
amarraremos el vcpu 1 al CPU fsico 1:
# xm vcpu-pin ubuntu003 1 1
Y lo verificamos con:
# xm vcpu-list ubuntu003
Name
Affinity
ubuntu003
cpu
ubuntu003
ID
VCPU
CPU State
Time(s) CPU
16
-b-
3.3 any
16
---
3.1 1
Si desea asignar un solo vcpu a un DomU, por ejemplo queremos quitar un vcpu de un
DomU que arranco con dos, usamos:
# xm vcpu-set ubuntu003 1
Lo confirmamos con:
# xm vcpu-list ubuntu003
Name
Affinity
ubuntu003
ubuntu003
ID
VCPU
16
16
0
1
CPU State
0
-
-b--p
Time(s) CPU
4.3 0
4.0 1
Nota
El valor predeterminado es 0, el cual indifca que no hay lmite de CPUs fsicos para el
Domain-0.
Para limitar el uso de vCPUs para el Domain-0 a 1 cambie la lnea kernel de:
kernel
/xen-3.4.3.gz
Por:
kernel
/xen-3.4.3.gz dom0_max_vcpus=1
Es necesario reiniciar el servidor para que el cambio tome efecto, al reiniciar use xm vcpulist para validar el uso de CPUs del Domain-0, por ejemplo:
# xm vcpu-list 0
Name
Affinity
Domain-0
ID
VCPU
CPU State
0
r--
Time(s) CPU
480.7 0
xm block-attach
Crea un nuevo dispositivo de bloque virtual, este comando generar un evento
hotplug en el dominio, el formato es:
# xm block-attach domain-id be-dev fe-dev mode [bedomain-id]
xm block-detach
Desconecta un dispositivo de bloque virtual del domU, si el disco duro esta ocupado
o el domU se quedo colgado la desconexin del disco fallar, puede forzar la
desconexin con .--force, lo cual podr causar errores de I/O en el dominio, el
formato de uso es:
# xm block-detach domain-id devid
= [
]
'tap:aio:/xen/ubuntu003-xvdd.img,xvdd,w',
Cuando el DomU sea iniciado reconocer el disco duro /dev/xvdd y tendr acceso de
escritura.
Para agregar el disco de forma dinmica mientras el DomU esta corriendo use:
# xm block-attach ubuntu003 tap:aio:/xen/ubuntu003-xvdd.img /dev/xvdd w
Este disco duro podr ser usado como cualquier disco duro, es decir, podr crear
particiones, crear sistemas de archivos, etc.
Asignando un disco duro o particin fsica a una maquina virtual
Para asignar un disco duro o particin fsica de forma esttica a un DomU PV/HVM use:
disk
= [
]
'phy:/dev/sda9,xvda9,w',
Cuando el DomU sea iniciado reconocer este disco como /dev/xvda9 y tendr acceso de
escritura.
SI desea asignar el volumen lgico de forma dinmica, es decir, mientras el DomU esta en
ejecucin use:
# xm block-attach ubuntu003 phy:/dev/sda9 /dev/xvda9 w
El comando anterior generar una llamada de hotplug en el DomU para agregar el disco
duro en caliente.
Asignando un volumen lgico LVM a una maquina virtual PV Linux
Para asignar un volumen lgico LVM de forma esttica a un DomU use:
disk
= [
]
'phy:/dev/VGXen01/ubuntu001-var,xvdc,w',
Cuando el DomU sea iniciado reconocer este disco como /dev/xvdc y tendr acceso de
escritura.
SI desea asignar el volumen lgico de forma dinmica, es decir, mientras el DomU esta en
ejecucin use:
# xm block-attach ubuntu003 phy:/dev/VGXen01/ubuntu001-var /dev/xvdc w
El comando anterior generar una llamada de hotplug en el DomU para agregar el disco
duro en caliente.
Asignando un volumen lgico LVM a una maquina virtual HVM Windows
Creamos el Volumen:
root@xhic:~# lvcreate -L 20000 -n domu-hvmwin2k3-discod VGXen01
Logical volume "domu-hvmwin2k3-discod" created
'phy:/dev/VGXen01/domu-hvmwin2k3-discoc,hda,w',
'phy:/dev/VGXen01/domu-hvmwin2k3-discod,hdb,w'
Ahora, deber de apagar la maquina a la cual le agregaremos el disco para que inicie con el
nuevo disco duro y el sistema lo detecte y lo configure.
Importante
Si esta usando los driver Paravirtualizados se recomienda que arranque Windows con
el Kernel Normal.
Cuando inicie la maquina, vaya al Administrador de Dispositivos y ver un nuevo disco
QEMU como se muestra en la imagen de abajo.
El disco aparecer como inicializado pero sin ser asignado a alguna particin, de hecho el
disco no esta formateado, por lo que formatear la particin ser el siguiente paso.
De clic sobre el espacio no asignado y de clic en New Partition como se ve en la siguiente
imagen:
Ahora nos pregunta el tipo de particin que se crear en el nuevo disco, seleccionamos el
tipo Primary partition.
En este paso nos pregunta el tamao que se asignar a la nueva particin, en este caso
dejaremos el tamao predeterminado para que cree una particin de todo el tamao.
Ahora debemos de asignar una letra de unidad a la nueva particin, usaremos la letra de
unidad D.
El siguiente paso es seleccionar las opciones de formato y etiqueta que se usaran para crear
la nueva particin, dejemos el sistema de archivos: NTFS, el Allocation unit size: Default,
y en la etiqueta asignemos un nombre descriptivo para este disco, en nuestro caso usaremos
la etiqueta datos.
Ahora de clic en Next > para ver el resumen de las opciones que se usarn para crear la
nueva particin, si desea cambiar algo vaya para atrs de lo contrario haga clic en Finish.
Despus de dar clic en el botn Finish el sistema iniciar a formatear la particin, podemos
verlo en la siguiente imagen:
Y listo, ahora podr ir a My Computer y ver el nuevo disco D con la etiqueta datos, vea
tambin el tamao.
driver para virtualizados y re inicie el sistema con la opcin /GPLPV, despus ver el
nuevo disco, por ejemplo:
= [ 'mac=00:16:3E:5A:0C:56' ]
La configuracin anterior por default asignar una interfaz de red amarrada a el bridge eth0,
y en la maquina virtual tendr eth0, puede especificar el bridge al que esta amarrada la
maquina virtual, por ejemplo:
vif =
[ 'mac=00:16:3e:12:62:89, bridge=bridge1' ]
= [
'mac=00:16:3E:A0:71:FE, bridge=eth0',
'mac=00:16:3e:0f:72:d9, bridge=eth1'
]
xm network-attach
Agrega una interfaz de red virtual a un domU, la sintaxis es:
# xm network-attach domain-id [script=scriptname] [ip=ipaddr]
[mac=macaddr] [bridge=bridge-name] [backend=bedomain-id]
xm network-detach
Remueve una interfaz de red virtual de un DomU, la sintaxis es:
# xm network-detach domain-id devid
Por ejemplo, agregamos una nueva interfaz de red virtual en el mismo bridge/switch.
# xm network-attach ubuntu003 bridge=eth1 mac=00:16:3e:0b:0d:83
Nota
Use el script macgen.py para asignar un MAC Address fijo
Haga un listade de las interfaces de la VM para verificar que la interfaz fue agregada.
# xm network-list ubuntu003
Idx BE
MAC Addr.
handle state evt-ch tx-/rx-ring-ref BE-path
0
0 00:16:3E:5A:0C:56
0
4
7
768 /769
/local/domain/0/backend/vif/1/0
1
0 00:16:3e:0b:0d:83
1
4
8
1280 /1281
/local/domain/0/backend/vif/1/1
Use las herramientas de configuracin de sus sistema para configurar la nueva interfaz de
red.
$ man ifconfig
$ man ip
$ man route
Eliminaremos la VIF 1:
# xm network-detach ubuntu003 1
= [
'tap:aio:/xen/storage/0/images/fs2.example.com/disk.img,
xvda1,w',
'tap:aio:/xen/storage/0/images/fs2.example.com/swap.img,
xvda2,w',
]
Verifique que tiene espacio suficiente para respaldar el archivo en el medio de respaldo.
La copia creada es una copia exacta del archivo original en el momento en que se apago la
maquina virtual, en caso de desastre simplemente restaure el archivo.
El segundo mtodo es montanto el archivo de imagen en un directorio temporal y respaldar
su contenido con tar, primero creamos el directorio temporal:
# mkdir -p /mnt/tmp/vms/fs2.example.com-disk
Montamos el Snapshot:
# mount /xen/storage/0/images/fs2.example.com/disk.img
/mnt/tmp/vms/fs2.example.com-disk
En caso de desastre y tenga que restaurar el disco, monte el archivo original en un punto de
montaje temporal, elimine su contenido y extraiga el contenido del archivo tar.
Crear la maquina virtual
Ahora que hemos creado el snapshot es seguro iniciar/crear la maquina virtual usando el
comando xm:
# xm create fs2.example.com.cfg
ID
6
Mem VCPUs
512
State
-b----
Eliminar el snapshot.
= [
]
'phy:/dev/VGXen02/fs3.example.com-disk,xvda2,w',
'phy:/dev/VGXen02/fs3.example.com-swap,xvda1,w',
Usando el comando lvdisplay veamos la informacin del volmen lgico para el disco raz:
# lvdisplay /dev/VGXen02/fs3.example.com-disk
--- Logical volume --LV Name
/dev/VGXen02/fs3.example.com-disk
VG Name
VGXen02
LV UUID
dyr3dw-9uhq-Va1z-9FSf-CBah-H0oH-0vk4dr
LV Write Access
read/write
LV Status
# open
LV Size
Current LE
Segments
Allocation
Read ahead sectors
Block device
available
0
4.00 GB
1024
1
inherit
0
252:3
El campo LV Size nos indica que el tamao del volumen lgico de 4.00 GB.
Ussando el comando vgdisplay verifiquemos el espacio disponible para asignacin en el
Volume Group /dev/VGXen02:
# vgdisplay VGXen02
--- Volume group --VG Name
System ID
Format
Metadata Areas
Metadata Sequence No
VG Access
VG Status
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size
PE Size
Total PE
Alloc PE / Size
Free PE / Size
VG UUID
VGXen02
lvm2
1
3
read/write
resizable
0
2
0
0
1
1
74.50 GB
4.00 MB
19073
1056 / 4.12 GB
18017 / 70.38 GB
FCCGFT-dLM2-WNG4-UKDd-6M4i-dc9W-w0NHbM
Veamos que el campo Free PE / Size nos muestra que hay 70.38 GB de espacio disponible,
lo cual es suficiente para crear el snapshot.
Apagar la maquina virtual
Ahora que confirmamos que hay espacio suficiente para crear el snapshot en el Volume
Group /dev/VGXen02, apagaremos la maquina virtual fs3.example.com:
# xm shutdown fs3.exaple.com
Una vez que haya verificado que la maquina virtual no esta en ejecucin procesa con la
creacin del snapshot del volmen lgico /dev/VGXen02/fs3.example.com-disk.
Crear snapshot del volmen lgico del disco raz
Use el comando lvcreate para crear el snapshot del volmen lgico
/dev/VGXen02/fs3.example.com-disk, el nombre del snapshot ser
/dev/VGXen02/fs3.example.com-disk-snap:
Usando el comando lvs listamos los volmens lgicos y confirmamos que se creo el
snapshot:
# lvs
LV
Snap% Move Log Copy%
fs3.example.com-disk
fs3.example.com-disk-snap
0.00
fs3.example.com-swap
VG
Attr
LSize
Origin
4.00G
4.00G fs3.example.com-disk
ID
6
Mem VCPUs
512
State
-b----
Ahora que tenemos una copia consistente de el volmen lgico sigamos con el respaldo.
Crear respaldo de datos del snapshot
Usaremos dos mtodos diferentes para respaldar los datos contenidos en el snapshot, el
primer es creando un archivo de imagen del snapshot /dev/VGXen02/fs3.example.comdisk-snap usando el comando dd, la imagen la guardaremos en el directorio
/mnt/backup/vms/:
# dd if=/dev/VGXen02/fs3.example.com-disk-snap
of=/mnt/backup/vms/fs3.example.com-disk-`date +%d-%m-%Y`.img
La imagen creada es una copia exacta del volmen lgico original en el momento en que se
apago la maquina virtual, en caso de desastre puede restaurar el LV usando dd en la forma
inversa.
El segundo mtodo es montanto el snapshot en un directorio temporal y respaldar su
contenido con tar, primero creamos el directorio temporal:
# mkdir -p /mnt/tmp/vms/fs3.example.com-disk
Montamos el Snapshot:
# mount /dev/VGXen02/fs3.example.com-disk-snap
/mnt/tmp/vms/fs3.example.com-disk
En caso de desastre y tenga que restaurar el disco, monte el volmen lgico original en un
punto de montaje temporal, elimine su contenido y extraiga el contenido del archivo tar.
Eliminar el snapshot
Para evitar problemas de rendimiento al estar usando el volumen original, y ya que el
respaldo del snapshot ya fue realizado, eliminaremos el volumen snapshot, pero antes
debemos desmontarlo:
# umount /mnt/tmp/vms/fs3.example.com-disk
Move Log
Y por ltimo verificamos que el espacio asignado a los snapshots se haya liberado:
# vgdisplay VGXen02
--- Volume group --VG Name
System ID
Format
Metadata Areas
Metadata Sequence No
VG Access
VG Status
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size
PE Size
Total PE
Alloc PE / Size
Free PE / Size
VG UUID
VGXen02
lvm2
1
6
read/write
resizable
0
2
2
0
1
1
74.50 GB
4.00 MB
19073
1056 / 4.12 GB
18017 / 70.38 GB
FCCGFT-dLM2-WNG4-UKDd-6M4i-dc9W-w0NHbM
Sitios web
En las paginas listadas a continuacin encontrar mayor informacin sobre los programas
utilizados en este capitulo.
Pginas de manual
Para conocer ms sobre el uso y configuracin de los programas utilizados en el capitulo, se
recomienda leer los manuales relacionados y el contenido de los archivos de configuracin.
PREMBULO
El propsito de esta Licencia es permitir que un manual, libro de texto, u otro documento
escrito sea libre en el sentido de libertad: asegurar a todo el mundo la libertad efectiva de
copiarlo y redistribuirlo, con o sin modificaciones, de manera comercial o no. En segundo
trmino, esta Licencia proporciona al autor y al editor[2] una manera de obtener
APLICABILIDAD Y DEFINICIONES
Esta Licencia se aplica a cualquier manual u otro trabajo, en cualquier soporte, que
contenga una nota del propietario de los derechos de autor que indique que puede ser
distribuido bajo los trminos de esta Licencia. Tal nota garantiza en cualquier lugar del
mundo, sin pago de derechos y sin lmite de tiempo, el uso de dicho trabajo segn las
condiciones aqu estipuladas. En adelante la palabra Documento se referir a cualquiera de
dichos manuales o trabajos. Cualquier persona es un licenciatario y ser referido como
Usted. Usted acepta la licencia si copia. modifica o distribuye el trabajo de cualquier modo
que requiera permiso segn la ley de propiedad intelectual.
Una Versin Modificada del Documento significa cualquier trabajo que contenga el
Documento o una porcin del mismo, ya sea una copia literal o con modificaciones y/o
traducciones a otro idioma.
Una Seccin Secundaria es un apndice con ttulo o una seccin preliminar del Documento
que trata exclusivamente de la relacin entre los autores o editores y el tema general del
Documento (o temas relacionados) pero que no contiene nada que entre directamente en
dicho tema general (por ejemplo, si el Documento es en parte un texto de matemticas, una
Seccin Secundaria puede no explicar nada de matemticas). La relacin puede ser una
conexin histrica con el tema o temas relacionados, o una opinin legal, comercial,
filosfica, tica o poltica acerca de ellos.
Las Secciones Invariantes son ciertas Secciones Secundarias cuyos ttulos son designados
como Secciones Invariantes en la nota que indica que el documento es liberado bajo esta
Licencia. Si una seccin no entra en la definicin de Secundaria, no puede designarse como
Invariante. El documento puede no tener Secciones Invariantes. Si el Documento no
identifica las Secciones Invariantes, es que no las tiene.
Los Textos de Cubierta son ciertos pasajes cortos de texto que se listan como Textos de
Cubierta Delantera o Textos de Cubierta Trasera en la nota que indica que el documento es
liberado bajo esta Licencia. Un Texto de Cubierta Delantera puede tener como mucho 5
palabras, y uno de Cubierta Trasera puede tener hasta 25 palabras.
Una copia Transparente del Documento, significa una copia para lectura en mquina,
representada en un formato cuya especificacin est disponible al pblico en general, apto
para que los contenidos puedan ser vistos y editados directamente con editores de texto
genricos o (para imgenes compuestas por puntos) con programas genricos de
manipulacin de imgenes o (para dibujos) con algn editor de dibujos ampliamente
disponible, y que sea adecuado como entrada para formateadores de texto o para su
traduccin automtica a formatos adecuados para formateadores de texto. Una copia hecha
en un formato definido como Transparente, pero cuyo marcaje o ausencia de l haya sido
diseado para impedir o dificultar modificaciones posteriores por parte de los lectores no es
Transparente. Un formato de imagen no es Transparente si se usa para una cantidad de
texto sustancial. Una copia que no es Transparente se denomina Opaca.
Como ejemplos de formatos adecuados para copias Transparentes estn ASCII puro sin
marcaje, formato de entrada de Texinfo, formato de entrada de LaTeX, SGML o XML
usando una DTD disponible pblicamente, y HTML, PostScript o PDF simples, que sigan
los estndares y diseados para que los modifiquen personas. Ejemplos de formatos de
imagen transparentes son PNG, XCF y JPG. Los formatos Opacos incluyen formatos
propietarios que pueden ser ledos y editados nicamente en procesadores de palabras
propietarios, SGML o XML para los cules las DTD y/o herramientas de procesamiento no
estn ampliamente disponibles, y HTML, PostScript o PDF generados por algunos
procesadores de palabras slo como salida.
La Portada significa, en un libro impreso, la pgina de ttulo, ms las pginas siguientes
que sean necesarias para mantener legiblemente el material que esta Licencia requiere en la
portada. Para trabajos en formatos que no tienen pgina de portada como tal, Portada
significa el texto cercano a la aparicin ms prominente del ttulo del trabajo, precediendo
el comienzo del cuerpo del texto.
Una seccin Titulada XYZ significa una parte del Documento cuyo ttulo es precisamente
XYZ o contiene XYZ entre parntesis, a continuacin de texto que traduce XYZ a otro
idioma (aqu XYZ se refiere a nombres de seccin especficos mencionados ms abajo,
como Agradecimientos, Dedicatorias , Aprobaciones o Historia. Conservar el Ttulo de tal
seccin cuando se modifica el Documento significa que permanece una seccin Titulada
XYZ segn esta definicin[3] .
El Documento puede incluir Limitaciones de Garanta cercanas a la nota donde se declara
que al Documento se le aplica esta Licencia. Se considera que estas Limitaciones de
Garanta estn incluidas, por referencia, en la Licencia, pero slo en cuanto a limitaciones
de garanta: cualquier otra implicacin que estas Limitaciones de Garanta puedan tener es
nula y no tiene efecto en el significado de esta Licencia.
[3]
En sentido estricto esta licencia parece exigir que los ttulos sean exactamente
Acknowledgements, Dedications, Endorsements e History, en ingls.
COPIA LITERAL
Usted puede copiar y distribuir el Documento en cualquier soporte, sea en forma comercial
o no, siempre y cuando esta Licencia, las notas de copyright y la nota que indica que esta
Licencia se aplica al Documento se reproduzcan en todas las copias y que usted no aada
ninguna otra condicin a las expuestas en esta Licencia. Usted no puede usar medidas
tcnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o
distribuya. Sin embargo, usted puede aceptar compensacin a cambio de las copias. Si
distribuye un nmero suficientemente grande de copias tambin deber seguir las
condiciones de la seccin 3.
Usted tambin puede prestar copias, bajo las mismas condiciones establecidas
anteriormente, y puede exhibir copias pblicamente.
COPIADO EN CANTIDAD
Si publica copias impresas del Documento (o copias en soportes que tengan normalmente
cubiertas impresas) que sobrepasen las 100, y la nota de licencia del Documento exige
Textos de Cubierta, debe incluir las copias con cubiertas que lleven en forma clara y legible
todos esos Textos de Cubierta: Textos de Cubierta Delantera en la cubierta delantera y
Textos de Cubierta Trasera en la cubierta trasera. Ambas cubiertas deben identificarlo a
Usted clara y legiblemente como editor de tales copias. La cubierta debe mostrar el ttulo
completo con todas las palabras igualmente prominentes y visibles. Adems puede aadir
otro material en las cubiertas. Las copias con cambios limitados a las cubiertas, siempre que
conserven el ttulo del Documento y satisfagan estas condiciones, pueden considerarse
como copias literales.
Si los textos requeridos para la cubierta son muy voluminosos para que ajusten
legiblemente, debe colocar los primeros (tantos como sea razonable colocar) en la
verdadera cubierta y situar el resto en pginas adyacentes.
Si Usted publica o distribuye copias Opacas del Documento cuya cantidad exceda las 100,
debe incluir una copia Transparente, que pueda ser leda por una mquina, con cada copia
Opaca, o bien mostrar, en cada copia Opaca, una direccin de red donde cualquier usuario
de la misma tenga acceso por medio de protocolos pblicos y estandarizados a una copia
Transparente del Documento completa, sin material adicional. Si usted hace uso de la
ltima opcin, deber tomar las medidas necesarias, cuando comience la distribucin de las
copias Opacas en cantidad, para asegurar que esta copia Transparente permanecer
accesible en el sitio establecido por lo menos un ao despus de la ltima vez que
distribuya una copia Opaca de esa edicin al pblico (directamente o a travs de sus
agentes o distribuidores).
Se solicita, aunque no es requisito, que se ponga en contacto con los autores del Documento
antes de redistribuir gran nmero de copias, para darles la oportunidad de que le
proporcionen una versin actualizada del Documento.
MODIFICACIONES
Puede copiar y distribuir una Versin Modificada del Documento bajo las condiciones de
las secciones 2 y 3 anteriores, siempre que usted libere la Versin Modificada bajo esta
misma Licencia, con la Versin Modificada haciendo el rol del Documento, por lo tanto
dando licencia de distribucin y modificacin de la Versin Modificada a quienquiera
posea una copia de la misma. Adems, debe hacer lo siguiente en la Versin Modificada:
L. Conservar todas las Secciones Invariantes del Documento, sin alterar su texto ni
sus ttulos. Nmeros de seccin o el equivalente no son considerados parte de los
ttulos de la seccin.
Puede aadir un pasaje de hasta cinco palabras como Texto de Cubierta Delantera y un
pasaje de hasta 25 palabras como Texto de Cubierta Trasera en la Versin Modificada. Una
entidad solo puede aadir (o hacer que se aada) un pasaje al Texto de Cubierta Delantera y
uno al de Cubierta Trasera. Si el Documento ya incluye un textos de cubiertas aadidos
previamente por usted o por la misma entidad que usted representa, usted no puede aadir
otro; pero puede reemplazar el anterior, con permiso explcito del editor que agreg el texto
anterior.
Con esta Licencia ni los autores ni los editores del Documento dan permiso para usar sus
nombres para publicidad ni para asegurar o implicar aprobacin de cualquier Versin
Modificada.
COMBINACIN DE DOCUMENTOS
Usted puede combinar el Documento con otros documentos liberados bajo esta Licencia,
bajo los trminos definidos en la seccin 4 anterior para versiones modificadas, siempre
que incluya en la combinacin todas las Secciones Invariantes de todos los documentos
originales, sin modificar, listadas todas como Secciones Invariantes del trabajo combinado
en su nota de licencia. As mismo debe incluir la Limitacin de Garanta.
El trabajo combinado necesita contener solamente una copia de esta Licencia, y puede
reemplazar varias Secciones Invariantes idnticas por una sola copia. Si hay varias
Secciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el ttulo
de cada una de estas secciones nico aadindole al final del mismo, entre parntesis, el
nombre del autor o editor original de esa seccin, si es conocido, o si no, un nmero nico.
Haga el mismo ajuste a los ttulos de seccin en la lista de Secciones Invariantes de la nota
de licencia del trabajo combinado.
En la combinacin, debe combinar cualquier seccin Titulada Historia de los documentos
originales, formando una seccin Titulada Historia; de la misma forma combine cualquier
seccin Titulada Agradecimientos, y cualquier seccin Titulada Dedicatorias. Debe borrar
todas las secciones tituladas Aprobaciones.
COLECCIONES DE DOCUMENTOS
Puede hacer una coleccin que conste del Documento y de otros documentos liberados bajo
esta Licencia, y reemplazar las copias individuales de esta Licencia en todos los
documentos por una sola copia que est incluida en la coleccin, siempre que siga las reglas
de esta Licencia para cada copia literal de cada uno de los documentos en cualquiera de los
dems aspectos.
Puede extraer un solo documento de una de tales colecciones y distribuirlo individualmente
bajo esta Licencia, siempre que inserte una copia de esta Licencia en el documento
extrado, y siga esta Licencia en todos los dems aspectos relativos a la copia literal de
dicho documento.
Licencia no se aplica a otros trabajos del agregado que no sean en s mismos derivados del
Documento.
Si el requisito de la seccin 3 sobre el Texto de Cubierta es aplicable a estas copias del
Documento y el Documento es menor que la mitad del agregado entero, los Textos de
Cubierta del Documento pueden colocarse en cubiertas que enmarquen solamente el
Documento dentro del agregado, o el equivalente electrnico de las cubiertas si el
documento est en forma electrnica. En caso contrario deben aparecer en cubiertas
impresas enmarcando todo el agregado.
TRADUCCIN
La Traduccin es considerada como un tipo de modificacin, por lo que usted puede
distribuir traducciones del Documento bajo los trminos de la seccin 4. El reemplazo las
Secciones Invariantes con traducciones requiere permiso especial de los dueos de derecho
de autor, pero usted puede aadir traducciones de algunas o todas las Secciones Invariantes
a las versiones originales de las mismas. Puede incluir una traduccin de esta Licencia, de
todas las notas de licencia del documento, as como de las Limitaciones de Garanta,
siempre que incluya tambin la versin en Ingls de esta Licencia y las versiones originales
de las notas de licencia y Limitaciones de Garanta. En caso de desacuerdo entre la
traduccin y la versin original en Ingls de esta Licencia, la nota de licencia o la
limitacin de garanta, la versin original en Ingls prevalecer.
Si una seccin del Documento est Titulada Agradecimientos, Dedicatorias o Historia el
requisito (seccin 4) de Conservar su Ttulo (Seccin 1) requerir, tpicamente, cambiar su
ttulo.
TERMINACIN
Usted no puede copiar, modificar, sublicenciar o distribuir el Documento salvo por lo
permitido expresamente por esta Licencia. Cualquier otro intento de copia, modificacin,
sublicenciamiento o distribucin del Documento es nulo, y dar por terminados
automticamente sus derechos bajo esa Licencia. Sin embargo, los terceros que hayan
recibido copias, o derechos, de usted bajo esta Licencia no vern terminadas sus licencias,
siempre que permanezcan en total conformidad con ella.
[1]
La licencia original dice publisher, que es, estrictamente, quien publica, diferente de
editor, que es ms bien quien prepara un texto para publicar. En castellano editor se usa
para ambas cosas.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful
document "free" in the sense of freedom: to assure everyone the effective freedom to copy
and redistribute it, with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way to get credit for their
work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document
must themselves be free in the same sense. It complements the GNU General Public
License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free
software needs free documentation: a free program should come with manuals providing
the same freedoms that the software does. But this License is not limited to software
manuals; it can be used for any textual work, regardless of subject matter or whether it is
published as a printed book. We recommend this License principally for works whose
purpose is instruction or reference.
DTD, and standard-conforming simple HTML, PostScript or PDF designed for human
modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque
formats include proprietary formats that can be read and edited only by proprietary word
processors, SGML or XML for which the DTD and/or processing tools are not generally
available, and the machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages
as are needed to hold, legibly, the material this License requires to appear in the title page.
For works in formats which do not have any title page as such, "Title Page" means the text
near the most prominent appearance of the work's title, preceding the beginning of the body
of the text.
A section "Entitled XYZ" means a named subunit of the Document whose title either is
precisely XYZ or contains XYZ in parentheses following text that translates XYZ in
another language. (Here XYZ stands for a specific section name mentioned below, such as
"Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the
Title" of such a section when you modify the Document means that it remains a section
"Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this
License applies to the Document. These Warranty Disclaimers are considered to be
included by reference in this License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has no effect on the
meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or
noncommercially, provided that this License, the copyright notices, and the license notice
saying this License applies to the Document are reproduced in all copies, and that you add
no other conditions whatsoever to those of this License. You may not use technical
measures to obstruct or control the reading or further copying of the copies you make or
distribute. However, you may accept compensation in exchange for copies. If you distribute
a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly
display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the
Document, numbering more than 100, and the Document's license notice requires Cover
Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both
covers must also clearly and legibly identify you as the publisher of these copies. The front
cover must present the full title with all words of the title equally prominent and visible.
You may add other material on the covers in addition. Copying with changes limited to the
covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the
first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto
adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you
must either include a machine-readable Transparent copy along with each Opaque copy, or
state in or with each Opaque copy a computer-network location from which the general
network-using public has access to download using public-standard network protocols a
complete Transparent copy of the Document, free of added material. If you use the latter
option, you must take reasonably prudent steps, when you begin distribution of Opaque
copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy
(directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an
updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of
sections 2 and 3 above, provided that you release the Modified Version under precisely this
License, with the Modified Version filling the role of the Document, thus licensing
distribution and modification of the Modified Version to whoever possesses a copy of it. In
addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the
Document, and from those of previous versions (which should, if there were any, be
listed in the History section of the Document). You may use the same title as a
previous version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for
authorship of the modifications in the Modified Version, together with at least five
of the principal authors of the Document (all of its principal authors, if it has fewer
than five), unless they release you from this requirement.
C. State on the Title page the name of the publisher of the Modified Version, as the
publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to the other
copyright notices.
F. Include, immediately after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this License, in the form
shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add to it an item
stating at least the title, year, new authors, and publisher of the Modified Version as
given on the Title Page. If there is no section Entitled "History" in the Document,
create one stating the title, year, authors, and publisher of the Document as given on
its Title Page, then add an item describing the Modified Version as stated in the
previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a
Transparent copy of the Document, and likewise the network locations given in the
Document for previous versions it was based on. These may be placed in the
"History" section. You may omit a network location for a work that was published
at least four years before the Document itself, or if the original publisher of the
version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title
of the section, and preserve in the section all the substance and tone of each of the
contributor acknowledgements and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in
their titles. Section numbers or the equivalent are not considered part of the section
titles.
M. Delete any section Entitled "Endorsements". Such a section may not be included in
the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in
title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as
Secondary Sections and contain no material copied from the Document, you may at your
option designate some or all of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice. These titles must be
distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains nothing but
endorsements of your Modified Version by various parties--for example, statements of peer
review or that the text has been approved by an organization as the authoritative definition
of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to
25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified
Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added
by (or through arrangements made by) any one entity. If the Document already includes a
cover text for the same cover, previously added by you or by arrangement made by the
same entity you are acting on behalf of, you may not add another; but you may replace the
old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to
use their names for publicity for or to assert or imply endorsement of any Modified
Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under
the terms defined in section 4 above for modified versions, provided that you include in the
combination all of the Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its license notice, and that you
preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical
Invariant Sections may be replaced with a single copy. If there are multiple Invariant
Sections with the same name but different contents, make the title of each such section
unique by adding at the end of it, in parentheses, the name of the original author or
publisher of that section if known, or else a unique number. Make the same adjustment to
the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History" in the various
original documents, forming one section Entitled "History"; likewise combine any sections
Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete
all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released
under this License, and replace the individual copies of this License in the various
documents with a single copy that is included in the collection, provided that you follow the
rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually
under this License, provided you insert a copy of this License into the extracted document,
and follow this License in all other respects regarding verbatim copying of that document.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the
Document under the terms of section 4. Replacing Invariant Sections with translations
requires special permission from their copyright holders, but you may include translations
of some or all Invariant Sections in addition to the original versions of these Invariant
Sections. You may include a translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include the original
English version of this License and the original versions of those notices and disclaimers.
In case of a disagreement between the translation and the original version of this License or
a notice or disclaimer, the original version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly
provided for under this License. Any other attempt to copy, modify, sublicense or distribute
the Document is void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under this License will not
have their licenses terminated so long as such parties remain in full compliance.