Vous êtes sur la page 1sur 13

INSTITUTO TECNOLGICO DE MORELIA

DEPARTAMENTO DE SISTEMAS Y COMPUTACIN


Nombre del Alumno (equipo): Grupo: Profesor: Actividad: Bibliografa: No. Control:

Mendoza Heredia Jos Alfredo


Ingeniera en Tecnologas de la Informacin Ing. Juan Jess Ruiz Lagunas Nombre del Curso:

11121402 Introduccin a las TICs Unidad: Fecha: 1 5 de septiembre de 2011

Clusters de Computadoras

http://clusters.fisica.uson.mx/clusters_de_Linux.htm http://clusters.fisica.uson.mx/clusters_de_Linux.htm http://es.wikipedia.org/wiki/Cluster_de_computadores http://publib.boulder.ibm.com/tividd/td/TSMCW/GC32-0784-02/es_ES/HTML/anrwqs52121.htm http://clusterfie.epn.edu.ec/clusters/Definiciones/definiciones.html http://74.125.45.132/search?q=cache:iUhF9z6b11YJ:servicio.cid.uc.edu.ve/facyt/v1n1/1-12.pdf+Ambientes+de+Programaci%C3%B3n+Paralela+de+un+cluster&hl=es&ct=clnk&cd=10&gl =mx&lr=lang_es http://google.dirson.com/tecnologia.php http://www.utpl.edu.ec/blog/sistemasoperativos/2008/06/11/clusters/ http://es.wikipedia.org/wiki/Red_Espa%C3%B1ola_de_Supercomputa

INTRODUCCIN Hoy en da tecnologa de clusters 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 clusters 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. QU ES UN CLUSTER DE COMPUTADORAS? Un cluster es un grupo de equipos independientes que ejecutan una serie de aplicaciones de forma conjunta y aparecen ante clientes y aplicaciones como un solo sistema. Los clusters permiten aumentar la escalabilidad, disponibilidad y fiabilidad de mltiples niveles de red. La escalabilidad es la capacidad de un equipo para hacer frente a volmenes de trabajo cada vez mayores sin, por ello, dejar de prestar un nivel de rendimiento aceptable. Existen dos tipos de escalabilidad: Escalabilidad del hardware (tambin denominada escalamiento vertical). Se basa en la utilizacin de un gran equipo cuya capacidad se aumenta a medida que lo exige la carga de trabajo existente.

Escalabilidad del software (tambin denominada escalamiento horizontal). Se basa, en cambio, en la utilizacin de un cluster compuesto de varios equipos de mediana potencia que funcionan en tndem de forma muy parecida a como lo hacen las unidades de un RAID (Redundant Array of Inexpensive Disks o Array redundante de discos de bajo costo). Se utilizan el trmino RAC (Redundant Array of Computers o Array redundante de equipos) para referirse a los clusters de escalamiento horizontal. Del mismo modo que se aaden discos a un array RAID para aumentar su rendimiento, se pueden aadir nodos a un cluster para aumentar tambin su rendimiento.

