23 jun 2012

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


Articulo fue tomado de http://blogs.antartec.com/opensource/ y el original y sus comentarios se encuentra en http://blogs.antartec.com/opensource/2010/06/virtualizacion-linux-vmware-virtualbox-y-xen/ por favor considere que las versiones de software han cambiado desde que se publicaron originalmente jun-2010

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
VMWareSitio 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).
VirtualBoxSitio 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.
XENSitio 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 \ SoftwareVMWareVirtualBoxXen
Conocimiento requerido para administraciónMedioBajoAlto
Integración video, I/OMedioAltoBajo
Capacidad de para-virtualizaciónNoNoSi
Driver para los guestSi vmware-toolsSi vbox-additionsNo
Requerimientos del guestNingunoNingunoKernel-xen en para-virtualización
Discos RawConfiguración adicionalConfiguración adicionalNativo
Soporte Network BridgeSiSiSi
Sistemas Operativos guest probadosWindows 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 KernelSiSiNo
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 hay comentarios: