jueves, 19 de febrero de 2009

Armando un Cluster

El término cluster se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen una única computadora. La tecnología de clusters ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software de misiones críticas, servidores Web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.


El cómputo con clusters surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran.


Simplemente, cluster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio.


Clusters son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez y disponibilidad comparables.


De un cluster se espera que presente combinaciones de los siguientes servicios:

  1. Alto rendimiento
  2. Alta disponibilidad
  3. Equilibrio de carga
  4. Escalabilidad

La construcción de los ordenadores del cluster es más fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (cluster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (cluster semi-homogéneo), o tener diferente hardware y sistema operativo (cluster heterogéneo), lo que hace más fácil y económica su construcción.

El clustering ha estado impulsando poder detrás de muchas de las supercomputadoras científicas más poderosas del mundo durante muchos años y ahora está siendo usado cada vez más como una forma efectiva en costos, a fin de proveer computación de alta performance y disponibilidad para una amplia variedad de cargas de trabajo comerciales, tales como business intelligence, diseño de ingeniería, análisis financiero, medios digitales y exploración de petróleo.

El clustering es la práctica de conectar múltiples procesadores o servidores para cooperar en cargas de trabajo complejas como un único recurso de computación unificada. Dado que se comporta como un único gran recurso, un sistema con cluster le ofrece muchos beneficios valiosos a un entorno de e-business moderno, incluyendo:


  • Alta capacidad de procesamiento- combinando el poder de múltiples servidores, los sistemas con cluster pueden resolver cargas de trabajo grandes y complejas. Un cliente pudo reducir el tiempo para realizar trabajos de ingeniería claves de días a horas, acortando así el tiempo al mercado para su nuevo producto.
  • Consolidación de recursos- Un único cluster puede acomodar múltiples cargas de trabajo y variar el poder de procesamiento asignado a cada carga de trabajo según se requiera; esto hace que los clusters sean ideales para la consolidación de los recursos y optimicen su utilización.
  • Uso óptimo de los recursos- Los sistemas individuales generalmente manejan una única carga de trabajo y deben ser adaptados en tamaño para acomodar picos de demandas que se esperan para esa carga; esto significa que en general pueden ejecutar bien por debajo de su capacidad, pero que pueden "fallar" si la demanda excede la capacidad, aun cuando otros sistemas estén inactivos. Dado que comparten un enorme poder de procesamiento a través de múltiples cargas de trabajo, los sistemas con cluster pueden manejar un pico de demanda - asimismo uno inesperado - aumentando temporalmente el compartir el procesamiento para esa carga de trabajo, obteniendo así las ventajas de una capacidad no utilizada.
  • Consolidación geográfica del servidor - Además de la consolidación de servidores que se describe más arriba, algunos clientes también comparten poder de procesamiento en el mundo; por ejemplo, desviando el procesamiento de transacciones US diurnas a sistemas en Japón que estén relativamente inactivos durante la noche.
  • Disponibilidad 24 x 7 con protección de failovers- Dado que el procesamiento se esparce a través de múltiples máquinas, los sistemas con cluster son altamente tolerantes a fallas: si un sistema falla, los otros siguen funcionando.
  • Recuperación de desastres- Los clusters pueden abarcar múltiples sitios geográficos, de modo que aun cuando todo un sitio sea víctima de una interrupción de la alimentación u otro desastre, las máquinas remotas continuarán funcionando.
  • Escalabilidad horizontal y vertical sin tiempo de inactividad- a medida que la empresa requiera crecer, al cluster se le puede agregar poder de procesamiento adicional sin interrumpir las operaciones.
  • Administración centralizada de los sistemas- IBM ofrece herramientas que permiten el despliegue, el mantenimiento y el monitoreo de clusters grandes y distribuidos desde un único punto de control.


Beneficios de la Tecnología Cluster

Las aplicaciones paralelas escalables requieren: buen rendimiento, baja latencia, comunicaciones que dispongan de gran ancho de banda, redes escalables y acceso rápido a archivos. Un cluster puede satisfacer estos requerimien
tos usando los recursos que tiene asociados a él.

Los clusters ofrecen las siguientes características a un costo relativamente bajo:
  • Alto Rendimiento.
  • Alta Disponibilidad.
  • Alta Eficiencia.
  • Escalabilidad.

La tecnología cluster permite a las organizaciones incrementar su capacidad de procesamiento usando tecnología estándar, tanto en componentes de hardware como de software que pueden adquirirse a un costo relativamente bajo.

Clasificación de los Clusters

El término cluster tiene diferentes connotaciones para diferentes grupos de personas. Los tipos de clusters, establecidos en base al uso que se dé a los clusters y los servicios que ofrecen, determinan el significado del término para el grupo que lo utiliza. Los clusters pueden clasificarse con base en sus características. Se pueden tener clusters de alto rendimiento (HPC – High Performance Clusters), clusters de alta disponibilidad (HA – High Availability) o clusters de alta eficiencia (HT – High Throughput).

Alto rendimiento: Son clusters en los cuales se ejecutan tareas que requieren de gran capacidad computacional, grandes cantidades de memoria, o ambos a la vez. El llevar a cabo estas tareas puede comprometer los recursos del cluster por largos periodos de tiempo.

Alta disponibilidad: Son clusters cuyo objetivo de diseño es el de proveer disponibilidad y confiabilidad. Estos clusters tratan de brindar la máxima disponibilidad de los servicios que ofrecen. La confiabilidad se provee mediante software que detecta fallos y permite recuperarse frente a los mismos, mientras que en hardware se evita tener un único punto de fallos.

Alta eficiencia: Son clusters cuyo objetivo de diseño es el ejecutar la mayor cantidad de tareas en el menor tiempo posible. Existe independencia de datos entre las tareas individuales. El retardo entre los nodos del cluster no es considerado un gran problema.

Componentes de un Cluster

En general, un cluster necesita de varios componentes de software y hardware para poder funcionar. A saber:

  • Nodos (Computadores que conforman el cluster)
  • Sistemas Operativos
  • Conexiones de Red
  • Middleware
  • Protocolos de Comunicación y servicios
  • Aplicaciones
  • Ambientes de Programación Paralela

Sistemas Clusters Implementados

Google: Durante el año 2003, el cluster Google llegó a estar conformado por más de 15.000 computadores personales. En promedio, una consulta en Google lee cientos de megabytes y consume algunos billones de ciclos del CPU.

Cluster X: En la lista “TOP 500” de noviembre de 2004 fue considerado el séptimo sistema más rápido del mundo; sin embargo, para julio de 2005 ocupa la posición catorce. Cluster X fue construido en el Tecnológico de Virginia en el 2003; su instalación fue realizada por estudiantes del Tecnológico. Está constituido por 2200 procesadores Apple G5 de 2.3 GHz. Utiliza dos redes: Infiniband 4x para las comunicaciones entre procesos y Gigabit Ethernet para la administración. Cluster X posee 4 Terabytes de memoria RAM y 176 Terabytes de disco duro, su rendimiento es de 12.25 TFlops. Se lo conoce también como Terascale.



Un buen ejemplo de un cluster implementado es el que se realizo en Virginia Tech aquí les dejo un video



En el siguiente video podemos ver como instalar y usar DEINO el cual nos permite implementar un pequeño cluster con MPI.
Para poder realizar dicho cometido procederemos a ingresar a la siguiente pagina web: http://mpi.deino.net/ y procedemos a descargar la ultima
version de deinompi(DeinoMPI.1.1.0.msi), esta distrubución es para uso único en plataformas Windows pero hay diferentes distribuciones que se pueden usar en Linux y OSX









Fuente:

http://www.ibm.com/ec/systems/clusters/about/index.phtml

http://es.wikipedia.org/wiki/Cluster_(inform%C3%A1tica)

http://mmc.igeofcu.unam.mx/mmc/Cluster/Bibliografia/?C=M;O=D

1 comentario:

Angeles Hernandez dijo...

Hola Luis, me parecio interesante su espacio
y le agradeceria realizar un intercambio de enlaces
con mi web de tematica diseño web, si se encuentra de acuerdo
espero su respuesta tucontactoweb@gmail.com, muchas
gracias por su atencion

 
Made in Loja, Ecuador