Xen (pronunciado / ˈzɛn / ) es un hipervisor de tipo 1 gratuito y de código abierto que proporciona servicios que permiten que varios sistemas operativos informáticos se ejecuten en el mismo hardware informático de forma simultánea. Fue desarrollado originalmente por el Laboratorio de Computación de la Universidad de Cambridge y ahora lo está desarrollando la Fundación Linux con el apoyo de Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender y EPAM Systems .
La comunidad del Proyecto Xen desarrolla y mantiene el Proyecto Xen como software libre y de código abierto , sujeto a los requisitos de la Licencia Pública General GNU (GPL), versión 2. El Proyecto Xen está actualmente disponible para los conjuntos de instrucciones IA-32 , x86-64 y ARM . [4]
El proyecto Xen se ejecuta en un estado de CPU más privilegiado que cualquier otro software en la máquina, a excepción del firmware .
Las responsabilidades del hipervisor incluyen la gestión de la memoria y la programación de la CPU de todas las máquinas virtuales ("dominios"), y el lanzamiento del dominio más privilegiado ("dom0"), la única máquina virtual que por defecto tiene acceso directo al hardware. Desde el dom0 se puede gestionar el hipervisor y se pueden lanzar dominios sin privilegios ("domU"). [5]
El dominio dom0 es típicamente una versión de Linux o BSD . Los dominios de usuario pueden ser sistemas operativos tradicionales, como Microsoft Windows, en el que las instrucciones privilegiadas son proporcionadas por instrucciones de virtualización de hardware (si el procesador host admite la virtualización x86 , por ejemplo, Intel VT-x y AMD-V ), [6] o sistemas operativos paravirtualizados mediante los cuales el sistema operativo es consciente de que se está ejecutando dentro de una máquina virtual, y por lo tanto realiza hiperllamadas directamente, en lugar de emitir instrucciones privilegiadas.
El proyecto Xen arranca desde un gestor de arranque como GNU GRUB y luego normalmente carga un sistema operativo host paravirtualizado en el dominio host (dom0).
Xen nació como un proyecto de investigación en la Universidad de Cambridge dirigido por Ian Pratt , profesor titular del Laboratorio de Computación , y su estudiante de doctorado Keir Fraser. El primer lanzamiento público de Xen se realizó en 2003, seguido de la versión 1.0 en 2004. Poco después, Pratt y Fraser, junto con otros ex alumnos de Cambridge, entre ellos Simon Crosby y el director ejecutivo fundador Nick Gault, crearon XenSource Inc. para convertir a Xen en un producto empresarial competitivo.
Para dar soporte a sistemas integrados como teléfonos inteligentes/IoT con recursos informáticos de hardware relativamente escasos, la arquitectura Secure Xen ARM en una CPU ARM se exhibió en la Cumbre Xen el 17 de abril de 2007, celebrada en IBM TJ Watson. [7] [8] El primer lanzamiento público del código fuente de Secure Xen ARM se realizó en la Cumbre Xen el 24 de junio de 2008 [9] [10] por Sang-bum Suh, [11] un ex alumno de Cambridge, en Samsung Electronics.
El 22 de octubre de 2007, Citrix Systems completó su adquisición de XenSource, [12] y el Proyecto Xen se trasladó al dominio xen.org. Este movimiento había comenzado algún tiempo antes, y hizo pública la existencia del Consejo Asesor del Proyecto Xen (Xen AB), que tenía miembros de Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems y Oracle . El Consejo Asesor de Xen asesora al líder del Proyecto Xen y es responsable de la marca registrada Xen, [13] que Citrix ha licenciado libremente a todos los proveedores y proyectos que implementan el hipervisor Xen . [14] Citrix también utilizó la propia marca Xen para algunos productos propietarios no relacionados con Xen, incluidos XenApp y XenDesktop .
El 15 de abril de 2013, se anunció que el Proyecto Xen pasó a estar bajo los auspicios de la Fundación Linux como un Proyecto Colaborativo. [15] La Fundación Linux lanzó una nueva marca registrada para "Proyecto Xen" para diferenciar el proyecto de cualquier uso comercial de la antigua marca registrada "Xen". Se lanzó un nuevo sitio web comunitario en xenproject.org [16] como parte de la transferencia. Los miembros del proyecto en el momento del anuncio incluían: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung y Verizon. [17] El proyecto Xen en sí es autónomo. [18]
Desde la versión 3.0 del kernel de Linux , el soporte de Xen para dom0 y domU existe en el kernel principal. [19]
Las empresas de servicios de alojamiento de Internet utilizan hipervisores para proporcionar servidores privados virtuales . Amazon EC2 (desde agosto de 2006 hasta noviembre de 2017), [48] IBM SoftLayer , [49] Liquid Web, Fujitsu Global Cloud Platform , [50] Linode , OrionVM [51] y Rackspace Cloud utilizan Xen como el hipervisor de VM principal para sus ofertas de productos. [52]
Los monitores de máquinas virtuales (también conocidos como hipervisores) también suelen funcionar en mainframes y servidores grandes que ejecutan sistemas IBM, HP y otros. [ cita requerida ] La virtualización de servidores puede proporcionar beneficios como:
El soporte de Xen para la migración en vivo de máquinas virtuales de un host a otro permite equilibrar la carga y evitar tiempos de inactividad.
La virtualización también tiene ventajas a la hora de trabajar en el desarrollo (incluido el desarrollo de sistemas operativos): ejecutar el nuevo sistema como invitado evita la necesidad de reiniciar el equipo físico cada vez que se produce un error. Los sistemas invitados en entornos aislados también pueden ayudar en la investigación de seguridad informática, permitiendo estudiar los efectos de algún virus o gusano sin la posibilidad de comprometer el sistema anfitrión.
Finalmente, los proveedores de dispositivos de hardware pueden decidir enviar sus dispositivos ejecutando varios sistemas invitados, de modo de poder ejecutar varios programas que requieren diferentes sistemas operativos. [ cita requerida ]
Xen ofrece cinco enfoques para ejecutar el sistema operativo invitado: [53] [54] [55]
Xen proporciona una forma de virtualización conocida como paravirtualización, en la que los invitados ejecutan un sistema operativo modificado. Los invitados se modifican para usar una ABI de hiperllamada especial , en lugar de ciertas características arquitectónicas. A través de la paravirtualización, Xen puede lograr un alto rendimiento incluso en su arquitectura de host (x86) que tiene una reputación de no cooperar con las técnicas de virtualización tradicionales. [56] [57] Xen puede ejecutar invitados paravirtualizados ("invitados PV" en la terminología de Xen) incluso en CPU sin ningún soporte explícito para la virtualización. La paravirtualización evita la necesidad de emular un conjunto completo de servicios de hardware y firmware, lo que hace que un sistema PV sea más simple de administrar y reduce la superficie de ataque expuesta a invitados potencialmente maliciosos. En x86 de 32 bits, el código del kernel del host Xen se ejecuta en Ring 0 , mientras que los dominios alojados se ejecutan en Ring 1 (kernel) y Ring 3 (aplicaciones).
Las CPU que admiten la virtualización permiten ejecutar invitados sin modificaciones, incluidos sistemas operativos propietarios (como Microsoft Windows). Esto se conoce como virtualización asistida por hardware , sin embargo, en Xen esto se conoce como máquina virtual de hardware (HVM). Las extensiones HVM proporcionan modos de ejecución adicionales, con una distinción explícita entre los modos más privilegiados utilizados por el hipervisor con acceso al hardware real (llamado "modo raíz" en x86) y los modos menos privilegiados utilizados por los núcleos invitados y las aplicaciones con accesos de "hardware" bajo control completo del hipervisor (en x86, conocido como "modo no raíz"; tanto el modo raíz como el no raíz tienen anillos 0-3). Tanto Intel como AMD han contribuido con modificaciones a Xen para explotar sus respectivas extensiones de arquitectura Intel VT-x y AMD-V. [58] El uso de extensiones de virtualización ARM v7A y v8A llegó con Xen 4.3. [59] Las extensiones HVM también suelen ofrecer nuevas instrucciones para permitir llamadas directas de un invitado/controlador paravirtualizado al hipervisor, que se utilizan normalmente para E/S u otras operaciones que necesitan un alto rendimiento. Estas permiten que los invitados HVM con modificaciones menores adecuadas obtengan muchos de los beneficios de rendimiento de la E/S paravirtualizada. En las versiones actuales de Xen (hasta la 4.2), solo los invitados HVM completamente virtualizados pueden hacer uso de las funciones de hardware para múltiples niveles independientes de protección de memoria y paginación. Como resultado, para algunas cargas de trabajo, los invitados HVM con controladores PV (también conocidos como PV-on-HVM o PVH) proporcionan un mejor rendimiento que los invitados PV puros. Xen HVM tiene emulación de dispositivos basada en el proyecto QEMU para proporcionar virtualización de E/S a las máquinas virtuales. El sistema emula el hardware a través de un demonio "administrador de dispositivos" QEMU parcheado (qemu-dm) que se ejecuta como backend en dom0. Esto significa que las máquinas virtualizadas ven una versión emulada de una PC bastante básica. En un entorno donde el rendimiento es crítico, los controladores de red y de disco PV-on-HVM se utilizan durante el funcionamiento normal del invitado, de modo que el hardware de PC emulado se utiliza principalmente para el arranque.
Los administradores pueden "migrar en vivo" máquinas virtuales Xen entre hosts físicos a través de una LAN sin pérdida de disponibilidad. Durante este procedimiento, la LAN copia iterativamente la memoria de la máquina virtual al destino sin detener su ejecución. El proceso requiere una detención de alrededor de 60 a 300 ms para realizar la sincronización final antes de que la máquina virtual comience a ejecutarse en su destino final, lo que proporciona la ilusión de una migración sin problemas. Una tecnología similar puede servir para suspender la ejecución de máquinas virtuales en el disco, "congelando" su estado de ejecución para reanudarlas en una fecha posterior.
Xen puede escalar a 4095 CPU físicas, 256 VCPU [ aclaración necesaria ] por invitado HVM, 512 VCPU por invitado PV, 16 TB de RAM por host y hasta 1 TB de RAM por invitado HVM o 512 GB de RAM por invitado PV. [60]
El hipervisor Xen se ha adaptado a varias familias de procesadores:
Xen se puede enviar en una plataforma de virtualización dedicada, como XCP-ng o XenServer (anteriormente Citrix Hypervisor, y antes de eso Citrix XenServer, y antes de eso XenEnterprise de XenSource).
Alternativamente, Xen se distribuye como una configuración opcional de muchos sistemas operativos estándar. Xen está disponible y se distribuye con:
Los sistemas invitados pueden funcionar de forma totalmente virtualizada (lo que requiere compatibilidad con hardware), paravirtualizada (lo que requiere un sistema operativo invitado modificado) o totalmente virtualizada con controladores paravirtualizados (PVHVM [73] ). [74] La mayoría de los sistemas operativos que pueden ejecutarse en PC pueden ejecutarse como invitados Xen HVM. Los siguientes sistemas pueden funcionar como invitados Xen paravirtualizados:
La versión 3.0 de Xen introdujo la capacidad de ejecutar Microsoft Windows como un sistema operativo invitado sin modificaciones si el procesador de la máquina anfitriona admite la virtualización de hardware proporcionada por Intel VT-x (anteriormente con nombre en código Vanderpool) o AMD-V (anteriormente con nombre en código Pacifica). Durante el desarrollo de Xen 1.x, Microsoft Research , junto con el grupo de sistemas operativos de la Universidad de Cambridge, desarrolló un puerto de Windows XP a Xen, hecho posible por el Programa de Licencias Académicas de Microsoft . Los términos de esta licencia no permiten la publicación de este puerto, aunque la documentación de la experiencia aparece en el documento SOSP original de Xen . [78] James Harper y la comunidad de código abierto de Xen han comenzado a desarrollar controladores de paravirtualización de software libre para Windows. Estos proporcionan controladores de interfaz para el bloque Xen y los dispositivos de red y permiten un rendimiento de disco y red mucho mayor para los sistemas Windows que se ejecutan en modo HVM. Sin estos controladores, todo el tráfico de disco y red debe procesarse a través de QEMU-DM. [79] Posteriormente, Citrix lanzó bajo una licencia BSD (y continúa manteniendo) controladores PV para Windows. [80]
Los desarrolladores externos han creado una serie de herramientas (conocidas como consolas de administración de Xen) para facilitar las tareas comunes de administración de un host Xen, como la configuración, el inicio, la supervisión y la detención de los invitados Xen. Algunos ejemplos son:
El hipervisor Xen está cubierto por la Licencia Pública General de GNU, por lo que todas estas versiones contienen un núcleo de software libre con código fuente. Sin embargo, muchas de ellas contienen añadidos propietarios.