1.10. Ventajas del uso de máquinas virtuales para la instalación de sistemas operativos en red

Una aplicación de virtualización es un software que utiliza una serie de técnicas avanzadas para abstraer las características físicas del ordenador donde se instala y crear máquinas virtuales que producen la ilusión de ser plataformas hardware independientes.

Por consiguiente, cada máquina virtual actúa como un ordenador independiente, sobre el que podremos instalar un nuevo sistema operativo con sus correspondientes aplicaciones y configuraciones.

Las distintas máquinas virtuales que definamos sobre la misma máquina física, podrán ejecutar diferentes sistemas operativos, compartiendo todas ellas los recursos existentes. De esta forma, podremos disponer de varios ordenadores virtuales ejecutándose, a la vez, en el mismo ordenador físico.

Lógicamente, el número máximo de máquinas virtuales que podremos ejecutar de forma paralela estará limitado por los recursos disponibles en la máquina real.

El ordenador físico suele llamarse también anfitrión (host), hypervisor o monitor de la máquina virtual (VMM – Virtual Machine Monitor), mientras que también podemos referirnos a las máquinas virtuales como sistemas invitados (guest).

Dada la excelente relación entre el precio y las prestaciones de los ordenadores actuales, es relativamente frecuente que el sistema operativo del ordenador anfitrión no sea capaz de aprovechar por sí mismo todas la capacidad del hardware donde está instalado, de forma que éste puede quedar infrautilizado. La tecnología de virtualización puede conseguir que mejore el aprovechamiento que hacemos de los recursos disponibles.

Cómo funciona la virtualización.

Lógicamente, lo primero que tendremos que hacer será instalar el software de virtualización apropiado sobre nuestro sistema operativo anfitrión.

A continuación, ejecutaremos el software de virtualización para definir una máquina virtual.

Finalmente, iniciaremos la máquina virtual o procederemos sobre ella como si se tratara de un ordenador real. Como alternativa a este paso, algunas aplicaciones de virtualización disponen de herramientas para virtualizar un ordenador existente (normalmente basado en arquitectura x86) y obtener una máquina virtual completamente operativa. Esta virtualización incluirá al procesador, la memoria RAM, el disco duro y los controladores de red del ordenador original. Cuando termine el proceso, dispondremos de una máquina virtual que es totalmente equivalente al ordenador físico del que partíamos. Una herramienta capaz de llevar a cabo esta tarea es VMware vSphere.

El software de virtualización asignará los recursos físicos a las máquinas virtuales de forma dinámica y transparente, de manera que obtengan sólo los recursos que necesitan. Esto deriva en un uso más racionalizado de los recursos. Así, por ejemplo, podríamos tener una máquina virtual en la que hemos definido una memoria RAM de 4GB. Si en un momento dado sólo está utilizando 1GB, los 3GB restantes estarán disponibles para el sistema anfitrión y para el resto de los sistemas invitados. Si en lugar de haber definido una máquina virtual, hubiésemos realizado la misma instalación sobre un ordenador real, la memoria que no se utilizara quedaría simplemente desperdiciada.

Si pensamos que la lógica de este último ejemplo se aplica a todos los recursos que emplea la máquina virtual, podremos entender fácilmente cómo consigue la virtualización optimizar el uso del hardware disponible.

Dado que una máquina virtual está encapsulando un ordenador completo, su compatibilidad con todos los sistemas operativos, controladores de dispositivo y aplicaciones para arquitecturas x86 será total, lo que nos permitirá probar diferentes sistemas y configuraciones sin perjudicar la configuración del anfitrión y sin necesitar ordenadores complementarios.

Ventajas de la virtualización

