Um cluster é um conjunto de servidores ligados em rede com o objetivo de aumentar o desempenho, disponibilidade ou facilidade de gerenciamento. Clusters foram inicialmente desenvolvidos pela NASA em 1994 e geralmente consistem em máquinas convencionais que fornecem aos usuários a abstração de uma única máquina de alto desempenho.
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
4. Alta disponibilidade
Balanceamento de carga
Processamento paralelo (Beowulf cluster)
Prof. Adriano Teixeira de Souza
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. 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. Pontos a refletir:
◦ Cluster versus hardware tolerante à falhas
◦ Custo versus Downtime
Prof. Adriano Teixeira de Souza
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. 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. :80
load balancer
:8001 :8002 :8003 :8004 :8005
Prof. Adriano Teixeira de Souza
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. 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. 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. 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. 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. 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. #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