Máquinas virtuales en Ubuntu/Linux

En un mundo ideal, Adobe produciría versiones de Photoshop para Linux o GIMP no sólo sería “comparable” con éste, sino igual o mejor; lo mismo con Microsoft Office y OpenOffice… pero la realidad simplemente no es así —valga decir que tanto GIMP como OpenOffice son excelentes programas, pero por diversos motivos (por ejemplo, simple costumbre, dificultad o falta de ganas para aprender a manejar un software distinto al que siempre hemos utilizado) necesitamos recurrir a software diseñado para Windows, y que con Wine toma más esfuerzo la instalación y puesta en marcha que su utilización para tus propios motivos.

Cualquiera sea la razón, la tecnología de virtualización nos ofrece una estupenda oportunidad para poder quedarnos solamente con un sistema operativo sin necesidad de reiniciar cada vez que necesitemos ocupar alguno de estos programas. La idea básica es la siguiente: crear una máquina virtual (algo así como un computador simulado dentro de tu computador “físico”) sobre la que es posible instalar y ejecutar otros sistemas operativos, y por consiguiente, cualquier programa que haya sido creado específicamente para ellos.

En Ubuntu/Linux, la oferta no es limitada, y en este artículo comentaré mi experiencia probando tres de los productos más populares para esta tarea: VMware Server, QEMU y VirtualBox.

VMware Server

VMware Éste es un producto propietario de virtualización creado por VMware y distribuido gratuitamente. Para utilizarlo, es necesario registrarse y aceptar una licencia —que, desgraciadamente, limita la posibilidad de publicar resultados de benchmarks a menos que sean aprobados por la empresa— e instalarlo vía apt-get o compilándolo desde las fuentes que se pueden descargar desde su sitio web.

Una vez instalado, la creación de la máquina virtual es bastante sencilla gracias a una interfaz gráfica bien cuidada y un proceso guiado por un asistente que permite seleccionar las alternativas más útiles y comunes para tener nuestra máquina virtual corriendo al cabo de unos cuantos clicks. Entre otras cosas, permite montar imágenes de CD o acceder a la unidad óptica desde la máquina virtual, establecer el acceso a internet y conectar dispositivos USB.

Además cuenta con un complemento llamado VMware Tools que una vez instalado en la máquina virtual permite compartir transparentemente el mouse entre la máquina física y la virtual, utilizar un mejor driver de pantalla y mejorar el rendimiento de la red… al parecer, también debería permitir compartir una carpeta del equipo físico con la máquina virtual a través de Samba para poder montarla como unidad de disco en red, pero en lo personal no me funcionó —no sé si por ineptitud, algún problema de configuración u otra dificultad.

A prueba

Dado que no es posible publicar resultados de pruebas de benchmark, me limitaré a comentar que el rendimiento de la máquina virtual es bastante bueno, cercano a la velocidad esperada de la ejecución nativa del sistema operativo (o sea, corriendo directamente sobre el hardware; en otras palabras, near native). Lo que pensé que podría ser una de sus mayores ventajas en comparación a los otros sistemas de virtualización, extrañamente, no lo fue tanto: la posibilidad de aprovechar los dos núcleos de un procesador Intel Core Duo en realidad no marcaba una diferencia tan significativa en el rendimiento de la máquina virtual ni en la percepción que se pudiera tener del mismo —me estoy refiriendo, en primer lugar, a lo que los números dicen sobre el rendimiento de la VM, y por otra parte a la sensación subjetiva del mismo.