Aunque ya pueden deducirse algunas de las ventajas que ofrece la virtualización, vamos a tratar de recogerlas todas a continuación de un modo más sistemático:

  1. Sacar más partido de los recursos existentes, permitiendo el uso compartido de los mismos. Antes de virtualizar, es frecuente que el índice de uso de los recursos no supere el 50%, de hecho, es muy común que no supere el 15%.
  2. Reducir los costes de los centros de datos reduciendo su infraestructura física. Esto deriva en una necesidad menor de espacio y una reducción en el consumo de energía y en las necesidades de refrigeración, lo que, además de suponer un ahorro, contribuye a la mejora del medio ambiente en consonancia con las nuevas tendencias en Green Computing (conocido también como Green-IT) que podríamos traducir al español Tecnologías Verdes.
  3. Reducir el tiempo dedicado a la administración, ya que se dispone de herramientas más avanzadas. Además, podemos tener agrupada toda la capacidad de proceso en varios servidores físicos, entre los que se produce un balanceo dinámico de las máquinas virtuales, administrando de forma centralizada toda la capacidad de cálculo, memoria, almacenamiento, red, etc., y garantizando que cada máquina virtual se ejecuta sobre el host más adecuado en cada momento.
  4. Otra forma de reducir el tiempo de administración es fragmentar los servicios porque, en lugar de tener un gran servidor que centralice todos los servicios de la empresa, podemos definir pequeños servidores virtuales, especializados cada uno de ellos en un servicio concreto (un servidor web, un servidor de impresión, un servidor de centralita telefónica, etc.). De este modo, se simplifica la administración de cada uno de ellos y se evitan las posibles interrelaciones no deseadas.
  5. Relacionado con lo anterior, podemos mencionar el aislamiento entre las diferentes máquinas virtuales, que repercutirá en que un fallo en una de ellas no afecte al resto.
  6. Aumentar la disponibilidad, ya que se puede disponer de mecanismos de copia de seguridad y clonación de máquinas virtuales completas para migrarlas a un hardware diferente, eliminando tiempos de inactividad y recuperándose de forma inmediata de cualquier problema. En ocasiones, la migración de un sistema a otro puede hacerse incluso en caliente (sin parar el host y sin dejar de ofrecer servicio).
  7. Aumentar la flexibilidad de la implantación, para responder de una forma más rápida a los posibles cambios que deban realizarse. Por ejemplo, podemos añadir recursos a los servidores virtualizados de una forma rápida y sencilla.
  8. Disponer de un método para crear entornos de prueba que nos permitan analizar nuevas soluciones antes de que puedan afectar al resto de la infraestructura.
  9. Administrar y gestionar sistemas de escritorio seguros que estén accesibles a los usuarios de forma local o remota desde casi cualquier ordenador del lado cliente.

Después de todo lo dicho, no debemos extrañarnos de que, cada vez más, empresas de todos los tamaños utilicen la virtualización para implementar sus infraestructuras de red.

Software de virtualización

Cuando hablamos de software de virtualización, disponemos de un amplio abanico de posibilidades entre las que podemos encontrar opciones muy diferentes, que se adaptarán en mayor o menor medida al uso que pensemos hacer de ellas.

