Virtualización en Linux: Comparando VMWare, VirtualBox y Xen

23 Junio 2010 por Gustavo Higa Miyashiro Deja una respuesta »

El artículo de hoy es resultado de las investigaciones realizadas por el área de Infraestructura de Tecnologías de Información de Antartec en los últimos meses. No constituye una comparación cuantitativa de rendimiento de soluciones de virtualización; sin embargo constituye una primera aproximación a las tecnologías de virtualización, muy en boga hoy en día.

Captura de VirtualBox ejecutando Windows XP en Ubuntu

Algunas notas iniciales sobre Virtualización

Hoy en día los equipos de cómputo y sus componentes son cada vez menos costosos, por lo cual resulta más fácil para una persona u organización considerar la adquisición de varias máquinas para cubrir variedad de requerimientos de sistemas informáticos, tales como:

  • Utilizar programas que corren sobre diferentes sistemas operativos o utilizan los mismos puertos de comunicación
  • Implantar aplicaciones que utilizan diferentes versiones de las mismas librerías, programas adicionales o versiones diferentes de sistema operativo
  • Brindar a un usuario permisos de administrador sobre el sistema operativo, pero sin posibilidad de modificar programas que no le corresponde
  • Reiniciar o modificar la configuración del sistema operativo sin afectar a los otros sistemas
  • O simplemente tener un orden específico en las instalaciones de sistemas que realizamos

Sin embargo, las situaciones descritas anteriormente pueden degenerar rápidamente en el desperdicio de recursos informáticos y económicos. Para minimizar este efecto no deseado surge el concepto de virtualización, con el cual se puede contar con varias computadoras ‘virtuales’ (cada una de ellas ejecutando diversos sistemas operativos) y todas ellas funcionando en un mismo equipo físico.

Caso de prueba de Virtualización: Requerimientos

Para el escenario propuesto se espera configurar un servidor dedicado que ejecute máquinas virtuales independientes entre sí, con propósitos de pruebas de software. Si bien no serán utilizadas para entornos críticos y de alta disponibilidad, es necesario contar con niveles mínimos de estabilidad y rendimiento debido a que serán de uso cotidiano en la infraestructura informática de la organización. Cada máquina contará con recursos, programas, librerías y sistemas operativos independientes.

Para este caso en particular la plataforma de virtualización debe cumplir algunos requerimientos obligatorios:

  • El servidor físico (host) debe tener instalado un sistema operativo Linux (distribuciones Red Hat/CentOS y/o Fedora)
  • Se requiere crear máquinas virtuales (guests) con los sistemas operativos Linux, Solaris/OpenSolaris, Windows XP, Windows Vista, Windows 2000-2003 Server
  • Se necesita acceso mínimo para la configuración del servidor (soporte de video, mouse y teclado)
  • También debe contar con conexión de red (tipo bridge de preferencia)

Entre los requerimientos opcionales se considera:

  • Soporte de interfaz de usuario fluido (para uso como Desktop)
  • Soporte de acceso a recursos del sistema de manera directa (raw)
  • Integración de la interfaz de usuario (portapapeles, cambio de resolución)
  • Capacidad de modificar recursos sin necesidad de reiniciar la máquina virtual (‘en caliente’)

Software de virtualización empleado

Dentro del campo la virtualización existe diversidad de alternativas tecnológicas. Para este caso en particular las soluciones probadas fueron:

  • VMWare Server 2.0.2
  • Sun VirtualBox 3.1.6
  • Red Hat Xen 3 (paquete xen-3.0.3-94.el5_4.3)

Observaciones detectadas por software

VMWare
Sitio web: http://www.vmware.com/

  • Si bien VMware es la solución más conocida y con mayor presencia comercial, VMWare Server ejecutado sobre CentOS 5 no resultó tan estable como se esperaba. En una instalación realizada con tres máquinas virtuales con Linux y una con Windows, la plataforma sufría caídas recurrentes (en el peor de los casos hasta una vez al día), y donde ninguna máquina virtual instalada era accesible.
  • Una particularidad de VMWare Server es que la interfaz de configuración y consola es accesible vía una interfaz Web. La consola es una extensión disponible para Firefox 3.5. En la versión probada la consola no soportaba Firefox 3.6.x.
  • Los drivers adicionales (vmware-tools) tanto para Windows como para Linux mejoran notablemente la integración de la consola y en menor medida la performance de los discos.
  • El controlador o driver escogido para los discos virtuales (IDE, SATA, SCSI, etc.) impacta de manera notable en el desempeño de la máquina virtual.
  • En el caso de instalar VMWare sobre una máquina con sistema operativo Fedora es necesario parchar el instalador de vmware-server para ponerlo en funcionamiento (esto debido a que la distribución cuenta con un kernel Linux más reciente).