En general, VMware Server otorga lo que se podría esperar de un sistema de virtualización: es fácil de instalar y utilizar y su rendimiento es bastante aceptable. Aparte de mi dificultad para compartir una carpeta a través de Samba, sólo tuve otra gran dificultad con él: la utilización de dispositivos USB; más específicamente, al tratar de conectar un disco duro externo (conectado por USB) a la máquina virtual, todo parece indicar que se desmontó de manera no segura de la máquina física, causando que fuera imposible volver a montarlo en Linux pues me indicaba que el sistema de archivos estaba corrupto, lo que me ha traído un gran dolor de cabeza al tratar de acceder nuevamente al disco; y sin una carpeta compartida ni el disco externo para servir como “puente” entre Linux y la VM, éstas quedaban prácticamente aisladas la una de la otra, sin posibilidad de compartir archivos entre ellas. Desconozco si esto habrá sido por algún error mío o del software, pero sinceramente no se lo deseo a nadie —este problema, quiero decir; en cuanto a VMware Server, aun creo que es una buena alternativa, aunque en lo personal no es mi preferida.

Cabe mencionar que VMware también ofrece gratuitamente VMware Player, un programa para ejecutar (pero no crear) máquinas virtuales.

VMware/Server – Community Ubuntu Documentation

QEMU

QEMU es probablemente la opción más “clásica” entre los usuarios de Linux. Desarrollado por Fabrice Bellard (también ligado al desarrollo de ffmpeg), es software libre licenciado bajo LGPL (la mayoría del programa) y GPL (la emulación en modo de usuario).

A diferencia del anterior (y de VirtualBox) su modo de operación es principalmente vía línea de comandos, lo que quizás podría ahuyentar a más de alguno… bueno, no debería, porque gracias a la documentación creada por la comunidad de Ubuntu (y seguramente disponible también para otras tantas distribuciones) en base a concisas y precisas instrucciones, es posible tenerlo corriendo en poco tiempo sin ningún problema.

Y para quienes la ventana de gnome-terminal definitivamente les da alergia, existe también una GUI (la pueden encontrar con Synaptic en los repositorios de Ubuntu) pero que no se caracteriza precisamente por su simplicidad… a decir verdad, es algo enredada a menos que uno sepa exactamente lo que está haciendo; por otra parte, lo bueno es que da acceso a las opciones más importantes de QEMU, desde la creación del disco virtual hasta la selección de carpetas compartidas mediante Samba.

Valga decir que QEMU por sí solo es reconocidamente lento… pero lento, lento. No importa qué tan rápida sea tu máquina física, tu VM va a andar muy lenta en QEMU… lógicamente, a alguien se le ocurrió algo para tratar de solucionar este problema, y así nació KQEMU, un driver que hace las veces de acelerador, permitiendo una velocidad razonable de la máquina virtual. Al igual que QEMU, KQEMU se distribuye gratuitamente con licencia GPL.

Lamentablemente, KQEMU tiene una desventaja: para usar este acelerador es necesario que tanto el huésped (o host, o máquina física) como el invitado (o guest, o máquina virtual) utilicen procesadores x86 o compatibles (Intel, AMD).

A prueba

Y el veredicto es… me quedo con otro.

K/QEMU tiene prácticamente todo lo que me haría comprometerme con él —en resumen: funciona, es software libre (cada día me doy más cuenta de que esto en sí es una ventaja), tiene un desarrollo activo y pujante, y no solo busca igualar sino sobrepasar las prestaciones de soluciones comerciales.

Pero… es dolorosamente lento. Sin acelerador, lento. Con acelerador, casi-igual de lento. En verdad la diferencia fue tan mínima que varias veces tuve que chequear que estaba funcionando con el acelerador… y tristemente, sí estaba funcionando, pero todo funcionaba igual de lento.

Como éste no prohibía la publicación de resultados de benchmarks, me propuse comparar su rendimiento con y sin acelerador… y debo decir que todo fue tan insoportablemente lento que preferí detener las pruebas, o hubiese estado esperando mucho más rato del que quería.

A su favor debo decir dos cosas: en primer lugar, reiterar que su desarrollo se ve bastante activo, por lo que no me extrañaría encontrar grandes mejoras en poco tiempo, incluyendo soporte para núcleos múltiples. En segundo lugar, en las comparaciones que encontré QEMU era señalado sin variaciones como una tortuga, pero con KQEMU los resultados eran bastante distintos, near native, lo que me hace pensar que es posible que alguna particularidad propia de mi sistema haya influído para no obtener la tremenda mejora de rendimiento que éste supone.

