Sistemas Distribuídos - Clusters

Preview:

DESCRIPTION

 

Citation preview

Clusters

Prof. Adriano Teixeira de Souza

Prof. Adriano Teixeira de Souza

Conjunto de servidores agrupados com intenção de ganho de desempenho, disponibilidade, ou facilidade no gerenciamento.

Início em 1994 pela NASA.

Normalmente um cluster é composto por máquinas convencionais ligadas em uma rede de alto desempenho e fornecendo a abstração ao usuário de uma única máquina.

Prof. Adriano Teixeira de Souza

Prof. Adriano Teixeira de Souza

Alta disponibilidade

Balanceamento de carga

Processamento paralelo (Beowulf cluster)

Prof. Adriano Teixeira de Souza

Intenção de manter a maior disponibilidade possível dos serviços, através da duplicação de servidores, ambientes de rede, discos, etc.

Disponibilidade x Downtime

Sistema de monitoração interno no cluster garante que, no caso de falha do servidor ativo, o sistema em standby assumirá os serviços automaticamente e “instantaneamente”.

Prof. Adriano Teixeira de Souza

Requisitos:

◦ Redundância de estrutura

◦ Camada de software de monitoração

◦ Mecanismos de sincronia

◦ Mecanismos de takeover (Mudança de controle)

Prof. Adriano Teixeira de Souza

Pontos a refletir:

◦ Cluster versus hardware tolerante à falhas

◦ Custo versus Downtime

Prof. Adriano Teixeira de Souza

Dificuldades: ◦ Implementação de sistema de failover completo,

que possa identificar todos tipos de falha (single failure points) e eliminá-los.

◦ Failover de ação rápida;

◦ Manter a consistência de dados entre todos os

nodes.

◦ Integridade de dados em caso de failover, e no failback para o node principal.

Prof. Adriano Teixeira de Souza

Cluster de balanceamento de carga disparam requisições de serviços de rede a múltiplos nós do cluster para balancear a carga de requisições entre os vários nós do cluster. O balanceamento de carga prove escalabilidade de porque você pode "combinar" o número de nós de acordo com a carga de requisições.

Se um nó em um cluster de balanceamento de carga se tornar inoperante, o software de balanceamento de carga detecta a falha e redireciona as requisições para outros nós da rede

Prof. Adriano Teixeira de Souza

load balancer

:8001 :8002 :8003 :8004 :8005

:80

Prof. Adriano Teixeira de Souza

Beowulf é uma classe de cluster similar ao original da implementado pela NASA.

Permite a computação paralela de alta performance em PCs comuns.

O nome Beowulf vem de um herói muito valente que tinha a missão de derrotar um monstro.

◦ poema épico em inglês antigo.

Prof. Adriano Teixeira de Souza

Um cluster Beowulf roda num sistema operacional Unix-like

Rede TCP/IP

Comumente utiliza-se MPI (Message Passing Interface) ou PVM (Parallel Virtual Machine).

Prof. Adriano Teixeira de Souza

O principal objetivo de um cluster beowulf é aumentar o poder computacional e diminuir o tempo de execução de programas, distribuindo trechos do processamento pelos vários nós.

Muito utilizado em laboratórios que necessitam fazer uma grande quantidade de cálculos numéricos.

Prof. Adriano Teixeira de Souza

A arquitetura é composta por pelo menos um nó servidor e um conjunto de nós clientes conectados por uma rede Ethernet.

Grandes clusters terão mais de um nó servidor.

Não há nenhum hardware customizado.

Prof. Adriano Teixeira de Souza

o Cluster Beowulf permite a construção de sistemas de processamento que podem alcançar altos valores de gigaflops

◦ um gigaflop equivale a 1 bilhão de instruções de ponto flutuante executadas por segundo

Prof. Adriano Teixeira de Souza

Para o funcionamento o Beowulf precisa de um software específico que pode ser o Parallel Virtual Machine (PVM) ou Message Passing Interface (MPI).

Prof. Adriano Teixeira de Souza

#include <stdio.h>

#include <mpi.h>

int main (int argc, char *argv[])

{

int rank, size,

MPI_Init (&argc, &argv);

MPI_Comm_rank (MPI_COMM_WORLD, &rank);

MPI_Comm_size (MPI_COMM_WORLD, &size);

printf( "Hello world from process %d of %d\n", rank, size );

MPI_Finalize();

return 0;

}

17

Exemplo MPI

Prof. Adriano Teixeira de Souza

Recommended