2 de marzo de 2007

KVM vs XEN: 1 - 0

Supongo que mucha gente habrá escuchado acerca de Xen, la solución de virtualización libre de referencia, portada incluso en sistemas como NetBSD o Plan9. Quizaś no sepan, o quizás si, que XEN aun no está incluido en el kernel, y que 2.6.20 incluye KVM y una interfaz de paravirtualización. Bien. Pues ZDNet ha escrito un interesante artículo titulado "KVM roba atención a XEN". Como es un artículo de periodismo, trata de la reciente aparición de KVM pero entrevistando a representantes de XEN, VMWare, para que expongan su opinión y contrasten posturas y resumir todo de manera objetiva. A mi como la objetividad me importa un pimiento, escribo un artículo diciendo porque KVM va a arrasar con los demás en el territorio Linux.

¿Y que pasa con XEN, dirán algunos ahora? Pues en primer lugar, varias personas del entorno Linux no lo encuentran precisamente la solución "perfecta". XEN es en si un "hypervisor", y tiene su propio gestor de procesos y de yo que se que más, y a la gente no le gusta. KVM, en cambio, utiliza toda la infraestructura de Linux, no es un hypervisor completo como XEN. XEN es en si un sistema operativo completo que soporta Linux, FreeBSD, Plan9, etc; y muchas de sus partes jamás serán incluidas en el kernel, y todo esto no es por oposición de la gente del kernel o porque yo me lo invente, sino porque la propia gente de XEN lo dice. Es decir, la propia gente de XEN no tiene intención de incluir todo su código del hypervisor en el kernel.

Todo esto junto con unas interesantes reflexiónes ha sido publicado por Ulrich Drepper -mantenedor de la libc desde hace años-. Despues de leer ese artículo queda bien claro por qué KVM va a ganar. XEN tiene su propia implementación de un sistema de seguridad, KVM utiliza selinux. XEN tiene su propio gestor de procesos, KVM utiliza el de Linux, que es muy eficiente. Soporte de NUMA y gestión de memoria...KVM tiene todo eso disponible.

KVM tiene alrededor de 6 meses de vida y eso es criticado en el artículo de CNET por la gente de XEN por la falta de una serie de características que a ellos les ha tomado años implementar, argumentando que a KVM le tomará años implementarlo. Pero como Ulrich explica, nada más lejos de la realidad. Mientras que es cierto que a KVM le faltan muchas cosas, el estilo de desarrollo y lo mencionado en el anterior párrafo -y el apoyo de gente como Red Hat, que tiene buenos técnicos que han recomendado que KVM es mejor a largo plazo-. Por ejemplo, en el artículo se crítica a KVM la carencia de paravirtualización, la falta de soporte de guests de 64 bit, de soporte SMP, de migración en vivo. Y cuando hicieron el artículo tal vez era cierto, pero ya no lo es, y KVM ya tiene implementaciónes de esas cosas en fase de pruebas. La versión que se ha incluido en 2.6.20 es una versión cutre, pero en 2.6.21 ya se incluye soporte de añadidura/eliminación de CPUs en caliente y de suspensión de hosts KVM. En otras palabras, el desarrollo va sorprendetemente rápido. Ingo Molnar ya ha implementado un controlador de red que utiliza paravirtualización que consigue velocidades sorprendentes, y su implementación de paravirtualización en general tambien es muy rápida.

De ahí viene mi predicción. KVM va a convertirse en la solución de virtualización de facto para Linux simplemente porque está más integrado con el kernel, porque es la que van a utilizar otros hackers del kernel para probar otros kernels. XEN será siempre un addon, y su exceso de complejidad juega en su contra a la hora de tener que evolucionar para competir. Simplemente comparando lo poco que se ha tardado en implementar ciertas cosas para KVM, y lo que tardó el soporte equivalente en XEN. Y el hecho de que en cuanto KVM sea comparable en características a KVM, las distribuciones van a dejar de utilizar XEN porque KVM ya viene incluido por la cara en el kernel. Espero que este caótico y desestructurado artículo sirva para que quienes lo lean sepan de que lado sopla el viento y no les pille desprevenidos el futuro.

6 comentarios:

  1. Muy buen artículo. Por cierto en el último párrafo hay un error, donde pone "Y el hecho de que en cuanto KVM sea comparable en características a KVM..."

    ResponderEliminar
  2. Anónimo10:58 p. m.

    no defiendo ni kvm ni xen pero desde luego que la subjetividad dicta el futuro :P

    ResponderEliminar
  3. El futuro estubo con ustedes dos. A Diego y Ulrich...

    ResponderEliminar
  4. Anónimo6:53 a. m.

    gracias amigo, este articulo es del 2007, por que que creo que kvm ya debe estar mas menos bueno ... aprendere sobre kvm no de xen

    gracias

    ResponderEliminar
  5. Anónimo3:37 a. m.

    la neta yo estoy 1 semana intentando instalar Xen en centos 5.3 y esta perro... perro... mientras sigo con xen probare kvm igual y aviento a la basura xen :P

    ResponderEliminar