tics en la vida cotidiana prepa en linea modulo 1.pptx
Trabajo Clusters
1. Facultad de Ciencias Económicas y Administrativas
Escuela de Economía y Negocios
Clusters
Alumno: Claudio Sánchez
Cátedra: Gestión Del Conocimiento
Profesor: Jorge Israel
2. Clusters
El término cluster se aplica a los conjuntos o conglomerados de computadoras
construidos mediante la utilización de componentes de hardware comunes y
que se comportan como si fuesen una única computadora. Hoy en día juegan
un papel importante en la solución de problemas de las ciencias, las ingenierías
y del comercio moderno.
La tecnología de clusters ha evolucionado en apoyo de actividades que van
desde aplicaciones de súper computo y software de misiones críticas,
servidores Web y comercio electrónico, hasta bases de datos de alto
rendimiento, entre otros usos.
El cómputo con clusters 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.
Simplemente, cluster es un grupo de múltiples ordenadores unidos mediante
una red de alta velocidad, de tal forma que el conjunto es visto como un único
ordenador, más potente que los comunes de escritorio.
Los clusters 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.
De un cluster se espera que presente combinaciones de los siguientes
servicios:
1. Alto rendimiento
2. Alta disponibilidad
3. Equilibrio de carga
4. Escalabilidad
La construcción de los ordenadores del cluster es más fácil y económica debido
a su flexibilidad: pueden tener todos la misma configuración de hardware y
sistema operativo (cluster homogéneo), diferente rendimiento pero con
arquitecturas y sistemas operativos similares (cluster semi-homogéneo), o
tener diferente hardware y sistema operativo (cluster heterogéneo), lo que hace
más fácil y económica su construcción.
Para que un cluster funcione como tal, no basta solo con conectar entre sí los
ordenadores, sino que es necesario proveer un sistema de manejo del cluster, el cual se
encargue de interactuar con el usuario y los procesos que corren en él para optimizar el
funcionamiento.
3. Clasificación de los Clusters
El término cluster tiene diferentes connotaciones para diferentes grupos de
personas. Los tipos de clusters, establecidos en base al uso que se dé a los
clusters y los servicios que ofrecen, determinan el significado del término para
el grupo que lo utiliza. Los clusters pueden clasificarse con base en sus
características. Se pueden tener clusters de alto rendimiento (HPC – High
Performance Clusters), clusters de alta disponibilidad (HA – High Availability) o
clusters de alta eficiencia (HT – High Throughput).
Alto rendimiento: 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.
Alta disponibilidad: Son clusters cuyo objetivo de diseño es el de proveer
disponibilidad y confiabilidad. Estos clusters 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 clusters 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 cluster no es
considerado un gran problema.
Los clusters pueden también clasificar como Clusters de IT Comerciales (Alta
disponibilidad, Alta eficiencia) y Clusters Científicos (Alto rendimiento). A pesar
de las discrepancias a nivel de requerimientos de las aplicaciones, muchas de
las características de las arquitecturas de hardware y software, que están por
debajo de las aplicaciones en todos estos clusters, son las mismas. Más aún,
un cluster de determinado tipo, puede también presentar características 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 Comunicación y servicios
• Aplicaciones
• Ambientes de Programación Paralela
4. 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. Ahora bien, dentro de la informática la palabra nodo puede referirse a
conceptos diferentes según en ámbito en el que nos movamos:
En redes de computadoras cada una de las máquinas es un nodo, y si la red es
Internet, cada servidor constituye también un nodo. En estructuras de datos
dinámicas un nodo es un registro que contiene un dato de interés y al menos
un puntero para referenciar (apuntar) a otro nodo. Si la estructura tiene sólo un
puntero, la única estructura que se puede construir con él es una lista, si el
nodo tiene más de un puntero ya se pueden construir estructuras más
complejas como árboles o grafos.1
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 esta utilizando
para realizar sus tareas.
Cabe aclarar que a la hora de diseñar un Cluster, los nodos deben tener
características similares, es decir, deben guardar cierta similaridad de
arquitectura y sistemas operativos, ya que si se conforma un Cluster con Nodos
totalmente heterogéneos (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
Cómputo y solo distribuirá cuando este se encuentre saturado de procesos; por
eso es recomendable construir un grupo de ordenadores los más similares
posible.
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 clusters como Lustre
(CFS) y PVFS2.
Sistema Operativo
Debe ser multiproceso, multiusuario. Otras características deseables son la
facilidad de uso y acceso y permitir además múltiples procesos y usuarios. Un
sistema operativo es un programa o conjunto de programas de computadora
5. 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. Un sistema operativo se puede encontrar normalmente en la mayoría
de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya
que gracias a estos podemos entender la máquina y que ésta cumpla con sus
funciones (teléfonos móviles, reproductores de DVD, auto radios... y
computadoras)
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 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 cluster 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 cluster para proceder a su utilización
Ambientes de Programación Paralela
Los ambientes de programación paralela permiten implementar algoritmos que
hagan uso de recursos compartidos: CPU (Central Processing Unit), memoria,
datos y servicios.
6. 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 están ejecutando continuamente y
no controlados por un sistema de colas
• Es usual que un sistema provea varios servicios. Una primera
aproximación para realizar una distribución del trabajo es separar los
servicios:
• Un servidor web con la BD en un nodo, el contenedor EJB en otro
y el servidor de páginas web en otro constituye un claro ejemplo
de distribución en el ámbito empresarial.
• Otra aproximación es instalar una aplicación web en un clúster
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 clúster.
• Ejemplos: flickr, wikipedia y google.
Clusters en Aplicaciones Científicas
• 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 códigos legacy, difíciles de mantener, ya que
los dominios de aplicación suelen ser difícilmente paralelizables.
Ejemplos: Simulaciones (earth simulator), genómica computacional, predicción
meteorológica (MM5), simulación de corrientes y vertidos en el mar,
aplicaciones en química computacional.