Laboratorio de Sistemas Distribuidos y Redes de Computadoras
Programa de Ciencias de la Computación
Universidad de Sonora
¿Qué es un Cluster?
Clusters de Galaxias
Los Clusters de Galaxias son los objetos más grandes conocidos en el Universo que están unidos por la fuerza gravitacional. Ellos constan de tres partes:
Ejemplos de algunos Clusters de galaxias
Clusters de Computadoras
El mismo término de Clusters se aplica a los conjuntos o conglomerados de computadoras, construidos utilizando componentes de hardware comunes y software libre, juegan hoy en día, un papel importante en la solución de problemas de las ciencias, las ingenierías y aplicaciones comerciales.
Los Clusters han evolucionado para apoyar actividades en aplicaciones que van desde supercómputo y software de misiones críticas, servidores Web y comercio electrónico, bases de datos de alto rendimiento.
El cómputo en Clusters surge como resultado de la convergencia de varias tendencias que incluyen, la disponibilidad de microprocesadores de alto rendimiento más económicos y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, y la creciente necesidad de potencia computacional para aplicaciones en las ciencias computacionales y comerciales.
Por otro lado, la evolución y estabilidad que ha alcanzado el sistema operativo Linux, ha contribuido importantemente al desarrollo de muchas tecnologías nuevas, entre ellas la de Clusters.
Mucha gente pensaría que las palabras "cluster" o "cluster de servidores" indican un grupo de computadoras de alto rendimiento utilizados en las investigaciones científicas. Sin embargo este es sólo un tipo de Cluster. La idea detrás del concepto de "cluster de alto rendimiento" es hacer que un número grande de máquinas individuales actúen como una sola máquina muy potente. Este tipo de clusters se aplica mejor en problemas grandes y complejos que requieren una cantidad enorme de potencia computacional. Entre las aplicaciones más comunes de clusters de alto rendimiento se encuentra el pronóstico numérico del estado del tiempo, astronomía, investigación en criptografía, análisis de imágenes, y más.
Un segundo tipo de tecnología de clusters, es el "cluster de servidores virtuales", permite que un conjunto de servidores de red compartan la carga de trabajo de tráfico de sus clientes. Al balancear la carga de trabajo de tráfico en un arreglo de servidores, mejora el tiempo de acceso y confiabilidad. Además como es un conjunto de servidores el que atiende el trabajo, la falla de uno de ellos no ocasiona una falla catastrófica total. Este tipo de servicio es de gran valor para compañías que experimental grandes volúmenes de tráfico en sus sitios Web.(Figura)
El último tipo importante de clusters, involucra el tener servidores que actúan entre ellos como respaldos vivos de la información que sirven. Este tipo de clusters se les conoce como "clusters de alta disponibilidad" o "cluster de redundancia".
Además del concepto de Cluster, existe otro concepto más amplio y general que es el Cómputo en Malla (Grid Computing). Una Malla es un tipo de sistema paralelo y distribuido que permite la compartir, seleccionar y añadir recursos que se encentran distribuidos a lo largo de dominios administrativos "múltiples" basados en su disponibilidad, capacidad, rendimiento, costo y calidad de servicio que requiere un usuario.
Si los recursos distribuidos se encuentran bajo la administración de un sistema central único de programación de tareas, entonces nos referiremos a un Cluster. En un Cluster, todos los nodos trabajan en cooperación con un objetivo y una meta común pues la asignación de recursos los ejecuta un solo administrador centralizado y global. En una Malla, cada nodo tiene su propio administrador de recursos y política de asignación.
¿Cómo funciona un Cluster?
En su parte central, la tecnología de Clusters consta de dos partes. La primera componente, consta de un sistema operativo confeccionado especialmente para esta tarea (modificaciones al kernel de Linux), un conjunto de compiladores y aplicaciones especiales, que permiten que los programas que se ejecutan sobre esta plataforma tomen las ventajas de esta tecnología de Clusters.
La segunda componente es la interconexión de hardware entre las máquinas (nodos) del Cluster. Se han desarrollado interfaces de interconexión especiales muy eficientes, pero comúnmente las interconexiones se realizan mediante una red Ethernet dedicada de alta velocidad. Es mediante esta interfaz que los nodos del Cluster intercambian entre si asignación de tareas, actualizaciones de estado y datos del programa. Existe otra interfaz de red que conecta al Cluster con el mundo exterior.
Cuando se habla de resolver un problema en paralelo, se refiere a dividir un trabajo en varias tareas que se pueden desarrollan en paralelo. Esto es lo que sucede en un Cluster de Alto Rendimiento y la solución de los problemas se termina más rápido. Por ejemplo, es más rápido pintar un edificio de 32 cuartos si se cuenta con una brigada de 8 pintores que pinten cada uno 4 cuartos, todos sincronizados a trabajar al mismo tiempo.
La tecnología de Clusters de Alto Rendimiento para Linux más conocida es el la tecnología Beowulf. Esta tecnología se desarrolló en la NASA y puede proporcionar potencial de cómputo del tipo de una supercomputadora utilizando computadoras personales sencillas. Al conectar estas entre si mediante una red Ethernet de alta velocidad, las computadoras personales se combinan para lograr la potencia de una supercomputadora. El nombre de Beowulf es tomado del nombre de un héroe de la mitología danesa relatado en el libro La Era de las Fábulas, del autor norteamericano Thomas Bulfinch (1796-1867).
Los servidores de un Cluster de Alta Disponibilidad normalmente no comparten la carga de procesamiento que tiene un Cluster de Alto Rendimiento. Tampoco comparten la carga de tráfico como lo hacen los Clusters de Balance de Carga. Su función es la de esperar listos para entrar inmediatamente en funcionamiento en el caso de que falle algún otro servidor. La característica de flexibilidad que proporciona este tipo de tecnología de Cluster, lo hacen necesario en ambientes de intercambio intensivo de información.
Los clusters de alta disponibilidad permiten un fácil mantenimiento de servidores. Una máquina de un cluster de servidores se puede sacar de línea, apagarse y actualizarse o repararse sin comprometer los servicios que brinda el Cluster. Cuando el servidor vuelve a estar listo, se incorpora al Cluster y se puede dar servicio al siguiente servidor del grupo.
Adicionalmente a los Clusters tipo Beowulf, existen las siguientes tecnologías similares:
¿Por qué construir un Cluster?
Los beneficios de construir un Cluster sería benéfico en varios aspectos en una variedad de aplicaciones y ambientes:
Por ejemplo, en la investigaciones meteorológicas y pronóstico numérico del estado del tiempo, se requiere el manejo de cantidades masivas de datos y cálculos muy complejos. Al combinar el poder de muchas máquinas del tipo estación de trabajo o servidor, se pueden alcanzar niveles de rendimiento similares a los de las supercomputadoras, pero a menor costo (pues estas requieren de hardware y software especializado muy caro, así como personal de soporte técnico dedicado) .
Otro ejemplo sería el de la situación de un sitio Web de mucho tráfico. Si no se cuenta con un plan de alta disponibilidad, cualquier problema menor de una tarjeta de red, puede hacer que un servidor quede completamente inutilizado. Pero al contar con servidores redundantes y servidores de respaldo instantáneos, se puede reparar el problema mientras el sitio funciona con el plan de respaldo, sin suspensión de servicio.
Cómputo de Alto Rendimiento: Clusters @ Top 500

Evolución del Rendimiento de Computadoras de Alta Velicidad
Entre los primeros 5 lugares:


El último lugar
500. LG-EDS Systems, Hewlett-Packard SuperDome/HyperPlex/ 128 procesadores / Rmax=195.8 GFlops; Rpeak=282.6 GFlops, (Korea, 2001)
Clusters de Servidores Virtuales Alta Disponibilidad.
Carlos Lizárraga Celaya
Antonio Méndez Burgoin
Información y comentarios: carlos@fisica.uson.mx