La disponibilidad y la fiabilidad son dos conceptos que, si bien se encuentran ntimamente relacionados, difieren ligeramente. La disponibilidad es la calidad de estar presente, listo para su uso, a mano, accesible; mientras que la fiabilidad es la probabilidad de un funcionamiento correcto. Pero hasta el ms fiable de los equipos acaba fallando. Los fabricantes de hardware intentan anticiparse a los fallos aplicando la redundancia en reas clave como son las unidades de disco, las fuentes de alimentacin, las controladoras de red y los ventiladores, pero dicha redundancia no protege a los usuarios de los fallos de las aplicaciones. De poco servir, por lo tanto, que un servidor sea fiable si el software de base de datos que se ejecuta en dicho servidor falla, ya que el resultado no ser otro que la ausencia de disponibilidad. sa es la razn de que un solo equipo no pueda ofrecer los niveles de escalabilidad, disponibilidad y fiabilidad necesarios que s ofrece un cluster. Vemos cmo los clusters imitan a los arrays RAID al aumentar el nivel de disponibilidad y fiabilidad. En las configuraciones de discos tolerantes a fallos, como RAID 1 o RAID 5, todos los discos funcionan conjuntamente formando un array redundante de modo que cuando uno de ellos falla, slo hay que reemplazarlo por otro; el resto del array sigue funcionando sin problemas, sin necesidad de que se efecten tareas de configuracin y, lo que es ms importante, sin que se produzcan tiempos muertos. En efecto, el sistema RAID reconstruye automticamente la unidad nueva para que funcione conjuntamente con las restantes. De igual modo, cuando falla un equipo que forma parte de un cluster, slo hay que sustituirlo por otro. Algunos programas de cluster incluso configuran e integran el servidor de forma automtica en el cluster, y todo ello sin que el cluster deje de estar disponible ni un solo instante. En definitiva, un cluster es un conjunto de computadoras interconectadas con dispositivos de alta velocidad que actan en conjunto usando el poder cmputo de varios CPU en combinacin para resolver ciertos problemas dados. Se usa un cluster con varios computadores para crear un supercomputador. Hoy da los supercomputadores son equipos excesivamente costosos que estn fuera del alcance de empresas o instituciones pequeas. Un cluster, siendo una combinacin de equipos microcomputadores (IBM PC Compatibles), puede ser instalado inclusive por particulares y puede ofrecer rendimiento muy cercano a un Supercomputador en cuanto a poder de cmputo. En pocas palabras imagnate unos 20 PCs Pentium II III de 500 Mhz que actan en conjunto como si fuese un slo CPU de 10.000 Mhz. (Si bien no es tan fcil como eso, sirve para ilustrar algo aproximado a lo que se obtendr). El surgimiento de plataformas computacionales de comunicacin y procesamiento estndares de bajo costo, les ha brindado la oportunidad a los programadores acadmicos de crear herramientas computacionales del dominio pblico o de costo razonable. Estas realidades permiten la implantacin de cdigos paralelizados sobre este tipo de plataformas obteniendo un rendimiento competitivo en relacin a equipos paralelos especializados cuyos costos de operacin y mantenimiento son elevados.

Una de las herramientas de ms auge en la actualidad son los llamados cluster Beowulf, los cuales presentan diversas capacidades para el cmputo paralelo con un relativo alto rendimiento. QU BENEFICIOS TRAE CONSIGO LA IMPLENTACIN DE UN CLUSTER?
Esto es que las aplicaciones paralelas escalables requieren: buen rendimiento, baja latencia, comunicaciones que dispongan de gran ancho de banda, redes escalables y acceso rpido a archivos. Un cluster puede satisfacer estos requerimientos usando los recursos que tiene asociados a l. Los clusters ofrecen las siguientes caractersticas a un costo relativamente bajo:

Alto Rendimiento. Alta Disponibilidad. Alta Eficiencia. Escalabilidad.

Construir un Cluster sera benfico en varios aspectos en una variedad de aplicaciones y ambientes:

Incremento de velocidad de procesamiento ofrecido por los clusters de alto rendimiento. Incremento del nmero de transacciones o velocidad de respuesta ofrecido por los cluster de balance de carga. Incremento de confiabilidad ofrecido por los clusters de alta disponibilidad.

Por ejemplo, en las investigaciones meteorolgicas y pronstico numrico del estado del tiempo, se requiere el manejo de cantidades masivas de datos y clculos muy complejos. Al combinar el poder de muchas mquinas del tipo estacin de trabajo o servidor, se pueden alcanzar niveles de rendimiento similares a los de las supercomputadoras, pero a menor costo (pues estas requieren de hardware y software especializado muy caro, as como personal de soporte tcnico dedicado). Otro ejemplo sera el de la situacin de un sitio Web de mucho trfico. Si no se cuenta con un plan de alta disponibilidad, cualquier problema menor de una tarjeta de red, puede hacer que un servidor quede completamente inutilizado. Pero al contar con servidores redundantes y servidores de respaldo instantneos, se puede reparar el problema mientras el sitio funciona con el plan de respaldo, sin suspensin de servicio.

