Xen es una máquina virtual de código abierto desarrollada por la Universidad de Cambridge. La meta del diseño es poder ejecutar instancias de sistemas operativos con todas sus características, de forma completamente funcional en un equipo sencillo. Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en vivo. Los sistemas operativos deben ser modificados explícitamente para correr Xen (aunque manteniendo la compatibilidad con aplicaciones de usuario). Esto permite a Xen alcanzar virtualización de alto rendimiento sin un soporte especial de hardware.
Las arquitecturas soportadas actualmente por Xen son x86/32 y x86/64 y la última versión desarrollada es la 3.0.3.
La técnica utilizada por Xen se denomina para-virtualización, lo que consigue comportamientos de las máquinas virtuales cercanos al de una máquina real. Para realizar dicha para-virtualización, es necesario cargar en modo núcleo (kernel space) el denominado ``hypervisor'' que se encarga de la gestión de recursos para los diferentes sistemas operativos de una misma máquina. La contrapartida en el caso de Xen es que el sistema operativo huésped (guest) debe modificarse para trabajar con el hypervisor en lugar de con el hardware directamente. A día de hoy sólo pueden trabajar con Xen sistemas operativos libres, ya que en estos casos es factible modificar el núcleo (kernel) de forma apropida1. Los sistemas operativos ``propietarios'' deben sacar versiones específicas para trabajar con Xen2.
Existe la posibilidad de trabajar con Xen sin necesidad de modificar el sistema operativo huésped, pero para ello es necesario utilizar un microprocesador con tecnología de virtualización. Algunos microprocesadores salidos recientemente al mercado incluyen esta característica, son los conocidos como Intel VT (Vanderpool) y AMD-V (Pacifica). No hablaremos en este documento de la utilización de Xen en este caso que abre muchas más posibilidades, sino que nos ceñiremos al uso de Xen en equipos con microprocesadores convencionales.
Xen tiene diversos usos, aunque destacaremos los dos siguientes:
Las diferentes máquinas virtuales que se ejecutan en una máquina reciben el nombre de dominios en la terminología de Xen. Existe un dominio privilegiado que es sobre el que se instala el ``hypervisor'' de Xen y que equivale al sistema operativo anfitrión (host) de otros monitores de máquinas virtuales como los de la empresa VMware. Este dominio privilegiado recibe el nombre de dom0 y el resto de dominios reciben el nombre genérico de domU.
El hardware que actualmente puede utilizar un domU en Xen es:
En la figura 1 puede verse de forma esquemática los elementos que intervienen así como relación entre los diferentes dominios y el hardware.
Una característica no comentada aún, pero muy destacable en Xen es que se trata de una herramienta libre, licenciada bajo la GPL y otras. Hoy en día se considera la alternativa con mayores posibilidades de hacer frente en el ámbito de la virtualización a los productos de la empresa VMware.
Alberto Molina Coballes 2007-05-17