Clusters

De Wiki.infotuga.com

Tabela de conteúdo

Definição

Cluster ou aglomerado de computadores é definido como um conjunto de computadores, cuja constituição pode ter origem em vários desktops ligados em rede e que comunicam através do sistema de distribuição, trocando informações entre si. Os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador.


Vantagens

Cresce mais que um único computador – escalabilidade;

Tolera defeitos em nós e ainda assim continua a oferecer serviços – failover;

Pode ser constituído a partir de componentes de baixo custo – COTS;


Conceitos importantes

Balanceamento de carga

Este conceito baseia-se nas limitações do hardware e na repartição de um serviço por várias máquinas, originando por vezes o seu congestionamento. Por vezes especializam-se em pequenos grupos sobre os quais se efectua um balanceamento de carga, isto é, uma utilização do CPU, de armazenamento ou de rede.

Sistema de alta disponibilidade

É um sistema informático resistente a falhas de software e energia, cujo objectivo é manter os serviços disponíveis o máximo de tempo possível. Sistema de processamento distribuído ou paralelo. É um sistema que interliga vários nós de processamento (computadores individuais, não necessariamente homogéneos) de maneira que um processo de grande consumo seja executado no nó "mais disponível", ou subdividido por vários nós.


Criação de Clusters

Um cluster do servidor de aplicativos é um grupo de servidores que fornece serviços corporativos, como o suporte a servlets e JSP (Java Server Pages). Os servidores ao serem executados em sistemas separados, trocam mensagens para sincronizar os dados, permitindo que qualquer nó individual processe os pedidos para um aplicativo distribuído e assuma uma sessão do usuário quando o nó falhar. A configuração de vários servidores num cluster denomina-se criação de cluster.

A criação de clusters ao melhorar a escalabilidade permite aumentar a capacidade do sistema, incluindo servidores extras.

Existem dois tipos de cluster na sua criação, o cluster vertical que envolve a execução de vários nós no mesmo host e que é utilizado quando as limitações num nó impedem a utilização da capacidade do host; e o cluster horizontal que melhora a disponibilidade e executa vários nós em hosts diferentes sendo utilizado para incluir um host adicional.

O cluster melhora a disponibilidade sincronizando automaticamente os dados de estado entre todos os nós no cluster. Se algum nó no cluster falhar, os pedidos posteriores podem ser processados por qualquer outro nó no cluster.

Relativamente ao tipo de sistema operacional utilizado nos computadores, este deve ser ou Windows ou Linux, pois existem particularidades em cada um dos sistemas e uma vez funcionando juntos poderiam impedir o funcionamento do cluster.

No que se refere ao software, este vai permitir a montagem do cluster e vai encarregar-se da distribuição do processamento. O software deve funcionar de forma a detectar erros e defeitos e a solucioná-los, sem interromper a actividade do cluster.

Um outro ponto interessante é a necessidade de existência de nobreaks ou geradores que garantem o funcionamento do sistema mesmo em caso de queda de energia.

Contudo, para garantir a inexistência de interrupções de serviço o software nem sempre é suficiente, existindo a necessidade de recorrer ao hardware como garante da fiabilidade (menos SPOF – Single Point Of Failure) e de maior redundância. O hardware redundante entra em funcionamento automaticamente após a detecção de falha do hardware principal. Independentemente da solução adoptada, existe sempre um tempo médio de recuperação (MTTR - Mean Time To Recover), que é o espaço de tempo (médio) que decorre entre a ocorrência da falha e a total recuperação do sistema ao seu estado operacional.


Aplicações dos Clusters

Os Clusters são utilizados em qualquer aplicação que não possa parar de funcionar ou perder dados. A título de exemplo podem-se referir como aplicações de clusters a previsão meteorológica, simulações geométricas (simulação de eventos no solo), simulações financeiras, etc.


História

Cluster surge em 1960 pela IBM como forma de interligar grandes mainframes, obtendo uma solução comercialmente viável de paralelismo. Nesta época o sistema HASP (Houston Automatic Spooling Priority) da IBM e seu sucessor, JES (Job Entry System) detinham um meio de distribuir tarefas nos mainframes interligados.

Em 2001 a IBM ainda suporta o cluster de mainframes através do Parallel Sysplex System, que permite que o hardware, o sistema operacional, o middleware, e o software de gerenciamento do sistema detenham uma melhor performance e um custo competitivo, permitindo que os usuários de grandes mainframes continuem a utilizar as suas aplicações.

Entretanto, convergiram em 1980 três tendências, os microprocessadores de alta performance, as redes de alta velocidade e as ferramentas padronizadas para computação distribuída de alto desempenho.

A tecnologia de cluster começou nas máquinas de alto desempenho (supercomputadores), que foi motivada devido ao alto preço dos supercomputadores, começando em 1994 com o desenvolvimento do cluster Beowulf pela NASA. O protótipo inicial era um cluster de 16 processadores DX4 ligados por dois canais Ethernet acoplados(Ethernet bonding).


Tipos de Clusters

Sistema Operativo Windows

Os Clusters do Windows fornecem três diferentes e complementares tecnologias de cluster, as quais podem ser utilizadas separadamente ou de forma combinada para fornecer serviços escalonáveis e de alta disponibilidade.

1. Clusters de balanceamento de carga de rede.

Estes clusters fornecem desempenho e alta disponibilidade a serviços e aplicativos baseados em TCP e UDP ao combinarem até 32 servidores num só cluster. Com a utilização do Balanceamento de carga de rede para criar um grupo de computadores de cluster clonados, ou idênticos, é possível aumentar a disponibilidade dos servidores referidos na tabela acima através de rede de longa distância corporativa.

2. Clusters de equilíbrio de carga de componente

Os clusters de equilíbrio de carga de componente fornecem alto desempenho e disponibilidade ao permitir que aplicativos COM+ (por exemplo, um aplicativo de carrinho de compras num site de comércio electrónico) sejam distribuídos por diversos servidores.

3. Clusters de servidores.

Fornecem alta disponibilidade para aplicativos por meio de failover de recursos. Centram-se na preservação do acesso do cliente a serviços de aplicativos e de sistema, como o Microsoft Exchange para mensagens, Microsoft SQL Server para aplicativos de banco de dados e serviços de arquivos e de impressão.

Sistema Operativo Linux

Os clusters de servidores Linux possuem preços mais baixos comparativamente com os clusters utilizados pela Microsoft no Windows, montados com peças de computador.

Os provedores de soluções de clustering Linux de computação de alta performance num nível básico, auxiliam os fabricantes na organização e no suporte de clusters de servidores ou fornecem serviços e aplicações extras. Num nível mais activo, poderão montar clusters inteiros do nada ou obter clusters completos de fabricantes e, customizar o hardware com softwares projectado às necessidades do cliente.

Clusters utilizados pelo Linux:

1. Cluster Beowulf

O Cluster Beowulf, foi fundamentado em 1994 pela NASA, com a finalidade deprocessar as informações espaciais que a entidade recolhia.

Este cluster efectua a conexão dos nós por redes do tipo Ethernet e possui um servidor denominado de Front-end que é responsável por controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento. Podem-se usar computadores comuns e não existe necessidade de utilizar equipamentos próprios para clusters, sendo suficientes os equipamentos comuns às redes e os tradicionais PCs.

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). Este sistema operacional possui como requisitos bibliotecas para Parallel Virtual Machine (PVM), mais avançado permitindo trabalhar com mensagens para todos os computadores ou para apenas um determinado grupo, ou para Message Passing Interface (MPI). Ambos os tipos são usados para a troca de mensagens entre os nós do cluster.

2. Cluster para Alta Disponibilidade

A Disponibilidade, neste contexto, refere-se ao tempo que determinado sistema permanece activo e em condições de uso e a sistemas que praticamente não param de funcionar.

Este cluster, usado em aplicações de missão crítica, tem meios eficientes de protecção e de detecção de falhas.

3. Cluster para Balanceamento de Carga

Este cluster é muito usado na Internet, em servidores de e-mail, comércio electrónico e em sistemas de lojas. Exige monitorização constante da comunicação e mecanismos de redundância, de forma a evitar a interrupção do funcionamento do cluster.

4. Cluster Combo

Este cluster combina as características dos clusters de Alta Disponibilidade e de Balanceamento de Carga.

5. Cluster MOSIX

MOSIX é a sigla para Multicomputer Operating System for UnIX e constitui um conjunto de ferramentas de cluster para Linux, direccionado para o Balanceamento de Carga. Não necessita de aplicações e recursos de software inclinados para o cluster, como acontece com o Beowulf, é eficiente na distribuição dinâmica de processamento entre os computadores do cluster e trabalha como se fosse um único supercomputador, através da Distribuição de Processos e Balanceamento de Carga.


Cluster Unix/Linux

A aposta do CICA em arquitecturas de cluster em 1993, adquirindo dois nós com processadores Alpha 21064, a 150 MHz, (máquinas Tom e Crazy) e um comutador de fibra óptica de barramento cruzado (GIGASwitch), que os interligava.

Com o objectivo de melhorar e tornar mais disponíveis os serviços prestados pelos sistemas do cluster Unix/Linux, criou-se uma infra-estrutura de hardware e de software para obter um ambiente de alta disponibilidade.

Em termos de hardware, o ambiente de alta disponibilidade é constituído por dois nós, lorosae e rufus, ligados, via SCSI, a um RAID Array. Em termos de software, o ambiente de alta disponibilidade é suportado pela aplicação TruCluster Available Server a correr nos dois nós referidos e que permite configurar uma aplicação que corre num membro ASE de tal forma que, se este falha, a aplicação recomeça no outro membro.

Este ambiente traduz-se essencialmente na partilha do acesso aos discos do RAID Array pelas máquinas que constituem esta estrutura, que se designam por membros ASE (Available Server Environment).

No geral, as tecnologias de Clustering solucionam diversos problemas que envolvem grande volume de processamento. As suas aplicações estão relacionadas com a melhoria do desempenho de um determinado sistema, a hospedagem de um site e o processo de pesquisas científicas complexas. O factor mais interessante é que todo o processamento pode ser feito de maneira que pareça ser um único computador dotado de alta capacidade.


Bibliografia

diferencial.ist.utl.pt

paginas.fe.up.pt

publib.boulder.ibm.com

www.inf.ufrgs.br

www.infowester.com

www.microsoft.com

www.resellerweb.com.br

www.windowsclusters.org

www.vivaolinux.com.br

Ferramentas pessoais