CLASIFICACIN DE LOS CLUSTERS Alto rendimiento: Un 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 ordenadores 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. Para que un problema sea paralelizable se debe hacer uso de libreras especiales como lo es PVM (parallel virtual machine) o MPI (Message passage interfase), donde la primera es usada especialmente en cluster con nodos heterogneos (arquitectura del procesador, sistemas operativo, entre otras), y pertenecientes a diferentes dominios de red, la segunda librera usada para cluster homogneos. Un tipo de software para realizar cluster high performace es OSCAR (Open Source Cluster Application Resources) distribuido bajo licencia GPL. Este software trabaja sobre el sistema operativo Linux. En Windows se podra utilizar WCC 2003 (Windows Computer Cluster). La tecnologa de Clusters de Alto Rendimiento para Linux ms conocida es el la tecnologa Beowulf. Esta tecnologa se desarroll en la NASA y puede proporcionar potencial de cmputo del tipo de una supercomputadora utilizando computadoras personales sencillas. Al conectar estas entre s mediante una red Ethernet de alta velocidad, las computadoras personales se combinan para lograr la potencia de una supercomputadora. El nombre de Beowulf es tomado del nombre de un hroe de la mitologa danesa relatado en el libro La Era de las Fbulas, del autor norteamericano Thomas Bulfinch (1796-1867). Alta disponibilidad: Un Cluster de Alta Disponibilidad normalmente no comparte la carga de procesamiento que tiene un Cluster de Alto Rendimiento. Tampoco comparten la carga de trfico como lo hacen los Clusters de Balance de Carga. Su funcin es la de esperar listos para entrar inmediatamente en funcionamiento en el caso de que falle algn otro servidor. La caracterstica de flexibilidad que proporciona este tipo de tecnologa de Cluster, lo hacen necesario en ambientes de intercambio intensivo de informacin. Los clusters de alta disponibilidad permiten un fcil mantenimiento de servidores. Una mquina de un cluster de servidores se puede sacar de lnea, apagarse y actualizarse o repararse sin comprometer los servicios que brinda el Cluster. Cuando el servidor vuelve a estar listo, se incorpora al Cluster y se puede dar servicio al siguiente servidor del grupo. Adicionalmente a los Clusters tipo Beowulf, existen las siguientes tecnologas similares: MOSIX. Esta tecnologa basada en Linux, permite realizar balance de carga para procesos particulares en un cluster. Trabaja como un Cluster de Alto Rendimiento en el sentido de que est diseado para tomar ventaja del hardware ms rpido disponible en el cluster para cualquier tarea que le sea asignada. Pero, lo realiza balanceando la carga de las varias tareas en varias mquinas.Una de las grandes ventajas de MOSIX es que no requiere la confeccin especial de software como lo requiere los clusters tipo Beowulf. Los usuarios ejecutan sus programas normalmente y el sistema MOSIX se encarga del resto. Otra tecnologa de clusters es el paquete Piranha, que permite a los servidores Linux proveer alta disponibilidad sin la necesidad de invertir cantidades mayores en hardware. La tecnologa de cluster es basado completamente en software, donde los servidores se comunican en una red de alta velocidad.

Se puede configurar para trabajar como Cluster de Alta Disponibilidad o de Balance de Carga. El Piranha puede configurar un servidor de respaldo en caso de fallo de la contraparte. Tambin 2 puede hacer que el cluster aparezca como un servidor virtual. Alta eficiencia: 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. Los clusters pueden tambin clasificar como Clusters de IT Comerciales (Alta disponibilidad, Alta eficiencia) y Clusters Cientficos (Alto rendimiento). A pesar de las discrepancias a nivel de requerimientos de las aplicaciones, muchas de las caractersticas de las arquitecturas de hardware y software, que estn por debajo de las aplicaciones en todos estos clusters, son las mismas. Ms an, un cluster de determinado tipo, puede tambin presentar caractersticas de los otros. COMPONENTES DE UN CLUSTER En general, un cluster necesita de varios componentes de software y hardware para poder funcionar. A saber:

