Tipos de virtualización

 Modelo de IT virtualizado

En un entorno IT los componentes que interactúan para ofrecer servicio a los usuarios son:

  • Hardware: engloba a los dispositivos físicos que intervienen en el trabajo del usuario. En el caso de que se estén ejecutando aplicaciones locales, que usen datos también locales, el hardware se reduciría al dispositivo desde el cual se esté trabajando; en entornos más complejos se podrían incluir otros elementos como el hardware de conexión en red, un almacenamiento donde se albergan las bases de datos, un servidor en el que se ejecuta la aplicación...
  • Sistema operativo: cada dispositivo de trabajo ejecuta un único sistema operativo.
  • Aplicaciones: ejecutadas localmente en el dispositivo o a través de red, desde un servidor de aplicaciones, pero siempre con algún componente local vinculado (un cliente que puede ser específico de la aplicación o algo más genérico, como un navegador web).
  • Datos y configuraciones de usuario: cada usuario tiene asociado un perfil que alberga tanto datos (correo, ofimática...) como configuraciones de las aplicaciones que usa (accesos directos, configuraciones de inicio, preferencias de ejecución, rutas predefinidas...)
  • Salida por pantalla: representación visual de las operaciones realizadas por el usuario.

Nota:al igual que la salida por pantalla otros elementos básicos de los modelos computacionales son los periféricos de entrada y salida de información, a través de los cuales se produce la comunicación bidireccional entre los usuarios y los sistemas y aplicaciones. En general el tratamiento de todos ellos, con respecto a las modificaciones que pueda implicar el uso del modelo virtualizado, es el mismo.

En el modelo clásico la relación entre todos estos componentes presentaba dependencias de unos con respecto a otros. Estas dependencias eran, precisamente, la fuente de muchas de las limitaciones del modelo tradicional IT que las tecnologías de virtualización ayuda a superar.

Por ejemplo, las aplicaciones podían funcionar bien en una versión de sistema operativo, pero mal en otra, y al tratar de cambiar un sistema operativo para solucionar el problema de compatibilidad anterior surge uno nuevo, ya que el hardware a usar no reúne los requisitos mínimos para instalar la nueva versión de sistema operativo. Otra limitación clásica es que al usar otro dispositivo para acceder al sistema IT, el usuario no dispone de sus datos de usuario, o de la configuración de sus aplicaciones.

El modelo que propone la virtualización para el desarrollo de los sistemas IT, y para solventar todas esas limitaciones, incluye los mismos elementos, pero la diferencia fundamental estriba en que las tecnologías de virtualización los independiza entre sí.

De esta manera, por ejemplo, al usar un hardware virtual no estamos atados a los problemas de compatibilidad del equipo físico, al virtualizar la ejecución de las aplicaciones no importa sobre qué sistema operativo la estemos ejecutando, al virtualizar los perfiles de usuario no importa desde qué equipo esté trabajando el usuario...


Figura 1.- Modelos tradicional y virtualizado de IT

 Tipos de virtualización

Bajo el término virtualización se engloban toda una serie de tecnologías que afectan a los distintos elementos de los sistemas IT y de distintas formas.

Nota: en muchas ocasiones las soluciones de virtualización no se basan en una única tecnología, sino que varias de ellas cooperan para ofrecer una solución adecuada a las necesidades de cada entorno y situación.

En el modelo tradicional de ejecución de una aplicación los componentes hardware, sistema operativo, aplicación y visualización están indivisiblemente unidos, y son interdependientes.


Figura 2.- Ejecución de una aplicación sin virtualización

Según los elementos de este modelo a los que afectan se definen varios tipos de virtualización:

i) Virtualización de hardware:

La virtualización de hardware consiste esencialmente en aislar el componente hardware físico del resto de componentes; de esta forma la instancia concreta instalada del sistema operativo, y las aplicaciones instaladas en el mismo, operarán de la misma forma, sea cuál sea el hardware físico sobre el que se ejecuten.

Para conseguir este objetivo las tecnologías de virtualización de hardware implementan una capa de software que crea una máquina virtual, o VM (Virtual Machine), que emula un equipo físico.

Esta máquina virtual opera a un nivel tan bajo que la mayor parte del software (Sistema operativo, aplicaciones...) lo perciben como un equipo físico real, con hardware real.

El hardware que presenta la máquina virtual es siempre el mismo, independientemente del hardware físico real subyacente, de esta manera se consigue la independencia total del sistema operativo virtualizado sobre el hardware real.

La virtualización de hardware es la más extendida y la más conocida de las tecnologías de virtualización, y ello se debe a que además de independizar al sistema operativo del hardware físico, la virtualización de hardware tiene otra enorme ventaja: la posibilidad de ejecutar más de un sistema operativo simultáneamente sobre un único equipo.

Esta capacidad es una de las claves fundamentales de la reducción de costes de TCO que promete a las empresas el uso de entornos IT virtualizados.


Figura 3.- Ejecución de una aplicación con virtualización de hardware

En función de en dónde se lleve a cabo la virtualización de hardware se habla de virtualización de servidores y virtualización de clientes.

 Conceptualmente la diferencia fundamental entre ambas es el uso primordial al que están destinadas.

La virtualización de clientes normalmente se refiere a la creación de una máquina virtual en el mismo puesto de trabajo en que va a ser usada. Normalmente tiene como función la resolución de problemas de compatibilidad entre el sistema operativo de la máquina física y aplicaciones que se deben ejecutar. Para evitar estos problemas en el propio puesto de trabajo se crea una máquina virtual con el sistema operativo adecuado para evitar conflictos con la aplicación.

Nota: el sistema operativo Windows 7 dispone de una estructura de virtualización de cliente integrada en el propio sistema y precisamente orientada a la resolución de problemas de compatibilidad; se denomina "XP Mode".

Otro escenario habitual de uso de este tipo de virtualización de hardware es para realizar pruebas (desarrolladores de software, personal IT...).

La virtualización de servidores está fundamentalmente orientada hacia la consolidación de hardware en sistemas IT y centros de datos.

 Su objetivo es maximizar el aprovechamiento de los recursos físicos de los servidores corporativos ejecutando múltiples máquinas virtuales simultáneamente.

Las máquinas virtuales alojadas en un servidor pueden estar destinadas a usarse a su vez como servidores de servicios específicos, como puestos de trabajo que forman parte de una estructura de escritorio virtualizado, como equipos de pruebas...

Entre las soluciones y productos de Microsoft que ofrecen la posibilidad de usar virtualización hardware están Microsoft Hyper-V Server 2008 R2, el rol de Hyper-V de Windows Server 2008 R2, Microsoft Virtual PC y "XP mode" (basado en Virtual PC).

ii) Virtualización de la presentación:

La virtualización de la presentación consiste esencialmente en aislar el componente interfaz de aplicación del resto de componentes (hardware físico, sistema operativo e instancia de aplicación); de esta forma la instancia concreta de la aplicación puede ser accedida desde cualquier dispositivo físico con cualquier sistema operativo y aunque no tenga la aplicación instalada.

La virtualización de la presentación se consigue mediante la virtualización de sesiones de trabajo. Dichas sesiones se crean y ejecutan en el contexto de hardware y sistema operativo de un equipo (normalmente un servidor) que implementa un componente de software que es capaz de entregar la salida correspondiente a la ejecución de las aplicaciones a equipos remotos.

Las sesiones pueden incluir un escritorio completo de trabajo, con varias aplicaciones ejecutándose simultáneamente, o limitarse exclusivamente a una única aplicación, lo que se denomina RemoteApp.

El acceso y la interacción a estas sesiones se realiza mediante el protocolo de red RDP (Remote Desktop Protocol), usado de manera extensa desde hace tiempo en las soluciones de tipo Terminal Server.


Figura 4.- Virtualización de la presentación

La solución de Microsoft para la virtualización de la presentación (virtualización de sesiones) se llama servicios de escritorio remoto, o Remote Desktop Services (RDS).

iii) Virtualización de aplicaciones:

La virtualización de las aplicaciones consiste en aislar el componente "lógica de la aplicación" del componente sistema operativo.

El objetivo de esta virtualización es conseguir que las aplicaciones puedan funcionar correctamente con independencia de las características concretas del entorno software en el que se ejecutan. De esta manera se eliminan los problemas de compatibilidad entre aplicaciones, o entre componentes de aplicaciones, y otros errores típicos de la ejecución concurrente de aplicaciones.

Otros tipos de virtualización, como la de hardware o la de presentación, pueden resolver problemas de compatibilidad de aplicaciones con sistemas operativos, la virtualización de aplicaciones se usa para resolver problemas de incompatibilidad entre aplicaciones que deben ejecutarse en el mismo entorno hardware y de sistema operativo.

La virtualización de aplicaciones no virtualiza la presentación, es decir, el usuario sigue interactuando directamente con el equipo en el que se ejecuta la aplicación virtualizada.

Para conseguir su objetivo la virtualización de aplicaciones crea un entorno específico de ejecución para cada instancia de aplicación.

 Cualquier recurso que la aplicación vaya a necesitar (dlls, claves de registro, controles ActiveX...) está disponible de manera exclusiva para ella.


Figura 5.- Virtualización de aplicaciones

La solución específica de Microsoft para la virtualización de aplicaciones se llama Microsoft Application Virtualization, o App-V.

En principio la tecnología RemoteApp, que es una tecnología de virtualización de la presentación, también podría considerarse como una solución de virtualización de aplicaciones, aunque con ciertas limitaciones.

 Así por ejemplo RemoteApp puede solucionar problemas de incompatibilidad entre aplicaciones instaladas en el entorno físico del usuario y aplicaciones virtualizadas, pero no resolverá problemas entre aplicaciones en conflicto que tengan que convivir en el mismo servidor de virtualización de presentación desde el que las acceden los usuarios.

iv) Virtualización de perfiles:

La virtualización de perfiles, también llamada virtualización de estado de usuario (User state virtualization), consiste en aislar los componentes configuración y datos de usuario, del componente sistema operativo (y por lo tanto del componente hardware físico).

De esta manera se consigue que los datos de usuario y los datos de configuración de sistema y aplicación estén disponibles desde cualquier dispositivo y sistema operativo desde el que se desee usarlos.

Para conseguirlo la virtualización de perfiles traslada la estructura local de carpetas donde normalmente el sistema operativo almacena la información de configuración de usuario, y donde por defecto se almacenan los datos de usuario, a una ubicación externa, para que pueda ser accedida y usada desde cualquier otro equipo / sistema operativo.

Tres son las tecnologías de Microsoft que se usan para implementar la virtualización de perfiles: perfiles móviles de usuario, redirección de carpetas, y archivos sin conexión (offline files).

v) Virtualización de escritorio:

Conceptualmente la virtualización de escritorio se puede definir como el aislamiento del entorno de ejecución de aplicaciones y servicios de un usuario o sistema.

En realidad la virtualización de escritorio no es una tecnología más de virtualización, sino un conjunto de ellas, incluyendo muchas de las mencionadas en puntos anteriores, ya que el objetivo de conseguir un entorno de ejecución de aplicaciones y servicios independientes se puede conseguir de muchas maneras, y en diferentes grados.