Download Virtualization and the Cloud

Document related concepts

Hipervisor wikipedia , lookup

Máquina virtual wikipedia , lookup

Microsoft Virtual Server wikipedia , lookup

Servidor virtual privado wikipedia , lookup

VMware ESXi wikipedia , lookup

Transcript
255
Virtualization and the Cloud
Reference:http://www.edn.com/design/wirelessnetworking/4421896/Virtualization-and-the-Cloud-A-Tutorial-Part-I
En esta unidad brevemente describiremos qué es virtualización y cómo
la virtualización ha hecho posible los servicios en la nube.
Si fuéramos a definir lo que es virtualización podríamos decir que es la
abstracción de recursos físicos en unidades lógicas. Por ejemplo, un solo
recurso físico puede aparecer como muchas unidades lógicas, y
múltiples recursos físicos pueden aparecer como una sola unidad lógica.
El objetivo principal de la virtualización es que los usuarios no vean las
características físicas y los detalles irrelevantes de los recursos físicos.
De esta forma cada usuario se lleva la ilusión de ser el único usuario del
recurso físico (i.e. one-to-many virtualization), o múltiples recursos
físicos son percibidos por el usuario como un solo recurso virtual (manyto-one virtualization).
256
One-to-Many Virtualization
Consideremos el ejemplo típico de la virtualización de un server x86 en
donde el software, conocido como virtual machine monitor (VMM) o
hypervisor, permite que múltiples virtual machines (VM) corran en el
mismo server físico.
Cada virtual machine (VM) crea un ambiente de sistema operativo
separado que emula una computadora física. La habilidad para correr
múltiples VMs permite que ahora la misma computadora física puede
ser la sede de múltiples sistemas operativos, y cada sistema operativo
opera bajo la ilusión o percepción de que es el único sistema operativo
en dicha computadora o server. De esta forma una máquina física ha
sido efectivamente dividida en varias máquinas lógicas.
Los VLANs son otro ejemplo del one-to-many virtualization, en donde
una sola red física ha sido partida o segmentada en muchas redes
lógicas. En vez de instalar y establecer una red física para cada grupo de
usuarios, la misma infraestructura de red física sirve para darle servicio a
múltiples grupos de usuarios en donde cada grupo de usuarios cuenta
con su propia VLAN.
257
Many-to-One Virtualization
El ejemplo clásico del many-to-one virtualization es el de un
balanceador de carga que se proyecta o aparenta estar al frente de un
grupo de Web servers. Tal y como muestra la siguiente figura, el
balanceador de carga esconde los detalles asociados con los múltiples
Web servers que brindan determinado servicio y el usuario se lleva la
impresión o la ilusión de que tan sólo existe un solo virtual IP (VIP).
Los Web clients que se conectan al VIP para obtener los servicios
deseados se llevan la ilusión de que tan sólo existe un Web server. En
este caso, muchos Web servers físicos aparentan ser un solo Web server
lógico (i.e. many-to-one).
258
Historia de la Virtualización
El concepto de la virtualización data de la década del 1960. IBM
implementó la virtualización para segmentar sus mainframes en
máquinas virtuales apartes. Esta segmentación le permitía a dichos
mainframes simultáneamente correr múltiples aplicaciones y procesos,
lo que hacía al mainframe más eficiente y desde el punto de vista
económico, más fácil de justificar su adquisición. En esa época los
usuarios utilizaban “dumb terminals” para accesar el mainframe, y toda
la computación, de todos los usuarios, se hacía en el mainframe. Tan
grande fue el dominio de este mercado por parte de IBM que a IBM se le
conocía como “Big Blue”.
Una vez aparecen y proliferan las PCs de bajo costo la necesidad de
utilizar la virtualización declinó. Además, se popularizó la arquitectura
cliente/servidor en donde una PC (con CPU) accesaba un servidor para
obtener determinada información, pero el procesamiento se realizaba a
nivel local en la PC del cliente. Esto es, se popularizó la computación
distribuida.
Además, proliferaron los servers de arquitectura x86 bajo los sistemas
operativos de Windows y de Linux los cuales no habían sido diseñados
con la virtualización en mente. Para poder virtualizar los servers de
arquitectura x86 software especializado conocido como hypervisor fue
desarrollado por compañías como WMware, Citrix, Microsoft, y otros.
El término virtualización ha evolucionado más allá de la virtualización
de servidores y hoy en día se usa en un contexto mucho más amplio.
Hoy en día virtualización representa un proceso que ha sido removido de
su ambiente operacional físico y encuentra aplicaciones en múltiples
259
áreas de la tecnología de la información (i.e. IT o information
technology). Entre dichas áreas podemos listar: almacenamiento, redes,
aplicaciones, servicios, desktops, etc. A continuación examinaremos con
más detalle la virtualización de los servers.
260
Server Virtualization
Esta es la forma más popular de la virtualización. Como vimos
anteriormente, es un tipo de one-to-many virtualization.
Bajo el server virtualization software de bajo nivel (hypervisor o VMM)
permite que múltiples sistemas operativos corran simultáneamente en
una sola computadora. Cada sistema operativo con sus correspondientes
aplicaciones corre completamente aislado de los otros sistemas
operativos como una máquina virtual encima del hypervisor creando la
ilusión de que es el único sistema operativo corriendo en dicha máquina
física.
Para poder virtualizar el sistema y permitir que múltiples máquinas
virtuales corran simultáneamente en el mismo server, hypervisors
dividen y comparten en forma dinámica los recursos físicos disponibles,
tales como CPU, memoria, periferales, etc. La funcionalidad del
hypervisor varía dependiendo de la arquitectura y la implementación.
Veamos ahora las razones económicas que propiciaron la virtualización
de los servers. Durante años las corporaciones se mantuvieron operando
muchos servers para albergar distintas aplicaciones y servicios en sus
centros de data (data centers). Generalmente cada server era dedicado a
una tarea o servicio específico. Gracias a los avances tecnológicos, cada
año los servers fabricados contaban con microprocesadores más
poderosos. Como consecuencia de esto, las corporaciones comenzaron a
darse cuenta que cada server era sub-utilizado. Muchas veces contaban
con servers dedicados a determinada aplicación o servicio, pero su CPU
tan sólo era utilizado en un 10 ó 20 porciento. Esta situación se convirtió
en un gran desperdicio de recursos.
261
La virtualización resolvió este problema. Con la virtualización una sola
plataforma física era suficiente para consolidar varios servers. Como
resultado, con menos servers las corporaciones fueron capaces de
proveer el mismo servicio que antes de la virtualización les hubiera
requerido contar con un mayor número de servers.
Al lograr reducirse el número de servers gracias a la virtualización, el
consumo de potencia, el espacio requerido y la potencia disipada en
forma de calor disminuyó. Un server virtualizado generalmente consume
menos potencia, ocupa menos espacio y libera menos calor al ambiente
que múltiples servers en donde no se aplique la virtualización. Entre
otras ventajas, en términos de la utilización de energía, la virtualización
contribuyó a hacer el data center un edificio “más verde”.
Hay dos arquitecturas de implementación para la virtualización de los
servers:
1) Hosted Virtualization
El hypervisor corre como una aplicación del sistema operativo del
server. Luego, múltiples sistemas operativos corren como
máquinas virtuales encima del hypervisor. En este caso a dicho
hypervisor también se le conoce como hypervisor tipo 2. Como
ejemplos de esta arquitectura podemos mencionar Microsoft
Virtual Server y VMware server, VMware Workstation y el
Microsoft Virtual PC
2) Bare Metal Virtualization
Bajo esta arquitectura el hypervisor corre directamente en el
hardware del server. Múltiples sistemas operativos corren encima
de este hypervisor. A esta arquitectura se le conoce como
hypervisor tipo 1. Entre los productos comerciales bajo esta
262
arquitectura se encuentran Citrix XenServer, VMware Linux KVM
y Microsoft Hyper-V.
La siguiente figura muestra las dos arquitecturas, tipo 1 y tipo 2.
La arquitectura tipo 1 generalmente es más eficiente que la arquitectura
tipo 2 pues tiene acceso directo al hardware. Por ejemplo, en la
arquitectura tipo 1 o bare metal cualquier solicitud emitida por
cualquiera de los sistemas operativos tiene que pasar por menos capas de
software. Por otro lado, los hypervisors tipo 2 al correr o ejecutar encima
de un sistema operativo como Microsoft Windows o Linux Red Hat
permiten operar un mayor número de distintas plataformas y dispositivos
de input/output (I/O). A esta flexibilidad se debe que los hypervisors
tipo 2 sean los más populares entre clientes como PCs, laptops y tabletas
en donde la capacidad para poder operar una gran cantidad de
dispositivos de I/O es una de las más valiosas especificaciones.
En un server podemos virtualizar el CPU, la memoria y el I/O.
Se espera que en el 2014-2015 Intel comience a mercadear un
microprocesador especialmente diseñado para que mediante la
virtualización le permita a una PC, laptop o tableta simultáneamente
263
correr el sistema operativo Windows y el sistema operativo Android. De
esta forma la PC, laptop o tableta podrá contar con todas las aplicaciones
diseñadas para Windows así como todas las aplicaciones diseñadas para
Android.