18
Clusters Prof. Adriano Teixeira de Souza

Sistemas Distribuídos - Clusters

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Sistemas Distribuídos - Clusters

Clusters

Prof. Adriano Teixeira de Souza

Page 2: Sistemas Distribuídos - Clusters

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.

Page 3: Sistemas Distribuídos - Clusters

Prof. Adriano Teixeira de Souza

Page 4: Sistemas Distribuídos - Clusters

Prof. Adriano Teixeira de Souza

Alta disponibilidade

Balanceamento de carga

Processamento paralelo (Beowulf cluster)

Page 5: Sistemas Distribuídos - Clusters

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”.

Page 6: Sistemas Distribuídos - Clusters

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)

Page 7: Sistemas Distribuídos - Clusters

Prof. Adriano Teixeira de Souza

Pontos a refletir:

◦ Cluster versus hardware tolerante à falhas

◦ Custo versus Downtime

Page 8: Sistemas Distribuídos - Clusters

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.

Page 9: Sistemas Distribuídos - Clusters

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

Page 10: Sistemas Distribuídos - Clusters

Prof. Adriano Teixeira de Souza

load balancer

:8001 :8002 :8003 :8004 :8005

:80

Page 11: Sistemas Distribuídos - Clusters

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.

Page 12: Sistemas Distribuídos - Clusters

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).

Page 13: Sistemas Distribuídos - Clusters

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.

Page 14: Sistemas Distribuídos - Clusters

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.

Page 15: Sistemas Distribuídos - Clusters

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

Page 16: Sistemas Distribuídos - Clusters

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).

Page 17: Sistemas Distribuídos - Clusters

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

Page 18: Sistemas Distribuídos - Clusters

Prof. Adriano Teixeira de Souza