Por este motivo, a continuación vamos a hacer un repaso de las herramientas más frecuentes, indicando sus características más destacadas:

  • VMware: VMware Inc. es, probablemente la empresa de referencia en el mundo de la virtualización. Dispone de dos líneas de producto diferentes:
    • Las versiones de escritorio: Pueden utilizar como sistema operativo anfitrión a cualquiera de los tres sistemas operativos de escritorio más extendidos Microsoft Windows, GNU/Linux y Apple Mac OS X. En las máquinas virtuales que creemos, podremos instalar cualquier sistema operativo que sea compatible con la arquitectura x86 o x86-64. Vmware comercializa tres productos diferentes en este segmento:
      • VMware Workstation, que es la versión comercial, para sistemas de escritorio que se instala sobre Microsoft Windows y GNU/Linux.
      • VMware Fusion, que ofrece una funcionalidad similar en sistemas de Apple que se ejecuten sobre procesadores Intel.
      • VMware Player, es la versión gratuita, con menos funcionalidad, orientada a un uso no comercial. Al principio no permitía crear nuevas máquinas virtuales (sólo usar las creadas con alguna versión de pago), pero esa limitación desapareció en la versión 3.0.1
    • Las versiones empresariales: Están orientadas a implantaciones de mayor envergadura. Dos de las tres soluciones que propone la empresa se ejecutan directamente sobre el ordenador, ya que disponen de su propio sistema operativo, embebido dentro del producto, lo que deriva en un mayor rendimiento del producto. Se comercializan tres soluciones distintas:
      • VMware ESX, se instala directamente sobre el hardware, ofrece un alto rendimiento y facilita el uso, más o menos directo, del hardware por parte de los sistemas virtuales. Además, incorpora vCenter que aglutina un conjunto de servicios complementarios para mejorar la fiabilidad y la usabilidad. Entre sus componentes, podemos destacar:
        • Vmotion, que permite cambiar una máquina virtual, que se está ejecutando, de un host ESX a otro.
        • Storage Vmotion, que puede trasladar una máquina virtual, que se está ejecutando, de un dispositivo de almacenamiento a otro.
        • DRS (Distributed Resource Scheduler, en español, Planificador de Recursos Distribuidos), que facilita el balanceo automático de carga de un cluster ESX utilizando Vmotion.
        • HA (High Availability, en español, Alta disponibilidad). Consigue que, en caso de fallo de uno de los hosts del cluster, los servidores virtuales que se estaban ejecutando en él se reinicien automáticamente en un host distinto.
      • VMware ESXi es un producto similar a VMware ESX, pero se ha eliminado la Consola de Servicio, ahorrando una considerable cantidad de almacenamiento en disco y en memoria RAM, pero esto hace que la administración de los hosts deba realizarse a través de un servidor de VirtualCenter. Además, desde el verano de 2008, existe una versión de pago y otra con licencia freeware, a la que también se le han eliminado algunas características, como Vmotion y Storage Vmotion. Se diseño para ejecutarse desde dispositivos SSD, pero puede instalarse en cualquier disco duro. Desde el verano de 2008, VMware ESXi es gratuita.
      • Vmware Server es una versión que se encuentra un tanto obsoleta. Se ofrece con licencia freeware para uso no comercial y se trata de la única solución orientada al ámbito empresarial, que se instala sobre un sistema Linux o Windows anfitrión, por lo que su rendimiento es menor que el de las versiones comentadas anteriormente. Anteriormente, Vmware Server era conocido como Vmware GSX Server.

    Dada la variedad de versiones que podemos encontrar en Vmware, las hemos organizado en la siguiente tabla, donde aparecen clasificadas en función de que necesiten, o no, un sistema operativo anfitrión e indicando en cada versión si es gratuita o de pago:

  • Windows Server 2008 R2 Hyper-V: es la respuesta de Microsoft en el mundo de los servidores de virtualización. Se puede instalar como un rol dentro de Windows Server 2008, o como un producto independiente. En este último caso, lo que obtenemos es un Windows Server 2008 con sus funcionalidades muy limitadas. En la actualidad, Hyper-V también forma parte de Windows 8. La versión independiente es gratis, pero sólo dispone de una interfaz de línea de comandos (CLI) desde la que se deben configurar el host, el hardware y el software a través de órdenes. Afortunadamente, se dispone de un menú (ejecutable desde la línea de comandos) y algunos scripts que pueden descargarse gratuitamente. A pesar de todo, la configuración se realiza normalmente utilizando consolas de administración (MMC, Microsoft Management Console), que se descargan y se ejecutan en algún PC con Windows 7 o Windows Server 2008 de la red.
  • Oracle VM VirtualBox: es un software de virtualización creado originalmente por una empresa llamada Innotek. Ésta empresa fue adquirida inicialmente por Sun Microsystems que, a su vez, ahora es propiedad de Oracle. Según diversas encuestas, VirtualBox es la opción preferida por la mayoría de los usuarios de sistemas de escritorio.VirtualBox se instala como cualquier aplicación sobre un sistema operativo anfitrión, que puede ser cualquier versión actual de escritorio de Microsoft Windows (a partir de XP), cualquier distribución de GNU/Linux, Apple Mac OS X, Solaris (incluido OpenSolaris) e incluso FreeBSD. Una vez instalada la aplicación, permite la ejecución, sobre ella, de casi cualquier sistema operativo compatible con la arquitectura x86.Como todas las máquinas virtuales usan controladores de dispositivos virtuales, son independientes del hardware del anfitrión, por lo que son fáciles de transportar a un host diferente cuando sea necesario.Antes de la versión 4, había dos versiones diferentes de VirtualBox: la versión OSE (Open Source Edition) que se distribuía con licencia GPL y la versión PUEL (Personal Use and Evaluation License) que era gratuita para uso personal y de evaluación, sin limitación de tiempo. La principal diferencia entre ellas era que la versión PUEL tenía soporte para USB.A partir de la versión 4, tanto el código fuente como el código binario se publican con licencia GPLv2 y, la parte que sigue con licencia PUEL, es el soporte para dispositivos USB 2.0, RDP, las funciones PXE para tarjetas de red Intel y el mecanismo Extension Pack, que es el que permite que terceras partes incluyan sus propias funciones en el producto. La gran ventaja es que ahora las distribuciones pueden incluir paquetes precompilados de VirtualBox en sus repositorios.

