Procesamiento+Paralelo-Clústers

toc

Configuración de Clusters
Un __cluster__ se caracteriza de la manera más sencilla, si los computadores comparten acceso al mismo disco, por ejemplo, en una conexión de dos nodos en la que se interconectan mediante un enlace de alta velocidad que puede utilizarse para intercambiar mensajes que coordina la actividad del cluster. Este enlace puede ser una LAN que comparte con otros computadores no incluidos en el cluster o puede traslaparse de un medio de interconexión específico. Pero si así fuese el caso, uno o varios computadores del clúster tendrán un enlace a una LAN o a una WAN de forma que sea posible la conexión entre el cluster, actuando como servidor y los clientes remotos.

Otra alternativa que representada, es un cluster con disco compartido por lo tanto existe también un subsistema de disco que conecta directamente en las computadoras del cluster. Por ejemplo el subsistema del disco común es un RAID, siendo un tipo de tecnología de discos redundantes, por lo que es común en los cluster, en caso de una elevada disponibilidad, disminuyendo el punto de fallo por un disco compartido.

Existen varias configuraciones para un cluster a partir de alternativas funcionales como se discute a continuación:

Consiste en servidor secundario que sustituye al servidor primario en caso que falle, dando una facilidad de implementación. Esta configuración tiene ciertas limitaciones, que debido al alto coste el procesador secundario no está disponible para otras tareas de procesamiento.
 * ===Espera Pasiva: ===

Es bastante antiguo, se caracteriza por tener toda la carga de trabajo e un computador mientras otro permanece inactivo hasta que tome el relevo del primero cuando se produzca un fallo. Para la coordinación de máquinas, se maneja por medio de mensajes de actividad al computador en espera. En caso que los mensajes dejen de llegar, el computador en espera asume de inmediato que el servidor primario ha fallado y se coloca en operación.




 * ===Espera Activa: ===

Consiste en un servidor secundario que ya no espera para activarse en el momento de un fallo, si no que se utiliza para tareas de procesamiento. Este tipo de configuración disminuye el coste ya que el servidor secundario puede utilizarse en el procesamiento. Un factor importante como limitante, es la alta complejidad de configuración.

La espera activa, no suele aplicarse en un cluster, si no a varios computadores interconectados que se encuentran activos realizando algún procesamiento.




 * ===Servidores Separados: ===

Consiste en que cada servidor tiene su propio disco, no están compartidos por los sistemas. Los datos se copian desde un servidor secundario o primario. Tiene el gran beneficio que es de alta disponibilidad como una elevada de prestaciones, pero a la vez tiene la limitante de penalización en la red y el servidor debido a las operaciones de copia y de prestaciones.

Se precisa algún tipo de software de gestión para asignar a los servidores las peticiones que se van recibiendo del los clientes y así equilibrar la carga de los mismos con el fin de conseguir una utilización elevada. En el caso de un fallo por parte de un servidor mientras se está ejecutando un proceso, otro computador del cluster puede acceder a la aplicación para completarla, pero para que suceda este auxiliar se deben de copiar constantemente en los distintos sistemas de manera que cada procesador pueda acceder a los datos actuales de los demás.




 * ===Servidores conectados a discos: ===

Son servidores conectados a los mismos discos, aun así cada servidor tiene sus propios discos y si falla algún servidor pero sin compartir nada, este es da acceso a sus discos por otro servidor. El beneficio que se denota en esta configuración es la penalización reducida en la red y del servidor, debido a la eliminación de las operaciones de copia. Como limitante sucede que necesita discos espejos o RAID para contrarrestar el riesgo de fallos.


 * ===Servidores de compartimiento de discos: ===

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Esta configuración comparte simultáneamente el acceso a los discos, con una leve penalización en la red y en el servidor, dando un riesgo reducido de fallo del sistema debido a un fallo de disco. Para el compartimiento de discos se necesita software de control de acceso exclusivo y usualmente se usa tecnología RAID.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Consideraciones de diseño del sistema operativo

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Gestión de fallos: = = <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Es la forma en que actúa ante un fallo en un cluster, que está totalmente ligado con el tipo de configuración que tenga el cluster. Hay dos tiempos alternativas para enfrentar fallos, alta disponibilidad la cual permite que un alto grado de recursos esté en servicio como en caídas da sistema o perdida de volumen y la otra alternativa es cluster de tolerancia a fallos, permite que todos los recursos están disponibles, esto se consigue utilizando discos compartidos redundantes y mecanismos para salvar las transacciones no terminadas y concluir las transacciones terminadas.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Por otra parte la transferencia de fallo que conmuta aplicaciones y datos en el cluster de un sistema defectuoso a otro alternativo o hasta restaurar aplicaciones y datos por el sistema original. Ya una vez superado el fallo se llama recuperación de fallo, la cual puede hacerse simultáneamente.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Computación paralela: = = <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">La utilización eficiente de un cluster requiere ejecutar en paralelo el software correspondiente a una aplicación y enumeran 3 problemas generales:


 * 1) <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Paralización mediante compilado: Compilador que genera código en paralelo en el momento de la compilación, la cual es asignan en independientes cluster. Las __prestaciones__ dependen del problema y del compilador.
 * 2) <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Paralelismo realizada por el programador: Es el programador quien diseña y escribe la aplicación para que se ejecute en el cluster y se utiliza por medio del paso de mensajes entre los nodos del cluster según sea necesario. Por lo que aumenta la carga de trabajo.
 * 3) <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Computación paramétrica: Consiste en un programa que debe de ejecutarse muchas veces, pero por cada ciclo con diferentes condiciones o parámetros en un modelo de simulación que debe de ejecutarse en un gran número de escenarios.
 * 4) <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Arquitectura de cluster:



<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Los cluster se conectan a través de una red local LAN, ya sea de alta velocidad o mediante un conmutador que puede trabajar de forma independiente. En computador se instala una capa de software intermedia que permite el funcionamiento de todos los componentes, esta capa


 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Punto de entrada único: Un usuario entra al cluster como si estuviera en un computador.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Jerarquía de fichero único: El usuario ve una sola jerarquía de directorios.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Punto de control único: Existe una única estación de trabajo para gestión y control del cluster.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Red virtual única: Facilidad de acceso entre nodos. Existe una única operación de red.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Espacio de memoria único: Memoria compartida que permite que los programas compartan variables.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Sistema de gestión de trabajos únicos: Enviar trabajos sin especificar el nodo que lo va a ejecutar.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Interfaz de usuario único: Existe una interfaz gráfica común para todos los usuarios.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Espacio de E/S único: Acceso remoto de cualquier nodo a cualquier periférico de E/ S.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Espacio de procesos únicos: Esquema de identificación, la cual, cualquier nodo puede crear o comunicar otro proceso en un nodo remoto
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Puntos de chequeo: Proceso periódico para permitir el la recuperación de un fallo.
 * <span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">Migración de procesos: Distribución equilibrada de carga.

<span style="font-family: Arial,Helvetica,sans-serif; font-size: 120%;">El mejoramiento de la disponibilidad del cluster, como mejoramiento de prestaciones es la característica de este tipo de arquitectura.

media type="youtube" key="a7Ya7jXlKS4" width="425" height="350"media type="youtube" key="GFGnsco5yFI" width="425" height="350"