Nodos Sistemas Operativos Conexiones de Red Middleware Protocolos de Comunicacin y servicios Aplicaciones Ambientes de Programacin Paralela Un ejemplo de cluster en la NASA Nodos: Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de trabajo (Workstation). 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. En estructuras de datos dinmicas un nodo es un registro que contiene un dato de inters y al menos un puntero para referenciar (apuntar) a otro nodo. Si la estructura tiene slo un puntero, la nica estructura que se puede construir con l es una lista, si el nodo tiene ms de un puntero ya se pueden construir estructuras ms complejas como rboles o grafos. El cluster puede estar conformado por nodos dedicados o por nodos no dedicados. En un cluster con nodos dedicados, los nodos no disponen de teclado, mouse ni monitor y su uso est exclusivamente dedicado a realizar tareas relacionadas con el cluster. Mientras que, en un cluster con nodos no dedicados, los nodos disponen de teclado, mouse y monitor y su uso no est exclusivamente dedicado a realizar tareas relacionadas con el cluster, el cluster 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 Cluster, los nodos deben tener caractersticas similares, es decir, deben guardar cierta similaridad de arquitectura y sistemas operativos, ya que si se

conforma un Cluster con Nodos totalmente heterogneos (existe una diferencia grande entre capacidad de procesadores, memoria, HD)ser ineficiente debido a que el middleware delegara o asignara todos los procesos al Nodo de mayor capacidad de Computo y solo distribuir cuando este se encuentre saturado de procesos; por eso es recomendable construir un grupo de ordenadores los ms similares posible. Funcionamiento de los nodos en un clster Los nodos tienen las siguientes caractersticas: Todo nodo tiene acceso a todos los datos de la configuracin de clster. Todo nodo se comunica con los dems nodos del clster a travs de una o ms redes fsicamente independientes (a veces denominadas interconexiones). Los adaptadores de red, conocidos como interfaces de red en los clsteres de servidor, conectan los nodos a las redes. Todos los nodos del clster saben cundo otro sistema se une o abandona el clster. Todos los nodos del clster tienen conocimiento de los recursos que se ejecutan localmente y de los recursos que se ejecutan en los dems nodos del clster. Todos los nodos del clster estn agrupados bajo un nombre comn, el nombre de clster, que se utiliza para acceder al clster y para gestionarlo. Cuando se inicia un nodo, ste busca nodos activos en las redes designadas para la comunicacin interna. Si encuentra un nodo activo, intenta unirse al clster del nodo. Si no encuentra ningn clster, intenta formar un clster tomando control del recurso de qurum. El recurso de qurum almacena la versin ms reciente de la base de datos del clster, que contiene la configuracin del clster y los datos de estado. Un clster de servidor mantiene una copia coherente y actualizada de la base de datos del clster en todos los nodos activos. Un nodo puede albergar unidades fsicas o lgicas, denominadas recursos. Los administradores organizan estos recursos de clster en unidades funcionales conocidas como grupos y asignan estos grupos a nodos individuales. Si un nodo falla, el clster de servidor transfiere los grupos alojados en el nodo a otros nodos del clster. Este proceso de transferencia se llama sustitucin por anomala. El proceso inverso, recuperacin tras error, tiene lugar cuando el nodo con errores se vuelve a activar y los grupos que haban sido sustituidos por anomala se transfieren de nuevo al nodo original. 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 clusters como Lustre (CFS) y PVFS2. Tecnologas en el soporte del almacenamiento en discos duros: IDE (PATA, Parallel ATA): Anchos de banda (Bw) de 33, 66, 100 y 133MBps. SATA I (SATA-150): Bw 150 MBps. SATA II (SATA-300): Bw 300 MBps. SCSI: Bw 160, 320, 640MBps. Proporciona altos rendimientos. SAS (Serial Array SCSI): Ana SATA II y SCSI. Bw 375MBps. Las unidades de cinta (DLTs) son utilizadas para backups por su bajo coste.

NAS (Network Attached Storage) es un dispositivo especfico dedicado a almacenamiento a travs de red (normalmente TCP/IP) que hace uso de un S.O. optimizado para dar acceso a travs 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 rea Network) a travs de Fibre Channel. Estas conexiones son dedicadas. Mientras NAS permite compartir el almacenamiento, utilizar la red, y tiene una gestin ms sencilla, DAS proporciona mayor rendimiento y mayor fiabilidad al no compartir el recurso. NAS vs. SAN: o o o o o o o Cables: NAS usa Ethernet. SAN usa Fibre Channel Protocolo: NAS usa CIFS, NFS, HTTP sobre TCP/IP. SAN usa Encapsulated SCSI (iSCSI, cuando encapsula sobre TCP/IP, y FCP cuando encapsula directamente sobre Fibre Channel). Manejo: en NAS el NAS head gestiona el sistema de ficheros. En SAN mltiples servidores manejan los datos. NAS nos permite acceder a un sistema de ficheros a travs de TCP/IP usando CIFS (en el caso de Windows) NFS (en el caso de Unix/Linux. NAS es una solucin ms adecuada como. Servidor de ficheros. Almacenamiento de directorios de usuario. Almacenamiento de archivos en general. Por su parte, una SAN es usada para acceder a almacenamiento en modo BLOQUE, a travs de una red de fibra ptica con Fibre Channel (FC) utilizando el protocolo SCSI. SAN es una solucin ms adecuada para: Bases de datos. Data warehouse. Backup (al no interferir en la red del sistema). Cualquier aplicacin que requiera baja latencia y alto ancho de banda en el almacenamiento y recuperacin de datos.

Sistema Operativo: Debe ser multiproceso, multiusuario. Otras caractersticas deseables son la facilidad de uso y acceso y permitir adems mltiples procesos y usuarios. 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. Un sistema operativo 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, autoradios y computadoras) Ejemplos: GNU/Linux Rocks una distribucin especializada para clusters. Unix: Solaris / HP-Ux / Aix Windows NT /2000 / 2003 Server Mac OS X Cluster OSs especiales o Kerrighed, etc. o

Conexiones de Red: Los nodos de un cluster 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 Clusters. Para aplicaciones con paralelismo de grano grueso puede suponer una solucin acertada. o La opcin ms utilizada en la actualidad es Gigabit-Ethernet (1000Mbps), siendo emergente la solucin 10Gigabit-Ethernet. La latencia de estas tecnologas est en torno a los 30-100 us, dependiendo del protocolo de comunicacin empleado. o En todo caso, es la red de administracin por excelencia, as que aunque no sea la solucin de red de altas prestaciones para las comunicaciones, es la red dedicada a las tareas administrativas. o Myrinet (Myrinet 2000 y Myri-10G) Su latencia es de 1,3/10 s, y su ancho de Banda de 2/10Gbps, respectivamente para Myrinet 2000 y Myri-10G. o Es la red de baja latencia ms utilizada en la actualidad, tanto en clusters como en MPPs estando presente en ms de la mitad de los sistemas del top500. Tiene dos bibliotecas de comunicacin a bajo nivel (GM y MX). Sobre estas bibliotecas estn implementadas MPICHGM, MPICH-MX, Sockets-GM y Sockets MX, para aprovechar las excelentes caractersticas de Myrinet. Existen tambin emulaciones IP sobre TCP/IP, IPoGM e IPoMX. o Infiniband Es una red surgida de un estndar desarrollado especficamente para realizar la comunicacin en clusters. Una de sus mayores ventajas es que mediante la agregacin de canales (x1, x4 y x12) permite obtener anchos de banda muy elevados. La conexin bsica es de 2Gbps efectivos y con quad connection x12 alcanza los 96Gbps. No obstante, los startups no son muy altos, se sitan en torno a los 10 s. o 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. o SCI (Scalable Coherent Interface) IEEE standard 1596-1992 Su latencia terica es de 1.43 s y su ancho de banda de 5333 Mbps bidireccional. Al poder configurarse con topologas de anillo (1D), toro (2D) e hipercubo (3D) sin necesidad de switch, se tiene una red adecuada para clusters de pequeo y mediano tamao. o Al ser una red de extremadamente baja latencia, presenta ventajas frente a Myrinet en clusters 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. o Adems, a travs del mecanismo de pre-loading (LD_PRELOAD) se puede conseguir que todas las comunicaciones del sistema vayan a travs de SCI-SOCKETS (transparencia para el usuario). o