peces

  • Parallels Desktop for Mac: Se trata de un producto de la empresa Parallels, Inc., que ofrece virtualización en ordenadores Apple con procesadores Intel y sistema operativo Mac OS X. Su modo de funcionamiento es bastante parecido al de los productos anteriores, asignando recursos del equipo anfitrión a la máquina virtual, que funciona como si fuese un equipo independiente. Como en otras aplicaciones de virtualización, aquí también se emplean controladores de dispositivos virtuales, obteniendo una total independencia del hardware del equipo anfitrión.Sobre Parallels Desktop podremos ejecutar casi cualquier sistema operativo compatible con la arquitectura x86.
  • Windows Virtual PC: Originalmente, Virtual PC fue creado por una empresa llamada Connectix para sistemas Apple basados en procesadores PowerPC. Posteriormente, Connectix produce una versión para Windows. En 2003, Microsoft adquiere el producto y en 2006 se convierte en un producto gratuito. El mismo año dejaron de aparecer versiones para Apple, cuando esta empresa dejó de utilizar procesadores PowerPC en favor de la arquitectura Intel. En la actualidad, Windows Virtual PC sólo es compatible con hosts basados en Windows 7 y posteriores y sólo permite máquinas virtuales con sistemas operativos Windows XP SP3 o posteriores. En principio, se pueden crear máquinas virtuales que ejecuten distribuciones GNU/Linux, pero carecen de soporte oficial y carecen de controladores avanzados (llamados Virtual Machine Additions).
  • Xen: es un software de virtualización creado originalmente en el Laboratorio de Informática de la Universidad de Cambridge, pero desde 2010 es mantenido por la comunidad Xen, que lo desarrolla y lo mantiene bajo licencia GPLv2. Xen se instala directamente sobre el hardware del host, ya que su hipervisor se basa en una versión modificada de Linux, NetBSD y Solaris. Además, es compatible con arquitecturas hardware basadas en procesadores IA-32, x86-64, Itanium y ARM. Entre sus características avanzadas se encuentra la posibilidad de migrar máquinas virtuales entre diferentes hosts sin tener que pararlas.En cuanto a las máquinas virtuales (llamadas aquí dominios de usuario) tenemos dos opciones:
    • Cuando el procesador del ordenador anfitrión soporta virtualización x86 (por ejemplo Intel VT-x o AMD-V) se pueden instalar versiones estándares de sistemas operativos libres o propietarios (incluido Microsoft Windows)
    • En caso contrario, necesitaremos un sistema operativo especialmente modificado para ser virtualizado, que incluya drivers para soportar las características avanzadas de Xen. Esta opción, mucho más restrictiva, ofrece también un rendimiento mucho mayor.

    Xen utiliza una técnica llamada paravirtualización que alcanza un rendimiento elevado (las penalizaciones de rendimiento están entre el 2 y el 8 por ciento, mientras que en otras soluciones rondan el 20).

  • OpenVZ: es un software de virtualización exclusivo para sistemas GNU/Linux. Es decir, tanto los sistemas anfitriones como los invitados deben ser GNU/Linux, aunque puede tratarse de diferentes distribuciones. Al tratarse de un sistema tan acotado, una de sus principales ventajas es que ofrece un mejor rendimiento y una mayor escalabilidad. Además de simplificar la administración de la instalación. OpenVZ está basado en Virtuozzo, un producto comercial de la empresa SWsoft, Inc., pero se trata de software libre publicado bajo licencia GPLv2.

Conclusión.

Hemos hablado de diferentes soluciones de virtualización, quizás las más difundidas, pero se nos han quedado en el tintero un buen número de ellas. A pesar de todo, creo que han sido suficientes para entender que las posibles soluciones son diversas y que será fácil encontrar alguna que se adapte a nuestras necesidades.

En lo referente al resto de este texto, para que puedas poner en práctica todos los contenidos que iremos desgranando, utilizaremos máquinas virtuales basadas en VirtualBox. De esta forma, podrás hacer todas las pruebas que consideres necesarias sin que se vea afectado tu entorno de trabajo habitual y sin que tengas que dedicar un ordenador para realizar las tareas que vayamos explicando.


Anterior

Contenido