Pocos deben ser ya los profesionales y entusiastas amateurs en esto
de la informática que no hayan experimentado o, por lo menos, que
no hayan oído hablar de la virtualización. De máquinas virtuales.
Una tecnología presente en el ordenador desde sus comienzos, pero
que no ha encontrado su sitio al sol hasta un momento tan reciente
como éste, en donde sus partidarios son legión frente a sus
detractores.
La virtualización de sistemas consiste básicamente en particionar
un ordenador para que se comporte como varios, para representar
distintas máquinas completas dentro del mismo hardware. Cada una de
las máquinas representadas es completamente independiente respecto
a las otras en cuanto a componentes y funcionamiento, teniendo
entidad propia, dentro del anfitrión en el que se aloja, como en el
exterior, dentro de la red.
Para particionar el ordenador en varios se puede recurrir al
hardware. Es el tipo de virtualización más veterano y presente en
los sistemas de grandes proporciones de los principales
fabricantes. La virtualización se realiza mediante un hardware
específico o firmware que divide el sistema en varias unidades,
cada una de ellas capaz de ejecutar una instancia de un sistema,
para que el mismo equipo actúe y se comporte como varios. Es esta
una virtualización específica de cada fabricante y completamente
alejada de la arquitectura Intel.
Otro tipo de virtualización es la que se consigue mediante
software. El particionamiento de un equipo físico se basa en
utilizar un programa que divide y aísla un único sistema en varios
procesos independientes, cada uno de ellos capaz de ejecutar una
instancia de sistema operativo. A este tipo pertenecen los
programas de virtualización más competentes que pueden encontrarse
actualmente en el mercado para la plataforma Intel y que han sido
desarrollados por VMWare y Microsoft. La propuesta de estos
programas es proporcionar en cada instancia de sistema operativo un
ordenador completo, totalmente independiente en dispositivos
hardware, ejecución de programas, acceso a la red y, por supuesto,
en su operación.
En contra de lo que pueda parecer, no se trata en ningún caso de
"simulación" de un ordenador. Cada instancia de sistema operativo
cuenta con su propia BIOS y acceso a sus dispositivos de hardware
ficticios a través de ella. El sistema operativo huésped nunca
tiene consciencia de que no se ejecuta sobre el hierro desnudo de
un ordenador.
Microsoft lleva poco en esto de la virtualización. Desde 2003, año
en el que adquiere la empresa Connectix, el único desarrollador que
con "Virtual PC", virtualizador orientado a equipos de escritorio,
desktop y portátiles, intentaba hacer sombra a los productos,
experiencia y predominio de VMWare en este campo. Desde entonces
hasta aquí, Microsoft no sólo ha apoyado el desarrollo del
virtualizador de Connectix, si no que, además, lo ha enriquecido
con la versión orientada a servidor: Microsoft Virtual Server
2005.
Arquitectura de Virtual Server 2005
La arquitectura de Virtual Server 2005 se apoya en la plataforma
que le brinda Windows Server 2003 para proporcionar a los sistemas
operativos huésped la capa de virtualización y gestionar la
emulación de la infraestructura hardware que pueden requerir todas
y cada una de las máquinas virtuales que se ejecutan sobre el
equipo anfitrión. Es decir, Virtual Server 2005 no es en sí mismo
un sistema operativo. Se instala sobre Windows Server 2003 y es el
encargado de proporcionar el hardware a las máquinas virtuales. Los
sistemas operativos huésped en ningún momento acceden al hardware
físico del ordenador. Virtual Server 2005 es quien se encarga de
gestionar ese acceso y servir como intermediario entre la máquina
virtual y el sistema operativo anfitrión.
Para conseguir que cada máquina virtual se ejecute de manera
independiente y totalmente aislada respecto a otras, este
virtualizador está construido como aplicación multihebra que se
ejecuta sobre el ordenador como un servicio de sistema. Cada
máquina virtual se ejecuta sobre hebras diferentes y cada operación
de entrada/salida ocurre sobre hebras dependientes del procesador
asignado y que se generan según las necesidades de cada momento.
Virtual Server se encarga de derivar dos funciones básicas del
núcleo de sistema operativo anfitrión hacia las máquinas virtuales.
Por una parte, el scheduler de recursos de CPU. Por otra, los
controladores de dispositivos físicos que puedan estar montados en
el sistema operativo sobre el que se ejecuta. Así, cuando un
sistema operativo huésped se ejecuta sobre una máquina virtual, la
capa de virtualización de Virtual Server toma el control de las
operaciones de CPU y hardware de ese sistema operativo para generar
un entorno de ejecución completamente aislado y se encarga de
gestionar todas las instancias que pueda producir, interactuando
con el sistema operativo anfitrión cuando es requerido acceso a los
dispositivos simulados.
Este hardware ficticio que entrega Virtual Server a los sistemas
operativos huésped es siempre el mismo para todos ellos, no se
pueden simular componentes específicos. Para las máquinas virtuales
se emula un procesador basado en la arquitectura X86, con hasta 3,6
GB de memoria RAM y una tarjeta gráfica S3 Trio64 con 4 MB de VRAM,
todo montado sobre una placa madre Intel 440 BX con PIIX4. A estos
elementos básicos se pueden añadir discos, tanto IDE como SCSI, en
donde se emula una tarjeta controladora Adaptec 2940, CD-ROM,
disquetera, tarjeta de red, Intel 21140 y otros. No existe, por el
momento, soporte para tarjeta de sonido, cosa que no se echa en
falta teniendo en cuenta que es un software orientado a virtualizar
equipos con desempeño de servidor. Sí se notará, por el contrario,
el soporte para 64 bits que Microsoft ha incluido en su
virtualizador para el anfitrión que aloja las máquinas virtuales, y
se espera que este soporte se extienda a las máquinas virtuales sin
mucha demora, junto con el soporte para multiprocesador.
¿Virtualizar qué?
La idea de un ordenador físico que contenga varios ordenadores
lógicos es una idea que se encuentra presente en los sistemas
operativos desde el comienzo de la informática. La evolución del
software de virtualización no ha seguido la misma pauta que los
sistemas operativos y resto de software, seguramente por la
dinámica de la industria en la que la adquisición de equipamiento
hardware no se veía problemático sino, todo lo contrario, una
práctica necesaria y recomendada. Ha sido ahora, un momento en el
que las inversiones se miran con lupa y la dispersión de servicios
sobre distintas máquinas plantea serios problemas de soporte y
mantenimiento, cuando la virtualización ha tomado predicamento
entre los responsables de IT, como una herramienta potente,
versátil y flexible para solucionar eficazmente la consolidación de
sus plataformas. Una tecnología que se encuentra madura y que está
perfectamente capacitada para asumir la virtualización de todo tipo
de equipos, sea cual sea su desempeño.
Tradicionalmente se argumenta que una plataforma de máquina virtual
es conveniente para unos casos muy concretos, siempre alejados del
entorno de producción. Laboratorio y formación son los ambientes en
los que la virtualización tiene sobradamente ganado su sitio. Si
embargo, reducir el empleo de máquinas virtuales a estos escenarios
es desperdiciar el enorme potencial que la virtualización puede
aportar a todo tipo de organizaciones, independientemente de su
objetivo de negocio, y, por qué no, a usuarios profesionales e
incluso a cualquier otra persona que sólo quiere utilizar el
ordenador más modestamente, como le ocurre al usuario doméstico.
Las ventajas innegables de utilizar como plataforma de producción
servidores virtuales, está calando con paso lento pero decidido
entre los responsables de IT, cuyo convencimiento y satisfacción
están en proporción directa al tamaño de sus sistemas. Además del
ahorro económico y de esfuerzo de gestión, la virtualización
posibilita que la consolidación de plataformas heterogéneas se
consiga realmente de forma sencilla y eficaz. El aprovisionamiento
de nuevos servidores queda reducido a un proceso que se completa en
minutos y sin necesidad de un gran equipamiento ni complejos
procedimientos, los tiempos de parada programada para mantenimiento
se eliminan totalmente, mientras las oportunidades de tener alta
disponibilidad se disparan sin necesidad de retar a duelo al
responsable económico que autoriza la adquisición de equipamiento.
Como también se elimina el drama de las migraciones al simplificar
estos procesos para convertirlos en puro trámite.
Pero todo tiene su precio. El coste de utilizar máquinas virtuales
hay que cuantificarlo en rendimiento. El principal inconveniente
que presenta por el momento Virtual Server 2005 es su imposibilidad
de asignar más de un procesador a las máquinas virtuales que
ejecuta. Es decir, virtualizar aplicaciones diseñadas para utilizar
multiproceso simétrico (SMP) no es una práctica recomendable,
puesto que esta ventaja se diluye en la capa de virtualización.
Aunque el hardware sobre el que se ejecuta Virtual Server tenga más
de un procesador, cualquiera de las máquinas virtuales que se
definan, solo podrán tener asignado uno. De todas formas, no hay
que llamarse a engaño. Virtual Server utilizará todos los
procesadores que monte el ordenador sobre el que corre, de hecho
puede soportar hasta 32 procesadores físicos. Son las máquinas
virtuales las que emulan un equipo con un único procesador. Es
decir, con Virtual Server si hay 2 procesadores, los dos
procesadores trabajan, no están ociosos; son las máquinas virtuales
las que se comportan como si solo tuvieran un único
procesador.
También es importante tener en cuenta que virtualizar cualquier
equipo significa añadir una capa más de software a las aplicaciones
que se ejecutan de manera virtualizada. Esto acarrea una lógica
pérdida de rendimiento al haber más actores implicados en la
ejecución de programas, servicios y accesos al hardware. Para ser
realistas, hay que indicar que un servidor virtual, dependiendo de
uso, configuración y aplicaciones en ejecución, puede entregar
hasta un 80% de rendimiento respecto a lo que puede obtenerse en un
equipo físico de las mismas características. Ahora bien, esta
pérdida de rendimiento no debe ser una consideración que haga
rechazar a Virtual Server 2005 de plano. Hay que plantearse esta
penalización de rendimiento como impedimiento para virtualizar
según los casos. Como regla de carácter general, aquellas
aplicaciones críticas en donde el rendimiento es decisivo, lo
conveniente es mantener los servicios sobre equipos convencionales,
dimensionados adecuadamente, eso sí, y dejarse de añadir capas que
incrementan trabajo y tiempo de máquina. Para el resto de
situaciones, hay que sopesar de manera fría si la pérdida de un 20%
del rendimiento es importante para renunciar a las ventajas que se
obtienen con Virtual Server 2005. Sólo a los administradores
recalcitrantes y fundamentalistas del "perfomance" se les escapa
que los modernos servidores sólo son aprovechados, en el mejor de
los casos, en un 20% de sus capacidades reales. Es decir, la
inmensa mayoría de servidores actualmente en producción, según
casos, tienen una perspectiva de aprovechamiento similar si se
ejecutan como máquina virtual que sobre máquina física.
Meterse en harina
Como el movimiento se demuestra andando, nada mejor para despejar
dudas y convencer a los más escépticos que instalar y ver en acción
a este virtualizador. Y para empezar a probar este software no hay
que andar mucho. En http://www.microsoft.com/virtualserver, se
puede descargar una versión trial de este programa, por el módico
precio de rellenar un formulario de registro, que ya se sabe como
son los chicos de marketing. Desde este sitio se puede descargar la
versión standard. Virtual Server 2005 está disponible en dos
ediciones: standard y enterprise. Las dos ofrecen las mismas
funcionalidades y sólo se diferencian en el hardware que son
capaces de gestionar y que marcan los requerimientos de hardware
necesarios y, por descontado, la carga de trabajo que se supone
deben asumir.
La instalación del programa sigue la misma pauta de sencillez que
ya es norma para la instalación de cualquier software de Microsoft.
Un asistente se encarga de ir solicitando al operador los cuatro
datos que se necesitan para dejar Virtual Server 2005 R2 operativo
en el ordenador, sin ninguna complicación. Los requerimientos de
hardware recomendados para que el programa se desenvuelva bien son
asequibles a la mayoría de los ordenadores de sobremesa de tipo
medio. Resulta interesante montar al menos dos tarjetas de red: una
dedicada a máquinas virtuales y la segunda reservada para
operaciones de gestión sobre el ordenador anfitrión. De esta forma
se puede separar el tráfico y no se penalizan rendimientos cuando
se hacen operaciones pesadas sobre el anfitrión base, como puede
ser el traspaso de una máquina virtual.
Con Virtual Server 2005 instalado en el ordenador, comenzar a
trabajar con máquinas virtuales es inmediato; basta con "adquirir"
el hardware e instalar el sistema operativo. Como se hace siempre.
La "adquisición" del hardware se realiza mediante un asistente que
guía en la definición de los componentes hardware que tendrá la
máquina virtual. Una operación desprovista de complicación, en la
que se establece la memoria, disco y otros componentes virtuales
que tendrá el ordenador. Esta definición no tiene por qué ser
definitiva y en cualquier momento se puede añadir o quitar hardware
con sólo parar el ordenador virtual y entrar en su
configuración.
Con el hardware "adquirido", lo siguiente es instalar el sistema
operativo, como se hace siempre. Esta acción se realiza exactamente
igual a como se realiza sobre una máquina física. Para instalar un
sistema operativo sobre un ordenador virtual, se hacen las mismas
acciones que se realizan cuando esa instalación se efectúa sobre un
ordenador convencional. Una buena forma de empezar a abordar el
trabajo con máquinas virtuales es "olvidar" que el ordenador es
virtual y afrontar su manejo como si se tratara de un equipo físico
convencional. Seguir la misma operación que se realiza sobre un
equipo físico y hacer las mismas consideraciones de uso, permiten
trabajar y avanzar mejor en el conocimiento de este tipo de
software. Hacer cábalas y suposiciones sobre cómo interactúan los
componentes de la máquina virtual con los de la máquina física sólo
da lugar a confusiones y dudas que se traducen en fallos de
configuración y, en consecuencia, de funcionamiento.
Gestión de máquinas virtuales
Una vez que las máquinas virtuales se encuentran definidas,
instaladas y en funcionamiento, la siguiente preocupación que surge
es cómo poder gestionar el anfitrión y los sistemas operativos
huéspedes que ejecuta. En este sentido, el valor añadido que
proporciona el hecho de que este virtualizador haya sido
desarrollado por Microsoft es la facilidad para integrar la
administración de las máquinas virtuales en las herramientas de
gestión convencionales que se encuentran en su plataforma.
Para interactuar con las máquinas virtuales, existe una herramienta
específica del virtualizador a la que se accede y maneja mediante
un interfaz Web. Es decir, Virtual Server 2005 R2, en su
instalación, implementa un sitio Web a nivel de anfitrión, al que
es posible conectarse para manejar cada sistema operativo huésped
individualmente, como si de una consola remota se tratara, así como
para realizar otras tareas de mantenimiento que tienen que ver con
la máquina como tal: apagado, reinicio, redefinición de hardware y
otras operaciones similares. Esta Web de gestión simplifica mucho
la administración de la infraestructura virtual de Microsoft,
debido a que cualquier equipo que disponga de un navegador Web
puede convertirse en una consola de gestión, desde la que es
posible tener acceso a todas las máquinas virtuales que están
disponibles en un equipo para realizar cualquier operación sobre
ellas. No obstante, reseñar que esta consola de administración no
proporciona una emulación de terminal propiamente dicha, como
sucede con Terminal Server, por lo que su filosofía de utilización
y rendimiento está fuera de lugar para operaciones y uso distinto
al estrictamente relacionado con la gestión de las máquinas
virtuales.
De cara a esta gestión, como máquinas hechas y derechas que son los
ordenadores virtuales, su administración puede y debe integrarse
dentro de la estrategia de gestión que pueda estar implantada en el
sistema en el que se incorporan. Todas las herramientas de
administración que se utilizan para gestionar máquinas
convencionales, siguen manteniendo su vigencia cuando se trata de
equipos virtuales, como pueden ser aplicación de directivas,
consolas de gestión MMC o las herramientas de copia de seguridad.
Sin embargo, por el momento, debido a lo reciente de este software,
el máximo grado de integración hay que buscarlo en el propio
entorno de Microsoft y descartar herramientas de terceros, como son
los conocidos programas que incorporan los principales fabricantes
de hardware. Las máquinas virtuales tienen una integración completa
con Microsoft MOM 2005 y con el Directorio Activo.
En definitiva, los responsables de IT preocupados por la
consolidación de servidores y por la reducción de los costes de
propiedad implícitos a su departamento tienen en la virtualización
una baza interesante que jugar. Dentro de la plataforma Microsoft
esta opción se materializa en Virtual Server 2005, que proporciona
una tecnología madura y perfectamente integrada con el universo de
productos del fabricante, lo que avala la consecución de los
mejores resultados sin detrimento de funcionalidad.