Download Virtualization and the Cloud
Document related concepts
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.