Herramientas de virtualización: XEN y UML (5/7)

A lo largo de las diferentes entradas sobre herramientas de virtualización hemos explicado la emulación y la virtualización completa. Existe otro tipo de virtualización que es conocido como paravirtualización.
Así pues vamos a explicar en primer lugar la paravirtualización, y luego explicaremos dos herramientas que la utilizan, además de ofrecer virtualización completa: XEN y UML.

Paravirtualización
La paravirtualización es un sistema virtualizador mediante el cual, las instrucciones de la MV(Máquina Virtual) se ejecutan directamente en el procesador físico, puesto que emplea sistemas operativos modificados para ello.

Esquema de paravirtualización utilizado en XEN y UML

Esquema de paravirtualización utilizado en XEN y UML

La paravirtualización es una variante de la virtualización completa en la que el Hypervisor accede al sistema operativo directamente. Es decir, la máquina virtual envía las instrucciones al procesador directamente, sin necesidad de ser traducidas. Así pues, la gestión del código máquina se realiza de una forma considerablemente más eficiente, al ejecutarse directamente, razón por la que el proceso de comunicación entre el hardware nativo y el sistema operativo de la MV es más eficiente que en el caso de la virtualización completa.

XEN
Es la solución de fuente abierta creada en la Universidad de Cambridge que inicialmente nos ofrecía únicamente paravirtualización a nivel del sistema operativo. Actualmente Xen es una solución de virtualización que nos ofrece virtualización completa únicamente bajo procesadores Intel VT o AMD Pacifica.

Los sistemas operativos que utilicen Xen con paravirtualización deben ser sistemas operativos modificados, también denominados parcheados, puesto que el Hypervisor y el sistema operativo colaboran en la virtualización para de esta forma ofrecer la paravirtualización. A consecuencia de ello, Xen ha crecido en sistemas Linux por ser de código fuente abierto, y por tanto poder realizar modificaciones en el kernel. Actualmente, sistemas operativos sin modificar, como por ejemplo Windows, también pueden ser alojados en Xen, ya que Xen nos ofrece la tecnología de virtualización completa, aunque sólo en sistemas hardware que soporten la tecnología Vanderpool o Pacifica (tecnologías para procesadores, propietarias de Intel y AMD respectivamente, que procesan instrucciones virtuales directamente, sin necesidad de traducirlas) como se ha comentado anteriormente. Otros sistemas operativos como Minix, Plan 9, NetBSD, FreeBSD y OpenSolaris también pueden ser soportados por Xen.

Estructura de las capas de una máquina con XEN

Estructura de las capas de una máquina con XEN

Xen es una solución cada vez más extendida en entornos empresariales por la robustez y fiabilidad que ha demostrado. Tanto es así que actualmente hay empresas que se dedican a ofrecer herramientas de pago desarrolladas sobre Xen, como por ejemplo la empresa Citrix que adquirió XenSource (antigua empresa explotadora de Xen) ofreciendo productos como Citrix XenDesktop o Citrix XenServer.

UML
User-mode Linux (UML) permite que un Linux ejecute otros sistemas operativos Linux en el espacio de usuario. Estos sistemas operativos alojados se ejecutan como un proceso alojado en el sistema Linux anfitrión. De esta forma varios núcleos Linux se ejecutan en el contexto de un solo núcleo de Linux.

Esquema de virtualización UML

Esquema de virtualización UML

UML se encuentra implementado en el núcleo de Linux desde la versión del kernel 2.6, pero debe ser activado y recompilado antes de poder utilizarse. UML permite virtualizar dispositivos permitiendo a los sistemas operativos alojados compartir los dispositivos existentes: unidades CD-ROM, sistemas de ficheros, consolas, dispositivos NIC…El núcleo anfitrión se ejecutará sobre el hardware y los núcleos alojados se ejecutan sobre el espacio de usuario del núcleo anfitrión. Los núcleos pueden ser anidados de forma que un núcleo alojado actúe como anfitrión de otro.

Leave a Reply