Los clusters: Tendencia en Linux
1
Qué es un cluster
El concepto de cluster Tipos de clusters
Clusters de alto rendimiento Clusters de alta disponibilidad Cluster tolerante a fallos
2
Clusters de alta disponibilidad
Qué son los clusters de alta disponibilidad "Que el servicio nunca pare" Casos de uso de los clusters de alta disponibilidad. Tipos de clusters de alta disponibilidad.
Clusters de alta disponibilidad de Apache Clusters de alta disponibilidad de samba Clusters de alta disponibilidad de (ponga aquí su servicio favorito)
3
Clusters tolerantes a fallos
Qué son los clusters tolerantes a fallos "Que si hay fallos, no se pierda nada" Casos de uso de los clusters tolerantes a fallos Tipos de clusters tolerantes a fallos.
Clusters tolerantes a fallos de disco Clusters tolerantes a fallos de red Clusters tolerantes a fallos del procesador Clusters tolerantes a fallos de (ponga aquí su recurso hardware favorito)
4
Alta disponibilidad vs. Tolerancia a fallos
En un mundo ideal, los dos vendrían juntos El mundo real es muy duro, no hay soluciones completas
Si queremos tener alta disponibilidad en algo, debemos tener algún tipo de tolerancia a fallos, y viceversa.
Es un problema de enfoque.
5
Clusters de alto rendimiento
Qué son los clusters de alto rendimiento "Que el servicio sea lo más rápido que sea posible" Casos de uso de los clusters de alto rendimiento. Usualmente buscamos el alto rendimiento en el recurso hardware que es el cuello de botella de nuestra aplicación. Tipos de clusters de alto rendimiento.
Clusters de alto rendimiento de disco Clusters de alto rendimiento de red Clusters de alto rendimiento de procesador Clusters de alto rendimiento de (ponga aquí su recurso hardware favorito)
6
Alto rendimiento vs. Alta disponibilidad
En algunos casos, se ha conseguido (LVS)
En otros, la solución depende de como se entienda el concepto de alta disponibilidad (OpenMosix)
En otros, hay que llegar a un compromiso (replicación de datos)
7
Tecnologías libres de cluster, calidad de producción
Heartbeat y IP-takeover Linux Virtual Server (LVS) Beowulf Bibliotecas paralelas (PVM, MPI) Repartidores de carga/gestores de colas batch BPROC OpenMosix Sistemas de ficheros distribuidos Soluciones por aplicación
8
Conclusión de la introducción
No hay "una solución para todo"
Identificando el problema, muchas veces tendremos una solución.
Hay soluciones a muchos problemas con calidad de producción.
9
Heartbeat, IP takeover Filosofía del heartbeat Filosofía del IP-takeover Funcionamiento local Dispara en la cabeza... Ventajas e inconvenientes:
Todo en área de usuario Funciona... ... pero muy personalizado Y casi siempre necesita tocar código No resuelve la replicación de datos (y este es su talón de Aquiles)
10
Linux Virtual Server -LVSFilosofía del Linux Virtual Server Como funciona el LVS Modos de "captura" de paquetes y de "enmascarado" LVS+Heartbeat
Ya en kernel 2.6 Años funcionando con calidad de producción sin problemas Se puede hacer LVS con casi cualquier cosa y servicio detrás... Mejor funcionamiento con muchos accesos cortos, mal funcionamiento con pocos accesos muy largos Los sockets no migran, solo se balancea la carga Un único balanceador Sensible a caidas de elementos de red
11
SUPERMICRO Full Fault tolerance module
Todo replicado Tolerante ante caídas de hardware de red Algoritmo de decisión distribuido Cualquier máquina puede repartir carga No presenta brain-splits
12
SUPERMICRO LVS Cluster
· Alto rendimiento, alta disponibilidad y tolerancia a fallos para las
aplicaciones orientadas a la red de sus clientes. · No hay ningún punto único de fallo. Ni siquiera en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen. Tiempo de recuperación ante un fallo crítico, entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el programa cliente. ·Target: ISPs, grandes empresas, organismos públicos, universidades
13
Soluciones finales de cluster Supermicro
· Soluciones ya probadas, verificadas y empaquetadas.
· Sin tiempo de desarrollo, bajo tiempo de implantación. · Garantía final de Supermicro Computer Spain. · Sin problemas de integración. · Con toda la experiencia y calidad del mejor fabricante de hardware del mercado.
14
Supermicro Web cluster
·
Alto rendimiento, alta disponibilidad y tolerancia a fallos para el servidor web Apache de sus clientes. · Mejorará el rendimiento y la disponibilidad de las aplicaciones Web y sus CGIs, en PHP, Perl o Python de sus clientes. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen. · Tiempo de recuperación ante un fallo crítico: entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el navegador web. ·Target: ISPs, grandes empresas, organismos públicos, universidades
15
Supermicro Java cluster
· Compatible con J2EE 1.4, y con EJB -Enterprise Java Beans- 3.0.
· Alto rendimiento, alta disponibilidad y tolerancia a fallos para el servidor web Apache, el servlet container y el Enterprise Java Bean (EJB) Container de sus clientes. · Mejorará el rendimiento y la disponibilidad de las aplicaciones en Java de sus clientes, y para sus páginas web de apoyo. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen. · Tiempo de recuperación ante un fallo crítico: entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el navegador web. ·Target: ISPs, grandes empresas, organismos públicos, universidades
16
Supermicro Mail cluster
· Alto rendimiento, alta disponibilidad y tolerancia a fallos para el servidor de correo de sus
clientes. · Mejorará el rendimiento y la disponibilidad del correo de sus clientes. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen. · Tiempo de recuperación ante un fallo crítico: entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el programa de correo. · Disponible en los MTA más populares del mercado: sendmail y qmail. ·Target: ISPs, grandes empresas, organismos públicos, universidades
17
Supermicro Streaming cluster
· Alto rendimiento, alta disponibilidad y tolerancia a fallos para el servidor de streaming de sus
clientes. · Mejorará el rendimiento y la disponibilidad del streaming de sus clientes. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen. · Tiempo de recuperación ante un fallo crítico: entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el reproductor del stream de video. · Disponible para los servidores de streaming más populares del mercado: videoLAN, MPEG4IP/FFmpeg o icecast. ·Target: ISPs, cadenas de televisión y de radio
18
Supermicro MySQL cluster
· Alto rendimiento, alta disponibilidad y tolerancia a fallos para los servidores MySQL de sus clientes. · Cuantos más servidores incluya, más aumentará el rendimiento de las base de datos. · Funciona tanto con tablas MyISAM como con tablas InnoDB. Clusterización transparente a las aplicaciones: no es necesario reescribir su aplicación LAMP para emplear este cluster. ·Taret: ISPs, empresas, organismos públicos, universidades: cualquiera que emplee MySQL en el día a día.
19
Supermicro LAMP cluster
· LAMP es la plataforma más popular en la actualida de desarrollo de aplicaciones Web. · Alto rendimiento, alta disponibilidad y tolerancia a fallos para los servidores web Apache y para las base de datos MySQL de sus clientes. · Mejorará el rendimiento y la disponibilidad de las aplicaciones LAMP, estén basadas en PHP, en Perl o en Python. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen.
20
Supermicro LAMP cluster
·Tiempo de recuperación ante un fallo crítico, entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el navegador web. ·Cuantos más servidores incluya, más aumentará el rendimiento de las bases de datos de sus clientes. · Funciona tanto con tablas MyISAM como con tablas InnoDB. · Clusterización transparente a las aplicaciones: no es necesario reescribir la aplicación LAMP para emplear este cluster. ·Target: ISPs, empresas, organismos públicos, universidades: cualquiera que emplee aplicaciones LAMP.
21
Supermicro LAMJ cluster
·Compatible con J2EE 1.4, y con EJB -Enterprise Java Beans- 3.0. · Alto rendimiento, alta disponibilidad y tolerancia a fallos para el servidor web Apache, el servlet container, el Enterprise Java Bean (EJB) Container y la base de datos MySQL de sus clientes. · Mejorará el rendimiento y la disponibilidad de las aplicaciones en Java de sus clientes, sus páginas web de apoyo y la base de datos MySQL empleada. · No hay ningún punto único de fallo. Ni en la lógica de red: se pueden poner varios switchs, los servidores enrutarán por los que funcionen.
22
Supermicro LAMJ cluster
·Cuantos más servidores incluya, más aumentará el rendimiento de su base de datos.
·Funciona tanto con tablas MyISAM como con tablas InnoDB.
· Clusterización transparente a las aplicaciones: no es necesario reescribir su aplicación LAMJ para emplear este cluster. · Tiempo de recuperación ante un fallo crítico, entre unos pocos segundos y menos de un minuto. Y no siempre el fallo es detectable por el navegador web. ·Target: ISPs, empresas, organismos públicos, universidades: cualquiera que emplee aplicaciones LAMP.
23
B eo w u l f
Cluster "pon las máquinas juntas, y ya está" El mérito fue atreverse a hacer público que se utilizaba Linux en supercomputación. Comunidad de desarrollo de gran cantidad de código para clustering. Ventajas e inconvenientes:
24
Supermicro Beowulf clusters
·El cluster de alto rendimiento más estandarizado y común. · Compatible con arquitecturas de 32 bits y 64 bits -AMD64, Itanium-. ·Compatible PVM y MPI. · Aún más rendimiento a las aplicaciones paralelas de sus clientes, a un precio muy competitivo. ·Target: grupos de investigación
25
Clusters SSI
El primer paso fue el soporte multiprocesador -SMPDespués el soporte NUMA Finalmente, el soporte SSI
OpenSSI (congelado) MOSIX (no libre) OpenMosix
26
MOSIX
Comenzado en 1977 por Amnon Barak para el PDP-11/45 Varias encarnaciones En 1999 es liberado A mediados del 2002, vuelve a ser código cerrado.
27
El fork
Moshe Bar (área de kernel) David Santo (herramientas de área de usuario) Colaboradores de muy alto nivel: Muli Ben-Yeruda (Mulix) Código con muchos errores. Herramientas de área de usuario inutilizable.
28
Hoy en día
Area del Kernel funcional Herramientas de área de usuario terminadas Nuevas características Miles de nuevas instalaciones. Soportado por consultoras de software.
29
Hoy en día
Único sistema SSI libre que funciona El cluster completo se comporta casi como un sistema NUMA Migración transparente de procesos
No es necesario reprogramar las aplicaciones para aprovechar el cluster
Algoritmo basado en cálculo de costos Ya es sólido y estable
30
Migración transparente de procesos
Podemos mover a un proceso de un nodo a otro sin que se de cuenta.
El proceso nunca sabe en que nodo realmente se está ejecutando.
El proceso, cuando accede al sistema, lo hace en su nodo de lanzamiento original.
Todo esto lo podemos hacer sin necesitar recompilar la aplicación: cambiar el kernel, y utilizar nuestras aplicaciones de siempre.
31
Equilibrado automático de carga
Las aplicaciones se ejecutarán donde el aprovechamiento del cluster sea óptimo.
Aunque una aplicación en especial no migre, el sistema intentará migrar las otras.
El algoritmo es dinámico, adaptativo y descentralizado. No hay un "nodo maestro" que reparte carga.
32
Memory ushering
No más "trashing"
Si una aplicación se queda sin memoria, migra a donde tenga memoria.
Lo lanza el gestor de memoria.
33
Tecnología OpenMosix
Alta y baja de nodos en caliente Control descentralizado Algoritmo basado en cálculo de costos (ejemplo) Migra el área de usuario, el área de kernel se queda en el nodo raiz El problema de los sockets y de la escritura en disco
34
Tecnología OpenMosix limitaciones
Hay que mantener tantas máquinas como nodos tenga el cluster.
Cada máquina da tanto trabajo de administrar como un servidor principal.
Calibración inicial compleja. Costo total de propiedad alto.
35
SUPERMICRO OpenMosix cluster
Nodo central en el que se lanzan todos los procesos.
Nodos satélite que ejecutan parte de las tareas el nodo principal, cuando este está saturado.
Nodo central: configuración estándar.
Nodos satélite: sin disco, traen un kernel de Linux y un miniproceso inicial.
Los nodos satélite no tienen bibliotecas instaladas. Todo lo necesario para funcionar lo tienen en RAM.
36
SUPERMICRO OpenMosix cluster - ventajas
Hay que mantener una única máquina.
Los nodos satélite, al no tener nada más que un kernel que cargan por PXE, no tienen nada que mantener.
Precalibrado para hardware Supermicro.
Costo total de propiedad muy bajo -un cluster de 100 máquinas como una única máquina-.
Target: Universidades, grupos de investigación
37
SUPERMICRO compiler cluster
· Compilación a gran velocidad los proyectos en C o C++ de sus clientes, a pesar de ser muy grandes. · Sistema SSI: todo el cluster se ve como una única máquina. · Transparente al compilador: todo se realiza en área de kernel. · Migración de procesos: según se sobrecargue el servidor, las máquina satélite asumirán parte de la carga de cómputo. · TCO bajo: independientemente del número de nodos que tenga el cluster, todo el cluster se administra como una única máquina.
38
SUPERMICRO compiler cluster
· Compilación distribuida transparente: su cliente no tendrá que modificar nada en su programa o en sus Makefiles para paralelizar la compilación. · Disponible con varios programas de apoyo a la compilación distribuida: icecream/ccache o distcc/ccache. ·Target: Universidades, centros de investigación
39