Xen vs. KVM: comparativa de dos hipervisores de código abierto

En los tiempos de la computación en la nube, los hipervisores como KVM y Xen son absolutamente esenciales. ¿En qué se diferencian estas tecnologías de virtualización? En esta comparativa entre Xen y KVM abordamos las similitudes y particularidades de cada una.

Resumen del hipervisor Xen

El hipervisor Xen es un software de virtualización de código abierto que permite ejecutar al mismo tiempo múltiples sistemas operativos huésped en el mismo ordenador anfitrión. El hipervisor Xen se encarga de repartir los recursos de hardware del ordenador anfitrión.

¿Qué tipo de hipervisor es Xen?

Xen, un hipervisor de tipo 1 o bare-metal, se instala directamente en el sistema físico. Se comunica con el hardware mediante sus propios controladores. Los sistemas anfitrión y huésped se instalan sobre el hipervisor Xen. Xen asigna los sistemas operativos instalados a los dominios dom0 y domU para distinguir entre niveles de privilegio. El sistema operativo anfitrión pertenece a dom0 y, por tanto, disfruta del mayor nivel de privilegio. Todos los sistemas operativos huéspedes forman parte de domU, como sistemas sin privilegios, o unprivileged.

Sin embargo, el sistema operativo anfitrión y el hardware no se comunican directamente mediante los controladores del sistema operativo, sino a través de una API especial de Xen por medio del hipervisor. La integración profunda del hipervisor Xen garantiza un uso más eficiente del hardware, con menos sobrecarga y una menor superficie de ataque.

Xen: una mayor eficiencia gracias a la paravirtualización

Xen hace uso de la paravirtualización para aumentar la eficiencia. En este caso, el hipervisor no emula los componentes del hardware, por lo que el sistema huésped sabe que se está ejecutando en un entorno virtualizado. De esta manera, la comunicación entre los sistemas operativos huésped y el hipervisor Xen se produce con mayor rapidez, lo cual aumenta el rendimiento. No obstante, esta técnica tiene exigencias especiales para los sistemas operativos instalados en Xen, entre las que se encuentran que el núcleo del sistema operativo soporte la paravirtualización o que haya controladores especializados. En cualquier caso, hace ya años que los núcleos de los sistemas operativos típicos como Linux y BSD ya cumplen con estos requisitos.

Si no se puede o no se quiere paravirtualizar el sistema operativo, Xen también soporta una virtualización completa, en la que se emulan virtualmente los componentes del hardware. Esta opción ralentiza la virtualización, pero ofrece una mayor compatibilidad. Así, también pueden ejecutarse en Xen los sistemas operativos que no permiten la paravirtualización.

Consejo

Además de KVM, también hay muchas otras alternativas a Xen. Te presentamos algunas en este artículo.

Características del hipervisor KVM

KVM (del inglés Kernel-based Virtual Machine) es otro hipervisor de código abierto con el que se pueden ejecutar múltiples sistemas operativos guest en un único ordenador físico. Aunque en principio KVM y Xen tienen la misma finalidad, se basan en principios de funcionamiento diferentes y, por tanto, son idóneos para casos de uso distintos.

¿Qué tipo de hipervisor es KVM?

En el pasado KVM solía clasificarse como hipervisor de tipo 2, ya que solo podía comunicarse con el hardware mediante los controladores del sistema operativo host. Tampoco permitía la paravirtualización, y todos los componentes de hardware del sistema huésped tenían que ser emulados por KVM.

Desde entonces, KVM ha añadido la función de la paravirtualización, aunque funciona de manera distinta a Xen, ya que en KVM no se instala en el sistema operativo anfitrión. En su lugar, KVM se integra directamente en el núcleo de Linux y hace uso de los componentes de software del sistema Linux para administrar los sistemas virtualizados y sus procesos. En KVM, cada sistema operativo huésped cuenta con su propio hardware virtualizado, incluyendo interfaz de red, almacenamiento en disco duro, etc. Para acelerar esta virtualización total, KVM hace uso de la Hardware-Assisted Virtualization, la virtualización asistida por hardware, ya integrada en la mayoría de los procesadores modernos.

Sin embargo, con KVM no se virtualizan plenamente todos los componentes. Para acelerar los sistemas y aplicaciones, ofrece algunas interfaces paravirtualizadas que pueden comunicarse directamente con el hipervisor mediante la Virtio API. Por tanto, la paravirtualización en KVM se ofrece sobre todo para dispositivos de entrada y salida como las interfaces de red, de manera que este hipervisor proporciona más bien una paravirtualización parcial.

KVM vs. Xen: ¿qué hipervisor rinde mejor?

La principal diferencia entre estos dos hipervisores es el nivel de conjunto de software en el que operan. Como parte del núcleo Linux, KVM utiliza la virtualización asistida por hardware para virtualizar totalmente muchos componentes de hardware sin perjudicar de manera significativa el rendimiento. Las interfaces IO más importantes están paravirtualizadas; este probablemente es el factor más importante para la mayoría de las aplicaciones de servidor. Por su parte, Xen se instala de manera clásica como hipervisor de tipo 1 bajo el sistema operativo correspondiente. Es el mismo hipervisor el que se encarga de distribuir los recursos de hardware, lo que garantiza que Xen pueda, en teoría, ofrecer una comunicación más eficiente y de mayor rendimiento con el hardware. Sin embargo, Xen y KVM tienen un rendimiento similar gracias al controlador Virtio de KVM y a la virtualización asistida por hardware.

CPU Pinning

Evidentemente, los dos hipervisores no funcionan igual con todas las aplicaciones. KVM ofrece a sus usuarios más potencia que Xen sobre todo en lo respectivo al CPU Pinning. Gracias a la afinidad de procesador, KVM puede asignar un procesador físico (o núcleo de procesador) a un procesador virtualizado para que solo el sistema virtual pueda usar el procesador. Esto es especialmente ventajoso para las aplicaciones que consumen mucha CPU, y solo es posible con KVM.

Rendimiento de red

En lo relativo al rendimiento de red, Xen lleva ventaja. Aunque ambos hipervisores ofrecen interfaces de red paravirtualizadas, en KVM cada sistema virtualizado tiene su propio dispositivo de red. En Xen, todos los sistemas huésped comparten una única interfaz de red virtual, lo que garantiza una mejor eficiencia.

Conclusión

Para saber qué hipervisor es mejor, si Xen o KVM, deberás pensar en tus necesidades. KVM suele ser más fácil de utilizar ya que además de ser líder en el mercado, se integra en el núcleo de Linux y permite la virtualización completa. Xen dispone en principio de un rendimiento superior gracias a la paravirtualización completa. Por tanto, todo depende de las aplicaciones que quieras virtualizar y de tu nivel de experiencia.

¿Le ha resultado útil este artículo?
Page top