nuevas tecnologas y nuevas necesidades de los usuarios de sistemas informticos, surge la necesidad de poder implementar un concepto el cual garantice y asegure que los recursos y las aplicaciones de importancia decisiva permanecern disponibles as como que tambin la carga de trabajo sea balanceada para garantizar el alto rendimiento. Por ende un clster es un grupo de sistemas independientes, conocidos como nodos, que trabajan juntos como un sistema nico para garantizar la premisa anterior mencionada en donde hacamos referencia a garantizarle al usuario la disponibilidad. La organizacin en clsteres permite a los usuarios y administradores tener acceso a los nodos y administrarlos como un sistema nico en lugar de como equipos independientes.
I.INTRODUCCION Hoy en da desempean un papel importante en la solucin de problemas de las ciencias, las ingenieras y del comercio moderno.La tecnologa de clsteres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercmputo y software de misiones crticas, servidores web y comercio electrnico, hasta bases de datos de alto rendimiento, entre otros usos. El cmputo con clsteres surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores econmicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cmputo distribuido de alto rendimiento , as como la creciente necesidad de potencia computacional para aplicaciones que la requieran. En resumen, , un clster informtico es un grupo de computadoras unidas mediante una red de alta velocidad de tal forma que el conjunto es visto como una nica supercomputadora.
II. DEFINICIN El trmino clster (del ingls cluster, "grupo" o "racimo") se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilizacin de hardwares comunes y que se comportan como si fuesen una nica computadora. La tecnologa de clsteres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercmputo y software de misiones crticas, servidores web y comercio electrnico, hasta bases de datos de alto rendimiento, entre otros usos. El cmputo con clsteres surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores econmicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cmputo distribuido de alto rendimiento, as como la creciente necesidad de potencia computacional para aplicaciones que la requieran. Simplemente, un clster es un grupo de mltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un nico ordenador, ms potente que los comunes de escritorio. Los clsteres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador tpicamente siendo ms econmico que computadores individuales de rapidez y disponibilidad comparables [1].
III. ANTECEDENTES El comienzo del trmino y del uso de este tipo de tecnologa es desconocido pero se puede considerar que comenz a finales de los aos 50 y principios de los aos 60. La base formal de la ingeniera informtica de la categora como un medio de hacer trabajos paralelos de cualquier tipo fue posiblemente inventado por Gene Amdahl de IBM, que en 1967 public lo que ha llegado a ser considerado como el papel inicial de procesamiento paralelo: la Ley de Amdahl que describe matemticamente lo que se puede esperar paralelizando cualquier otra serie de tareas realizadas en una arquitectura paralela. La historia de los primeros grupos de computadoras es ms o menos directamente ligado a la historia de principios de las redes, como una de las principales motivaciones para el desarrollo de una red para enlazar los recursos de computacin, de hecho la creacin de un cluster de computadoras. Las redes de conmutacin de paquetes fueron conceptualmente inventados por la corporacin RAND en 1962. Utilizando el concepto de una red de conmutacin de paquetes, el proyecto ARPANET logr crear en 1969 lo que fue posiblemente la primera red de computadoras bsico basadas en el cluster de computadoras por cuatro tipos de centros informticos, cada una de las cuales fue algo similar a un "cluster" pero no un "comodity cluster" como hoy en da lo entendemos. El primer producto comercial de tipo cluster fue ARCnet, desarrollada en 1977 por Datapoint pero no obtuvo un xito comercial y los clusteres no consiguieron tener xito hasta que en 1984 VAXcluster produjeran el sistema operativo VAX/VMS.
IV. CLASIFICACIN Esta clasificacin se basa en relacin al uso que se les da a los clusters y los servicios que ofrecen, por lo que existen las siguientes categoras: *High Performance: 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. *High Availability: Son clusters cuyo objetivo de diseo es el de proveer disponibilidad y confiabilidad. Estos clusters tratan de brindar la mxima 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. *High Throughput: Son clusters cuyo objetivo de diseo 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.
V. CLUSTER DE ALTO RENDIMIENTO Es un conjunto de ordenadores que est diseado para dar altas prestaciones en cuanto a capacidad de clculo. Los motivos para utilizar un cluster de alto rendimiento son: el tamao del problema por resolver el precio de la mquina necesaria para resolverlo. Por medio de un cluster se pueden conseguir capacidades de clculo superiores a las de un ordenador ms caro que el costo conjunto de los ordenadores del cluster.Ejemplo de clusters baratsimos son los que se estn realizando en algunas universidades con computadoras personales desechados por "anticuados" que consiguen competir en capacidad de clculo con superordenadores carsimos. Para garantizar esta capacidad de clculo, los problemas necesitan ser paralelizables, ya que el mtodo con el que los clusters agilizan el procesamiento es dividir el problema en problemas ms pequeos y calcularlos en los nodos, por lo tanto, si el problema no cumple con esta caracterstica, no puede utilizarse el cluster para su clculo.
VI. ALTA DISPONIBILIDAD Un cluster de alta disponibilidad es un conjunto de dos o ms mquinas que se caracterizan por mantener una serie de servicios compartidos y por estar constantemente monitorizndose entre s. Podemos dividirlo en dos clases: Alta disponibilidad de infraestructura: Si se produce un fallo de hardware en alguna de las mquinas del clster, el software de alta disponibilidad es capaz de arrancar automticamente los servicios en cualquiera de las otras mquinas del cluster (failover). Y cuando la mquina que ha fallado se recupera, los servicios son nuevamente migrados a la mquina original (failback). Esta capacidad de recuperacin automtica de servicios nos garantiza la alta disponibilidad de los servicios ofrecidos por el cluster, minimizando as la percepcin del fallo por parte de los usuarios.
VII. BALANCEO DE CARGA El balance o balanceo de carga es un concepto usado en informtica que se refiere a la tcnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores, discos u otros recursos. Est ntimamente ligado a los sistemas de multiprocesamiento, o que hacen uso de ms de una unidad de procesamiento para realizar labores tiles.
VII. ESCALABILIDAD En telecomunicaciones y en ingeniera informtica, la escalabilidad es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse ms grande sin perder calidad en los servicios ofrecidos. En general, tambin se podra definir como la capacidad del sistema informtico de cambiar su tamao o configuracin para adaptarse a las circunstancias cambiantes. Por ejemplo, una Universidad que establece una red de usuarios por Internet para un edificio de docentes y no solamente quiere que su sistema informtico tenga capacidad para acoger a los actuales clientes que son todos profesores, sino tambin a los clientes que pueda tener en el futuro dado que hay profesores visitantes que requieren de la red por algunos aplicativos acadmicos, para esto es necesario implementar soluciones que permitan el crecimiento de la red sin que la posibilidad de su uso y re-uso, disminuya o que pueda cambiar su configuracin si es necesario.
VIII. COMPONENTES DE UN CLSTER Nodos Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo (workstations). En informtica, de forma muy general, un nodo es un punto de interseccin o unin de varios elementos que confluyen en el mismo lugar. Ahora bien, dentro de la informtica la palabra nodo puede referirse a conceptos diferentes segn el mbito en el que nos movamos: En redes de computadoras cada una de las mquinas es un nodo, y si la red es Internet, cada servidor constituye tambin un nodo [2]. El clster puede estar conformado por nodos dedicados o por nodos no dedicados. En un clster con nodos dedicados, los nodos no disponen de teclado, ratn ni monitor y su uso est exclusivamente dedicado a realizar tareas relacionadas con el clster. Mientras que, en un clster con nodos no dedicados, los nodos disponen de teclado, ratn y monitor y su uso no est exclusivamente dedicado a realizar tareas relacionadas con el clster, el clster 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 disear un clster, los nodos deben tener caractersticas similares, es decir, deben guardar cierta similaridad de arquitectura y sistemas operativos, ya que si se conforma un clster con nodos totalmente heterogneos (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 cmputo y solo distribuir cuando este se encuentre saturado de procesos; por eso es recomendable construir un grupo de ordenadores lo ms similares posible. Almacenamiento El almacenamiento puede consistir en una NAS, una SAN, o almacenamiento interno en el servidor. El protocolo ms comnmente utilizado es NFS (Network File System), sistema de ficheros compartido entre servidor y los nodos. Sin embargo existen sistemas de ficheros especficos para clsteres como Lustre (CFS) y PVFS2. Tecnologas en el soporte del almacenamiento en discos duros: o IDE o ATA: velocidades de 33, 66, 100, 133 y 166 MB/s o SATA: velocidades de 150, 300 y 600 MB/s o SCSI: velocidades de 160, 320, 640 MB/s. Proporciona altos rendimientos. o SAS: ana SATA-II y SCSI. Velocidades de 300 y 600 MB/s o Las unidades de cinta (DLT) son utilizadas para copias de seguridad por su bajo coste.
Sistema operativo Un sistema operativo debe ser multiproceso y multiusuario. Otras caractersticas deseables son la facilidad de uso y acceso. Un sistema operativo es un programa o conjunto de programas de computadora destinado a permitir una gestin eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la mquina desde los niveles ms bsicos, permitiendo tambin la interaccin con el usuario. Se puede encontrar normalmente en la mayora de los aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, radios, computadoras, etc.). Conexiones de red Los nodos de un clster pueden conectarse mediante una simple red Ethernet con placas comunes (adaptadores de red o NICs), o utilizarse tecnologas especiales de alta velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, InfiniBand, SCI, etc.
*Ethernet Son las redes ms utilizadas en la actualidad, debido a su relativo bajo coste. No obstante, su tecnologa limita el tamao de paquete, realizan excesivas comprobaciones de error y sus protocolos no son eficientes, y sus velocidades de transmisin pueden limitar el rendimiento de los clsteres. Para aplicaciones con paralelismo de grano grueso puede suponer una solucin acertada. La opcin ms utilizada en la actualidad es Gigabit Ethernet (1 Gbit/s), siendo emergente la solucin 10 Gigabit Ethernet (10 Gbit/s). La latencia de estas tecnologas est en torno a los 30 a 100 s, dependiendo del protocolo de comunicacin empleado.
* 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 ms utilizada en la actualidad, tanto en clsteres como en MPP; est presente en ms de la mitad de los sistemas del top500.
*InfiniBand Es una red surgida de un estndar desarrollado especficamente para realizar la comunicacin en clsters. Una de sus mayores ventajas es que mediante la agregacin de canales (x1, x4 y x12) permite obtener anchos de banda muy elevados. Define una conexin entre un nodo de computacin y un nodo de I/O. La conexin 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 terica es de 1,43 s y su ancho de banda de 5333 Mbit/s bidireccional. Al poder configurarse con topologas de anillo (1D), toro (2D) e hipercubo (3D) sin necesidad de switch, se tiene una red adecuada para clsters de pequeo y mediano tamao. Al ser una red de extremadamente baja latencia, presenta ventajas frente a Myrinet en clsteres de pequeo tamao al tener una topologa punto a punto y no ser necesaria la adquisicin 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. Adems, a travs del mecanismo de preloading (LD_PRELOAD) se puede conseguir que todas las comunicaciones del sistema vayan a travs de SCI-SOCKETS (transparencia para el usuario).
Middleware El middleware es un software que generalmente acta entre el sistema operativo y las aplicaciones con la finalidad de proveer a un clster lo siguiente: Una interfaz nica de acceso al sistema, denominada SSI (Single System Image), la cual genera la sensacin al usuario de que utiliza un nico ordenador muy potente; Herramientas para la optimizacin y mantenimiento del sistema: migracin 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 automticamente nuevos servidores conectados al clster para proceder a su utilizacin. Existen diversos tipos de middleware, como por ejemplo: MOSIX, OpenMOSIX, Cndor, OpenSSI, etc. El middleware recibe los trabajos entrantes al clster y los redistribuye de manera que el proceso se ejecute ms rpido y el sistema no sufra sobrecargas en un servidor. Esto se realiza mediante polticas definidas en el sistema (automticamente o por un administrador) que le indican dnde y cmo debe distribuir los procesos, por un sistema de monitorizacin, el cual controla la carga de cada CPU y la cantidad de procesos en l [3]. El middleware tambin 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 actualizacin, es posible migrar los procesos a otro servidor y proceder a desconectar del clster al primero; Priorizacin de trabajos: en caso de tener varios procesos corriendo en el clster, pero uno de ellos de mayor importancia que los dems, puede migrarse este proceso a los servidores que posean ms o mejores recursos para acelerar su procesamiento.
Ambientes de Programacin Paralela Los ambientes de programacin paralela permiten implementar algoritmos que hagan uso de recursos compartidos: CPU (central processing unit: unidad central de proceso), memoria, datos y servicios [4].
Los componentes de un clustera manera de grfico.
IX. EJEMPLO DE IMPLEMENTACIONES DE CLUSTERS Algunos Sistemas Clsteres Implementados: Beowulf Fue diseado por Donald Becker y Thomas Sterling en 1994 y construido con 16 computadores personales con procesadores Intel DX4 de 200 MHz, que estaban conectados a travs de un switch Ethernet. El rendimiento terico era de 3.2 GigaFlops.(Los flops son las operaciones de coma flotante por segundo y son una medida del rendimiento de una computadora). Berkeley NOW El sistema NOW de Berkeley estuvo conformado por 105 estaciones de trabajo Sun Ultra 170, conectadas a travs de una red Myrinet. Cada estacin de trabajo contena un microprocesador Ultra1 de 167 MHz, cach de nivel 2 de 512 KB, 128 MB de memoria, dos discos de 2.3 GB, tarjetas de red Ethernet y Myrinet. En abril de 1997, NOW logr un rendimiento de 10 GFlops. Google Durante el ao 2003, el clster Google lleg a estar conformado por ms de 15.000 computadores personales. En promedio, una consulta en Google lee cientos de megabytes y consume algunos billones de ciclos del CPU. Cluster PS2 En el ao 2004, en la Universidad de Illinois en Urbana-Champaign, Estados Unidos, se explor el uso de consolas Play Station 2 (PS2) en cmputo cientfico y visualizacin de alta resolucin. Se construy un clster conformado por 70 PS2; utilizando Sony Linux Kit (basado en Linux Kondora y Linux Red Hat) y MPI [5].
CONCLUSIN Un cluster puede ser utilizado para muchas aplicaciones, es una solucin econmica para resolver problemas que recursos de cmputo. Un cluster es una forma econmica tanto en software como en hardware para realizar tareas de forma distribuida y paralelo.