Middleware (capa de abstraccin entre el usuario y los sistemas operativos): El middleware es un software que generalmente acta entre el sistema operativo y las aplicaciones con la finalidad de proveer a un cluster 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 cluster 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 cluster 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. 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 cluster al primero; Priorizacin de trabajos: en caso de tener varios procesos corriendo en el cluster, 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), memoria, datos y servicios. La programacin paralela define la divisin de una labor de procesamiento entre mltiples procesadores que operan simultneamente. El resultado esperado es realizar tal procesamiento en forma ms eficiente comparada con su ejecucin en un sistema uniprocesador. Su principal ventaja es su habilidad de llevar a cabo tareas de una escala que no sera realista o costo-efectivo para otros sistemas. Sin embargo, en general la programacin paralela representa una labor sumamente compleja.

SISTEMAS CLUSTERS IMPLEMENTADOS

Beowulf En 1994, la Agencia Espacial NASA comenz el Proyecto Beowulf [1] en el Centro para la Excelencia en Datos Espaciales y Ciencias de la Informacin (CESDIS), cuyo resultado fue la construccin de un Clusterde 16 mquinas destinado al Proyecto de Ciencias Espaciales y Terrestres (ESS) ubicado en el Centro de Vuelo Espacial de Goddard (GSFC). La idea de construir un sistema con elementos de hardware de bajo costo, para satisfacer requisitos computacionales especficos, se difundi rpidamente a travs de la NASA y de las comunidades acadmicas y cientficas a escala mundial. Un Cluster del tipo Beowulf posee una arquitectura escalable de mltiples computadoras, que puede ser usada para realizar cmputo paralelo y distribuido. Estos Clusters son sistemas construidos con componentes de hardware y software de uso general, es decir, no contienen ningn tipo de hardware especializado. Los nodos estn constituidos por cualquier computadora capaz de ejecutar el Sistema Operativo LINUX, y software para el desarrollo de aplicaciones paralelas. En su forma general, un Cluster Beowulf consiste de un nodo Servidor (frontend) y uno o varios nodos de cmputo (compute node) llamados nodos Cliente, interconectados a travs de una LAN. El nodo Servidor controla los nodos Cliente y tambin es la Consola y puerta de entrada al Cluster desde el mundo exterior. Los nodos Cliente del sistema se usan slo para cmputo dentro del sistema. Una caracterstica importante de los Cluster del tipo Beowulf es su escalabilidad. Los cambios en los microprocesadores y en su velocidad, o la tecnologa de las redes de interconexin de los nodos, no afecta el modelo de programacin. Por lo tanto, se garantiza la compatibilidad a los usuarios del sistema. Por otro lado, la madurez alcanzada por el Sistema Operativo LINUX y su robustez, la estandarizacin de libreras GNU para el paso de mensajes como PVM y MPI, garantizan a los programadores que las aplicaciones que desarrollen, se ejecutarn en futuras versiones de estos elementos de software y, por ende, en Clusters del tipo Beowulf actualizados, independientemente de la plataforma de hardware. 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 Aparte del PageRank (el sistema de clasificacin de la importancia de cada Web), una de las claves del xito de Google es la tecnologa de sus servidores. Google atiende a ms de 5,000 millones de bsquedas cada mes (unas dos mil por segundo), y esta cifra aumenta progresivamente cada da. Para atender todas estas peticiones, y buscar entre ms de 3,000 millones de documentos, Google opt por la tecnologa Linux. Disponen de un clster de cerca de 20,000 servidores repartidos en siete data centers. Estos centros de datos se encuentran situados en diversos puntos del planeta, como Washington D.C. (USA), Herndon (Virginia, USA), Santa Clara (California, USA) o Zurich (Suiza). Cada servidor dispone de un solo procesador Intel, y una memoria RAM que va desde 256 Mb a 1 Gb. Entre estos data centers, Google utiliza su propio gestor de trfico y su propio software de balanceo de cargas, para dirigir cada peticin hacia el mejor servidor. En cada PC se encuentran uno o dos discos duros de 40Gb 75Gb, de marca IBM. Google prefiere este sistema distribuido de almacenamiento de datos, antes que uno centralizado. Las razones: es mucho ms barato y tiene menos posibilidades de fallo. En cada una de estas

10

mquinas est instalado Linux RedHat. En mayo de 2002, Google lleg a un acuerdo con RedHat para que esta empresa le proporcionase el software del Sistema Operativo. La eleccin de Linux fue sencilla para Google: el menor ratio coste/rendimiento, corre en simples PCs, y la posibilidad de personalizar cualquier parte del Sistema Operativo. De hecho, no solamente usan Linux en sus servidores, sino tambin en la mayora de los PCs de los empleados. Una vez instalado Linux en cada equipo, los tcnicos de Google, lo personalizan a su antojo. Ellos lo llaman Googlelizar el Sistema Operativo con sus propias aplicaciones. La mayora de las aplicaciones estn programadas en C++ (aunque tambin utilizan Python y PHP), y las herramientas que utilizan son gcc, gdb y gnats para el desarrollo y p4 para el control de las versiones. Google dispone de ms de 100 desarrolladores en su plantilla. Debido a la multitud de servidores de los que se dispone, el tamao de estos es muy importante. Por ello, la compaa californiana Rackable Systems compacta para Google varios servidores en un espacio realmente reducido. Referente a la seguridad, la mayora de las mquinas de Google no estn accesibles desde Internet, ya que se encuentran detrs de un router/firewall que lo impide. Las que s estn accesibles (los servidores Web) son auditados peridicamente para encontrar posibles agujeros de seguridad. 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 cluster conformado por 70 PS2; utilizando Sony Linux Kit (basado en Linux Kondora y Linux Red Hat) y MPI. ClusterX En la lista TOP 500 de noviembre de 2004 fue considerado el sptimo sistema ms rpido del mundo; sin embargo, para julio de 2005 ocupa la posicin catorce. Cluster X fue construido en el Tecnolgico de Virginia en el 2003; su instalacin fue realizada por estudiantes del Tecnolgico. Est constituido por 2200 procesadores Apple G5 de 2.3 GHz. Utiliza dos redes: Infiniband 4x para las comunicaciones entre procesos y Gigabit Ethernet para la administracin. Cluster X posee 4 Terabytes de memoria RAM y 176 Terabytes de disco duro, su rendimiento es de 12.25 TFlops. Se lo conoce tambin como Terascale. MareNostrum En julio de 2004 se cre el Centro de Supercomputacin de Barcelona (BSC), de la Universidad Politcnica de Catalua, Espaa. El BSC cre el cluster MareNostrum. En noviembre de 2004 MareNostrum se ubic en el TOP 500, como el primer cluster ms veloz y el cuarto sistema ms rpido del mundo; sin embargo, para julio de 2005 se ubic en la quinta posicin. Est conformado por 3564 procesadores PowerPC970 de 2.2 GHz. Utiliza una red Myrinet. Su rendimiento es de 20.53 Tflops.

Thunder Thunder fue construido por el Laboratorio Nacional Lawrence Livermore de la Universidad de California. Est conformado por 4096 procesadores Intel Itanium2 Tiger4 de 1.4GHz. Utiliza una red basada en tecnologa Quadrics. Su rendimiento es de 19.94 TFlops. Se ubic en la segunda

11

posicin del TOP 500 durante junio de 2004, luego en la quinta posicin en noviembre de 2004 y en la lista de julio de 2005 se ubic en la sptima posicin. ASCIQ ASCI Q fue construido en el ao 2002 por el Laboratorio Nacional Los lamos, Estados Unidos. Est constituido por 8192 procesadores AlphaServer SC45 de 1.25 GHz. Su rendimiento es de 13.88 TFlops. Se ubic en la segunda posicin del TOP 500 durante junio y noviembre de 2003, luego en la tercera posicin en junio de 2004, en la sexta posicin en noviembre de 2004 y en la doceava posicin en julio de 2005. La Red Espaola de Supercomputacin. La Red Espaola de Supercomputacin se inaugur en marzo de 2007, ante la necesidad de aumentar la capacidad de clculo que da servicio a la comunidad cientfica. A consecuencia de esta necesidad se procedi a realizar una actualizacin del supercomputador MareNostrum, en la cual se sustituyeron los blades JS20 por blades JS21, ambos de IBM, con lo que se duplica su capacidad de cmputo. Los blades sustituidos se utilizaron para crear una estructura distribuida de supercomputadores en diferentes emplazamientos de la geografa espaola. La mitad de dichos blades se utiliz para ampliar Magerit, el supercomputador perteneciente al CeSViMa (UPM). El resto se reparti, a partes iguales, para crear los nodos de las universidades de Cantabria, Mlaga, Valencia, Zaragoza y el Instituto de Astrofsica de Canarias (IAC). El acceso al servicio se gestiona mediante un comit de acceso, integrado por cientficos encargados de valorar cada una de las solicitudes de acceso y planificar el acceso a los recursos disponibles. Los recursos se asignan por un periodo de 4 meses, tras lo cual es necesario presentar una nueva solicitud de acceso. Asimismo, cada una de las instituciones puede disponer de hasta un 20% del uso de los recursos asignados, a excepcin del CeSViMa que controla cerca del 40% de la mquina, al disponer de nodos propios que no proceden del MareNostrum. Gestin de Recursos Distribuidos: Sistemas Gestores de Colas Los sistemas de gestin de colas, gestionan una cola de ejecucin, planifican la ejecucin de las tareas y gestionan los recursos, para minimizar costes y maximizar rendimiento de las aplicaciones. Funcionamiento: Los usuarios envan trabajos con qsub indicando requisitos de memoria, tiempo de procesador y espacio en disco. El gestor de recursos registra el trabajo. Tan pronto los recursos pedidos se hallen disponibles, el gestor de colas pone a ejecucin el trabajo solicitado que segn su planificacin es el que tiene mayor prioridad. Se utiliza el planificador del gestor de colas en ausencia de planificadores ms avanzados (como Maui / Moab cluster suite, los cuales pueden ser integrables en el sistema de colas). Se puede consultar el estado de los trabajos, en ejecucin, en espera o terminados, a travs de qstat Se puede eliminar un trabajo mediante qdel. El gestor de colas se configura con qconf. Salida estndar de trabajos: job.o#job Salida de error de trabajos: job.e#job Sistemas gestores de colas populares: Sun Grid Engine (SGE), PBS, Open PBS y Torque.

12

Balanceadores de Carga: 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 clster funcione con una nica IP pblica, siendo los paquetes reescritos por el nodo maestro para ocultar los nodos internos. Slo es aceptable para un nmero pequeo 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 ms liviana. El enrutamiento directo (DR) es un sistema an ms ligero, pero necesita que todos los servidores compartan el mismo segmento de red. CLUSTERS EN APLICACIONES CIENTFICAS

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 cdigos legacy, difciles de mantener, ya que los dominios de aplicacin suelen ser difcilmente paralelizables. Ejemplos: Simulaciones (earth simulator), genmica computacional, prediccin meteorolgica (MM5), simulacin de corrientes y vertidos en el mar, aplicaciones en qumica 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 estn ejecutando continuamente y no controlados por un sistema de colas Es usual que un sistema provea varios servicios. Una primera aproximacin para realizar una distribucin del trabajo es separar los servicios: Un servidor Web con la BD en un nodo, el contenedor EJB en otro y el servidor de pginas Web en otro constituye un claro ejemplo de distribucin en el mbito empresarial. Otra aproximacin es instalar una aplicacin Web en un clster 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 clster.

13

Vous aimerez peut-être aussi