viernes, 29 de noviembre de 2013

CONSIDERACIÓNES SOBRE EL FUNCIONAMIENTO DE LOS CLUSTERS

Consideraciones para crear un Cluster de Servidores(por: Ing. Tamayo)



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.




Consideraciones Finales:

Una vez que la instalación se haya completado y el cluster esté en funcionamiento, toda la administración se debe realizar desde el administrador de clusteres. El arranque o parada de los servicios, la conmutación entre nodos, los cambios de configuración no se deben hacer directamente en las aplicaciones.



programacion LabView (cluster)


Clúster(por: Ing. Xolo)

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 hardware común 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, software que necesita computadoras de alto rendimiento, servidores web y comercio electrónico, hasta bases de datos de gran escala, 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
.


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.


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 (clúster homogéneo), diferente rendimiento pero con arquitecturas 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 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.






The Borg, un cluster tipo Beowulf (computadores conectados en paralelo) utilizado en la universidad McGill utilizado para buscar pulsares binarios)
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 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úster

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 de 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.


Componentes de un cluster

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



Nodos. Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo (workstations). 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. Estan conformados por nodos dedicados o 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.


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. 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 coste.


Sistemas operativos. 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 de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.



Conexiones de red. 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.


Middleware. El middleware es un software que generalmente actúa entre el sistema operativo y las aplicaciones con la finalidad de proveer a un clúster lo siguiente:


· Una interfaz única de acceso al sistema, denominada SSI (Single System Image), la cual genera la sensación al usuario de que utiliza un único ordenador muy potente;


· Herramientas para la optimización y mantenimiento del sistema: migración de procesos, checkpoint-restart (congelar uno o varios procesos, mudarlos de servidor y continuar su funcionamiento en el nuevo host), balanceo de carga, tolerancia a fallos, etc.;


· Escalabilidad: debe poder detectar automáticamente nuevos servidores conectados al clúster para proceder a su utilización.


El middleware también debe poder migrar procesos entre servidores con distintas finalidades:


· balancear la carga: si un servidor está muy cargado de procesos y otro está ocioso, pueden transferirse procesos a este último para liberar de carga al primero y optimizar el funcionamiento.


· Mantenimiento de servidores: si hay procesos corriendo en un servidor que necesita mantenimiento o una actualización, es posible migrar los procesos a otro servidor y proceder a desconectar del clúster al primero.



· Priorización de trabajos: en caso de tener varios procesos corriendo en el clúster, pero uno de ellos de mayor importancia que los demás, puede migrarse este proceso a los servidores que posean más o mejores recursos para acelerar su procesamiento.



Columbia, un superordenador de la NASA construida con 20 conglomerados SGI Altix de un total de 10,240 CPU’s











Tema 4 SISTEMA DE MEMORIA DISTRIBUCIÓN MULTICOMPUTADORES: CLUSTERS


Redes de interconexión estáticas(por: Ing. Galván)


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.

Las principales clases de redes de interconexión estáticas son: