Categorías:Software

Contents

Xen es una tecnología que permite realizar la para virtualización de hardware, permitiendo correr varias instancias de sistemas operativos en la misma máquina algo similar a User Mode Linux, pero con un importante incremento en el rendimiento, como puede verse en la siguiente gráfica:

http://www.cl.cam.ac.uk/Research/SRG/netos/xen/comparison.gif

Grafica de XEN comparado con otras tecnologías de virtualización (tomado de la página de investigación del proyecto). Convenciones: L: Linux Nativo. X: Xen. V: VM Ware. U: User Mode Linux

Xen maneja una tecnologia llamada hypervisor, que consiste en administrar y crear cada uno de los dominios (en inglés domain: El sistema operativo Xen sin privilegios, que seria como cada una de VM activas que tiene) colocados sobre Xen, permitiéndole una mayor interfaz de comunicación, el programa por defecto maneja un backend de éste, pero ya he visto dos front-ends para el manejo de este, el primero es el de gXenophilia (GTK+Python), el cual es rápido y tiene un gran desarrollo (de hecho cuando uno lo descarga esta el archivo .glade para programarlo en Glade).

Es extremadamente útil para ambientes de desarrollo en los cuales se quiera probar como funciona algo sin afectar los sistemas de producción y sin incurrir en la compra adicional de máquinas. En este documento aprenderás a instalar Xen en una máquina debian. Para mayor información sobre el proyecto mira la sección de Referencias

Instalando los paquetes

Arrancando la virtualización de un SO

Ya tiene instalado su Xen pero ahora hay que sacarle el jugo al asunto

Nota: Este sistema utiliza la misma imagen con la que arranca el sistema, esto comenzo a implementarse a partir de la version 3.0.2 la actual es 3.0.3.

Cliente de comunicación para controlar el hypervisor

Ahora uno puede usar el comando xm para el manejo del hypervisor del Xen para administración y creación de Domains, sin embargo es back-end que no todo el mundo entiende, ya que es poco intuitivo y uno lo aprende a usando lo siguiente:

 /usr/sbin/xm help

Yo encontre un front-end para esto, bastante practico hecho en GTK/Python y trae el archivo de desarrollo .glade para cargar el proyecto en Glade, usted puede descargarlo de la siguiente forma:

 wget http://mirror.clarkson.edu/pub/distributions/xenophilia/OSDL/gxenophilia/gXenophilia-0.1.tar.gz

Lo descomprime con el siguiente comando:

 tar xvfz gXenophilia-0.1.tar.gz
 README
 gtk-ui/
 gtk-ui/BasicClient.py
 gtk-ui/xenophilia.py
 gtk-ui/xenophilia.glade
 simple.py

Y lo activa escribiendo en consola python gtk-ui/xenophilia.py

Este le resultará mas intuitivo por si algo guiese de los screenshots que estan de referencia.

Instalando VNC para tener modo gráfico en su Xen Virtual

Antes de comenzar a instalar el software de VNC en nuestro Xen el cual esta paravirtualizado (palabra que no esta en el diccionario de la lengua española, como una traducción de paravirtualized), usted tendra que crear el archivo /etc/apt/sources.list con su editor favorito (en ese momento solo tiene vi o nano):

 vi /etc/apt/sources.list

Despues agregamos la siguiente línea:

deb http://ftp.us.debian.org/debian stable contrib non-free/

Guardamos lo escrito y actualizamos la base de información del apt de la siguiente forma:

 apt-get update
 Get:1 http://ftp.us.debian.org stable/main Packages [3347kB]
 Get:2 http://ftp.us.debian.org stable/main Release [95B]
 Get:3 http://ftp.us.debian.org stable/contrib Packages [56.2kB]
 Get:3 http://ftp.us.debian.org stable/contrib Packages [56.2kB]
 Get:4 http://ftp.us.debian.org stable/contrib Release [98B]
 Get:5 http://ftp.us.debian.org stable/non-free/ Packages [58.4kB]
 Get:6 http://ftp.us.debian.org stable/non-free/ Release [99B]
 Fetched 3462kB in 2m23s (24.1kB/s)
 Reading Package Lists... Done

