Clusters de Computadoras

Poradmin

Clusters de Computadoras

El mismo término de Clusters se aplica a los conjuntos o conglomerados de computadoras, construidos utilizando componentes de hardware comunes y software libre, juegan hoy en día, un papel importante en la solución de problemas de las ciencias, las ingenierías y aplicaciones comerciales.

Los Clusters han evolucionado para apoyar actividades en aplicaciones que van desde supercómputo y software de misiones críticas, servidores Web y comercio electrónico, bases de datos de alto rendimiento.

El cómputo en Clusters surge como resultado de la convergencia de varias tendencias que incluyen, la disponibilidad de microprocesadores de alto rendimiento más económicos y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, y la creciente necesidad de potencia computacional para aplicaciones en las ciencias computacionales y comerciales.

Por otro lado, la evolución y estabilidad que ha alcanzado el sistema operativo Linux, ha contribuido importantemente al desarrollo de muchas tecnologías nuevas, entre ellas la de Clusters.

Mucha gente pensaría que las palabras “cluster” o “cluster de servidores” indican un grupo de computadoras de alto rendimiento utilizados en las investigaciones científicas. Sin embargo este es sólo un tipo de Cluster. La idea detrás del concepto de “cluster de alto rendimiento” es hacer que un número grande de máquinas individuales actúen como una sola máquina muy potente. Este tipo de clusters se aplica mejor en problemas grandes y complejos que requieren una cantidad enorme de potencia computacional. Entre las aplicaciones más comunes de clusters de alto rendimiento se encuentra el pronóstico numérico del estado del tiempo, astronomía, investigación en criptografía, análisis de imágenes, y más.

Un segundo tipo de tecnología de clusters, es el “cluster de servidores virtuales”, permite que un conjunto de servidores de red compartan la carga de trabajo de tráfico de sus clientes. Al balancear la carga de trabajo de tráfico en un arreglo de servidores, mejora el tiempo de acceso y confiabilidad. Además como es un conjunto de servidores el que atiende el trabajo, la falla de uno de ellos no ocasiona una falla catastrófica total. Este tipo de servicio es de gran valor para compañías que experimental grandes volúmenes de tráfico en sus sitios Web.(Figura)

El último tipo importante de clusters, involucra el tener servidores que actúan entre ellos como respaldos vivos de la información que sirven. Este tipo de clusters se les conoce como “clusters de alta disponibilidad” o “cluster de redundancia”.

Además del concepto de Cluster, existe otro concepto más amplio y general que es el Cómputo en Malla (Grid Computing). Una Malla es un tipo de sistema paralelo y distribuido que permite la compartir, seleccionar y añadir recursos que se encentran distribuidos a lo largo de dominios administrativos “múltiples” basados en su disponibilidad, capacidad, rendimiento, costo y calidad de servicio que requiere un usuario.

Si los recursos distribuidos se encuentran bajo la administración de un sistema central único de programación de tareas, entonces nos referiremos a un Cluster. En un Cluster, todos los nodos trabajan en cooperación con un objetivo y una meta común pues la asignación de recursos los ejecuta un solo administrador centralizado y global. En una Malla, cada nodo tiene su propio administrador de recursos y política de asignación.

¿Cómo funciona un Cluster?

En su parte central, la tecnología de Clusters consta de dos partes. La primera componente, consta de un sistema operativo confeccionado especialmente para esta tarea (modificaciones al kernel de Linux), un conjunto de compiladores y aplicaciones especiales, que permiten que los programas que se ejecutan sobre esta plataforma tomen las ventajas de esta tecnología de Clusters.

La segunda componente es la interconexión de hardware entre las máquinas (nodos) del Cluster. Se han desarrollado interfaces de interconexión especiales muy eficientes, pero comúnmente las interconexiones se realizan mediante una red Ethernet dedicada de alta velocidad. Es mediante esta interfaz que los nodos del Cluster intercambian entre si asignación de tareas, actualizaciones de estado y datos del programa. Existe otra interfaz de red que conecta al Cluster con el mundo exterior.

Cuando se habla de resolver un problema en paralelo, se refiere a dividir un trabajo en varias tareas que se pueden desarrollan en paralelo. Esto es lo que sucede en un Cluster de Alto Rendimiento y la solución de los problemas se termina más rápido. Por ejemplo, es más rápido pintar un edificio de 32 cuartos si se cuenta con una brigada de 8 pintores que pinten cada uno 4 cuartos, todos sincronizados a trabajar al mismo tiempo.

