Requisitos previos: introducción a la virtualización , modelo de referencia de máquina de virtualización
Xen es un hipervisor de código abierto basado en paravirtualización. Es la aplicación más popular de paravirtualización. Xen se ha ampliado para que sea compatible con la virtualización completa mediante la virtualización asistida por hardware . Permite un alto rendimiento para ejecutar el sistema operativo invitado. Esto probablemente se hace eliminando la pérdida de rendimiento mientras se ejecutan las instrucciones que requieren un manejo significativo y modificando una parte del sistema operativo invitado ejecutado por Xen, con referencia a la ejecución de dichas instrucciones. Por lo tanto, esto es especialmente compatible con x86, que es la arquitectura más utilizada en máquinas y servidores básicos.
Figura: Arquitectura Xen y OSnManagement invitado
La figura anterior describe la arquitectura Xen y su asignación a un modelo clásico de privilegios x86. Un sistema basado en Xen es manejado por el hipervisor Xen, que se ejecuta en el modo más privilegiado y mantiene el acceso del sistema operativo invitado al hardware básico. El sistema operativo invitado se ejecuta entre dominios, lo que representa instancias de máquinas virtuales.
Además, el software de control particular, que tiene acceso privilegiado al host y maneja todos los demás SO invitados, se ejecuta en un dominio especial llamado Dominio 0. Este es el único que se carga una vez que el administrador de la máquina virtual se ha iniciado por completo y aloja un servidor HTTP que entrega requests para la creación, configuración y terminación de máquinas virtuales. Este componente establece la versión principal de un administrador de máquinas virtuales compartidas (VMM), que es una parte necesaria del sistema de computación en la nube que brinda una solución de infraestructura como servicio (IaaS).
Varias implementaciones x86 admiten cuatro niveles de seguridad distintos, denominados anillos, es decir,
Ring 0, Ring 1, Ring 2, Ring 3
Aquí, el anillo 0 representa el nivel que tiene más privilegios y el anillo 3 representa el nivel que tiene menos privilegios. Casi todos los sistemas operativos de uso frecuente, excepto OS/2, utilizan solo dos niveles, es decir, el anillo 0 para el código del kernel y el anillo 3 para la aplicación del usuario y el programa del sistema operativo sin privilegios. Esto proporciona una oportunidad para que Xen implemente la paravirtualización. Esto permite que Xen controle sin cambios la interfaz binaria de la aplicación (ABI), lo que permite un cambio simple a soluciones virtualizadas con Xen, desde la perspectiva de la aplicación.
Debido a la estructura del conjunto de instrucciones x86, algunas instrucciones permiten la ejecución de código en el Anillo 3 para cambiar al Anillo 0 (modo Kernel). Tal operación se realiza a nivel de hardware y, por lo tanto, entre un entorno virtualizado, dará lugar a una TRAMPA o una falla silenciosa, lo que impedirá el funcionamiento general del sistema operativo invitado, ya que ahora se ejecuta en el anillo 1.
Esta condición se produce básicamente por un subconjunto de llamadas al sistema. Para eliminar esta situación, la implementación en el sistema operativo requiere una modificación y todas las llamadas sensibles al sistema deben volver a implementarse con hiperllamadas. Aquí, las hiperllamadas son las llamadas particulares reveladas por la interfaz de la máquina virtual (VM) de Xen y, al usarla, el hipervisor Xen tiende a detectar la ejecución de todas las instrucciones confidenciales, administrarlas y devolver el control al sistema operativo invitado con el ayuda de un controlador suministrado.
La paravirtualización exige que se cambie el código base del sistema operativo y, por lo tanto, no se puede hacer referencia a todos los sistemas operativos como sistemas operativos invitados en un entorno basado en Xen. Esta condición se cumple cuando la virtualización asistida por hardware no puede ser gratuita, lo que permite ejecutar el hipervisor en el anillo 1 y el sistema operativo invitado en el anillo 0. Por lo tanto, Xen muestra algunas limitaciones en términos de hardware heredado y en términos de sistema operativo heredado.
De hecho, no es posible modificarlos para que se ejecuten en Ring 1 de forma segura, ya que no se puede acceder a su base de código y, al mismo tiempo, el hardware principal no tiene ningún soporte para ejecutarlos en un modo más privilegiado que Ring 0. SO de código abierto como Linux se puede modificar simplemente ya que su código está disponible abiertamente y Xen brinda soporte completo para la virtualización, mientras que los componentes de Windows básicamente no son compatibles con Xen, a menos que esté disponible la virtualización asistida por hardware. A medida que las nuevas versiones del sistema operativo están diseñadas para virtualizarse, el problema se resuelve y el nuevo hardware es compatible con la virtualización x86.
Ventajas:
- a) El servidor Xen se desarrolla sobre un hipervisor Xen de código abierto y utiliza una combinación de virtualización y paravirtualización basadas en hardware. Esta estrecha colaboración entre el sistema operativo y la plataforma virtualizada permite que el sistema desarrolle un hipervisor más ligero y flexible que ofrece sus funcionalidades de manera optimizada.
- b) Xen admite el equilibrio de grandes cargas de trabajo de manera eficiente que captura la CPU, la memoria, la entrada y salida del disco y la entrada y salida de datos de la red. Ofrece dos modos para manejar esta carga de trabajo: mejora del rendimiento y para manejar la densidad de datos.
- c) También viene equipado con una función de almacenamiento especial que llamamos enlace de almacenamiento de Citrix. Lo que permite que un administrador del sistema utilice las características de los arreglos de las compañías Giant: Hp, Netapp, Dell Equal logic, etc.
- d) También admite múltiples procesadores, migración en vivo de una máquina a otra, servidor físico a máquina virtual o servidor virtual a herramientas de conversión de máquina virtual, administración centralizada de servidores múltiples, monitoreo de rendimiento en tiempo real en Windows y Linux.
Contras:
- a) Xen es más fiable en Linux que en Windows.
- b) Xen se basa en componentes de terceros para administrar recursos como controladores, almacenamiento, respaldo, recuperación y tolerancia a fallas.
- c) La implementación de Xen podría ser una carga para su sistema kernel de Linux a medida que pasa el tiempo.
- d) A veces, Xen puede causar un aumento en la carga de sus recursos debido a la alta tasa de entrada y salida y puede provocar la inanición de otras máquinas virtuales.
Publicación traducida automáticamente
Artículo escrito por Madhurkant Sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA