sexta-feira, 4 de novembro de 2011

Clusters

O que é cluster?

Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado. Os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador.

Histórico

A idéia inicial que conduz ao cluster foi desenvolvida na década de 1960 pela IBM como uma forma de interligar grandes mainframes. Entretanto. O cluster ganhou força até que três tendências convergiram nos anos 80: microprocessadores de alto desempenho, redes de alta velocidade, e ferramentas padronizadas para computação distribuída de alto desempenho.

Uma quarta tendência possível é a crescente necessidade de poder de processamento para aplicações científicas e comerciais unida ao alto custo e à baixa acessibilidade dos tradicionais supercomputadores.

No final de 1993, Donald Becker e Thomas Sterling iniciaram um esboço de um sistema de processamento distribuído construído a partir de hardware convencional como uma medida de combate aos custos dos supercomputadores. No início de 1994, trabalhando no CESDIS, com o patrocínio do projeto HTPCC/ESS, criaram o primeiro cluster desse tipo, o projeto Beowulf.
     - Cluster de 16 processadores DX4 interligados.

Tipos de cluster

Alta disponibilidade (high availability [HA] and failover):
    - estes modelos de clusters são construídos para prover uma disponibilidade de serviços e recursos de forma ininterruptas, através do uso da redundância implícita ao sistema;
     - a ideia geral é que se um nó do cluster vier a falhar (failover), aplicações ou serviços possam estar disponíveis em outro nó;
     - são utilizados para bases de dados de missões críticas, correio, servidores de arquivos e aplicações.

Balanceamento de carga (load balancing):
     - este modelo distribui o tráfego entrante ou requisições de recursos provenientes dos nodos que executam os mesmos programas entre as máquinas que compõem o cluster;
     - todos os nodos estão responsáveis em controlar os pedidos. Se um nó falhar, as requisições são redistribuídas entre os nós disponíveis no momento;
     - este tipo de solução é normalmente utilizado em fazendas de servidores web (web farms);
     - Exemplo: MOSIX (Multicomputer Operating System for UnIX).

Combinação HA & load balancing:
     - combina as características dos dois tipos de cluster, aumentando assim a disponibilidade e a escalabilidade de serviços e recursos;
     - este tipo de configuração de cluster é bastante utilizado em servidores web, de e-mail, de news ou ftp.

Alto desempenho e aplicações:
     - este modelo de cluster aumenta a disponibilidade e a performance para as aplicações, particularmente as grandes tarefas computacionais;
     - uma grande tarefa computacional pode ser dividida em pequenas tarefas que são distribuídas ao redor das estações (nodos), como se fosse um supercomputador massivamente paralelo;
     - estes clusters são usados para computação cientifica ou análises financeiras, tarefas típicas para exigência de alto poder de processamento.

Por que utilizar cluster?
     - quanto mais computadores na rede mais rápida fica sua estrutura;
     - maior agilidade no processamento;
     - componentes de fácil disponibilidade;
     - fácil manutenção: a manutenção geralmente fica por conta do grupo de usuários, que ganha com experiência e economia de recursos;
     - independência de fornecedores de hardware;
     - custos muito baixos;
     - se um computador do sistema parar não é necessário esperar seu conserto para recomeçar seu trabalho;
     - disponibilidade de sistema operacional e ferramentas de apoio gratuitas;
     - uma configuração inicial pode ser facilmente atualizada, sem desperdício do investimento.

Cluster OpenMosix

OpenMosix é uma extensão do kernel do Linux, utilizada para a criação de sistemas simples que utilizam clusters. Faz com que um cluster de computadores se comporte como um grande e único supercomputador, através da utilização de Migração Preemptiva de Processos e Balanceamento Dinâmico de Carga.

A implementação da Migração Preemptiva de Processos é capaz de migrar qualquer processo do usuário, em qualquer instante e para qualquer nó disponível de maneira transparente. Desta forma, se um nó com vários processos (a utilizar um destes dois recursos concorrentemente) detecta que outro nó tem disponibilidade superior, como por exemplo, menor carga de processador/RAM, então o OpenMosix encarrega-se de transladar/migrar um desses processos para esse nó.

Vantagens:
     - escalabilidade: completamente transparente, basta lançar um novo nó na rede sem software ou requisitos adicionais, e será automaticamente adaptado pelo cluster como nó;
     - adaptatividade: a arquitetura de cada nó é completamente indiferente, desde que a versão do OpenMosix seja igual entre nós;
     - não necessita de recompilação das aplicações: qualquer aplicação poderá beneficiar deste sistema sem alterações ao código.

Problemas:
     - algumas aplicações não podem ser migradas;
     - limitações relacionadas a hardware local.

Cluster Beowulf

Software para gerenciamento (escalonamento, status). Ferramentas para comunicação (PVM, MPI).

Conclusão

As tecnologias de Clustering possibilitam a solução de diversos problemas que envolvem grandes volumes de processamento. As aplicações as quais um cluster pode ter são diversas, indo desde a simples melhora no desempenho de um determinado sistema ou a hospedagem de um site, até o processo de pesquisas científicas complexas.

O que realmente chama a atenção, é que todo o processamento pode ser feito de maneira que pareça ser um único computador dotado de alta capacidade. Assim, é possível que determinadas aplicações sejam implementadas em cluster, mas sem interferir no funcionamento de outras aplicações que estejam relacionadas.

Empresas especializadas, centros de pesquisas e universidades costumam estudar este assunto a fundo. Como consequência, existem clusters com até milhares de nós.

Alguns benefícios do Clustering são processamento eficiente, custo baixo, ampla gama de aplicações etc.

0 comentários:

Postar um comentário