Sistemas Distribuídos - Clusters

7.639 visualizações

Publicada em

Publicada em: Tecnologia, Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
7.639
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
309
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sistemas Distribuídos - Clusters

  1. 1. ClustersProf. Adriano Teixeira de Souza
  2. 2.  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
  3. 3. Prof. Adriano Teixeira de Souza
  4. 4.  Alta disponibilidade Balanceamento de carga Processamento paralelo (Beowulf cluster) Prof. Adriano Teixeira de Souza
  5. 5.  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
  6. 6.  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
  7. 7.  Pontos a refletir: ◦ Cluster versus hardware tolerante à falhas ◦ Custo versus Downtime Prof. Adriano Teixeira de Souza
  8. 8.  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
  9. 9.  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
  10. 10. :80 load balancer:8001 :8002 :8003 :8004 :8005 Prof. Adriano Teixeira de Souza
  11. 11.  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
  12. 12.  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
  13. 13.  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
  14. 14.  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
  15. 15.  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
  16. 16.  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
  17. 17. #include <stdio.h> Exemplo MPI#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 %dn", rank, size ); MPI_Finalize(); return 0;} Prof. Adriano Teixeira 17 Souza de
  18. 18. Prof. Adriano Teixeira de Souza

×