General

Farewell, VirtualBox

Hace unas semanas dejé de usar definitivamente VirtualBox y pasé a utilizar KVM. Para aquellos que, como yo, empezaron a usar QEMU back in the days y se recuerdan todavía de kqemu probablemente les haya ocurrido que, cuando VirtualBox tomó vuelo, se convirtió en un estándar de facto para sus proyectos de virtualización.

¿Por qué? QEMU no era particularmente útil, y el performance era en realidad frustrante, y Xen no resolvía la situación, con una configuración sinceramente críptica. Sí, estable, enterprise-grade (3 años después y sin tocar el SLA todavía está funcionando un cluster de Zimbra Collaboration Suite, Open Source Edition para 25K cuentas con alta disponibilidad y conexión a NAS que instalé en la industria petrolera) pero se sentía como un acto de fe.

Así que muchos empezamos a utilizar VirtualBox y a consumir muchas de sus funcionalidades que lo hacían competitivo ante escenarios complejos de virtualización, sobre todo en aplicaciones de escritorio, tipo VMWare, o App-V/RDS de Microsoft. Entre estas funciones estaba el soporte para USB y VRDP. VBoxHeadless y mucho scripting salvaban la patria. Para mi, usar imágenes base (discos diferenciados) y snapshots era muy útil, y eventualmente las opciones de networking mejoraron mucho en VirtualBox. Una herramienta suficiente.

Sin embargo, el problema de ser un fanboy es que te pierdes como gira el mundo a tu alrededor. Hay muchos ejemplos. En este caso, libvirt se convirtió en realidad, y Red Hat (entre algunos otros mecenas) pusieron énfasis en GUIs y toolkits para virtualización, incluyendo específicamente a KVM como un motor de virtualización integrado al núcleo.

Manos a la obra. Instalé libvirt-bin, virt-manager y, por supuesto, qemu-kvm. Estoy en el keel 2.6.39-1-686-pae de Debian Unstable. Si vas a administrar con un usuario sin privilegios, éste debe estar en el grupo libvirt. Hay un servicio llamado libvirt-bin que debes activar y que en principio vela porque los módulos del keel estén cargados y, lo más importante, que el networking virtual esté configurado.

Quizás ésta sea una de las patas flojas de libvirt, el networking. En principio no hay tantas opciones como en VirtualBox para hacer networking arbitrario, pero si sabes manejar Netfilter (iptables) y puentes, puedes hacer lo que te dé la gana (es decir, no hay una opción explícita en virt-manager para configurar una interfaz como puente de una física, solo como un NAT o enrutando) Además, si usas dnsmasq, puede que tengas problemas de compatibilidad con los dnsmasq que utiliza libvirt para configurar la red.

Dicho esto, como tenía solo 8 máquinas virtuales en mi laptop, no investigué sobre “migradores automáticos” de la configuración de VirtualBox a KVM/libvirt. Solo migré los discos virtuales. Para esto usé kvm-img, migrando de VDI a QCOW2, como desventaja, para los discos diferenciados tuve que hacer un paso previo de “exportar” el disco con VBoxManage usando el ID del disco en VirtualBox, y luego convertirlo a QCOW2. De hecho, en este setup no tengo discos diferenciados, lo cual me incomoda pero no me he dedicado a revisar si hay alteativas.

Así mismo, donde necesité configurar dispositivos USB, lo hice por la interfaz de virt-manager. No tuve ningún problema para presentar un dispositivo del host a las máquinas virtuales. Y, para mi sorpresa (porque en qemu nunca hubo, y recuerdo el revuelo cuando Novell se la desarrolló al SuSe Studio) el acceso por VNC es una funcionalidad excepcionalmente útil, de hecho virt-manager usa esta función para presentar la pantalla en la interfaz gráfica. Excelente.

Finalmente, creo que libvirt fue una excelente opción porque me permite escalar. De hecho, en algunos de los servers que tengo en la red de la casa usé libvirt también. Solo hice ssh, e instalé los paquetes. Y solo con eso, y con tener replicados los discos (puede ser vía SAN/NAS) puedo migrar una máquina virtual de mi laptop al server y dejarla ejecutando allí de forma transparente. Awesome.

¿Performance? Muy bueno. En mis casos de uso, es casi imperceptible la diferencia con VirtualBox. Las ventajas para la administración, y sobre todo la falta de drama en las actualizaciones, valen la pena. ¡Dale libvirt!

Standard

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s