Clusters

=Clústers de computadoras=

toc

= = =¿Qué es un Clúster de computadoras?= Es un conjunto de computadoras interconectadas que funcionan como un solo, utilizando varios CPU combinados para resolver ciertos problemas. Un clúster generalmente cumple con estas características: =Definición=
 * a) Consiste en muchas computadoras del mismo tipo o similar.
 * b) Unidas utilizando conexiones de red dedicadas.
 * c) Todas las maquinas comparten un directorio en común.
 * d) Deben existir confianza entre los nodos para que no sea necesario aplicar una contraseña.
 * e) Tiene un software en común para permitir que los programas corran en todos los nodos.

Según Ismael Olea(2004) un clúster es “… un grupo de equipos independientes que ejecutan una serie de aplicaciones de forma conjunta y aparecen ante clientes y aplicaciones como un solo sistema. Los clústeres permiten aumentar la escalabilidad, disponibilidad y fiabilidad de múltiples niveles de red.”.

=Tipos de Clusters=

Debido a las características que tienen existen diversos tipos de clústeres cada uno adaptándose a las necesidades del usuario.

Clústeres de alta disponibilidad.
Son diseñados para asegurar que se ofrezca un servicio constantemente, tienen la propiedad de tener redundancia de nodos que actúan como sistemas de respaldo. Estos se enfocan en resolver problemas relacionados con el marco principal en los sistemas asegurando un acceso 27/7 a los servicios.

Clústeres de balance de carga.
Funcionan circulando el trabajo entre uno o más nodos de balance que distribuyen la carga de trabajo eficientemente entre los nodos restantes activos. Son muy útiles para los lugares donde se trabaja con presupuestos reducidos para TI, unos pocos nodos administrando la carda de trabajo pueden asegurar que el poder de procesamiento sea optimizado.

Clústeres de alto rendimiento.
Están diseñados para explotar el poder de procesamiento en paralelo de múltiples nodos. Estos son más comúnmente utilizados para realizar funciones que requieren que los nodos se comuniquen entre ellos mientras realizan sus tareas. Por ejemplo cuando los cálculos de un nodo afectan a otro.

El clúster de alto rendimiento más conocido es el del proyecto SETI, que consiste en acerca de 5 millones de computadoras de los voluntarios, que prestan poder de procesamiento para el análisis de datos del observatorio de Arecibo. = = = Beneficios de los clusters de computadoras. =

Costo Reducido: El costo reducido de las computadoras de hoy en día permite que construir un clúster con mayores prestaciones sea más barato. Poder de procesamiento: El poder de procesamiento de un clúster puede en muchos casos se mas efectivo que el de una sola computadora con un poder similar. Tecnología de redes: los clúster de computadoras generalmente se comunican mediante una red de área local virtual, se distribuye por este medio rápidamente la información provocando pocos cuellos de botella.

= Escalabilidad =

La escalabilidad es la propiedad que tiene un sistema para extender su productividad o crecer sin perder la calidad. Existen dos tipos de escalabilidad en un sistema:
 * 1) a) Escalabilidad de hardware(Vertical): Es cuando se tiene un equipo con mucha capacidad para hacer frente a una gran carga de trabajo.
 * 2) b) Escalabilidad de software(Horizontal): Cuando se utiliza varios equipos con medianas prestaciones para hacer frente a una carga de trabajo.

La escalabilidad horizontal que tienen los clusters se puede comparar a los RAID de discos duros permite que un nodo pueda ser reemplazado facilmente, en cambio un sistema vertical si el computador aunque este sea mas potente si llegara a fallar no tendria quien lo reemplaze. Esto por lo tanto tambien se refleja en su disponibilidad y fiabilidad ya que muchos clusters permiten que otros nodos sean agregados sin que el sistema deje de funcionar.

Esta es la mayor ventaja que tienen los clústeres de computadoras. Mientras que los sistemas individuales tienen propiedades fijas, los clústeres pueden ser fácilmente expandidos mientras los requerimientos cambian añadiendo más nodos a la red.

= Disponibilidad =

Cuando un sistema individual falla todo el sistema falla, mientras que si un nodo en un clúster falla, sus operaciones pueden ser simplemente trasferidas a otro nodo de la red asegurando que no se interrumpa el servicio.

= Componentes de un cluster = Los clúster tienen una serie de componentes básicos para funcionar ellos son: Nodos: Pueden ser computadoras de escritorio o servidores. Sistema Operativo: Requiere de un sistema que tenga soporte multi-usuario y multi proceso. Conexiones de Red: Deben de tener una tarjeta de red dedicada, en caso de que también se comuniquen externamente deberán tener dos tarjetas de red. Middleware: Es el software que se encuentra entre el sistema operativo y las aplicaciones. Este sistema se encarga de la escalabilidad del clúster.

=Campos en los que se utilizan=

**Aplicaciones Científicas.**
Generalmente son aplicaciones que requieren mucho poder de procesamiento, su mayor requerimiento es de almacenamiento y memoria. Algunos ejemplos de estos son: Simuladores, computación genética, predicción meteorológica, simulación de corrientes marítimas y vertidos de líquidos en el mar.

**Aplicaciones Empresariales.**
Son aplicaciones que no demandan tanto poder computacional, pero que requieren de una alta disponibilidad y respuesta inmediata, los servicios se están ejecutando frecuentemente y no pasan por un sistema de colas. Algunos ejemplos seria como se manejan las consultas en google o wikipedia.

=**Algunos ejemplos de Clusters**=

**ALICE**
De las siglas de Ames Lab-ISU computing Environment, es un clúster que cuenta con 64 procesadores duales de 200 MHz. Todas las computadoras son conectadas a través de un switch, también tiene un nodo maestro, un servidor de archivos y cuatro nodos de desarrollo.

Figure 1: Clúster Alice(Fuente: http://www.scl.ameslab.gov/Projects/parallel_computing/cluster_examples.html)

**G4 Clúster**
Este clúster está compuesto por 16 computadoras de un solo procesador cada uno con 512 MB de ram y 16 computadoras de procesadores duales. Corre Black Lab Linux y está conectada mediante Fast Ethernet.



Figure 2: G4 Cluster(Fuente: [])

**Cluster del Instituto de investigación marítima de los Países Bajos(MARIN).**
Este cluster cuenta con 1184 nodos, haciéndolo uno de los más grandes en la industria marítima. Este es utilizado por ejemplo para calcular el efecto de una hélice en mar abierto en este cluster es mucho más rápido que su anterior cluster que contaba con 256 nodos. Un cálculo que tomaría nueve días en un solo nodo toma cerca de 42 minutos en 512 nodos.



Figure 3:MARIN Cluster(Fuente: [])

**Cluster de Weta Digital**
La empresa Weta Digital es una empresa que se encarga de generar los fotogramas que componen una película pero en un tiempo razonable. Weta Digital, posee un clúster de 40.000 procesadores y 104 terabytes de ram. Estos se encuentran dentro de 4000 servidores Blade Bl2x220c de HP, este cluster esta interconectado por fibra óptica. Este cluster fue en el que se crearon los fotogramas que componen la película avatar de James Cameron, en sus últimos días de producción por este cluster circulaban 8 gigabytes de datos cada segundo. Por minuto de película requería 18 gigabytes. Figure 4: Cluster de Weta Digital(Fuente http://www.information-management.com/newsletters/avatar_data_processing-10016774-1.html)}

Figure 5: Tubos de Enfriamiento por agua de clúster Weta Digital (Fuente http://www.information-management.com/newsletters/avatar_data_processing-10016774-1.html)