La tecnología de Clusters de Alto Rendimiento para Linux más conocida es el la tecnología Beowulf. Esta tecnología se desarrolló en la NASA y puede proporcionar potencial de cómputo del tipo de una supercomputadora utilizando computadoras personales sencillas. Al conectar estas entre si 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 héroe de la mitología danesa relatado en el libro La Era de las Fábulas, del autor norteamericano Thomas Bulfinch (1796-1867).

Los servidores de un Cluster de Alta Disponibilidad normalmente no comparten la carga de procesamiento que tiene un Cluster de Alto Rendimiento. Tampoco comparten la carga de tráfico como lo hacen los Clusters de Balance de Carga. Su función es la de esperar listos para entrar inmediatamente en funcionamiento en el caso de que falle algún otro servidor. La característica de flexibilidad que proporciona este tipo de tecnología de Cluster, lo hacen necesario en ambientes de intercambio intensivo de información.

Los clusters de alta disponibilidad permiten un fácil mantenimiento de servidores. Una máquina de un cluster de servidores se puede sacar de línea, 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 tecnologías similares:

MOSIX. Esta tecnología 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á diseñado para tomar ventaja del hardware más rápido disponible en el cluster para cualquier tarea que le sea asignada. Pero, lo realiza balanceando la carga de las varias tareas en varias máquinas.

Una de las grandes ventajas de MOSIX es que no requiere la confección especial de software como lo requiere los clusters tipo Beowulf. Los usuarios ejecutan sus programas normalmente y el sistema MOSIX se encarga del resto.
Otro tecnología 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 tecnología de cluster es basado completamente en software, donde los servidores se 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. También puede hacer que el cluster aparezca como un servidor virtual.
¿Por qué construir un Cluster?

Los beneficios de construir un Cluster sería benéfico en varios aspectos en una variedad de aplicaciones y ambientes:

incremento de velocidad de procesamiento ofrecido por los clusters de alto rendimiento
incremento del número 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 la investigaciones meteorológicas y pronóstico numérico del estado del tiempo, se requiere el manejo de cantidades masivas de datos y cálculos muy complejos. Al combinar el poder de muchas máquinas del tipo estación 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 técnico dedicado) .

Otro ejemplo sería el de la situación de un sitio Web de mucho tráfico. 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 instantáneos, se puede reparar el problema mientras el sitio funciona con el plan de respaldo, sin suspensión de servicio.

Antecedentes de los Clusters de Computadoras y la Clase Beowulf
En muchas ramas de las ciencias la complejidad de los problemas que se estudian requieren contar acceso a una supercomputadora, siendo éstas máquinas poderosas que pueden desarrollar varios miles de millones de operaciones por segundo. Las supercomputadoras tradicionales emplean procesamiento en paralelo; contienen arreglos de microprocesadores ultrarrápidos que trabajan en sincronía para resolver problemas complejos como pronósticos numéricos del estado del tiempo, o modelar estructuras complejas de la materia. Los fabricantes de supercomputadoras como Cray, IBM, Silicon Graphics, entre otros, producen modelos por diseño especial y cuestan decenas de millones de dólares – precios que van más allá de los presupuestos de inversión de los grupos de investigación.
En los últimos años, el personal académico de diversas universidades y centros de investigación se han dado a la tarea de aprender a construir sus propias supercomputadoras conectando computadoras personales y desarrollando software para enfrentar tales problemas extraordinarios.
En 1994, se integró el primer cluster de PCs en el Centro de Vuelos Espaciales Goddard de la NASA, para resolver problemas computacionales que aparecen en las ciencias de la Tierra y el Espacio. Los pioneros de este proyecto fueron Thomas Sterling, Donald Becker y otros científicos de la NASA. El cluster de PCs desarrollado tuvo una eficiencia de 70 megaflops (millones de operaciones de punto flotante por segundo). Los investigadores de la NASA le dieron el nombre de Beowulf a este cluster, en honor del héroe de las leyendas medievales, quien derrotó al monstruo gigante Grendel.
En 1996, hubo también otros dos sucesores del proyecto Beowulf de la NASA. Uno de ellos es el proyecto Hyglac desarrollado por investigadores del Instituto Tecnológico de California (CalTech) y el Laboratorio de Propulsión Jet (JPL), y el otro, el proyecto Loki construido en el Laboratorio Nacional de Los Alamos, en Nuevo México. Cada cluster se integró con 16 microprocesadores Intel Pentium Pro y tuvieron un rendimiento sostenido de más de un gigaflop con un costo menor a $50,000 dólares.
En 1996, en el Laboratorio Nacional de Oak Ridge en Tennessee, se enfrentaban al problema de elaboración de un mapa de las condiciones ambientales del territorio de Estados Unidos. El territorio fue dividido en 7.8 millones de celdas de 1Km. Cada celda contenía la información de 25 variables, desde la precipitación promedio mensual hasta el contenido de Nitrógeno del suelo. Ninguna estación de trabajo o PC podría con esta tarea. Se requería una supercomputadora de procesamiento paralelo. En la actualidad cuentan con un cluster de 130 PCs para trabajar en la elaboración del mapa de eco regiones.
Como grabar Cd’s en Linux:
Para poder grabar cd’s en Linux lo que necesitaras será lo siguiente:
-Desde luego una grabadora de cd’s.
-Un disco duro con al menos 800 Mb libres para guardar las imágenes del cdrom que vayas a grabar.
-Un programa de grabación de cd’s para Linux como por ejemplo el CD roast.
La problemática de grabación de Cd’s es la incompatibilidad entre los formatos de los diferentes sistemas operativos, en 1988 se creo el estándar ISO9660 que era el formato estándar para todos los sistemas operativos lo malo que tiene es que fue diseñado cuando el sistema operativo mas extendido era el MS-DOS con el inconveniente de solo soportar 8+3 caracteres, desde entonces los desarrolladores de sistemas operativos han evolucionado este formato, con el inconveniente de hacerlo incompatible. Actualmente el formato de Linux y sistemas Unix en general es el Rockbridge, el de Windows 9X es el formato Joliet, para macintosh el formato HFS.

Lo siguiente antes de comenzar a gravar tus cd’s es saber si tu grabadora es compatible con los programas de grabación de Linux, esto lo puedes verificar en la siguiente dirección web: www.guug.de:8080/cgi-bin/winni/lsc.pl, Linux soporta las grabadoras con los interfaces IDE Y SCSI, para grabar cd’s desde Linux o Windows lo mas recomendable es utilizar grabadoras SCSI ya que ofrecen prestaciones superiores a las IDE que son mas económicas pero con prestaciones inferiores. En el caso de que la grabadora no este soportada por Linux lo único que puedes hacer para poder grabar un cd para Linux con el formato Rockbridge es crear una imagen del cd en cuestión y pasarlo a la partición de windows y utilizar un programa de grabación de windows que de soporte a tu grabadora y ya puedes grabar desde windows un cd con formato para Linux.
Para poder utilizar la grabadora en Linux lo primero será configurarla para que el sistema lo reconozca, tenemos que saber si nuestra grabadora es SCSI, IDE o IDE conectada por puerto serie, si la grabadora a instalar va a ser SCSI tendrás que tener una controladora SCSI que tendrás que configurar, antes de adquirirla asegurate que esta soportada por Linux (generalmente una controladora de una marca conocida como adaptec están soportadas por Linux), lo siguiente será recompilar el kernel para dar soporte a la controladora y la grabadora, recomiendo que integres el driver en el núcleo en vez de usar un modulo cargable ya que seguramente vas a usar la grabadora muy a menudo.
El siguiente paso será el de la creación de la imagen del cd a grabar: Para esto existen varios programas como el mkisofs y mkhybrid, yo recomiendo el ultimo ya que soporta mas formatos de archivos que el primero.
Y para grabar existen varios programas como el cdwrite y el cdrecord, yo recomiendo el segundo ya que esta mas desarrollado que el cdwrite, antes de iniciar el proceso de grabación tienes que configurar tu sistema para ver los dispositivos de copia de nuestro sistema tienes que ejecutar el siguiente comando cdrecord -scanbus, y en la lista que salga debera estar la grabadora.
El siguiente paso será comenzar a grabar el cd, con el siguiente comando comenzaras a grabar el cd: cdrecord -v speed=2 dev=ID,LUN CDimage, debes adaptar esta orden a tu sistema.
Nota Importante: Durante la grabación no es recomendable usar el ordenador ya que lo mas seguro es que provocásemos un vacío en el buffer (La grabación se debe hacer a una velocidad estable sin caídas). Espero que no pierdas muchos CD’s.
CONCLUSIÓN
La verdad es que hoy en día los clusters están a la orden del día y cada vez más compañías y universidades recurren a ellos. En muchas universidades españolas algunos departamentos disponen de un cluster para sus necesidades de cálculo y lo que es más, se está llegando hasta el punto de que algunos profesores tienen un pequeño cluster de varias máquinas en su propio despacho.

Simplemente, si se buscan grandes capacidades de proceso está es prácticamente la única manera barata de satisfacer estas necesidades.

En la red hay mucha información interesante sobre clustering algunos enlaces interesantes pueden ser

About the author

admin administrator