CLUSTERS
El
término clúster (del inglés cluster, "grupo" o
"racimo") se aplica a los conjuntos o conglomerados de computadoras construidos mediante la
utilización de hardwares comunes y que se comportan como si fuesen una única
computadora.
Hoy
en día desempeñan un papel importante en la solución de problemas de las ciencias, las ingenierías y del comercio moderno.
La
tecnología de clústeres 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 clústeres 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,
un clúster 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.
Los
clústeres 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 clúster se espera que presente combinaciones de los siguientes servicios:
1.
Alto rendimiento
2.
Alta disponibilidad
3.
Balanceo de carga
4.
Escalabilidad
La
construcción de los ordenadores del clúster es más fácil y económica debido a
su flexibilidad: pueden tener todos la misma configuración de hardware y sistema
operativo (clúster
homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos
similares (clúster semihomogéneo), o tener diferente hardware y sistema
operativo (clúster heterogéneo), lo que hace más fácil y económica su
construcción.
Para
que un clúster funcione como tal, no basta solo con conectar entre sí los
ordenadores, sino que es necesario proveer un sistema de manejo del clúster, el
cual se encargue de interactuar con el usuario y los procesos que corren en él
para optimizar el funcionamiento.
CLUSTERS EN APLICACIONES CIENTIFICAS
· Se suelen caracterizar por ser aplicaciones computacionalmente
intensivas
· Sus necesidades de recursos son muy importantes en almacenamiento
y especialmente memoria.
· Requieren nodos y sistemas dedicados, en entornos HPC y HTC.
· Suelen estar controlados los recursos por planificadores tipo Maui
y gestores de recursos tipo PBS.
· Son en muchas ocasiones códigos legacy, difíciles de mantener, ya
que los dominios de aplicación suelen ser difícilmente paralelizables.
Ejemplos:
Simulaciones (earth simulator), genómica computacional, predicción
meteorológica (MM5), simulación de corrientes y vertidos en el mar,
aplicaciones en química computacional
CLUSTERS EN APLICACIONES EMPRESARIALES
· Suelen ser aplicaciones no especialmente intensivas
computacionalmente, pero que demandan alta disponibilidad y respuesta
inmediata, con lo que los servicios se están ejecutando continuamente y no
controlados por un sistema de colas
· Es usual que un sistema provea varios servicios. Una primera
aproximación para realizar una distribución del trabajo es separar los
servicios:
· Un servidor web con la BD en un nodo, el contenedor EJB en otro y
el servidor de páginas web en otro constituye un
claro ejemplo de
distribución en el ámbito empresarial.
·
Otra aproximación es instalar una aplicación web en un clúster
squid como proxy-caché, apache/tomcat como servidor :web/de aplicaciones
web, memcached como caché de consultas a la base de datos y mysql como base de
datos. Estos :servicios pueden estar replicados en varios nodos del clúster.
·
Ejemplos: flickr, wikipedia y google.
No hay comentarios:
Publicar un comentario