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.



                           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
:80
          load balancer




:8001   :8002      :8003          :8004              :8005




                   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>
                                                                         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
Prof. Adriano Teixeira de Souza

Sistemas Distribuídos - Clusters

  • 1.
  • 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.
  • 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
  • 18.