Sunteți pe pagina 1din 12

Clúster (informática)

Un ejemplo de clúster en la NASA(EE. UU.)

El término clúster1 (del inglés cluster, que significa grupo o racimo) se aplica a los conjuntos o
conglomerados de ordenadores unidos entre sí normalmente por una red de alta velocidad y
que se comportan como si fuesen una única computadora.
La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde
aplicaciones de supercómputo y software para aplicaciones 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 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.

Beneficios de la tecnología clúster[editar]


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 clúster puede satisfacer estos requisitos usando los recursos que tiene asociados
a él.
Los clústeres ofrecen las siguientes características a un costo relativamente bajo:

 Alto rendimiento
 Alta disponibilidad
 Alta eficiencia
 Escalabilidad
La tecnología clúster 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 clústeres[editar]


El término clúster tiene diferentes connotaciones para diferentes grupos de personas. Los
tipos de clústeres, establecidos de acuerdo con el uso que se dé y los servicios que ofrecen,
determinan el significado del término para el grupo que lo utiliza. Los clústeres pueden
clasificarse según sus características:

 HPCC (High Performance Computing Clusters: clústeres de alto rendimiento).


 HA o HACC (High Availability Computing Clusters: clústeres de alta disponibilidad).
 HT o HTCC (High Throughput Computing Clusters: clústeres de alta eficiencia).
Alto rendimiento: Son clústeres 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 clúster por largos periodos de tiempo.
Alta disponibilidad: Son clústeres cuyo objetivo de diseño es el de proveer disponibilidad y
confiabilidad. Estos clústeres 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 clústeres 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 clúster no es considerado un gran problema.
Los clústeres pueden también clasificar en:

 clústeres de IT comerciales (de alta disponibilidad y alta eficiencia) y


 clústeres científicos (de alto rendimiento).
A pesar de las discrepancias a nivel de requisitos de las aplicaciones, muchas de las
características de las arquitecturas de hardware y software, que están por debajo de las
aplicaciones en todos estos clústeres, son las mismas. Más aún, un clúster de determinado
tipo, puede también presentar características de los otros.

Componentes de un clúster[editar]
En general, un clúster necesita de varios componentes de software y hardware para poder
funcionar:

 nodos
 almacenamiento
 sistemas operativos
 conexiones de red
 middleware
 protocolos de comunicación y servicios
 aplicaciones
 ambientes de programación paralela
Nodos[editar]
Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo. En
informática, de forma muy general, un nodo es un punto de intersección o unión de varios
elementos que confluyen en el mismo lugar. Ahora bien, dentro de la informática la palabra
nodo puede referirse a conceptos diferentes según el ámbito en el que nos movamos:

 En redes de computadoras cada una de las máquinas es un nodo, y si la red es Internet,


cada servidor constituye también un nodo.
 En estructuras de datos dinámicas un nodo es un registro que contiene un dato de interés
y al menos un puntero para referenciar (apuntar) a otro nodo. Si la estructura tiene solo un
puntero, la única estructura que se puede construir con él es una lista, si el nodo tiene
más de un puntero ya se pueden construir estructuras más complejas como árboles o
grafos.
El clúster puede estar conformado por nodos dedicados o por nodos no dedicados.
En un clúster con nodos dedicados, los nodos no disponen de teclado, ratón ni monitor y su
uso está exclusivamente dedicado a realizar tareas relacionadas con el clúster. Mientras que,
en un clúster con nodos no dedicados, los nodos disponen de teclado, ratón y monitor y su
uso no está exclusivamente dedicado a realizar tareas relacionadas con el clúster, el clúster
hace uso de los ciclos de reloj que el usuario del computador no está utilizando para realizar
sus tareas.
Cabe aclarar que a la hora de diseñar un clúster, los nodos deben tener características
similares, es decir, deben guardar cierta similitud de arquitectura y sistemas operativos, ya que
si se conforma un clúster con nodos totalmente heterogéneos (existe una diferencia grande
entre capacidad de procesadores, memoria, disco duro) será ineficiente debido a que el
middleware delegará o asignará todos los procesos al nodo de mayor capacidad de cómputo y
solo distribuirá cuando este se encuentre saturado de procesos; por eso es recomendable
construir un grupo de ordenadores lo más similares posible.

