Virtualizacióndentro de los
Centros de cómputos
Agenda
● Virtualización de cómputo: tipos● Cluster típico vSphere● Capas● Virtualización de cómputo● Virtualización de storage● Virtualización de redes
Virtualización de cómputo: tipos
Propia del SO (Solaris containers)
● Ventajas:● Livianas● Algún aislamiento (mismo kernel
contextualizado)● Alguna gestión de recursos● Velocidad de despliegue
Desventajas:● Dificil manejo del ciclo de vida● Todos los huevos en la misma
canasta● No escalable
Total (vSphere)
Ventajas:● Aislamiento total (kernels independientes)● Gestión total de recursos● HA y LB● Velocidad de despliegue● Ciclo de vida mas simple● Escalable
Desventajas:● Pesadas● Infraestructura compleja● Mas costoso
Con el crecimiento exponencial en la potencia de las máquinas, se comenzó a gestionar el concepto de densidad: incrementar las cargas por unidad de procesamiento y en este concepto la virtualización por contextos fue también protagonista. Si bien esto permite mejorar la eficiencia, también dificulta el ciclo de vida de la infraestructura, ya que múltiples cargas sobre pocas máquinas hace que, por ejemplo, obtener una ventana de mantenimiento sea muy complejo. La virtualización dio entonces un paso adelante, y logró que mediante el uso de clusters y portabilidad de VM's, se desacoplen las capas de infraestructura y servicios, logrando así una simplificación enorme en la gestión del ciclo de vida.
Hoy en día, sin embargo, hay una especie de “vuelta atrás” hacia la virtualización por contextos, pero en este caso, es debido a que las aplicaciones fueron ganando funcionalidades de alta disponibliidad y balanceo de cargas, y es entonces que el desacople se alcanza también, pero una capa mas arriba que en la virtualización por hipervisores. Sin embargo, es importante aclarar que este escenario es posible verlo solamente en empresas muy particulares: de gran tamaño y en general, cuyos ingresos suelen estar constituídos por productos de IT.
Referencias:http://www.oracle.com/technetwork/server-storage/solaris/containers-169727.htmlhttp://en.wikipedia.org/wiki/Solaris_Containers
Caso típico: cluster vSphere
Storage
SAN1 SAN2
LAN LAN
Mundo exterior
Hipervisores
Almacenamiento
Networking
En las organizaciones de mediano y gran tamaño, es muy común hoy día encontrarse con clusters de virtualización con un diagrama básico como el que se ve en la figura: constituídos indefectiblemente, por una capa de almacenamiento (storage) compartido, una de cómputo (Hipervisores) y otra de comunicaciones (networking). Si bien naturalmente cuándo uno piensa en cluster, lo primero que le viene a la mente son los servidores, la realidad es que tanto la capa de almacenamiento, como la de networking son componentes indispensables de los mismos. Analicemos a continuación, las principales funciones de cada una, considerando siempre que la premisa fundamental de todo cluster es que los nodos miembros del mismo compartan cargas y presenten un comportamiento coordinado y colaborativo.
Capa Hipervisores
Hipervisores
Red interna
VirtualMachines
● Alta disponibilidad: independiente del SO guest.
● Balanceo de carga automático.● Mantenimiento en caliente.● Optimización de los recursos: N+1,
evitamos solapamientos de cargas.● Redundancia por defecto para todas
las cargas● Manejo de recursos “en bolsa”.● Capacity planning simplficado.● Mayor escalabilidad
Esta es la mas obvia de las capas, es la que ejecuta las cargas pero al mismo tiempo, gestiona la lógica del cluster y su sincronismo.
Dentro de los clusters solemos encontrar dos funciones bien definidas: aquellas que son propias del servicio que el cluster brinda (ejecución de cargas), en este caso la virtualización de máquinas, y las funciones que permiten que el cluster tenga un comportamiento ordenado que permita que los miembros del mismo trabajen en forma coordinada y colaborativa (sincronismo, mensajería, balanceo de carga, etc).
Referencias:http://pubs.vmware.com/vsphere-55/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-55-availability-guide.pdf
Storage: virtual por definición
Tier 2:SATA
Tier 0:SSD
Tier 1:SAS
Tie
ring
ControladoraBackend
ControladoraBackend
ControladoraFrontend
ControladoraFrontend
SAN1
SAN2
LUNCache
LUN
ClusterFS
Desde el punto de vista de los clusters, si o si, debemos contar con un almacenamiento compartido de alguna manera (SAN, NAS o filesystems distribuidos), ya que no existiría forma sino, de que los datos persistidos por las cargas, sean accedidos por todos los miembros del cluste. Imaginemos como ejemplo, un escenario de falla: si los datos no son accesibles por todos los miembros de un cluster en forma compartida, ¿como haría un nodo para ejecutar la VM de otro hipervisor que haya fallado? Por otra parte, los discos suelen ser utilizados como quorum para desempatar escenarios de incomunicación (“split brain”): si tenemos un cluster de dos nodos y se corta la comunicación entre ellos (falla de red internodos) ¿como determinan ellos si el problema es propio o ajeno (del otro nodo)?
Si hacemos foco en los storage, veremos que ellos siempre manejan conceptos de virtualización: una LUN, que para el servidor es un “disco”, no es mas que una lista de bloques disponibles para que el servidor (o servidores) interactúe con ella. Puertas adentro del storage, esa lista de bloques se mapea contra páginas que suelen estar desaparramadas en un pool, compuesto a su vez por parity groups (arreglos RAID).
Lo que se conoce como tiering, va un paso mas allá y su función es la de monitorear que cantidad de accesos tienen esas páginas, para migrarlas en forma transparente y dinámica dentro del storage, llevando a los discos mas rápidos aquellas páginas mas utilizadas, y a los discos lentos a los que no lo son.
Referencia:http://en.wikipedia.org/wiki/Logical_unit_numberhttp://www.hds.com/assets/pdf/hitachi-tiered-storage-options-design-guide.pdf
Storage 2: Virtual2
CBE
CBE
CFE
CFE
Cache
CBE
CBE
CFE
CFE
Cache
CBE
CBE
CFE
CFE
Cache
ControladoraFrontend
ControladoraFrontend
Cache
SAN1
SAN2
LUN“Portable”
ClusterFS
LUN
Hace varios años, en el mundo del storage, existe una tecnología llamada también “virtualización”, que no es mas que la posibilidad de armar una estructura jerárquica de storage, con la finalidad de tener una gestión centralizada de la capacidad de los mismos,esto nos permite, por ejemplo realizar migraciones en caliente de LUNs (“discos”) entre diferentes equipos.
Nuevamente el objetivo es desacoplar las cargas de la infraestructura que las soportan.
Referencias:http://www.snia.org/sites/default/files/sniavirt.pdf
Networking virtual: haciendo pie
● VLAN: primer aproximación● VxLAN: extendiendo desde 4096
(VLAN) a 16MM de redes lógicas virtuales.
● SDN: Vmware NSX● SDN 2.0: NVF o Cisco ACI
A B
SW Leaf SW Leaf
SW Spine
BD endpoints
Header + Data
Header 2 + Data
Header 2 + Data
Header 2 + Data
Header + Data
rew
rite
rew
rite
Uno de los primeros conceptos de virtualización que aparecieron en networking fue el de VLAN, donde los paquetes se marcaban con un ID (Tag) con un máximo de 4096, que indicaba a que “red virtual” pertenecía el mismo. Así, por un mismo puerto, se podían hacer circular múltiples redes virtuales con sus propios dominios de broadcast.
Con el correr del tiempo, y sobretodo en grandes corporaciones, se encontró que la cantidad de VLANs y su mecánica eran insuficientes, por lo que apareció el concepto de VxLAN, que busca ampliar esa funcionalidad, basándose en el uso de túneles y alcanzando los 16MM de unidades.
Está comenzando a avanzar dentro de los datacenter lo que se conoce como Software Defined Network, que transforma una red de diversos equipos activos trabajando en forma independiente (routers, switches, etc), en un único “servicio de transporte de datos”, gestionado por un controlador central. Se apoyan en el encapsulamiento (VxLAN, por ejemplo) y en la virtualización de funciones de red como firewalls, load balancers, etc.
Referencias:http://www.cisco.com/c/en/us/solutions/data-center-virtualization/application-centric-infrastructure/index.htmlhttp://www.cisco.com/c/dam/en/us/products/collateral/cloud-systems-management/aci-fabric-controller/at-a-glance-c45-729864.pdfhttp://en.wikipedia.org/wiki/Network_functions_virtualizationhttp://www.vmware.com/latam/products/nsxhttps://www.rfc-editor.org/rfc/pdfrfc/rfc7348.txt.pdfhttp://es.wikipedia.org/wiki/VLAN