jueves, 24 de junio de 2010

Cluster

El término clúster se aplica a los conjuntos de computadoras construidos mediante la utilización de componentes de hardware comunes, que se comportan como si fuesen una única computadora.

Juegan un papel importante en la solución de problemas de las ciencias, las ingenierías y del comercio moderno.

La tecnología de clúster ha evolucionado en apoyo de actividades que van desde aplicaciones de súper cómputo y software de misiones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.

Que es un clúster?

Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad.
Los clústeres 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:

1. Alto rendimiento
2. Alta disponibilidad
3. Balanceo de carga
4. 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.
La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad.

Pueden tener todas las mismas configuraciones de hardware y sistema operativo (clúster 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.
Para que un clúster funcione 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.



Clasificación de los Clústeres
Los clústeres pueden clasificarse según sus características:
1. Clusteres de alto rendimiento
2. clústeres de alta disponibilidad
3. 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.

Componentes de un Clúster:

Un clúster necesita de varios componentes de software y hardware para poder funcionar.

• Almacenamiento
• Sistemas Operativos
• Conexiones de Red
• Middleware
• Protocolos de Comunicación y servicios
• Aplicaciones
• Ambientes de Programación Paralela.


Almacenamiento:

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.

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.

Ambientes de Programación Paralela:

Los ambientes de programación paralela permiten implementar algoritmos que hagan uso de recursos compartidos como:

1. CPU (Central Processing Unit).
2. Memoria
3. Datos
4. Servicios.

Balanceadores de Carga:

se utiliza Linux Virtual Server.

•Linux Virtual Server (LVS, IPVS en kernels 2.6.x) es un servicio de red altamente escalable y de alta disponibilidad que realiza:

– Equilibrado de carga mediante NAT (Network Address Translation), tunneling IP o enrutamiento directo (DR) por medio de un nodo maestro que da servicio a peticiones FTP y HTTP a los nodos de un cluster. Este servicio es provisto a nivel de kernel (ha de estar compilado el soporte para LVS/IPVS).

•NAT hace que el clúster funcione con una única IP pública, siendo los paquetes reescritos por el nodo maestro para ocultar los nodos internos. Sólo es aceptable para un número pequeño de nodos, por la sobrecarga que acarrea.

•Tunneling IP es similar a NAT, pero el nodo maestro ya no reescribe los paquetes, siendo su tarea mucho más liviana.

•El enrutamiento directo (DR) es un sistema aún más ligero, pero necesita que todos los servidores compartan el mismo segmento de red.

No hay comentarios:

Publicar un comentario