Despues procedemos a actualizar los paquetes para despues en la instalación, no tener que traer otros archivos para actualizar de la siguente forma

 apt-get dist-upgrade

Luego de actualizado los paquetes instalaremos por medio del apt los siguientes paquetes que nos permitiran usar el modo gráfico usando VNC (Virtual Network Computing):

 apt-get install vncserver4 xserver-xorg xfonts-base xinetd

Ahora instalados estos paquetes tenemos el acceso al servidor de X unido al de VNC, que nos permitira tener un puesto de trabajo gráfico en otra terminal sin importar el sistema operativo (esto pasa porque el cliente de VNC es altamente portable y escalable), en mi caso particular lo unico que hecho yo es instalar la xterm y mi bordeador de ventana favorito el cual para este caso es metacity (es border de ventana de Gnome, cualquiera pensaria que es pesado, pero no lo es, por lo contrario es un programa con arquitectura minimalista) además yo lo combino con Expocity para hacer un Window Manager .

Yo en particular uso la misma tecnica que uso para lanzar metacity en conjunto con el Expocity, con la diferencia que para llamar al servidor X lo hago de la siguiente forma:

 Xvnc  -SecurityTypes none :0 &

Y una vez lanzado mi Window Manager, me conecto via vnc, esta version que instalamos no requiere contraseña así que será automatica la entrada, en su debian debe tener instalado el cliente de vnc xvncviewer y entrar de la siguiente forma:

 xvncviewer 192.168.0.23

La dirección ip varia pero es un ejemplo concreto, ahora yo utilizo también el Vnc2swf para hacer videos con pruebas hechas en Xen, al final del documento esta referenciado donde tengo todos los videos, que he hecho de prueba.

Lanzando un Display Manager

Ya sabemos que el servidor de VNC corre bien en nuestro entorno gráfico, sin embargo a muchos les gusta que cuando le muestre X, tenga un display manager(como xdm, gdm, kdm, sdm o wdm), pues para hacer que nuestro display manager favorito corra y solo tengamos que loguearnos en una session gráfica.

Dare el ejemplo con kdm, que es mi display manager favorito, y lo hice en debian, lo primero que se hace es instalarlo en su Debian, además le agregue otro Window Manager de gran poder (usted podria instalar su WM o Desktop Favorito) así:

 apt-get install kdm ion3

Una vez instalado, modificamos del archivo /etc/kde3/kdm/Xservers y cambiamos la siguiente línea:

 :0 local@tty1 reserve /usr/X11R6/bin/X -nolisten tcp

Por esta:

 :0 local /usr/bin/Xvnc :0 -geometry 800x600 -depth 32 -desktop vt7

Y luego con la modificación hecha reiniciamos nuestro display manager

 /etc/init.d/kdm start
 Starting K Display Manager: kdm.

Abrimos el vncviewer para esa maquina, y ahí estará nuestro kdm (en mi caso), y podrás seguir manejandolo así de ahora en adelante.

OTROS ASPECTOS TECNOLOGICOS DE LA MAQUINA VIRTUAL XEN

1. DESCRIPCIÓN

1.1. IDENTIFICACIÓN

1.2. FABRICANTE

Xen es una máquina virtual de código abierto desarrollada por la Universidad de Cambridge. El software de virtualización Xen es una solución con fuente abierta desarrollada por la comunidad Linux

1.3. PARA QUE SIRVE

Las máquinas virtuales son usadas a menudo por IBM y otras compañías en sus servidores y ordenadores centrales para abstraer la mayor cantidad de aplicaciones posibles y proteger las aplicaciones poniéndolas en máquinas virtuales diferentes (semejante a una jaula chroot). Puede también ser utilizada, no solo por razones de seguridad o funcionamiento, sino también para poder tener arrancados diferentes sistemas operativos en el mismo ordenador. Con la migración de máquinas virtuales en vivo de Xen se puede conseguir hacer balance de cargas sin tiempos muertos.

1.4. COSTOS

La instalación de una máquina virtual en linux no tiene ningún costo, el software se puede descargar de la página :

http://www.xensource.com/xen/downloads/

