Tema 5
Tema 5
Tema 5
Las tecnologías de virtualizació n de hardware permiten compartir una máquina física (MF), entre
mú ltiples plataformas aisladas llamadas máquinas virtuales (MV) para mejorar la utilizació n de los
recursos. Se pueden lograr mejoras adicionales en la utilizació n de los recursos y la reducció n en el
consumo de energía mediante la consolidación de MV en MF. La consolidació n de MV’s es una técnica
que se basa en la migració n de MV en vivo para consolidar má quinas virtuales, en un conjunto
reducido de MF. De este modo, permite que algunos de los MFs infrautilizados se migren a un modo de
bajo consumo para ahorrar energía. La consolidació n de servidores es un enfoque para el uso
eficiente de los recursos de los servidores, con el objetivo de reducir el nú mero total de servidores o
ubicaciones de servidores que una organizació n necesita..
Consolidació nfísica.
Re-hosting.
Consolidació nló gica.
4. Consolidación física
1
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
5. Re-hosting
Beneficios:
Como punto negativo a tener en cuenta hay que asegurarse que el sistema destino es compatible con
el sistema origen. Si no fuera así, se puede incurrir en costes de adaptació n del sw, mediante la
realizació n de có digo a medida por ejemplo. (Migració n de datos, migració n de có digo, etc)
6. Consolidación lógica
Los servidores individuales a menudo se configuran en islas de servidores individuales, con un 40%
o má s de espacio libre para permitir cambios en la carga de trabajo y el crecimiento. Con la
consolidació n ló gica, se pueden establecer particiones duras para el sistema operativo, la aplicació n,
los procesadores y los requisitos de memoria para que estas islas individuales del servidor, se agrupen
en un solo servidor o clúster.
Como contrapartida comentar que las particiones duras requieren de administración manual.
7. Ejemplos de consolidación
2
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
Condicionantes:
Condicionantes:
¿Qué cosas no se han tenido en cuenta en este ejemplo y que sí se deben tener en cuenta en la
prá ctica?
8. Virtualización
3
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
Es una técnica, que mediante el uso de un software, posibilita la ejecución de una o más máquinas o
PC ́s virtuales sobre una ú nica má quina física. Cada má quina virtual tiene asignados, de forma
independiente al resto, un conjunto de recursos de hardware (procesador, memoria, disco rígido,
red, dispositivos de E/S) y ejecuta su sistema operativo (Linux, Solaris o Windows). Por lo tanto cada
má quina virtual es totalmente independiente como si de equipos físicos se tratara.
Dicho de otra manera, se refiere a la abstracción de los recursos de una computadora, llamada
Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de abstracció n entre el hardware de
la máquina física (host) y el sistema operativo de la máquina virtual (virtual machine, guest),
dividiéndose el recurso en uno o má s entornos de ejecució n.
9. Selección de SW de virtualización
4
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
Si bien existen muchas plataformas vamos a tomar las que son consideradas má s comunes:
Virtualbox: Como producto de virtualizació n entre plataformas más popular del mundo, Oracle
VM VirtualBox permite ejecutar varios sistemas operativos en Mac OS, Windows, Linux o
Oracle Solaris.
Hiper-V: es el producto de Microsoft, que apareció en el añ o 2008, no cuenta con todas las
características de vmware, pero viene creciendo mucho.
Xen Server: Es la propuesta de Citrix, viene a ser el producto pago de Xen, y tiene varios añ os en el
mercado, siendo una alternativa interesante a los anteriores.
5
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
En la mayoría de los productos, se puede va a poder contar con una versión gratuíta, para probar su
funcionalidad y evaluar los resultados por lo que proporciona un acercamiento a este concepto.
Virtualizació n completa
Para virtualizació n
Virtualizació n de nivel de sistema operativo.
Todos comparten algunos rasgos comunes.Se pueden encontrar dos tipos de servidores: por un lado,
los servidores físicos (host) y, por otro lado, los servidores virtuales (invitados). Los servidores
virtuales se comportan como má quinas físicas, y cada sistema utiliza un enfoque diferente para
asignar recursos físicos del servidor a las necesidades del servidor virtual.
6
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
• A medida que los servidores virtuales ejecutan aplicaciones, el hipervisor retransmite recursos
desde la má quina física al servidor virtual apropiado.
12.2 Paravirtualizació n
Crea una capa de abstracción entre el sistema operativo y los discos físicos utilizados para el
almacenamiento de datos. Consiste en la agrupación del almacenamiento físico, desde mú ltiples
dispositivos de almacenamiento en red, en lo que parece ser un único dispositivo de
almacenamiento, que se administra desde una consola central.
Las redes de á rea de almacenamiento (SAN) son un tipo común de virtualizació n de almacenamiento.
La administració n de almacenamiento está centralizada.
7
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
Se muestra un ejemplo donde Contoso Corp tiene dos redes diferentes: Red de I+D y Red de ventas.
Dado que estas redes cuentan con identificadores de dominio de enrutamiento diferentes, no
pueden interactuar entre sí. Es decir, Red I+D de Contoso está aislada de Red de ventas de Contoso
aunque ambas pertenezcan a Contoso Corp. Red I+D de Contoso contiene tres subredes virtuales.
A simple vista puede parecer que no se ha ganado mucho. Al fin y al cabo solo desaparece la capa del
sistema operativo huésped, y se sustituye el hipervisor por lo que he denominado "Docker Engine".
Sin embargo las diferencias son enormes.
Docker Engine se encarga de lanzar y gestionar los contenedores con nuestras aplicaciones, pero en
lugar de exponer los diferentes recursos de hardware de la má quina de manera discreta (es decir, 1
procesador y "x" GB de RAM para cada aplicació n), lo que hace es compartirlos entre todos los
8
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
Docker funciona a partir de imágenes que se pueden reutilizar entre varias aplicaciones (en el
esquema adjunto, las aplicaciones 2 y 3 comparten el runtime). Cada una de esas imá genes se puede
asimilar a una "capa" que se puede superponer a otras para formar un sistema de archivos que es la
combinació n de todas ellas. Por ejemplo, una capa puede llevar las bibliotecas o runtimes que se
necesiten utilizar (como Node.js o PHP), otra con unas bibliotecas determinadas de las que hace uso
nuestra aplicació n, y otra capa final con el có digo de nuestra aplicació n. La combinación resultante
(una nueva imagen, ú nica para nuestra app), es lo que forma la base de nuestro contenedor.
Cuando se lanzan uno o varios contenedores a partir de una imagen, a efectos de nuestra aplicació n es
como si estuviese ejecutándose en su propio sistema operativo, aislado de cualquier otra aplicació n
que hubiese en la má quina en ese momento. Pero la realidad es que está n compartiendo el sistema
operativo "host" que hay por debajo. Un contenedor ve su propio sistema de archivos, el resultante de
"superponer" las capas de las que hablaba antes, y los recursos hardware se van asignando
dinámicamente en funció n de las necesidades, de lo cual se ocupa Docker Engine (o equivalente si se
usan otros contenedores). Es decir, Docker aísla aplicaciones, no sistemas operativos completos.
Nota: también es posible que acceda al sistema de archivos de la máquina local para persistir de
forma permanente información propia de la aplicació n, ya que si un contenedor se cierra, todos los
cambios hechos en su sistema de archivos virtual se pierden.
Como se ve, tecnologías que persiguen un fin similar, pero con enfoques totalmente diferentes.
• En primer lugar, se debe tener en cuenta que, en el caso de los contenedores, el hecho de que no
necesiten un sistema operativo completo sino que reutilicen el subyacente reduce mucho la
carga que debe soportar la má quina física, el espacio de almacenamiento utilizado y el tiempo
necesario para lanzar las aplicaciones. Por lo tanto los contenedores son mucho más ligeros que
las má quinas virtuales.
9
DATOS MASIVOS - BIG DATA— 3º E-3 ANALYTICS
TEMA 5. CONSOLIDACIÓN Y VIRTUALIZACIÓN
• Cuando definimos una má quina virtual debemos indicar de antemano cuántos recursos físicos le
debemos dedicar. La reserva es total, por eso, aunque nuestra aplicació n no haga uso en realidad
de los de RAM reservados da igual: no podrán ser utilizados por otras máquinas virtuales ni
por nadie má s. En el caso de los contenedores esto no es así. De hecho no se indica qué recursos se
van a necesitar, sino que es Docker Engine, en función de las necesidades de cada momento, el
encargado de asignar lo que sea necesario para que los contenedores funcionen adecuadamente.
• Esto hace que los entornos de ejecución de Docker sean mucho más ligeros, y que se aproveche
mucho mejor el hardware, ademá s de permitir levantar muchos má s contenedores que VMs en la
misma má quina física. Mientras que una VM puede tardar un minuto o más en arrancar y tener
disponible nuestra aplicació n, un contenedor Docker es capaz de levantarse y responder en unos
pocos segundos (o menos, segú n la imagen). El espacio ocupado en disco es muy inferior con
Docker al no necesitar que instalemos el sistema operativo completo.
Nota: Docker para Windows, paradó jicamente, utiliza una máquina virtual Linux en
segundo plano para poder ejecutar aplicaciones Linux. Los contenedores Windows se
ejecutan nativamente en Windows, claro.
Actualizació n Mayo 2019: Microsoft ha anunciado que pronto Windows incluirá de serie un
núcleo completo de Linux en WSL 2 (Windows Subsystem for Linux), por lo que será capaz
de ejecutar nativamente aplicaciones Linux y esta máquina virtual no será necesaria.
Ademá s para poder hacer despliegues avanzados de aplicaciones en contenedores hay que ir
má s allá de Docker y utilizar tecnologías como Kubernetes, que nos permiten orquestar y
controlar los despliegues con mucha partes en movimiento. Estas tecnologías pueden llegar a ser
complejas de aprender y dominar.
10