Red Hat deja Xen por KVM

Hasta hace una semana, Red Hat era partidaria de Xen. Red Hat fue la distribución que más fuerte apostó por Xen, junto con OpenSuse que la incorporó por el acuerdo que Novell firmó con XenSource. Pero es que Red Hat no solo apostó por Xen como sistema de virtualización, si no que además programó una interfaz gráfica sobre Xen, creando así un administrador de máquinas virtuales para Xen: Virt-Manager, el cual distribuía libremente. Este administrador es el que utilizamos la mayoría de usuarios que no deseamos pagar dinero por una solución de virtualización sobre Xen de pago, como por ejemplo las interfaces y aplicaciones creadas por la empresa Citrix (XenDesktop, XenServer, XenApp…).

Pero Red Hat ha anunciado recientemente un cambio de tercio: abandona Xen y adopta como solución de virtualización KVM. Linux KVM (Kernel Virtual Machine) está implementada en el propio núcleo Linux a partir de la versión 2.6.20. KVM convierte el núcleo Linux en un hipervisor utilizando un módulo del núcleo que permite a otros sistemas operativos alojados ejecutarse en este espacio de usuario del núcleo. El módulo KVM instalado en el núcleo expone el hardware virtualizado a través del dispositivo virtual /dev/kvm. Este modo de virtualización permite al sistema operativo alojado que se comunique con el módulo KVM utilizando un proceso que ejecuta un Qemu, modificado para obtener la emulación hardware.

Esquema de virtualización KVM

El módulo KVM aporta al núcleo un nuevo modo de ejecución: el modo guest( es el modo para ejecutar un sistema operativo virtualizado distinto del Linux base), mientras que el kernel vanilla(es el kernel estándar de Linux) aporta el modo kernel y el modo user. El nuevo módulo aportado por KVM es utilizado para ejecutar todo el código del sistema operativo virtualizado en el que no se utiliza E/S, y el modo normal de usuario proporciona la E/S para los sistemas operativos virtualizados.

Entiendo que KVM es una buena solución de virtualización puesto que fue la primera tecnología de virtualización que se implementó en el propio núcleo Linux. Cuando se ejecuta en hardware que soporta virtualización (Tecnologías VT y PACIFICA de Intel y AMD respectivamente) es posible hospedar a Linux (32 y 64 bits) y Windows (32 bits).

Veremos qué tal resulta la opción elegida por Red Hat para competir frente al resto de empresas que han adoptado Xen, VMWare… En cualquier caso, todo lo que sean nuevas apuestas, nuevas soluciones de virtualización, nuevos sistemas de gestión de virtualización… nos beneficia a todos. Quizá no tanto a los usuarios, que también, si no sobre todo a las empresas.

Virtualizar una empresa


Las predicciones de los expertos en virtualización parece que se están cumpliendo en lo que llevamos de año. El 2008 decían que iba a ser el año en el que se iba a desplegar toda la tecnología de virtualización, el año del lanzamiento en masa, y ya no solo en terrenos de usuario, si no en el entorno empresarial.

Esta expansión ha venido impulsada por los movimientos empresariales que se han producido entre empresas dedicadas a la virtualización. Por ejemplo, lo que antes era un sistema de virtualización creado en un entorno universitario y que se había expandido por su licencia GPL ahora se está extendiendo como la espuma porque ha sido comprado por una empresa: recientemente Citrix compró XEN. Por otra parte VMWare, el otro lider de virtualización, se ha aliado con HP para la producción de procesadores exclusivos que procesen instrucciones de VMWare. Y claro…Microsoft no se iba a quedar de brazos cruzados, con lo que ha firmado acuerdos y más acuerdos para incluir una buena solución de virtualización en su nuevo Windows Server 2008. Veremos a ver que va sucediendo en este devaneo que se está produciendo en el mercado en torno a la virtualización.

En mi opinión, las soluciones OpenSource se van a imponer por la gran expansión que se está produciendo en este campo. Desde luego es mucho más eficiente en virtualizar un servidor físico en el que alojemos varias máquinas virtuales Linux que realicen la función de servidores de correo, bases de datos, cortafuegos… que uno que tenga un sistema operativo Windows. La administración de un servidor virtualizado es muchísimo más eficiente, muchísimo más sencilla, muchísimo más económica puesto que en vez de tener varios servidores físicos con el consumo eléctrico que ello conlleva, tenemos un servidor único.

