INTRODUCCIÓN
Al hilo de los recientes cambios en el mundillo de la virtualización, donde destaca sin duda la noticia sobre la disponibilidad de VMWare Server de modo gratuíto, vamos a hacer un pequeño resumen de soluciones de virtualización.
Una máquina virtual es aquella que permite un entorno de ejecución emulando el hardware de la máquina sobre la cual corre. Es una definición muy elemental, pero es válida. El enlace anterior de la Wikipedia es mucho más exhaustivo en su definición, por si queréis ampliarla. La virtualización permite obtener una capa de abstracción en la que el hardware físico y el sistema operativo estén desemparejados, lo cual proporciona numerosas ventajas.
Soluciones de virtualización hay muchas. Pero lo primero que habría que preguntarse es ¿para qué sirve una máquina virtual? ¿qué utilidad puede tener para mí? ¿qué ventajas tiene?
JUSTIFICACIÓN DE LA VIRTUALIZACIÓN
Habida cuenta de que las máquinas virtuales suelen encapsularse en ficheros, esto otorga una importante flexibilidad a los despliegues, ya que el salvado, copia o eliminación de los encapsulados virtuales es rápido, cómodo y sencillo. Luego de aquí se deducen dos importantes ventajas: flexibilidad y escaso o nulo tiempo de recuperación ante un incidente.
Por otro lado, las máquinas virtuales pueden contener sistemas de muy distinta índole: es absolutamente posible y factible tener en nuestro servidor de virtualización, coexistiendo, una solución Windows, otra Linux, un BSD y un Solaris, por ejemplo, todo ello en una única máquina física. De aquí emanan otras dos ventajas: bajo coste y aprovechamiento óptimo de los recursos.
La disociación entre lo físico y lo virtual permite obtener otras ventajas. La principal es la seguridad, ya que las máquinas virtuales sólo pueden comunicarse con otras máquinas virtuales y con el exterior a través de conexiones correctamente configuradas. Esto hace ideales a las máquinas virtuales como cajas de arena experimentales, en las que es posible contaminar un sistema y observar su comportamiento con fines de conocer la seguridad del mismo.
Podríamos citar más ventajas, pero esas son más que suficientes para defender la necesidad de virtualizar cuando requiramos alguno de esos objetivos citados. No necesitamos comprar 3 PCs para tener corriendo 3 sistemas operativos: basta con un sólo PC y 3 entornos virtuales para cubrir la mayoría de nuestros propósitos.
CINCO ELECCIONES POPULARES
Disclaimer: Los criterios descritos son únicamente motivo de mi experiencia personal. No tienen por qué representar, en ninguno de los casos, las condiciones de operación final para cada uno de los millones de casos posibles a la hora de virtualizar. Es obvio y evidente (y si no lo es, lo comento) que estas cinco elecciones no tienen por que ser tus favoritas o las que emplees, ni tienen por que ser necesariamente las más populares. Vamos allá :)
1. Vmware
Sin duda es la solución más popular y extendida. Goza de una alta reputación entre administradores del sistema, no sólo por su calidad, sino por un excelente servicio de soporte de la compañía.
- Ventajas: Solidez, estabilidad, seguridad y soporte del fabricante ejemplar. Admite drivers del entorno emulado.
- Desventajas: Dificultad de puesta en marcha para usuarios con escasas nociones, soporte en lengua española difícil de encontrar, el gestor de máquinas virtuales tiene un rendimiento mediocre en máquinas con hardware no muy puntero. Su código es propietario.
- Coste: Variable en función del producto. Existe una versión gratuíta
- Indicado para: Desarrollo, investigación técnica, entorno de pruebas, consolidación de servidores.
2. Virtuozzo
Si bien no goza de la popularidad del primero, es un producto muy en la línea de VMware, con una aceptación cada vez mayor, sobre todo a raíz de la liberación de la versión gratuíta, OpenVirtuozzo.
- Ventajas: Seguridad, escalabilidad y disponibilidad interesantes.
- Desventajas: Soporte en difícil de encontrar, rendimiento mediocre bajo ciertas circunstancias, obliga a que los sistemas sean idénticos una vez escogido el modelo a virtualizar. No es GPL. No admite dirvers del entorno emulado.
- Coste: Variable en función del producto. Existe una versión gratuíta
- Indicado para: Entornos con necesidad rápida de recuperación, proveedores de sistemas de recuperación, consolidación de servidores.
3. QEmu
Bastante conocido sobre todo entre los usuarios de soluciones Linux.
- Ventajas: Código libre, ligero en ejecución. Fácil de desplegar y configurar.
- Desventajas: Soporte escaso, desarrollo irregular, velocidad de CPU muy baja en entornos emulados. El consumo de recursos es mejorable.
- Coste: Gratuíto, es GPL.
- Indicado para: Desarrollo, entorno de pruebas no profesional.
4. Microsoft Virtual PC y Microsoft Virtual Server
La oferta de Microsoft destinada a propósitos de virtualización. Recientemente hemos sabido que Virtual Server R2 está siendo ofrecido gratuítamente, en respuesta a la competencia. VirtualPC sigue siendo una de las soluciones más vendidas, sobre todo por su enorme popularidad en la comunidad de usuarios Microsoft.
- Ventajas: Familiar para usuarios Windows, integración con plataformas Microsoft correcta, soporte y documentación abundantes. Admiten drivers de los sistemas a emular.
- Desventajas: Consumo excesivo de recursos, inestabilidad bajo ciertas condiciones de contorno, despliegue y ejecución lentos, virtualización dificultosa o imposible de algunos entornos derivados de UNIX. Su código es propietario.
- Coste: Virtual PC se comercializa bajo modelo de licencias. Virtual Server GR2 es Gratuíto
- Indicado para: Uso doméstico (Virtual PC), consolidación de servidores y granjas de servidores Windows (Virtual Server)
5. Xen
Otro de los colosos de la virtualización, orientado a usuarios más experimentados. Está desarrollado por la Universidad de Cambridge y por unidades de Intel y AMD. Cada vez más presente en las distribuciones.
- Ventajas: Potente y escalable. Muy seguro. Sistema de paravirtualización innovador y efectivo. Desarrollo muy profesional.
- Desventajas: Curva de aprendizaje costosa, documentación no excesivamente abundante, tiempos de despliegue mayores. No admite drivers de los entornos a emular. Desarrollo algo inmaduro.
- Coste: Gratuíto, es GPL.
- Indicado para: Entornos de prueba, consolidación de servidores, sistemas de recuperación rápidos.
OTROS SISTEMAS
He citado los 5 sistemas más frecuentes en uso, si bien no son ni de lejos los únicos. Exiisten otras soluciones muy competentes, cada una para su propósito, como Boochs, CoLinux, Win4Lin, FAUMachine, Parallels, SVISTA, TRANGO, twoOStwo, la máquina de sistemas virtuales de IBM … consulta el artículo de la Wikipedia.
TABLA COMPARATIVA
No dejes de consultar esta excelente tabla comparativa de la Wikipedia. No dejes de leer el artículo sobre software de virtualización
TU EXPERIENCIA
¿Usas algún motor de virtualización? Narra tu experiencia en los comentarios. Un saludo :)
ACTUALIZACIÓN 1: No dejéis de ver lo que opina Felipe Alfaro de Xen, así como algún detalle más sobre VMWare. Interesante
ACTUALIZACIÓN 2: Añado a Xen la característica de desarrollo profesional (elaborado, sistemático) pero INMADURO (al menos eso creo)
Sergio, quería provechar para comentar que la empresa VMware, a parte de su producto VMware Server (que ahora mismo está en fase Beta y será gratuito), también ofrece VMware Player. VMware Player es otro producto gratuito que permite ejecutar máquinas virtuales generadas con VMware Workstation (de momento éste no es gratuito). Aunque VMware Player es bastante reducido en su funcionalidad, suele ser bastante útil para realizar demostraciones o ejecutar máquinas virtuales ya construidas.
Con respecto a la máquina de sistemas virtuales de IBM (LPAR), mencionar que es una excelente combinación de virtualización por hardware (plataformas iSeries, zSeries y System i5) y software (hypervisor propio de IBM). El único problema, es que tiene un coste muy elevado.
Mi experiencia con los sistemas de vritualización se reduce al uso de VMware (en todas sus versiones: Workstation, GSX y ESX), así como Xen y un poco de QEmu sobre PPC. Mis experiencias con Xen han sido interesantes y frustrantes a la vez: la migración de máquinas virtuales nunca me ha funcionado correctamente, y desde que apareció la versión 3.0 de Xen, no he conseguido poder desplegar dominios U en volúmenes LVM sin experimentar corrupción de datos usando Fedora Core 5, así como tampoco he sido capaz de conseguir que el núcleo de NetBSD-Current funcione correctamente (entra en pánico antes de ejecutar init). Ya iré contando más sobre Xen según vaya haciendo más averiguaciones.
Yo hasta ahora siempre he usado Vmware aunque tengo bastantes ganas de probar Xen… aunque me desanima un poco el comentario de felipe y la verdad es que es el más negativo que he oído hasta ahora acerca de Xen. Veremos…
En cuanto a Vmware, destacar la biblioteca de imágenes preinstaladas que existe y que es muy útil para tareas concretas, evaluaciones, etc. Está aquí:
http://www.vmware.com/vmtn/appliances/
No pretendía que mi comentario acerca de Xen desanimase a nadie. Es más, quiero resaltar que los «problemas» que he tenido con Xen han sido usando Fedora Core 5 (actualizada a RawHide) como dominio 0, y además, intentando utilizar LVM.
En cualquier caso, utilizar dominios U Linux sobre Xen en Fedora Core 5 funciona correctamente (si el dominio U se almacena en un fichero, en lugar de LVM, lo cual no es un problema grave).
Por lo demás, Xen funciona muy bien y tiene características (como la migración de máquinas virtuales entre máquinas físicas) muy interesantes. Os animo a que lo probéis por vosotros mismos y que describáis vuestras propias experiencias.
Hace bastante tiempo probe vmware (en un athlon de 600MHZ con 128Mb), como es de esperar no era usable ya que era muy lento. Creo que sobre un Mandrake o Red Hat no recuerdo muy bien.
Actualmente dispongo de un sempron +3100 con 1G RAM y estoy utilizando qemu, del cual he obtenido resultados muy buenos.
Evolucion de QEMU (sobre linux)
El año pasado con la version 0.7.X emulaba la maquina virtual como un procesador de 450 MHZ, por lo que no se aprovechaba la potencia del equipo donde se ejecutaba, incluso lo trate de utilizar para algunas clases, pero el rendimiento no fue el optimo (los equipos disponian de solo 250 MB). Para mejorar el rendimiento debia agregar memoria virtual para la ejecucion (es una opcion en la ejecucion) y algo muy importante era el uso de kqemu, un acelerador que mejora la velocidad de ejecución. Aun asi se desaprovechaba las caracteristicas del procesador.
El Mes pasado (Junio), aprovechando el fin de semestre realice algunos cambios en mi equipo (particion de disco, eliminando definitivamente la particion de Windows, la que usaba solo para fines pedagógicos) y decidi darle otra oportunidad de qemu.
QEMU 0.8.X
Esta nueva versión mejoraba el aspecto que mas me importaba, el procesador emulado, ya que reconocia toda la velocidad del procesador (Aun no reconocia el procesador como tal sino como un pentium II, por lo que todo el set de intrucciones del procesador no son aprovechados).
Instale kqemu, la instalación y configuración es distinta a las versiones antiguas, y mejoro aun mas el rendimiento.
FULL VIRTUALIZATION
Esto es lo ultimo agregado a kqemu, en pocas palabras permite a la maquina virtual que sus instrucciones sean ejecutadas directamente por el procesador lo que implica que la maquina virtual reconoce el procesador del equipo real. Con esto se elimina como desventaja
Ya he probado con
win98
winxp
win2000
win2003
netbsd
freebsd
debian
ubuntu edgy
gentoo
Y a la espera están
solaris
OS X
Vista
Actualmente qemu es una buena alternativa, eso si debe ser instalado desde codigo fuente (qemu + kqemu).
Toda esta información en
http://fabrice.bellard.free.fr/qemu/
Buenas tardes a todos . Todo esto esta muy bien . pero puede alquien ayudarme en la siguiente cuestion?.
Es lo mismo la virtualizacion del consumo ( compras online) que el consumo virtual (consumo de preoductos virtuales).
Gracias.
amigos. tengo una exposicion sobre virtualizacion.servers, apliciones, escritorio. si me pueden ayudar con informacion les agradesco. estoy realizando un diplomado en redes. para graduarme como tecnologo electronico. y de redes muy poco conozco. desde cali colombia
necesito que me expliquen esto
caracterizar diversa soluciones presentes en el entorno según sus propiedades generales
° realizar una tabla comparativa de diversas soluciones sugun el grado de soluvilidad 6 soluciones
explica un experimento donde se vea la influencia de lo0s factores que alteran la soluyvilidad 1 para cada uno
Que raro que no aparezca virtualbox de sun microsystems(Java, openoffice,etc.), de lejos el mas usado en la actualidad