VirtualBox
Sitio web: http://www.virtualbox.org/

  • VirtualBox ofrece en su sitio web de descargas una gran cantidad de binarios, optimizados para diferentes sistemas operatvos.
  • Luego de instalar vbox-additions, la integración entre el host (el sistema operativo del equipo físico) y el guest (el sistema operativo de la máquina virtual) es muy buena. Ofrece facilidades como portapapales compartido, carpetas compartidas, modo fluido, y redimensionamiento automático de la resolución/tamaño de ventana.
  • Una desventaja detectada es que no es posible modificar las propiedades de la máquina virtual mientras está en ejecución (memoria, tarjetas de red, discos, etc.)
  • Su rendimiento es bajo en máquinas de pocos recursos (P4 HT 3.2 Ghz, 2G RAM)
  • La administración de las máquinas virtuales se realiza mediante un programa cliente instalado en el host.

XEN
Sitio web: http://www.xen.org/

  • La instalación es nativa  (con yum, el asistente de instalación de paquetes en CentOS)
  • Soporta modos de full y para virtualization
  • Requiere que el hardware soporte virtualization technology (en caso de utilizar full virtualization)
  • La interfaz gráfica y la integración de ingreso y salida de datos es bastante precaria. Utiliza una variación de VNC para el control de consola
  • Para máquinas virtuales Linux requiere que éstas utilicen un núcleo especializado, kernel-xen. Este kernel se puede instalar de manera nativa en distribuciones Red Hat (RHEL, CentOS y Fedora)
  • El rendimiento con para-virtualization es bastante bueno en términos de uso de memoria, disco y CPU
  • El uso de discos raw (acceso directo a particiones o discos) es nativo. Esto elimina una capa adicional de acceso , utilizada comúnmente para gestionar archivos como discos virtuales.
  • Una característica particular de Xen es que, al utilizar para-virtualization, el consumo de memoria RAM disminuye en el sistema operativo host al ser asignada a una máquina virtual.
  • Una instalación de una máquina virtual de CentOS 5.4 con 1 procesador y 128 MB RAM asignados corre sin problemas con servicios básicos
  • La configuración se realiza mediante un programa cliente instalado en el host, pero puede conectarse a la máquina virtual desde un cliente remoto
  • En Xen es posible modificar el tamaño de memoria RAM asignada, conectar tarjetas de red y agregar discos en caliente.

Resultados obtenidos

Característica \ Software VMWare VirtualBox Xen
Conocimiento requerido para administración Medio Bajo Alto
Integración video, I/O Medio Alto Bajo
Capacidad de para-virtualización No No Si
Driver para los guest Si vmware-tools Si vbox-additions No
Requerimientos del guest Ninguno Ninguno Kernel-xen en para-virtualización
Discos Raw Configuración adicional Configuración adicional Nativo
Soporte Network Bridge Si Si Si
Sistemas Operativos guest probados Windows XP, 2000, 2000 Server, 2003 server
Linux Fedora, Red Hat
Windows XP, 2003 Server,
OpenSolarisLinux Fedora, Red Hat
Windows XP
Fedora, Red Hat
Requiere configuración al hacer upgrade de Kernel Si Si No

Conclusiones

Las diferentes soluciones presentadas pueden ser utilizadas de manera óptima en diferentes entornos. Para el escenario específico evaluado en este artículo (máquinas virtuales para servidores de pruebas de software) la opción elegida es la plataforma Xen por los siguientes motivos:

  • Mejor rendimiento y mejor soporte para servidores y host Linux.
  • Escalabilidad y estabilidad.
  • Permite tener máquinas virtuales con pocos recursos asignados
  • Si bien la interfaz gráfica y la consola son bastante limitadas, esto no constituye una limitante, ya que la mayor parte de la interacción con el servidor puede realizarse mediante conexión remota vía SSH.