La decisión de virtualizar una empresa es complicada, hay que elaborar un estudio completo de si verdaderamente es lo que la empresa necesita, de si verdaderamente va a ser más eficiente. Aquí cito 6 consejos que he encontrado navegando, me parecen interesantes y muy a tener en cuenta:

1.- Hacer una cuantificación de los ahorros que se obtendrán del proyecto con métricas fáciles de cuantificar. No se puede determinar el éxito de un proyecto sin conocer lo que se va a ganar, pero no incurra en métricas complejas o altamente subjetivas, el cálculo de la tasa de retorno sobre la inversión debe ser sencillo y objetivo.

2.- El proyecto debe contemplar la virtualización de una cantidad substancial de servidores. El valor de esta tecnología está en el volumen. Desarrolle una lista de los servidores candidatos a virtualizar, y asegure que se contemplen recursos suficientes para lograrlo.

3.- Asegure que los dueños de las aplicaciones se sumen al proyecto, y que no se sientan como conejillos de indias. Obtenga gráficas de uso de recursos de los servidores a virtualizar y haga labor de venta para convencerlos de los beneficios de compartir recursos sub utilizados. Y de ser posible, obtenga apoyo de los niveles superiores.

4.- Desarrolle un plan de integración de procesos, con una estrategia de monitoreo de la implementación que muestre resultados durante todo el proceso. Elabore informes ejecutivos que muestren los beneficios en forma clara y sencilla.

5.- Reevalúe los requerimientos de hardware. La virtualización a veces sobre carga a los recursos que contienen a los servidores. Haga los ajustes necesarios antes de que se genere una crisis.

6.- Enliste los recursos que deberán cambiar para adaptarse a la nueva tecnología. La virtualización impacta en otras áreas como el almacenamiento, respaldo y energización.

La virtualización, una técnica en expansión


Mucho se está hablando en los últimos años sobre la virtualización, pero hay que recordar que no es una técnica nueva asociada a sistemas operativos (SO) actuales como openSuse 10.3, por ejemplo. La virtualización es una técnica que comenzó a desarrollarse hace un par de décadas y su uso se ha centrado en las empresas de electrónica para el desempeño de tareas como el desarrollo de drivers.

Pero es sobretodo en los últimos 5-6 años cuando la virtualización comienza a coger fuerza a nivel de usuario. El caso típico es el utilitario de Windows que quiere comenzar a andar en alguna distribución de Unix (Suse, Ubuntu, Red Hat, CentOS, Mandriva…) pero no quiere instalar directamente en su ordenador la distribución. Utilidades como VirtualPC(Microsoft) y VMWare eran las que proporcionaban al usuario de Windows la opción de poder instalar un Linux en una máquina virtual (MV). Pero estas herramientas estaban aun despegando y los problemas eran múltiples:

  • no montaba usb
  • ni tarjetas de sonido
  • las tarjetas gráficas eran muy difíciles de configurar
  • Una máquina en ejecución consumía muchos recursos
  • El intercambio entre una MV y el host era una odisea

Aun así, yo que era de los poco atrevidos, empleando VMWare probé con Fedora y Mandrake y me fui introduciendo en el mundo Unix.

Pero la virtualización ha ido ganando terreno a otras soluciones. Hoy en día la virtualización es un fenómeno que está en total desarrollo, que está sirviendo a muchas empresas para crear entornos de pruebas para otros sistemas operativos, que sirve para el desarrollo de software multiplataforma, y que desde luego ayuda al usuario a poder tener varios SO totalmente funcionales. Y una vez más los avances se están produciendo gracias a los SO libres en los cuales han prosperado múltiples herramientas:

Tabla resumen de los proyectos de virtualización.

Durante el último año he realizado un estudio más o menos exhaustivo dudé entre VirtualBox y Xen. Al final escogí Xen, y la verdad que no me arrepiento para nada, aunque me esté peleando con la virtualización y la paravirtualización. Os invito a que probéis y deis vuestra opinión. Otro día os cuento más sobre virtualización, Xen, paravirtualización, niveles de virtualización, utilidades…