Almacenamiento[editar]
El almacenamiento puede consistir en una NAS, una SAN, o almacenamiento interno en el
servidor. El protocolo más comúnmente utilizado es NFS (Network File System), sistema de
ficheros compartido entre servidor y los nodos. Sin embargo existen sistemas de ficheros
específicos para clústeres como Lustre (CFS) y PVFS2.
Tecnologías en el soporte del almacenamiento en discos duros:

 IDE o ATA: velocidades de 33, 66, 100, 133 y 166 MB/s


 SATA: velocidades de 150, 300 y 600 MB/s
 SCSI: velocidades de 160, 320, 640 MB/s. Proporciona altos rendimientos.
 SAS: aúna SATA-II y SCSI. Velocidades de 300 y 600 MB/s
 Las unidades de cinta (DLT) son utilizadas para copias de seguridad por su bajo costo.
NAS (Network Attached Storage) es un dispositivo específico dedicado al almacenamiento a
través de red (normalmente TCP/IP) que hace uso de un sistema operativo optimizado para
dar acceso a través de protocolos CIFS, NFS, FTP o TFTP.
Por su parte, DAS (Direct Attached Storage) consiste en conectar unidades externas de
almacenamiento SCSI o a una SAN (storage area network: ‘red de área de almacenamiento’)
a través de un canal de fibra. Estas conexiones son dedicadas.
Mientras NAS permite compartir el almacenamiento, utilizar la red, y tiene una gestión más
sencilla, DAS proporciona mayor rendimiento y mayor fiabilidad al no compartir el recurso.

Sistema operativo[editar]
Un sistema operativo debe ser multiproceso y multiusuario. Otras características deseables
son la facilidad de uso y acceso. Un sistema operativo es un programa o conjunto de
programas de computadora destinado a permitir una gestión eficaz y segura de sus recursos.
Comienza a trabajar cuando el gestor de arranque carga en memoria su núcleo y gestiona el
hardware de la máquina desde los niveles más básicos, permitiendo también la interacción
con el usuario. Se puede encontrar normalmente en la mayoría de los aparatos electrónicos
que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la
máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD,
radios, computadoras, etc.).
Ejemplos[editar]

 GNU/Linux
 ABC GNU/Linux2
 OpenMosix
 Rocks3
 Kerrighed
 Cóndor
 Sun Grid Engine
 Unix
 Solaris
 HP-UX
 AIX
 Windows
 NT
 2000 Server
 2003 Server
 2008 Server
 2012 server
 Mac OS X
 Xgrid
 Solaris
 FreeBSD
Conexiones de red[editar]
Los nodos de un clúster pueden conectarse mediante una simple red Ethernet con placas
comunes (adaptadores de red o NICs), o utilizarse tecnologías especiales de alta velocidad
como Fast Ethernet, Gigabit Ethernet, Myrinet, InfiniBand, SCI, etc.

 Ethernet
 Son las redes más utilizadas en la actualidad, debido a su relativo bajo coste. No
obstante, su tecnología limita el tamaño de paquete, realizan excesivas
comprobaciones de error y sus protocolos no son eficientes, y sus velocidades de
transmisión pueden limitar el rendimiento de los clústeres. Para aplicaciones con
paralelismo de grano grueso puede suponer una solución acertada.
 La opción más utilizada en la actualidad es Gigabit Ethernet (1 Gbit/s), siendo
emergente la solución 10 Gigabit Ethernet (10 Gbit/s). La latencia de estas
tecnologías está en torno a los 30 a 100 μs, dependiendo del protocolo de
comunicación empleado.
 En todo caso, es la red de administración por excelencia, así que aunque no sea la
solución de red de altas prestaciones para las comunicaciones, es la red dedicada a
las tareas administrativas.

 Myrinet (Myrinet 2000 y Myri-10G).


 Su latencia es de 99 a 10 μs, y su ancho de banda es de 2 a 10 Gbit/s (para Myrinet
2000 y Myri-10G, respectivamente).
 Es la red de baja latencia más utilizada en la actualidad, tanto en clústeres como en
MPP; está presente en más de la mitad de los sistemas del top500. Tiene dos
bibliotecas de comunicación a bajo nivel (GM y MX). Sobre estas bibliotecas están
implementadas MPICH-GM, MPICH-MX, Sockets-GM y Sockets MX, para aprovechar
las excelentes características de Myrinet. Existen también emulaciones IP sobre
TCP/IP, IPoGM e IPoMX.

 InfiniBand
 Es una red surgida de un estándar desarrollado específicamente para realizar la
comunicación en clústeres. Una de sus mayores ventajas es que mediante la
agregación de canales (x1, x4 y x12) permite obtener anchos de banda muy elevados.
La conexión básica es de 2 Gbit/s efectivos y con ‘quad connection’ x12 alcanza los
96 Gbit/s. No obstante, los startups no son muy altos, se sitúan en torno a los 10 μs.
 Define una conexión entre un nodo de computación y un nodo de I/O. La conexión va
desde un Host Channel Adapter (HCA) hasta un Target Channel Adapter (TCA). Se
está usando principalmente para acceder a arrays de discos SAS.

 SCI (scalable coherent interface) IEEE standard 1596-1992


 Su latencia teórica es de 1,43 μs y su ancho de banda de 5333 Mbit/s bidireccional. Al
poder configurarse con topologías de anillo (1D), toro (2D) e hipercubo (3D) sin
necesidad de switch, se tiene una red adecuada para clústeres de pequeño y mediano
tamaño.
 Al ser una red de extremadamente baja latencia, presenta ventajas frente a Myrinet en
clústeres de pequeño tamaño al tener una topología punto a punto y no ser necesaria
la adquisición de un conmutador. El software sobre SCI está menos desarrollado que
sobre Myrinet, pero los rendimientos obtenidos son superiores, destacando SCI
Sockets (que obtiene startups de 3 microsegundos) y ScaMPI, una biblioteca MPI de
elevadas prestaciones.
 Además, a través del mecanismo de preloading (LD_PRELOAD) se puede conseguir
que todas las comunicaciones del sistema vayan a través de SCI-SOCKETS
(transparencia para el usuario).

4.4 Sistemas de memoria distribuida. Multicomputadoras Clusters.


Los sistemas de memoria distribuida o multicomputadores
pueden ser de dos tipos básicos. El primer de ellos consta de un
único computador con múltiples CPUs comunicadas por un bus de
datos mientras que en el segundo se utilizan múltiples
computadores, cada uno con su propio procesador, enlazados por
una red de interconexión más o menos rápida.

Sobre los sistemas de multicomputadores de memoria


distribuida, se simula memorias compartidas. Se usan los
mecanismos de comunicación y sincronización de sistemas
multiprocesadores.

Un clúster es un tipo de arquitectura paralela distribuida que


consiste de un conjunto de computadores independientes
interconectados operando de forma conjunta como único recurso
computacional sin embargo, cada computador puede utilizarse de
forma independiente o separada.

En esta arquitectura, el computador paralelo es esencialmente


una colección de procesadores secuenciales, cada uno con su
propia memoria local, que pueden trabajar conjuntamente.

 Cada nodo tiene rápido acceso a su propia memoria y acceso


a la memoria de otros nodos mediante una red de
comunicaciones, habitualmente una red de comunicaciones de
alta velocidad.
 Los datos son intercambiados entre los nodos como
mensajes a través de la red.
 Una red de ordenadores, especialmente si disponen de una
interconexión de alta velocidad, puede ser vista como un
multicomputador de memoria distribuida y como tal ser utilizada
para resolver problemas mediante computación paralela.

4.4.1 Redes De Interconexión Estática


