domingo, 11 de marzo de 2012

Sistemas Distribuidos (Clase y Laboratorio)

Reporte 6 - Principales servicios que debe cubrir nuestro clúster


Para esta entrada se me ocurrió ir listando los aspectos más importantes que debe cubrir nuestro clúster, para que nos sea más fácil y práctico buscar el software que cumpla con estos servicios, por ejemplo para buscar software que nos de alta disponibilidad de servicio, etc.

En estos días es posible tener una alta capacidad computacional (mucha capacidad de priocesamiento y de memoria) mediante clusters de computadoras sencillas o de baja capacidad, por ejemplo Google.

Por medio de la computación paralela podemos podemos realizar métodos de programación que utilicen recursos compartidos, como el procesador, la memoria, los datos y servicios.

Para llevar a cabo todo esto se necesitan distintos tipos de librerías de paso de mensajes y algunas consideraciones de diseño de aplicaciones (los programas paralelos se programan de forma distinta que uno convencional).

Considero estos los principales servicios que debe ofrecer un clúster, mi idea es posteriormente ir juntando programas que se encarguen de proveer estos servicios:

  • Poder computacional: Para tareas que requieran de gran procesamiento y memoria.
  • Máxima disponibilidad de servicios: Esto se puede empezar mediante las herramientas de monitoreo (esa información está en el wiki).
  • Completar el mayor número de tareas en el menor tiempo posible
Mi idea es que en base a estos servicios ir buscando el software que pueda cumplir con las tareas de manera eficiente, incluso podriamos programarlo.


Poder Computacional

Para el poder computacional es más que obvio que es necesario de un buen hardware en cada nodo, o también (esta es la idea) componer un clúster de un alto número de nodos (con un hardware modesto cada nodo).

De manera que la unión de todo este hardware componga algo más potente.


Máxima Disponibilidad

Para la máxima disponibilidad de servicios, mencionan muchos tutoriales que la clave o lo más importante está en las herramientas de monitoreo, porque nos dirán cuando un servicio está caído o pronostica una caída, esto debido a la alta demanda de recursos.

Sin embargo podemos contar con herramientas o técnicas que nos provean redundancia física y protección contra fallos de un sistema.

Lo que más me llama la atención en esto de la disponibilidad es como las empresas que cuentan con estos servicios gastan demasiado dinero en redundancias, por ejemplo para la conexión física entre nodos, por lo menos cada nodo cuenta con doble fuente de poder, doble cableado, incluso doble espacio de almacenamiento, donde cada dato tiene su réplica en un mirror.

Para mayor información sobre la alta disponibilidad les dejo este link que me pareció muy interesante: http://www.lintips.com/?q=node/119


Sobre tareas y tiempo

En este apartado también considero importante las herramientas de monitoreo, pero todavía más importantes son los cálculos que ya hemos hecho en clase, sobre cuanto tiempo tardaría la ejecución de ciertas programas, tomando como parámetros la cantidad de cores del procesador y también la cantidad de hilos en ejecución.

Espero para la próxima entrada encontrar o desarrollar un software que nos ayude a cumplir con estos servicios de manera eficiente.



Cualquier duda o aclaración pueden dejarla en comentarios.

Saludos!

1 comentario:

  1. Bien; 5+5. Ponlo por favor en el Wiki antes de que Telmex me lo vuelva a joder :/

    ResponderEliminar