VirtualBox

VirtualBox Una solución de virtualización desarrollada por innotek GmbH, que viene en dos sabores: una versión GPL totalmente funcional, pero limitada con respecto a la otra versión, comercial y propietaria (o sea, que no es ni código abierto ni software libre, aunque sí gratis) que incorpora soporte para USB, directorios compartidos con Samba y otros chiches más (que honestamente no alcanzo a comprender muy bien de qué se tratan).

En su página de descargas es posible encontrar paquetes para Ubuntu, Debian (también en repositorios), Fedora y otras distribuciones Linux, un instalador para Windows y uno para MacOSX que en este momento está en su segunda beta… no el instalador, sino el software, quiero decir.

En estas condiciones, su instalación es bastante sencilla, y su puesta en funcionamiento también. Es algo similar a VMware en el sentido que utiliza una interfaz gráfica y un asistente para la creación de la VM, y en que también cuenta con un paquete de “mejoras” que se instala en el guest. Con éste (y en la versión comercial) es posible tener integración transparente del mouse y teclado entre la máquina física y la virtual, además de auto-ajustar la resolución del sistema guest al tamaño de la ventana —a propósito: la placa de video emulada funciona de manera predeterminada con 8 MB de memoria, pero se puede aumentar mediante la GUI… aunque en realidad no le veo mucho propósito.

VirtualBox intenta ejecutar el código del invitado directamente en el procesador tanto como sea posible; cuando esto no es posible recurre a un dynamic recompiler basado en QEMU pero con algunas mejoras que le permiten obtener un desempeño bastante (mucho) mejor.

A prueba

Lo digo altiro: fue el que más me gustó. Desde la máquina virtual, la instalación del sistema operativo, poder ajustar las opciones con facilidad… ¡y el rendimiento! ¡Oh, el rendimiento!

Así de bueno.

En verdad, según la mayoría de las opiniones que he leído al respecto, su velocidad es “comparable” con los productos de VMware, pero debo decir que la experiencia subjetiva de operar sobre el sistema invitado es mucho mejor… las razones no me las pregunten, pero se siente defintivamente más “suave”. Probablemente, el ajuste automático de la resolución de pantalla ayuda bastante

Éste fue de hecho el primero de estos programas que probé, y el único en el que todo funcionó perfectamente a la primera, y especialmente (lo que más me interesaba) al probar Photoshop 7 y MS Office 2003.

Sin poder publicar una comparativa entre éste y VMware, sólo puedo comentar que en números andan muy parejos, a veces uno y otras veces el otro a la cabeza… y esto a pesar de que en VMware tenía soporte para los dos núcleos del procesador.

En definitiva, si tendría que recomendar VMware, K/QEMU o VirtualBox, me quedaría totalmente con éste.

VirtualBox – Community Ubuntu Documentation

Otras alternativas

Por razones de fuerza mayor, quedó fuera de este comentario una de las alternativas que más me interesaba probar: KVM. Esas “razones” en verdad son una sola: mi procesador no soporta la tecnología de virtualización necesaria para KVM, por lo que quedé con ganas; de toda la serie de procesadores Intel Core Duo uno de los pocos que no tiene soporte para VT es el modelo T2250, hasta donde recuerdo todos los restantes Intel Core Duo, Intel Core 2 Duo y las últimas CPU de AMD lo tienen.

… De todos modos ahí está, y como siempre, pueden contar con la comunidad de Ubuntu para hallar algo de documentación al respecto: The Kernel Virtual Machine – Community Ubuntu Documentation