Las redes estáticas emplean enlaces directos fijos entre los
nodos. Estos enlaces, una vez fabricado el sistema son difíciles
de cambiar, por lo que la escalabilidad de estas topologías es
baja. Las redes estáticas pueden utilizarse con eficiencia en los
sistemas en que pueden predecirse el tipo de tráfico de
comunicaciones entre sus procesadores.

Clases de redes de interconexión:


 Formación lineal: Se trata de una red unidimensional en que
los nodos se conectan cada uno con el siguiente medianteN-1
enlaces formando una línea.
 Mallas y toros: Esta red de interconexión es muy utilizada
en la práctica. Las redes en toro son mallas en que sus filas y
columnas tienen conexiones en anillo, esto contribuye a disminuir
su diámetro. Esta pequeña modificación permite convertir a las
mallas en estructuras simétricas y además reduce su diámetro a
la mitad.

4.4.2 Clúster
Un clúster es un grupo de ordenadores débilmente acoplados que
trabajan en estrecha colaboración, de modo que en algunos
aspectos pueden considerarse como un solo equipo. Los clústeres
se componen de varias máquinas independientes conectadas por
una red. Mientras que las máquinas de un clúster no tienen que
ser simétricas, de no serlo, el balance de carga es más difícil de
lograr.

El tipo más común de clúster es el cluster Beowulf, que es un


clúster implementado con múltiples ordenadores comerciales
idénticos conectados a una red de área local TCP/IPEthernet. La
tecnología Beowulf fue desarrollada originalmente por Thomas
Sterling y Donald Becker. La gran mayoría de los
superordenadores TOP500 son clústeres. Se aplica a los
conjuntos o conglomerados de computadoras construidos
mediante la utilización de hardwares comunes y que se
compartan como si fuesen una única computadora.

Los clúster son usualmente empleados para mejorar el


rendimiento y 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:
 Alto rendimiento
 Alta disponibilidad
 Balance de carga
 Escalabilidad

La construcción de los ordenadores del clúster es más fácil y


económica debido a su flexibilidad: pueden tener toda la misma
configuración de hardware y sistema operativo diferente
rendimiento pero con arquitectura y sistemas operativos similares
o tener diferente hardware y sistema operativo 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 si 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
ocurren en él para optimizar el funcionamiento.
La tecnología clúster 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.

4.4.3 Programación De Clúster


Estos clúster están diseñados y optimizados para correr
programas paralelos. En este caso, los programas tienen que ser
hechos específicamente para funcionar en forma paralela.
Típicamente estos programas son modelos que requieren realizar
gran cantidad de cálculos numéricos. La ventaja de programarlos
de esta manera y correrlos en un clúster es que se reduce
drásticamente los tiempos de proceso. En el caso de modelos
meteorológicos usados para predecir el tiempo es obvia la
necesidad de correrlos en tiempo mínimo. Cuando se programa
un modelo en una plataforma multiprocesadores es necesario
usar esquemas de programación paralela. Las bibliotecas son las
que permiten paralelizacion de tareas. En el caso de los clúster
SCALI, portar programas hechos con bibliotecas MPI es directo
gracias al uso de biblioteca SCAMPI

4.4.4 Consideraciones Sobre Rendimiento De Los Clúster


Para diseñar, implementar, probar y mantener un clúster se
requiere un entendimiento básico pero claro de hardware de
computadoras, de redes de computadoras y de sistemas
operativos y la habilidad para investigar algunos tópicos
especializados, como dispositivos de interconexión de Alta
velocidad, tal vez reintroducirse a lenguajes de programación
como FORTRAN y librerías para el desarrollo de aplicaciones como
MPI.
Una vez escogido un sistema operativo, dígase Linux, se requiere
algo de experiencia en la administración de sistemas Linux y en
la forma de realizar conexiones de red. De manera lógica, cada
nodo delx clúster tiene una parte de hardware y otra de software.
El hardware está compuesto por procesadores, memoria, interfaz
de red y discos duros entre otros.

Los cluster de servidores permite dotar a las aplicaciones y/o servicios que se ejecuten en un
grupo de servidores de alta disponibilidad. El funcionamiento básico de los clusteres es el
siguiente:

Una aplicación se ejecuta en uno de los nodos del cluster


