domingo, 4 de enero de 2009

Sobre KVM - Virtualización en Servidores

Leyendo la blogósfera, me detuve en esta crónica de una migración de VMWare Server a KVM, explicando las razones de porqué elegir KVM y no el resto. :-)

Las enumero, tratando de traducirlas lo mejor posible:

  • El host corriendo KVM es un Linux estándar sin modificar. Para ambos (Xen y VMWare ESX) se necesita correr un Sistema Operativo modificado especialmente (que lo hace relativamente difícil de mantener al día con actualizaciones de seguridad).
  • Siendo incluído en Linux, usted obtiene soporte de KVM en el mismo momento que usted compra soporte estándar de Ubuntu Server. Como de todas maneras teníamos planeado adquirir soporte Ubuntu, tuvimos soporte para nuestra plataforma de virtualización sin costo adicional.
  • Performance: La velocidad de KVM es muy buena, ya que está basada en extensiones de hardware. (N. del T.: Ojo, tengo entendido que tanto Xen como VMWare también soportan extensiones de hardware en caso de estar disponible).
  • VMBuilder: Ubuntu desarrolló una herramienta (ubuntu-vm-builder, ahora llamada vmbuilder) que puede construir un appliance virtual en aproximadamente un minuto. Esta es una mejora enorme en comparación a la forma que solíamos crear VMs (VMbuilder también puede ahora crear imágenes para Xen y VMWare). (N. del T.: En mi experiencia, sirve únicamente si vamos a crear VMs con SO Ubuntu).
  • KISS - Keep It Simple, Stupid (Mantenlo Simple, Estúpido!): KVM utiliza todo lo que Linux provee de antemano. Cada VM es un simple proceso, usa su planificador de procesos (scheduler), uno puede reasignar la prioridad (renice) del proceso, asignarlo a una CPU específica... esto resulta en una base de código fuente mucho más pequeña que Xen por ejemplo, de manera que asumo que será más fácil y barato mantenerlo a largo plazo, haciendo que el proyecto más confiable.
  • Y lo más importante: Las companías involucradas. Aún cuando a KVM le faltan algunas características, los posts en la lista de desarrolladores muestran parches de código desde empresas como RedHat (que compró KVM el año pasado), AMD, Intel, IBM, HP, Novell, Bull... ¿A quién va a creerle, a un proyecto manejado por una única compañía (Citrix, VMWare), o a un proyecto soportado por tantos actores diferentes?
Para mí le falta otra cosa importante: Tiene un desarrollo totalmente abierto y es software de cóodigo abierto. :-)

En donde laburo estuvimos metiendo KVM en un servidor y si bien las herramientas de configuración/administración tienen sus quirks (aunque funcionan relativamente bien), la parte de KVM en sí anda perfectamente y con una excelente performance y confiabilidad. ¡Ah! y Canonical ya había anunciado que iba a soportar KVM como plataforma principal de virtualización también, así que... IMHO, KVM tiene todas las de ganar de acá en adelante.

Espero postear próximamente un poco las experiencias que tuve armando VMs con este software, mientras tanto dejo este enlace que resume la mayoría de las cuestiones con KVM en Ubuntu.

Saludos
Marcelo

5 comentarios:

gorlok dijo...

Buen apunte. Muy interesante.

Anónimo dijo...

lo q voy a decir es una tonteria, pero KISS significa keep it simple, stupid.

Marcelo dijo...

Tenés razón. Corregido.

Saludos

Anónimo dijo...

una pregunta, KVM solo puede usarse con placas que soportan virtualizacion de hardaware, es un requisito excluyente?

Marcelo dijo...

@Anonimo: KVM soporta microprocesadores que tienen virtualización por hardware, y sí, este es un requisito excluyente.

Saludos
PD: Mirá que mudé el blog... este post está acá, y la dirección del blog en sí ahora es http://blog.marcelofernandez.info.

Saludos