En otras circunstancias es posible que otra solución sea la más recomendada, por ejemplo:

  • Host Fedora – Guest Windows XP – Desktop: Para este caso se recomendaría utilizar VirtualBox, ya que presenta la mejor integración entre los escritorios. Esto mejora la usabilidad de las máquinas virtuales de manera considerable.
  • Solución integral para servidores de producción virtualizados: Para este caso VMWare ofrece una mayor cantidad de servicios de valor agregado como monitoreo, soporte en línea, consultoría y soporte local.

No related posts.

11 comentarios

  1. Dennis Cohn dice:

    Hola,

    Hay algunos puntos que me parecen deberían de aclararse con respecto al artículo.

    El VMware server es una herramienta de virtualización que se halla en declive, VMware no ha estado haciendo actualizaciones del mismo. Actualmente, VMWare está buscando darle mayor empuje a ESXi.

    Otro punto que me llamó la atención es que se ha comparado herramientas de virtualización a nivel de servidores con herramientas de virtualización a nivel de Desktops (es el caso del VirtualBox). Están pensados para usos y niveles de carga diferentes.

    Otra consulta, por qué se comparó el Xen Server en lugar del Citrix Xen Server? Redhat anunció en su último Roadshow que estaban en planes de dejar de dar soporte al Xen Server en su sistema Linux. En lugar de ello estaban apostando por KVM.

    Saludos,

    Dennis

  2. Hacataka dice:

    Saludos esta muy bueno la comparacion, les comento que yo utilizo Fedora en su ultima version la 13, he creado 5 servidores virtuales en KVM con QEMU, los tiempo en respuesta son muy buenos he probado conectando maquinas a mi Windows Server 2003 (Virtual) y todo va de padres, he visto que Redhat en su ultima distribucion esta difundiendo KVM con QEMU…. pruebenlo pero con Fedora 13……

  3. Wimitix dice:

    En tres letras: KVM.

    En Ubuntu Server (desde 8.04) con Virt_manager y a correr.

  4. chronos00 dice:

    Me soprendio mucho que en esta comparacion no apareciera KVM (o qemu) o OpenVZ que se ve muy prometedor para virtualizacion de Linux.

    Para utilizar las 2 anteriores en una sola solucion, encontre Proxmox (www.proxmox.com) cuyos screenshots me han impresionado.

    Me gustaria ver un review de estas soluciones!

  5. Oscar B. dice:

    Excelente, esto era lo que andaba buscando desde hace rato. Gracias.

  6. Hola,

    Es muy acertado lo que dice Denni, una buena comparación a nivel de desempeño sería haber comparado Citrix Xen Server, VMware ESX/ESXi, junto con KVM quienes estan orientado a soluciones empresariales.

    En el caso de la gama de escritorio VMware Workstation/Fusion(si fuese en OSX)/Server(yo ya ni lo haría) junto con Xen Server.

    Ahora bien, si tu idea es comparar soluciones de virtualización gratis para empresas iría por Citrix Xen Server; VMware ESXi/vSphere Cliente/KVM.

    Les dejo dos articulos.

    Comparación de tecnologías de virtualización.
    http://redes-privadas-virtuales.blogspot.com/search/label/Virtualización

    Desempeño de KVM
    http://www.phoronix.com/scan.php?page=article&item=linux_2631_kvm&num=1

    Saludos y gracias por aportar!.
    Gonzalo

  7. Hola,
    Me parece que deberias eliminar “capacidad de para-virtualizacion” de la comparacion. “Para-virtualizacion” no es una “capacidad”, es la manera en que se logra la virtualizacion. Lo que hacen es modificar el kernel del sistema operativo “guest” para eliminar el uso de ciertas instrucciones problematicas. Ello hace la solucion inaplicable para virtualizar un sistema operativo “out-of-the-box” (ej. Windows) que utilice esas instrucciones.
    VMWare tiene un whitepaper donde explica las diferencias entre “full” y “para” virtualizacion y virtualizacion asistida por hardware: http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf

Deja un comentario