El costo generado esta basado en capacitaciones y servicios de instalación o configuración del software para la máquina virtual o todos los demás servicios extras que se puedan generar. Con todo, las ahorros en los costos potenciales son substanciales. Un estudio realizado por Vmware registró las siguientes ahorros del cliente por medio de la virtualización y de la consolidación: • Hardware: de un 28% a un 53% de economía • Operaciones: de un 72% a un 79% de economía • Total: de 29% a 64% de economía

2. ANÁLISIS SISTÉMICO

2.1. COMPONENTES

a) En primer lugar, es de código abierto. b) En segundo lugar, es relativamente liviano, de modo que no consume una cantidad excesiva de recursos del procesador. c) En tercer lugar, alcanza un alto nivel de aislamiento entre tecnologías de máquina virtual. d) Por último, al igual que otras tecnologías de máquina virtual, Xen ofrece soporte a sistemas operativos y versiones combinados y permite a los administradores definir y ejecutar una instancia del sistema operativo, en forma dinámica, sin afectar el servicio. Xen hace uso del modo protegido del i386, donde la CPU está compuesta por 4 anillos, el ring 0 se usa normalmente para el kernel del sistema operativo y el ring 3 se usa para las aplicaciones de usuario.

Xen “hypervisor” corre en ring 0, los Sistemas Operativos invitados corren en ring 1 y las aplicaciones en ring 3. Con esto aprovechamos el ring 1 como una capa mas de protección, algo que nadie hasta ahora había hecho. En tiempo de arranque del sistema operativo anfitrion Xen se carga en memoria y ejecuta un kernel parcheado en Ring 1 que se llama domain0. Desde este domino será desde el cual se podrá crear, destruir, migrar o detener el resto de dominios. Estos dominios creados también funcionarán en ring1, mientras que sus aplicaciones lo harán en ring3. Para poder acceder a los dispositivos físicos de una forma segura xen utiliza el domain0 que es el único que puede acceder a ellos , de modo que los sistemas operativos que corran en dominios, como ya hemos dicho deberán ser parcheados para acceder a los dispositivos físicos. Este es el mayor inconveniente de Xen, pero como ya también se ha dicho en varias ocasiones cuando dispongamos de la tecnologia de virtualización por hardware tanto de AMD como Intel este problema no existirá.

2.2. DESCRIPCIÓN

Una máquina virtual es un software que crea una plataforma 'puente' entre el usuario final y el ordenador, permitiendo que este ejecute determinado software que originalmente no podría funcionar. Las máquinas virtuales no son algo nuevo, llevan usándose desde principios de los años 70 y principalmente se idearon para correr varios sistemas operativos diferentes y separados en una misma máquina física. Las máquinas virtuales también se usan en algunos lenguajes de programación, siendo en la actualidad la mas popular la máquina de Java desarrollada por Sun.

Java, al compilarse, genera un bytecode que solo puede ser ejecutado por su propia máquina virtual. Con esto se consigue la portabilidad de los binarios generados con el compilador entre sistemas operativos. Cuando hablamos de virtualizar hoy en día nos referimos normalmente a ejecutar un sistema operativo dentro otro. El Xen inicialmente necesitaba que los sistemas operativos invitados fueran modificados para ejecutarse exitosamente (esto se conoce como paravirtualización). Sin embargo, la última release (Xen 3.0) incluye soporte para la Tecnología de Virtualización Intel®, lo que permite que el Xen soporte sistemas operacionales invitados no modificados, incluyendo el Windows*7.

El Xen 3.0 soporta hasta 32 procesadores por máquina virtual y transferencias activas de las aplicaciones que están ejecutándose. También se ejecuta tanto en los sistemas basados en los procesadores Intel® Xeon® como en los procesadores Intel Itanium® 2. Dada la escalabilidad y la disponibilidad moderna de los servidores basados en los procesadores Itanium® 2, la virtualización basada en Linux podrá ir aún más lejos en los centros de datos, ofreciendo la escalabilidad y la disponibilidad necesarias para consolidar las aplicaciones más críticas de las empresas.

Xen es una tecnología relativamente nueva, pero el soporte de la industria y el interés de los clientes es grande, y las soluciones listas para ser desarrolladas están comenzando a surgir, y avances rápidos pueden esperarse.

2.3. APLICACIÓN