… Y para los que todavía quedaron con ganas de explorar más, siempre pueden recurrir a Wikipedia (aunque sea en inglés): Comparison of virtual machines – Wikipedia, the free encyclopedia.

  • Pingback: University Update - Open Source - Máquinas virtuales en Ubuntu/Linux()

  • Pingback: University Update - Linux - Máquinas virtuales en Ubuntu/Linux()

  • Buen articulo, hace poco empeze con ubuntu y formatea mi notebook, pero igual (por trabajo) necesito tener software de windows, pero aun no me decidía por que software elegir para crear la maquina virtual, probare con virtualbox, a parte me lo han recomendado bastante, pero no me he atrevido.

    Saludos

  • Curiosamente hace 2 días yo hice exactamente lo mismo, y VirtualBox me sorprendió muy gratamente, además que el consumo de ram es genial. Con amarok y firefox abierto (este si que come…) y sumándole el virtualbox con el windows xp corriendo (que tiene 512MB de ram asignado) no pasa de los 800MB de ram ocupados. Y ya para presumir, estoy escribiendo esto desde IE7 corriendo dentro de la VM y la carga de la cpu no pasa de 0.45 :P
    Creo que la particion de windows tiene las horas contadas ^.^

  • No se porque razón, pero en mi caso Virtual Box funcionó pésimo. Creo que los 512 de RAM con que configuré mi máquina virtual los obtenía directamente de la RAM del Host.

    Y bueno, por ahora me quedo con VMWare (server y player).

    Gracias por tu comentario en mi blog!!

  • Giovanni

    tambien he probado vmware y virtualbox.
    Realmente concuerdo con el articulo, virtualbox a mi me corre mucho mas fluido (no mas rapido si no que mas fluido) en velocidad vmware y virtualbox en mi pc andan a la par.
    Y al parecer si saka directamente la ram, antes le tenia dado 300 de ram y era bastante grato, ultimamente le aumente la ram a mi pc asi ke con eso tambien me di el lujo de aumentarselo a la VM, con eso todo anda de maravillas, nada se siente lento ;) realmente todo anda muy bien en virtualbox :P .

    saludos, muy bueno tu articulo.

  • x

    probe vmware en una compaq presario m2000 y nada, era muy lenta el raton se movia como loco.asi que probe virtual vox y se hizo la luz la rapides el confort de trabajar sin inconvenientes fue enorme me quedo con vbox la recomiendo la uso en ubuntu 7.10

  • delaqueva

    Oye carnal.. he estado busque y busque solución a mi asunto y no lo he encontrado…
    Resulta que ya tengo particionado mi disco y tengo Windows y Ubuntu (qué lindo es ubuntu). Pero necesito, por cuestiones de chamba las dos. Así que reinicio y reinicio a cada rato… Me gustaría poder poner una máquina virtual pero no quiero formatear mi disco. ¿Es posible llamar a mi ya instalado windows desde linux? ¿Y viceversa? Pero sin reinstalar nada…?

    No espero que me digas cómo, sólo necesito un aliciente antes de darle en la madre a mi equipo, jejeje… y si se puede, una liga a un howto, jiji…

    Por cierto, qué chido escribes, mano; me reí mucho…

  • raul

    Hola tuve un problema que dice masomenos asi tengo ubuntu 8.04

    Virtualbox kernel driver not installed. The vboxdrv kernel module has either not loaded or /dev/vboxdrv was not created for some reason. Please install the virtualbox-ose–modules-generic..

    Como puedo arreglar eso?

  • Juan

    Muy bueno, sin entrar en detalles técnicos ni hacer un tutorial completo (que los hay muchos, por lo que sería repetitivo) pusiste en un fragmento corto y conciso tu experiencia con los principales soft de maquinas virtuales y dejaste los links necesarios para ampliar información. Gracias!

  • Pingback: Intentando montar un VPS — yukei.net()

  • Pablo

    Vale compadre por la info, muy buen dato el del VirtualBox, a mi me corre de maravilla, gran aporte tu análisis y las fuentes.
    Aparte de lo bien que corre, lo bueno es la interfaz de la configuracion de la maquina virtual, es muy buena y sencilla de operar.

    Vale la pena probarlo.

    por si las dudas tengo Ubuntu 8.04
    Saludos!

  • Joaco

    Yo voy a instalar virtual box en win

  • @Joaco: ¿para virtualizar Linux?
    Quizás también le podrías echar un vistazo a Virtual PC 2007; el software de Microsoft para virtualización… ni idea cómo será

  • Mmm… hace un rato que no leía los comentarios a esta entrada, no me había dado cuenta de que habían tantas cosas sin contestar… quizás ya pasó la vieja, pero de todos modos…

    @delaqueva: hasta donde yo sé, no hay manera de que tu máquina virtual sea la misma que tienes instalado en tu otra partición… dependiendo de qué programas necesites, quizás Wine (el “no-emulador” de Windows) pueda cubrir tus necesidades. También existe CrossOver Linux, que es un fork comercial de Wine (me parece) y tiene una compatibilidad mayor… no es tan caro, alrededor de US$40

    @raul: este mensaje aparece cuando los módulos de VB no están compilados en el kernel; esto pasa, por ejemplo, cuando actualizas el kernel. Para arreglarlo, la forma más fácil (aunque no la más inteligente) es simplemente reinstalar el paquete; también hay una orden para la línea de comandos que recompila el kernel con los módulos necesarios. Para evitar hacer esto cada vez que actualizas el kernel, puedes instalar dkms, que está en los repositorios de Ubuntu… ojo que estás ocupando la versión Open Source de VB, que no tiene las Guest Additions.

  • lucas

    me abre todo bn pero a la hora de iniciar la maquina virtual me tira error en el boot medio…. soy nuevo en todo esto por favor si alguien me puede ayudar lo agradeceria.

  • muy buen aporte man, a mas de uno nos ha servido!

    mucha suerte!

    saludos!

  • Pablo Delgado

    Ahora amigo, muy bueno tu tema, solo que al comienzo, eso de el mundo ideal, si ese mundo existiera, vos pagarias por usar photoshop, corel, y todos los softwares pagos que existen para windows que quisieras tener en linux??, todos lloran porque no los tienen en linux, pero si los tuvieran, los pagarian? o irian por izquierda truchando, seria lo mismo.

  • Pablo Delgado

    Ahora amigo, muy bueno tu tema, solo que al comienzo, eso de el mundo ideal, si ese mundo existiera, vos pagarias por usar photoshop, corel, y todos los softwares pagos que existen para windows que quisieras tener en linux??, todos lloran porque no los tienen en linux, pero si los tuvieran, los pagarian? o irian por izquierda truchando, seria lo mismo..

  • Jhon Castañeda

    Lo felicito, excelente aporte… Me aclaro muchas cosas…

  • Gabriel

    Excelente post. Por tí es por que me decido de usar VirtualBox.

    Algo que me gustó de VirtualBox es que se puede colocar los directorios de los discos duros y de la máquina virtual en una partición distinta en la que tenemos nuestro sistema anfitrión.
    Archivos -> preferencias, en la pestaña de general.
    Con esto, para mí, queda más ordenado.

    Les dejo unos paso a paso de VirtualBox
    http://lampharin.wordpress.com/2008/04/10/crear-una-maquina-virtual-con-virtualbox-156/
    http://lampharin.wordpress.com/2008/04/13/como-instalar-ubuntu-710-en-una-maquina-virtual-del-virtualbox/

  • QUE BUEN ARTICULO TE FELICITO ME AYUDO DE MUCHO
    ESPERO QUE AGA MAS RELACIONADO CON WINE Y ESO VALE
    VOY A PROBAR QEMU AVER QUE TAL PERO ME AN RECOMENDADO MUCHISIMO VITUALBOX AVER QUE TAL

  • comprence una vida nerds

  • Gracias Felipe,

    De mi etapa de Güindous conocía el VMWare, pero ya que estoy haciendo inmersión absoluta en GNU/Linux, me voy a animar con el Virtual Box, tu opinión me ha ayudado..

    Saludos

    P.D.: Y lo instalo porque tengo una impresora sin soporte, porque pienso abandonar lo poco que sé de Potochó o Paint Shop Pro para darme de cabezazos con el GIMP. Así de radical voy…jajaja

  • Oscar

    Es cierto lo que mencionas acerca de Virtualbox. En realidad funciona de manera perfecta. Tengo Ubuntu Lucid.Virtualbox crea de manera automática las carpetas compartidas (sin tantos líos de configurar samba como antes). Lo único que no me gusta es que no soporta usb (la versión gratuita), por eso estoy buscando alternativas. Gracias por el post.

    Ah y para robert: Prometemos comprarnos una vida si tú te compras un dipsionario jajaja

    • Hasta donde yo sé, las dos versiones de VirtualBox son gratuitas; una es completamente open source y la otra incluye ciertas tecnologías propietarias (entre ellas, la conectividad USB de modo más sencillo). Para prácticamente todos los fines, la que no es 100% open source siempre es gratuita, ya que su definición de “uso personal” es bastante amplia. Para instalarla, hay que agregar el repositorio correspondiente a través de Synaptic (no es la que viene incluida en los repositorios por defecto de Ubuntu, pero de todos modos tiene una excelente mantención y versiones para todas las versiones relevantes de Ubuntu)

  • @Oscar:

    Tengo el mismo problema que tú, busco algo con soporte USB, y veo que lo probado hasta ahora…

    Ya nos contarás, aquí tienes un interesado…

    Saludos

  • Evelyn

    Hola, soy nueva en esto, me baje el virtual box y quiero crear una máquina virtual de Ubuntu, lo voy a usar para programación y quisiera saber cuanto me recomiendan q considere en RAM y disco duro. Tengo windows vista y mi PC de 320 GB de disco duro y 3GB de RAM

  • @Evelyn: supongo que podrías asignar 1GB de RAM y unos 15 GB para el disco son más que suficientes. De todos modos, recuerda que variar la cantidad de RAM es bastante simple (la puedes aumentar o disminuir con un simple slider) y que si eliges un disco de expansión dinámica al crear la máquina (es la opción predeterminada), sólo estarás utilizando lo que efectivamente estás usando en la máquina virtual (eventualmente, también puedes aumentar el tamaño del disco virtual, aunque es un poco más complicado).

    Por cierto, ¿no has considerado instalar Ubuntu como segundo sistema? Lo puedes hacer con Wubi (es un instalador que funciona desde Windows, que es sencillo y te permite desinstalar fácilmente) o con el mismo instalador del Live-CD, que viene totalmente preparado para que puedas usar los dos sistemas en paralelo.

  • AdrianM

    Interesante artículo, sobre todo me gusta como hablas de las diferencias en desempeño de forma “subjetiva” y es que es así como siempre lo medimos, al tante. Gracias por el artículo

  • Pingback: AY MAG » Ubuntu es atreverse()

  • JulioCesar

    Hola soy nuevo empleando ubuntu, quiero virtual box para instalar windows 7 o windows 8, pero no me da la opción de 64 bits, solo 32 bits. Puedo solucionarlo de alguna manera que no sea instalar windows a 32 bits en mi maquina virtual?

    • Me parece que eso va a estar limitado por el sistema operativo huésped; es decir, si estás usando un SO en 32 bits, probablemente no vas a poder instalar una máquina virtual de 64 bits. Por otra parte, va a depender también de la versión de Windows que tengas, ya que no todas tienen la opción de seleccionar la arquitectura.
      Slds!

    • JulioCesar

      Gracias por responder Felipe, si tengo instalado ubuntu 14.04 a 64 bits ya lo he confirmado empleando algunos comandos en el terminal. El virtual box no me da la apcion de windows a 64 bits. La verdad solo quiero el windows en una maquina virtual para habilitar el bluetooth de mi portatil Dell inspiron 1440, he leido que lo debo habilitar desde el windows para que funcione en ubuntu. Si puede colaborarme con este asunto se lo agradeceria enormemente!

    • noe4400

      cuando no aparece la opcion de 64 bits, es porque en la bios la virtualizacion no esta activada, es necesario comprobar si la bios tiene esta opcion y activarla y cuando pruebes de nuevo aparecera la opcion de 64 bits sin mover nada en el software de virtualizacion