• No se han encontrado resultados

Virtualización Completa

In document Virtualización y green IT (página 102-107)

CAPITULO 4 – VIRTUALIZACION

4.7. Virtualización Completa

La virtualización completa, también conocida como “Accelerated Virtualization” (virtualización acelerada) o “hybrid virtualization” (virtualización hibrida) proporciona una emulación suficiente de la plataforma subyacente de tal forma que un sistema operativo invitado y un conjunto de aplicaciones se pueden

ejecutar sin ser modificadas y sin saber que su plataforma está siendo virtualizada. Dicho de otra manera,

el sistema operativo invitado no es modificado y cree que se está ejecutando en el mismo hardware que el sistema operativo anfitrión.

Esto significa que la máquina virtual simula un hardware suficiente para permitir un sistema operativo

“huésped” sin modificar (diseñado para la misma CPU) para ejecutarse de forma aislada. Las instrucciones

binarias son traducidas en bloque: la mayoría se ejecuta directamente en el hardware, pero las instrucciones privilegiadas deben ser ejecutadas por un monitor de máquinas virtuales (Virtual Machine Monitor, VMM) o hipervisor (hypervisor), que se ejecuta en modo supervisor, ya que la máquina virtual se ejecuta en modo usuario. Generalmente, muchas instancias pueden correr al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM.

Se puede afirmar que es una técnica de virtualización para proporcionar cierto tipo de entorno de máquina virtual, es decir, que es una simulación completa del hardware subyacente. [68] La virtualización completa requiere que todas las características sobresalientes del hardware sean reflejadas en una de las varias máquinas virtuales; incluyendo el juego de instrucciones completo, entrada y salida de las operaciones, interrupciones, acceso a memoria, y demás elementos que son utilizados por el software que se ejecuta en la máquina pelada y que está destinado para funcionar en una máquina virtual. En este entorno, cualquier software capaz de ejecutarse en el hardware físico se puede ejecutar en la máquina virtual y en particular, cualquier sistema operativo. La prueba evidente de la virtualización es si un sistema operativo destinado a uso independiente puede ejecutarse en una máquina virtual exitosamente. Otras formas de virtualización de plataforma permiten que solo cierto software o modificados funcionen en una de ellas.

FIGURA 4.5: Estructura de Virtualización Completa

Un ejemplo importante de la virtualización completa se dispuso con el programa de control de sistema de IBM operativo CP/CMS. Se demostró por primera vez con el sistema de investigación de IBM PC-40 en 1967, luego distribuido a través de código abierto en la resolución CP/CMS en 1967-1972, y re-implementado en la familia de VM de IBM desde 1972 hasta el presente. A cada usuario de CP/CMS se le proporcionó un equipo independiente simulado. Cada máquina virtual, tenía la capacidad completa de la máquina subyacente y para el usuario de la misma no se distinguía de un sistema privado. Esta simulación se completa y se basa en los principios del manual de funcionamiento del hardware. Por lo tanto, incluye elementos como el conjunto de instrucciones, la memoria principal, las interrupciones, excepciones, y el acceso al dispositivo. El resultado fue una sola máquina que puede ser multiplexada entre muchos usuarios. La virtualización completa sólo es posible dada una combinación correcta de elementos de hardware y

software. Por ejemplo, no era posible con la mayor parte de las maquina de la serie IBM System/360 con la

excepción de la IBM System/360-67, ni era posible con los primeros sistemas IBM System/370 hasta que IBM añadió hardware de memoria virtual para la serie System/370 en el año 1972.

Del mismo modo, no era posible con la plataforma x86 hasta la adición de las extensiones AMD-V e Intel VT- x en 2005-2006. Muchas máquinas de plataforma virtual para la plataforma x86 estuvieron muy cerca de la virtualización completa, incluso antes de la adiciones AMD-V e Intel VT-x. Los ejemplos incluyen Adeos, Mac-on-Linux, Parallels Desktop para Mac, Parallels Workstation, VMware Workstation, VMware Server (antes GSX Server), VirtualBox, Win4BSD, y Pro Win4Lin.

Un desafío clave para la virtualización completa es la interceptación y la simulación de operaciones privilegiadas, tales como E/S de instrucciones. Los efectos de todas las operaciones realizadas dentro de una determinada máquina virtual deben mantenerse dentro de ella , las operaciones virtuales, no se puede permitir que alteren el estado de cualquier otra máquina virtual, el programa de control o el hardware. Algunas instrucciones de máquina puede ser ejecutadas directamente por el hardware, ya que sus efectos son totalmente contenidos dentro de los elementos administrados por el programa de control, tales como posicionamiento de memoria y los registros de la aritmética.

Sin embargo, otras instrucciones que "penetran en la máquina virtual" no se les puede permitir la ejecución directa, sino que en cambio debe ser atrapadas y simuladas. Dichas instrucciones acceden o afectan la información de estado que se encuentra fuera de la maquina virtual.

Características de la virtualización completa

 El hipervisor contiene el monitor de máquina virtual (VMM).

 El Sistema operativo invitado no es modificado, por lo que los hosts puede ser cualquier tipo de hardware.

 Invitado utiliza controladores de dispositivo genéricos.

Ventajas y Desventajas

Una de las razones más comunes para la adopción de la virtualización completa es la eficiencia operativa [69]. Las organizaciones pueden utilizar el hardware existente (y las nuevas adquisiciones de hardware) de manera más eficiente, colocando más carga en cada equipo. En general, los servidores que utilizan virtualización completa pueden usar más procesamiento del ordenador y los recursos de memoria que los servidores que ejecutan una única instancia de sistema operativo y un conjunto único de servicios.

Un segundo uso común de la virtualización completa es la virtualización de escritorio, donde una sola PC está ejecutando más de una instancia del sistema operativo. La virtualización de escritorio puede ofrecer soporte para aplicaciones que sólo se ejecutan en un determinado sistema operativo. Permite que los cambios sean hechos en un sistema operativo y posteriormente, volver al estado original si es necesario, como para eliminar los cambios que afecten negativamente a la seguridad. Virtualización de escritorio también es compatible con un mejor control de los sistemas operativos para asegurar que cumplen con los requisitos de seguridad de la organización.

Dentro de las ventajas podemos mencionar la capacidad de ejecutar múltiples versiones Sistemas

Operativos de múltiples proveedores, como por ejemplo Microsoft Windows Server (en cualquiera de sus

versiones), Linux y UNIX, entre otros. Además la virtualización completa ha demostrado ser exitosa para compartir un sistema de cómputo entre varios usuarios, el aislamiento de los usuarios entre sí (y del programa de control y para emular a un nuevo hardware para lograr una mayor fiabilidad, seguridad y productividad.

La virtualización completa tiene algunas consecuencias negativas de seguridad. La misma añade capas de tecnología que puede aumentar la carga de administración de seguridad haciendo requerir controles de

seguridad adicionales. Además, la combinación de varios sistemas en un único equipo físico puede causar

un mayor impacto si se produce un problema de seguridad. De la misma forma, algunos sistemas de virtualización hacen que sea más factible compartir información entre los sistemas; esta conveniencia

puede llegar a ser un punto de ataque, si no se controla cuidadosamente. En algunos casos, los entornos virtualizados son bastante dinámicos, lo que hace que la creación y el mantenimiento de los límites de seguridad necesario sean más complejos.

Continuando con las desventajas se puede observar que las imágenes virtualizadas son instalaciones completas de sistema operativo y los archivos pueden ser muy grandes. Pueden ocurrir disparos

significativos en el rendimiento, en particular en hardware, y sumando que las operaciones de

entrada/salida intensivas de las aplicaciones pueden ser afectadas negativamente en estos entornos.

Tipos de Virtualización Completa

Existen dos formas de virtualización completa.

“Bare metal Virtualization" (virtualización de metal crudo) también conocido como "Native Virtualization" (virtualización nativa), donde el hipervisor se ejecuta directamente en el hardware subyacente, sin un sistema operativo anfitrión, pudiendo incluso ser integrado en el firmware del equipo.

"Hosted Virtualization" (virtualización alojada) el hipervisor se ejecuta sobre el sistema operativo anfitrión; sin embargo este sistema operativo anfitrión puede ser prácticamente cualquier sistema operativo común como Windows, Linux o MacOS.

Este último tipo de virtualización completa, por lo general también tiene una capa adicional de software llamada virtualización de aplicaciones, que se ejecuta en el sistema operativo invitado que provee herramientas para el control de la virtualización como la capacidad de compartir archivos con el sistema operativo anfitrión. Además también permite a los usuarios ejecutar aplicaciones como navegadores web y clientes de correo electrónico junto con la virtualización de aplicaciones hospedadas, a diferencia de las arquitecturas de metal descubierto que sólo pueden ejecutar aplicaciones en los sistemas virtualizados.

FIGURA 4.6: Diferencias entre “Bare Metal Virtualization” y “Hosted Virtualization”

Los servidores son virtualizados con mayor frecuencia en equipos que utilizan la virtualización nativa mientras que los escritorios son, a menudo, virtualizados en equipos usando "Hosted Virtualization". En ambos casos, cada sistema operativo invitado parece tener su propio hardware, como una computadora regular, lo cual incluye:

 CPU.  Memoria.

 Almacenamiento (disco, CD-ROM, etc.).  Controles de almacenamiento.

 Controles de Red.

 Dispositivos de visualización y sonido.  Teclado y mouse.

Decidir entre virtualización nativa o .alojada, ya sea teniendo o no un sistema operativo anfitrión, es una decisión importante de operatividad y seguridad. La adición de un hipervisor en la parte superior de un sistema operativo anfitrión añade más complejidad y vulnerabilidad a la máquina. Sin embargo, un hipervisor es mucho más simple y más pequeño que un sistema operativo anfitrión, por lo que ofrece un blanco más pequeño. La elección de virtualización nativa mediante la sustitución de un sistema operativo host con un hipervisor puede mejorar la seguridad, dependiendo de qué tan bien seguro esté el hipervisor, al tiempo que añadir uno de ellos en la parte superior de un sistema operativo anfitrión tiende a aumentar el riesgo. Las organizaciones deben equilibrar la seguridad y funcionalidad a la hora de decidir si un sistema operativo anfitrión debe ser usado bajo una solución de virtualización de servidor o de escritorio. También deben reflexionar sobre que hipervisores descubiertos se ejecutarán en una gama mucho más limitada de hardware que los hipervisores alojados. Por ejemplo, los hipervisores de virtualización nativa, a menudo, trabajan con un número limitado de controladores de Ethernet y tarjetas gráficas.

Un hipervisor de virtualización completa encapsula todos los componentes de un sistema operativo

invitado, incluyendo sus aplicaciones y los recursos virtuales que utilizan, en una única entidad lógica. Una

imagen es un archivo o un directorio que contenga, como mínimo, esta información encapsulada. Las imágenes se almacenan en discos duros y pueden ser transferidas a otros sistemas de la misma manera que cualquier archivo (sin embargo se debe tener en cuenta que las imágenes implican generalmente muchos gigabytes de tamaño). Algunos sistemas de virtualización utilizan una imagen de virtualización estándar de metadatos llamada "Open Virtualization Format" (OVF) que soporta la interoperabilidad de los metadatos de la imagen y los componentes a través de soluciones de virtualización.

Un "Snapshot" (instantánea) es un registro del estado de una imagen en funcionamiento, en general,

capturado como las diferencias entre una imagen y el estado actual. Por ejemplo, una fotografía que registra los cambios en el almacenamiento virtual, la memoria virtual, las conexiones de red, y otros datos relacionados con el Estado. Las instantáneas permiten a los sistemas operativos invitados, ser suspendidos

y reanudados posteriormente sin tener que apagar o reiniciar el sistema operativo huésped. La mayoría

de los sistemas de virtualización pueden tomar instantáneas.

En algunos hipervisores, las instantáneas de un sistema operativo invitado pueden ser incluso reanudadas en un host diferente. Mientras que una serie de problemas pueden aparecerle al administrar migraciones en tiempo real, incluyendo retraso de transferencia y diferencias que pueden existir entre los dos servidores físicos (por ejemplo, dirección IP, número de procesadores o de espacio en disco duro), la mayoría de las soluciones de migraciones proporcionan mecanismos para resolver estos problemas. Si el sistema de destino usa el mismo producto de virtualización, muchas de estas cuestiones no se presentarán. Sin embargo, la migración en vivo a través de hipervisores heterogéneos puede inducir posibles errores de configuración que pueden afectar la seguridad del sistema operativo invitado.

In document Virtualización y green IT (página 102-107)