virtualización

20
VIRTUALIZACIÓN

Upload: luisjose-vereau-aguilera

Post on 30-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

.

TRANSCRIPT

Presentacin de PowerPoint

VIRTUALIZACININTRODUCCINLas empresas cuentan con servidores que se ejecutan en distintas computadoras del mismo bastidor de equipos, y todos estn conectados por una red de alta velocidad.

En algunos casos, todos estos servidores se ejecutan en mquinas separadas debido a que una sola mquina no puede manejar la carga.

En otros casos la razn principal para no ejecutar todos estos servicios como procesos en la misma mquina es la confiabilidad.

Al colocar cada servicio en una computadora separada, si falla uno de los servidores los dems no se vern afectados.

Aunque esto logra la tolerancia a fallas, esta solucin es costosa y difcil de administrar debido a que hay muchas mquinas involucradas.INTRODUCCINQu se debe hacer?

Se ha propuesto como solucin la tecnologa de las mquinas virtuales, que a menudo se conoce slo como virtualizacin y tiene ms de 40 aos.

Esta tecnologa permite que una sola computadora contenga varias mquinas virtuales, cada una de las cuales puede llegar a ejecutar un SO distinto.

La ventaja de este mtodo es que una falla en una mquina virtual no ocasiona que las dems fallen de manera automtica.

INTRODUCCINSin embargo si falla el servidor que ejecuta todas las mquinas virtuales, el resultado es catastrfico.

La razn por la que la virtualizacin puede funcionar es que la mayora de las fallas en los servicios no se deben a un hardware defectuoso, sino al software poco confiable y lleno de errores, en especial los SO.

Con la tecnologa de mquinas virtuales, el nico software que se ejecuta en el modo del kernel es el hipervisor, el cual tiene 100 veces menos lneas de cdigo que un SO completo, y por ende tiene 100 veces menos errores.VENTAJAS DE LA VIRTUALIZACINLa ejecucin de software en las mquinas virtuales tiene otras ventajas adems de un slido aislamiento.

Al tener menos mquinas fsicas hay un ahorro en hardware y electricidad.

ndices de utilizacin ms altos. Antes de la virtualizacin, los ndices de utilizacin del servidor y almacenamiento en los centros de datos de la empresa rondaban menos del 50% (de hecho, del 10% al 15% de los ndices de utilizacin fueron los ms comunes).

Es mucho ms fcil migrar datos entre una mquina virtual y otra que migrar procesos que se ejecutan en un SO normal. VENTAJAS DE LA VIRTUALIZACINPara ejecutar aplicaciones heredadas en los SO que ya no tienen soporte o que no funcionan en el hardware actual.

El desarrollo de software es otro uso importante de las mquinas virtuales.

Ahorros de espacio. La virtualizacin puede aliviar la expansin del centro de datos mediante la consolidacin de muchos sistemas virtuales en menos sistemas fsicos.

Costos de operacin reducidos. La empresa promedio gasta $8 dlares en mantenimiento por cada $1 dlar invertido en nueva infraestructura. La virtualizacin puede reducir la carga total de trabajo administrativo, y cortar el total de costos de operacin.

Requerimientos para la virtualizacinHay dos mtodos para la virtualizacin.

Hipervisor de tipo 1 (o monitor de mquina virtual).

En realidad es el SO, ya que es el nico programa que se ejecuta en modo kernel.

Su trabajo es soportar varias copias del hardware actual, conocidas como mquinas virtuales, de una manera similar a los procesos que soporta un SO normal.

Requerimientos para la virtualizacin

Requerimientos para la virtualizacinHipervisor de tipo 2

Es slo un programa de usuario que se ejecuta en Windows o Linux e interpreta el conjunto de instrucciones de la mquina, el cual tambin crea una mquina virtual.

Los trozos de cdigo se procesan de cierta forma para despus colocarlos en la cach y ejecutarlos directamente para mejorar el rendimiento, pero la interpretacin completa funcionara en principio, aunque con lentitud.

Requerimientos para la virtualizacin

Requerimientos para la virtualizacinEl SO que se ejecuta encima del hipervisor en ambos casos se denomina SO invitado.

En el caso de un hipervisor de tipo 2, el SO que se ejecuta en el hardware se denomina sistema operativo anfitrin.

En ambos casos las mquinas virtuales deben actuar justo de igual forma que el hardware real.

Debe ser posible iniciarlas como mquinas reales e instalar cualquier SO en ellas, justo como lo que se puede hacer con el hardware real. La tarea del hipervisor es brindar esta ilusin con eficiencia.

Requerimientos para la virtualizacinLa razn de que haya dos tipos de hipervisores se debe a ciertos defectos en la arquitectura del Intel 386 que se acarrearon a las nuevas CPUs durante 20 aos, para mantener la compatibilidad inversa.

Cada CPU con modo de kernel y modo de usuario tiene un conjunto de instrucciones que slo se pueden ejecutar en modo de kernel.

Popek y Goldberg (1974) desarrollaron un trabajo clsico sobre virtualizacin, en el cual a estas instrucciones les llamaron instrucciones sensibles.

Tambin hay un conjunto de instrucciones que producen una trampa (interrupcin) si se ejecutan en modo de usuario. A estas instrucciones, Popek y Goldberg les llamaron instrucciones privilegiadas.

En su artculo declararon por primera vez que una mquina se puede virtualizar slo si las instrucciones sensibles son un subconjunto de las instrucciones privilegiadas.

Requerimientos para la virtualizacinEste problema se resolvi cuando Intel y AMD introdujeron la virtualizacin en sus CPUs, empezando en el 2005.

En las CPUs Intel Core 2 se conoce como VT (Tecnologa de virtualizacin); en las CPUs AMD Pacific se conoce como SVM (Mquina virtual segura).

Ambas tecnologas se inspiraron en el trabajo de la IBM VM/370, pero tienen unas cuantas diferencias.

La idea bsica es crear contenedores en los que se puedan ejecutar mquinas virtuales.

Cuando se inicia un SO invitado en un contenedor, se sigue ejecutando ah hasta que produce una excepcin y se atrapa en el hipervisor.

El conjunto de operaciones que se atrapan se controla mediante un mapa de bits de hardware establecido por el hipervisor. Con estas extensiones, es posible utilizar el clsico mtodo de atrapar y emular de una mquina virtual.HIPERVISORES DE TIPO 1Los hipervisores de tipo 1, se ejecutan en modo de kernel.

La mquina virtual se ejecuta como un proceso de usuario en modo de usuario y, como tal, no puede ejecutar instrucciones sensibles.

La mquina virtual ejecuta un SO invitado que piensa que se encuentra en modo de kernel, aunque desde luego se encuentra en modo de usuario. A ste le llamaremos modo de kernel virtual.

La mquina virtual tambin ejecuta procesos de usuario, los cuales creen que se encuentran en modo de usuario (y en realidad as es).HIPERVISORES DE TIPO 1

HIPERVISORES DE TIPO 1Qu ocurre cuando el SO (el cual cree que se encuentra en modo de kernel) ejecuta una instruccin sensible (una que slo se permite en modo de kernel)?

En las CPUs sin VT, la instruccin falla y por lo general tambin lo hace el SO.

En las CPUs con VT, cuando el SO invitado ejecuta una instruccin sensible se produce una interrupcin en el kernel.

As, el hipervisor puede inspeccionar la instruccin para ver si el SO anfitrin la emiti en la mquina virtual, o si fue un programa de usuario en la mquina virtual.

En el primer caso, hace las preparaciones para que se ejecute la instruccin; en el segundo caso, emula lo que hara el hardware real al confrontarlo con una instruccin sensible que se ejecuta en modo de usuario.

Si la mquina virtual no tiene VT, por lo general la instruccin se ignora; si tiene VT, se atrapa en el SO invitado que se ejecuta en la mquina virtual.HIPERVISORES DE TIPO 2El proceso de crear un sistema de mquina virtual es bastante simple cuando hay VT disponible, pero qu hacan las personas antes de eso?

Sin duda, no se podra ejecutar un SO completo en una mquina virtual debido a que slo se ignoraran (algunas de) las instrucciones sensibles, y el sistema fallara.

En vez de ello, lo que ocurri fue la invencin de lo que ahora se conoce como hipervisores de tipo 2.

El primero de estos hipervisores fue VMware (Adams y Agesen, 2006; y Waldspurger, 2002), el fruto del proyecto de investigacin DISCO en la Universidad de Stanford (Bugnion y colaboradores, 1997).

HIPERVISORES DE TIPO 2Al ejecutar un programa binario del Pentium, que puede obtener del CD-ROM de instalacin o del disco virtual, primero explora el cdigo para buscar bloques bsicos; es decir, ejecuciones de instrucciones seguidas que terminan en un salto, una llamada, una interrupcin o alguna instruccin que modifica el flujo de control.

Por definicin, ningn bloque bsico contiene una instruccin que modifique el contador del programa, excepto el ltimo.

Se inspecciona el bloque bsico para ver si contiene instrucciones sensibles (en el sentido de Popek y Goldberg). De ser as, cada una de estas instrucciones se sustituye con una llamada a un procedimiento de VMware que la maneja.

Un bloque bsico que no contenga instrucciones sensibles se ejecutar con la misma rapidez bajo VMware que en la mquina bsica (ya que se est ejecutando en esa mquina).

Las instrucciones sensitivas se atrapan y emulan de esta manera. A esta tcnica se le conoce como traduccin binaria.HIPERVISORES DE TIPO 2Una vez que el bloque bsico haya completado su ejecucin, el control se regresa a VMware, que localiza a su sucesor.

Si ya se ha traducido el sucesor, se puede ejecutar de inmediato. Si no, primero se traduce, se coloca en la cach y despus se ejecuta.

En un momento dado, la mayor parte del programa estar en la cach y se ejecutar casi a la velocidad completa.

Se utilizan varias optimizaciones; por ejemplo, si un bloque bsico termina al saltar (o llamar) a otro, se puede sustituir la instruccin final mediante un salto o llamada directamente al bloque bsico traducido, con lo cual se elimina toda la sobrecarga asociada con la bsqueda del bloque sucesor.

Adems, no hay necesidad de sustituir las instrucciones sensibles en los programas de usuario; el hardware las ignorar de todas formas.

HIPERVISORES DE TIPO 2Tal vez podramos esperar que las CPUs con VT tuvieran un rendimiento mucho mayor que las tcnicas de software que se utilizan en los hipervisores de tipo 2, pero las mediciones muestran otra cosa (Adams y Agesen, 2006).

Resulta ser que el mtodo de atrapar y emular que utiliza el hardware con VT genera muchas interrupciones, y stas son muy costosas en el hardware moderno, debido a que arruinan las cachs de las CPUs, los TLBs y las tablas de prediccin de bifurcacin internas para la CPU.

Por el contrario, cuando las instrucciones sensibles se sustituyen mediante llamadas a procedimientos de VMware dentro del proceso que est en ejecucin, no se produce sobrecarga debido a este cambio de contexto.