• Dividir cada servidor físico en hasta 30 servidores virtuales, cada uno siendo capaz de hospedar su propio SO (Sistema Operativo) y su pila de aplicaciones • Desarrollar y administrar servidores físicos y virtuales de forma eficiente a partir de una interfase común. • Destinar los recursos del servidor (procesador, memoria e I/O) dinámicamente y mover aplicaciones y cargas de trabajo en ejecución, y cambiar sesiones muy rápidamente de un servidor virtual para otro. Inicialmente esta capacidad era usada para manutención del tiempo de inactividad cero. Ahora ella comienza a usarse como una manera de proveer automáticamente la nueva capacidad cuando se presentan fallas en un sistema o cuando las cargas de trabajo amenazan con exceder los recursos existentes. Obviamente, la planeación es importante en un proyecto de consolidación bien hecho. Para la mayoría de las empresas, la cuestión no es si deben o no virtualizar sus infraestructuras para los servidores sino cuál solución usar. Las políticas para las tomas de decisiones normalmente necesitan cambiar, ya que los servidores físicos individuales podrán ser compartidos entre múltiples unidades de negocios.

3. ANÁLISIS TÉCNICO

3.1. CAPACIDADES

• Xen es estable y muy manejable. • Plataforma Windows: hubo una versión modificada de Windows XP funcionando durante los primeros tests. Dicha versión no ha podido comercializarse debido a las restrictivas licencias y contratos que Microsoft aplica a sus productos. • Para portátiles: Xen no soporta ACPI o APM, por lo tanto funcionará pero no con todas las funcionalidades de un portátil, aunque los desarrolladores esperan poder soportar estas tecnologías de portátiles próximamente. • Las máquinas virtuales Xen pueden ser migradas en vivo entre equipos físicos sin pararlos. Durante este proceso, la memoria de la máquina virtual es copiada iterativamente al destino sin detener su ejecución. Una parada muy breve alrededor de 60 a 300 ms es necesaria para realizar la sincronización final antes de que la máquina virtual comience a ejecutarse en su destino final. Una tecnología similar es utilizada para suspender las máquinas virtuales a disco y cambiar a otra máquina virtual.

3.2 REQUERIMIENTOS DE USO

• Xen funciona actualmente en sistemas basados en x86. Actualmente se están portando las plataformas x86_64, IA64 y PPC. Los ports de otras plataformas son técnicamente posibles y podrán estar disponibles en el futuro. • Xen requiere portar los sistemas operativos para adaptarse al API de Xen. Hasta el momento hay ports para NetBSD, Linux, FreeBSD y Plan 9. En 2005, Novell muestra un port de NetWare para Xen. Un port de Windows XP fue creado durante el desarrollo inicial de Xen.

• Xen en SO Unix:

o Mandriva 2006 incluye Xen 2.6 o Novell’s Suse Linux Professional 10 incluye Xen 3. o Fedora Core 5 incluye la versión 3 de Xen. o Xenophilia es una distribución Linux que se basa en Xen. o Xen demo CD es una ISO live CD basada en Debian que permite probar Xen en tu sistema sin instalarla en disco duro. o Debian también incluye los paquetes de Xen, en sus repositorios inestable y experimental. o NetBSD 2.0 incluye soporte para Xen 1.2.

3.3 VENTAJAS

• Aislamiento e independencia de servicios y contenidos. • Se puede utilizar una máquina virtual diferente para ejecutar servicios web, ftp, correo y otros. • Un fallo en el sistema operativo no repercute en los demás • Adecuado cuando se heredan sistemas mas antiguos y se pueden producir conflictos entre diferentes versiones de librerías. • Se consigue alto grado de seguridad y facilidad de migración. • Ahorro de hardware. • Se consigue utilizar mas los recursos del sistema y procesadores.

3.4 LIMITACIONES

• Se puede conseguir bajo rendimiento en la máquina. • Xen no ha sido probado en mercados amplios, no existen muchas herramientas de gestión. • Curva de aprendizaje costosa. • Documentación no excesivamente abundante • Tiempos de despliegue mayores. • No admite drivers de los entornos a emular. • Desarrollo algo inmaduro.

Referencias

balloons

Xen (last edited 2008-04-20 14:40:04 by localhost)