Màquines virtuals de sistema
Títol: Introducción a las máquinas virtuales
Autora: Montserrat Pérez Lobato
Origen: Documentos Monográficos del Observatorio Tecnologico del Ministerio de Educación, Política Social y Deporte
INTRODUCCIÓN A LAS MÁQUINAS VIRTUALES
¿Qué es una máquina virtual?
En muchas ocasiones surge la necesidad de probar un programa o realizar pruebas en otro sistema operativo distinto al instalado. Cual es la solución ¿formatear el equipo e instalar este sistema operativo?. ¿Crear una partición e instalarlo?. ¿Buscar otro equipo en el que sí esté instalado?. La solución es mucho mas sencilla que todo esto: lo único que hay que hacer es instalar una herramienta que emule el sistema operativo que se quiere probar, así no hay necesidad de formatear ni de cambiar de equipo. El sistema operativo emulado debería ser totalmente independiente del sistema operativo real, conviviendo ambos en total armonía y pudiendo pasar de uno a otro con facilidad.
Lo anterior se consigue mediante el uso de las máquinas virtuales. Una máquina virtual es un programa informático que crea un entorno virtual entre el sistema operativo y el hardware para que el usuario final pueda ejecutar aplicaciones en una máquina abstracta. Por decirlo de manera más sencilla, una máquina virtual es una aplicación que simula el funcionamiento de una máquina real sobre la que se pueden instalar sistemas operativos, aplicaciones, navegar de forma segura, imprimir desde alguna aplicación, usar los dispositivos USB, etc.
Se pueden encontrar varios tipos de máquinas virtuales:
- Máquinas virtuales software: este tipo de máquinas virtuales se sitúan por encima del sistema operativo y tratan de aislar a las aplicaciones del entorno sobre el que se ejecutan. Proporcionan una capa entre las aplicaciones y el sistema operativo que captura todas las llamadas al sistema y las traduce al sistema concreto de ejecución. La máquina virtual de Java o la máquina virtual del entorno .NET son dos claros ejemplos de máquinas virtuales software.
- Entornos virtuales: este tipo de máquinas se crean para ejecutar directamente aplicaciones que necesitan un entorno determinado de ejecución sobre otro entorno totalmente diferente.
- Maquinas virtuales hardware: este tipo de aplicaciones tratan de emular directamente el hardware. Las llamadas al hardware del sistema operativo instalado serán capturadas y convertidas en llamadas al sistema del hardware emulado. En general, la emulación del hardware recibe el nombre de virtualización. Al emularse directamente el hardware, el usuario tiene la impresión de que la máquina sobre la que está trabajando es totalmente independiente. Este tipo de máquinas virtuales serán el objeto del presente monográfico y a partir de ahora nos centraremos en ellas.
El uso de software de virtualización permite ejecutar varias máquinas virtuales con distintos sistemas operativos sobre el mismo hardware de manera simultánea. Además estas máquinas virtuales se pueden copiar y mover a otra máquina física de manera muy sencilla, lo que proporciona una manera rápida y cómoda de hacer backups o de reutilizar máquinas existentes. Las máquinas virtuales tienen discos duros virtuales que para la máquina anfitriona (es decir, para la máquina real) son simplemente ficheros de datos que se pueden copiar y manejar. La propia máquina virtual no es mas que un fichero de configuración.
Además existen en Internet muchas máquinas virtuales listas para ser ejecutadas y que permiten tener un entorno de desarrollo web en muy pocos minutos: Linux con Apache, PHP y mySQL instalado y configurado de manera directa, o bien una solución wiki lista para ser usada simplemente descargando una máquina virtual.
Herramientas de virtualización más conocidas
Existen diversas soluciones de virtualización disponibles actualmente, tanto gratuitas como de pago. Las más conocidas son las siguientes:
- Bochs: un emulador de procesadores x86 y AMD64 con licencia de software abierto. Bochs puede ejecutarse en distintos sistemas operativos, incluyendo Linux, Windows o incluso la XBox. Puede además simular varios sistemas operativos como DOS, Windows o Linux.
- Microsoft Virtual PC: suite de virtualización de Microsot para Windows y para MacOS. VirtualPC emula un PC estándar y todo el hardware asociado.
- Parallels Workstation: software de virtualización de la empresa Parallels Incorporation para procesadores Intel x86.
- QEMU: aplicación de software libre que implementa un emulador de procesador y que incluye un acelerador que permite incrementar la velocidad de las máquinas virtuales.
- Virtual Iron: otra aplicación de virtualización que ha sido de las primeras en aprovechar las capacidades específicas de virtualización de los nuevos procesadores Intel y AMD.
- VMWare: una completo conjunto de aplicaciones de virtualización, con herramientas de pago orientadas a la empresa y otras gratuitas más orientadas al uso personal. Hasta hace poco tiempo solo se ofrecía de manera gratuita la aplicación VMWare Player, que permitía ejecutar distintas máquinas virtuales ya creadas y que se podían descargar desde Internet. Desde fechas recientes se ofrece también de manera gratuita VMWare Server, que permite no sólo ejecutar máquinas ya creadas sino crear las máquinas desde el comienzo.
- Xen: Una herramienta muy usada en la comunidad Linux puesto que hasta hace poco tiempo sólo podía usar Linux/Unix como sistema anfitrión. Con la versión Xen 3.0 ya se puede instalar en Windows.
- VirtualBox: una herramienta para Windows y para Linux (la versión para MAC actualmente está en desarrollo en fase pre-alfa) liberada bajo licencia GPL y con un rendimiento similar al de otras aplicaciones como VirtualPC o VMWare.
QEMU, VMWare y Microsoft Virtual PC son las tres herramientas mas utilizadas. Por ello y por ser distribuidas de forma gratuita el monográfico se centrará en ellas. Además se ha incluido VirtualBox porque es de código abierto y permite estudiar su código en caso de estar interesado.
Utilidades y usos más frecuentes de las máquinas virtuales
¿Para qué se pueden usar las máquinas virtuales?. La capacidad de aprovechar al máximo el hardware disponible ofrece una gran cantidad de posibilidades a nivel empresarial y a nivel doméstico. A continuación se detallan algunos de los usos más frecuentes que se le puede dar al software de virtualización:
· Consolidación de servidores: convertir muchos servidores físicos en virtuales. De este modo se aprovecha el hardware disponible de la mejor manera posible.
· Recuperación ante desastres: las máquinas virtuales se pueden salvar muy fácilmente, y además su estado se puede almacenar, por lo que en caso de desastre se puede recuperar la información con rapidez.
· Pruebas de aplicaciones: en muchas ocasiones se necesita un entorno limpio para probar una aplicación. Usar una máquina virtual permite instalar un sistema operativo desde cero, probar la aplicación y luego eliminar la máquina.
· Ejecución de entornos completos sin instalación ni configuración: la posibilidad de descargar máquinas virtuales desde Internet permite ahorrar tiempo en instalaciones y configuraciones. Existen muchas máquinas virtuales con servidores LAMP (Linux, Apache, mySQL y PHP) completos listos para ser usados, máquinas con gestores de contenidos, wikis, etc., gratuitos y funcionales desde el primer momento.
· Aplicaciones portátiles: con el uso de las máquinas virtuales se pueden tener PCs completos listos para usar en dispositivos USB, lo que puede ser de mucha utilidad para tener un entorno privado y usarlo en cualquier PC.
Comparativa de herramientas de virtualización
A continuación se presenta una comparativa de tres de los productos de virtualización comentados: VirtualBox, VMWare Server y Virtual PC 2007.
Característica |
Explicación |
Producto destacado |
Facilidad de instalación. |
Los tres productos se instalan de manera muy sencilla mediante un asistente. VirtualBox y VirtualPC se instalan rápidamente. Sin embargo, VMWare server tarda bastante tiempo en instalarse y dependiendo de la máquina puede llegar a tardar más de media hora. |
VirtualBox, VirtualPC 2007 |
Sistemas operativos anfitriones soportados. |
VirtualBox: Windows, Linux VMWare server: Windows, Linux Virtual PC 2007: Windows, MacOS |
VMWare server |
Sistemas operativos invitados soportados. |
VirtualBox: DOS, Windows, Linux, OS/2, OpenBSD, FreeBSD, Netware, Solaris. VMWare server: DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances. Virtual PC 2007: DOS, Windows, OS/2 |
VMWare server |
Soporte para USB |
VirtualBox: Sí. VMWare server: Sí. Virtual PC 2007: No. |
VirtualBox, VMWare server |
Facilidad de creación de máquinas virtuales. |
VirtualBox: Fácil. VMWare server: Fácil. Virtual PC 2007: Fácil. |
VirtualPC 2007, VirtualBox, VMWare Server |
Existencia de máquinas virtuales disponibles en Internet. |
VMWare server dispone de las llamadas Virtual Appliances, que son máquinas virtuales preconfiguradas y listas para ser usadas. En Internet se pueden encontrar muchas y de muchos tipos. |
VMWare server |
Integración con el sistema operativo anfitrión: display, carpetas compartidas, drag&drop. |
Los tres sistemas disponen de herramientas que permiten mejorar la integración del sistema invitado con el anfitrión una vez instalado. En el caso de VMWare, se llaman VMWare Tools, y en el caso de Virtual PC, Virtual Machine additions. Tanto VMWare como VirtualPC permiten usar drag&drop y carpetas compartidas con el sistema anfitrión. |
VMWare Server, VirtualPC 2007 |
Capacidad de importar máquinas creadas con otras herramientas. |
VMWare server es capaz de importar máquinas creadas con VirtualPC. |
VMWare Server |
Rendimiento. |
VirtualBox: Muy bueno. VMWare server: Muy bueno. Virtual PC 2007: Muy bueno si se le instalan las Virtual Machine Additions.. |
VirtualBox, VMWare Server, VirtualPC 2007 |
En resumen, se podría afirmar que las tres aplicaciones son buenas soluciones de virtualización. Probablemente la balanza se inclina por VMWare server por la existencia de máquinas virtuales disponibles en Internet que agilizan el uso de las máquinas virtuales y por la cantidad de información que existe sobre ella en la red. Además Virtual PC 2007 es una herramienta que no podrá ser usada por los usuarios de Linux, mientras que las otras dos están disponibles en versiones para Windows y para Linux.