En el momento en que este nodo cae, el cluster toma la aplicación y la levanta en otro de los
nodos.

Los usuarios normalmente no notan nada, sin embargo, existe un corte de x segundos hasta que
el cluster es capaz de levantar de nuevo la aplicación en otro nodo. Cuando se trabajo con
aplicaciones que mantienen conexiones abiertas, éstas se pierden.

¿Cómo funciona un cluster?

Los clusteres se basan en la publicación de sus servicios mediante IPs virtuales. Cuando un
administrador da de alta una aplicación, con sus correspondientes recursos (luego veremos
cómo), aparece en la red un nuevo servidor, con un IP, un nombre de red y los recursos que le
hemos asignado. El mantenimiento de esta estructura la realiza el cluster en sí. Cuando un
usuario realiza una petición al servidor virtual, el cluster redireccionará al servidor físico que
realmente esté ejecutando la aplicación. En el caso que se caiga este servidor físico, las
peticiones hacia la IP virtual serán redirigidas por el cluster hacia el nuevo servidor que haya
empezado a ejecutar la aplicación. En el siguiente esquema se ve el funcionamiento:
Aspectos Técnicos a tener en cuenta:

A la hora de montar un cluster, hay que tener en cuenta ciertos aspectos importantes que pueden
determinar el buen funcionamiento de la solución. Los requisitos fundamentales son:
Cabina de discos compartida donde se alojarán los datos de los servidores
Dobles tarjetas de red para poder utilizar una entre ellos y otra para la red
Sistema Operativo que permita la gestión de clusteres. En el caso de Microsoft, sólo los
opertativos Enterprise lo permiten.

Antes de empezar a montar los servidores debemos dimensionar nuestro espacio en la cabina para
que se acomode a las necesidades de las aplicaciones. Imprescindible es dejar espacio para la
unidad de Quorum que es la encargada de mantener el estado de las aplicaciones y que sirve de
nexo de unión entre los servidores. Para esta unidad se suelen dar 512MB de espacio
(normalmente es el mínimo que permiten las cabinas). Luego, para cada aplicación que lo precise
se le irá creando una o varias unidades en la cabina. Un ejemplo normal sería el siguiente:
Quorum: 512MB
Base de Datos: 100 GB
Ficheros: 2TB

Es importante saber que existe una limitación en las cabinas por las que no son capaces de
crearvolúmenes mayores de 2TB. Además, los clusteres de Microsoft, no así los de Linux, no
permiten discos dinámicos, con lo que las aplicaciones tienen que estar preparadas para ello.

Una vez que hayamos creado los volúmenes, crearemos el cluster (vamos a ir siguiendo el método
de Microsoft) mediante el administrador de clusteres. Al crearlo tendremos que darle los
siguientes datos:
IP Virtual del cluster
Nombre DNS del Cluster
Unidad de Quorum

Con estos datos se creará el cluster que contendrá un grupo de aplicaciones para el cluster con
tres recursos (IP, Nombre y Unidad) y un grupo de aplicaciones por cada volumen de la cabina
que haya encontrado. Una vez creado tendremos que incluir en el cluster el resto de nodos que
vayan a formar parte de él.

Una vez incluidos los nodos, tendremos que crear los grupos de aplicaciones. Esto es tan sencillo
como incluir los ejecutables necesarios o los recursos necesarios (servicios, carpetas
compartidas,...) en el grupo de aplicaciones. Se le dará a cada grupo de aplicaciones un nodo
preferido donde se ejecute que será el que por defecto arranque la aplicación. Hay determinadas
aplicaciones (p.e. SQL Server u Oracle) que al instalarlas detectan automáticamente que se
encuentran en un entorno de cluster y se instalan en todos los nodos y crean sus propios grupos
de aplicaciones. Para el resto de aplicaciones hay que realizar lainstalación manualmente en
todos los nodos y mantener exactamente la misma configuración. Lógicamente, para cada grupo
de aplicaciones tendremos que dar también una IP Virtual a la que responderá y un nombre de
red.

S-ar putea să vă placă și