Você está na página 1de 5

Materiais de Apoio

Curso: Hardware Aula: Disp. de Hardware Data: 


Descrição/Objetivo: 

Elaborador: Bruno Aparecido Gonçalves Unidade: Nova Granada

Cluster: principais conceitos


Introdução
Cluster pode ser definido como um sistema onde dois ou mais
computadores trabalham de maneira conjunta para realizar
processamento pesado. Em outras palavras, os computadores dividem as
tarefas de processamento e trabalham como se fossem um único
computador. Este artigo tem por objetivo mostrar os principais conceitos
envolvidos, assim como os tipos e aplicações de cluster.
O que é cluster e como funciona
Também chamado de Clustering (quando visto em um contexto mais
abrangente), Cluster é o nome dado a um sistema montado com mais de
um computador, cujo objetivo é fazer com que todo o processamento da
aplicação seja distribuído aos computadores, mas de forma que pareça
com que eles sejam um computador só. Com isso, é possível realizar
processamentos que até então somente computadores de alta
performance seriam capazes de fazer.
Cada computador de um cluster é denominado nó ou nodo. Todos devem
ser interconectados, de maneira a formarem uma rede, de qualquer
topologia. Essa rede precisa ser criada de uma forma que permita o
acréscimo ou a retirada de um nó (em casos de danos, por exemplo), mas
sem interromper o funcionamento do cluster. O sistema operacional
usado nos computadores deve ser de um mesmo tipo, ou seja, ou
somente Windows, ou somente Linux, ou somente BSD, etc. Isso porque
existe particularidades em cada sistema operacional que poderiam
impedir o funcionamento do cluster.
Independente do sistema operacional usado, é preciso usar um software
que permita a montagem do cluster em si. Esse software vai ser
responsável, entre outras coisas, pela distribuição do processamento.
Esse é um ponto crucial na montagem de um cluster. É preciso que o
software trabalhe de forma que erros e defeitos sejam detectados,
oferecendo meios de providenciar reparos, mas sem interromper as
atividades do cluster. Obviamente, esse tipo de necessidade pode ser
controlada através de um equipamento específico, ou seja, não depende
apenas do software.
Para que exista, um cluster precisa de pelo menos dois computadores.
Evidentemente, quanto mais computadores existir no cluster, maiores
serão os custos de implementação e manutenção. Isso não se deve
apenas ao preço dos computadores, mas também pelos equipamentos
(switches, cabos, hubs, nobreaks, etc). Mas ainda assim, os custos
costumam ser menores do que a aquisição/manutenção de computadores
poderosos e algumas vezes o processamento é até mais eficiente
(rápido).
Aplicações para Clusters
Os clusters podem ser usados para uma infinidade de aplicações.
Basicamente, para qualquer uma que exija processamento pesado. Como
exemplos de aplicações, temos previsão meteorológica (previsão do
tempo e condições climáticas), simulações geotérmicas (ou seja,
simulação de eventos no solo), renderização de efeitos especiais (muito
usado em filmes), simulações financeiras, distribuição de carga, etc.
Basicamente, qualquer tipo de aplicação crítica, ou seja, aplicações que
não podem parar de funcionar ou não podem perder dados (como os
sistemas de bancos, por exemplo), podem utilizar as tecnologias de
cluster, desde que devidamente configurados para não serem sujeitas a
falhas graves. Assim, o cluster deve contar com nobreaks ou geradores
que garantam o funcionamento do sistema mesmo nos casos de queda
de energia, além de meios de manutenção e detecção de falhas
eficientes, como já citado.
Cluster Beowulf
O nome Beowulf vem de um herói muito valente que tinha a missão de
derrotar um monstro, num texto inglês antigo. Esse tipo de cluster,
voltado à computação paralela, foi fundamentado em 1994, pela NASA,
com a finalidade de processar as informações espaciais que a entidade
recolhia. Desde então, grandes empresas (como HP e IBM) e
universidades (como a brasileira Unesp) vêm construindo clusters deste
tipo e como cada vez mais nós!
O que distingue o Cluster Beowulf dos outros tipos são as seguintes
características (que são aplicadas de acordo com a finalidade do cluster):
- A conexão dos nós pode ser feita por redes do tipo Ethernet (mais
comum);
- Existe um servidor responsável por controlar todo o cluster,
principalmente quanto a distribuição de tarefas e processamento (pode
haver mais de um servidor, dedicado a tarefas específicas, como
monitoração de falhas). Este servidor é chamado de Front-end;
- O sistema operacional é baseado Linux, sendo necessário que ele
contenha todos os programas para cluster;
- Pode-se usar computadores comuns, inclusive modelos considerados
obsoletos; infowester
- Não é necessário usar equipamentos próprios para clusters. Basta
equipamentos comuns à redes e os tradicionais PCs.

De maneira generalizada, 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). Isso tudo com o uso de computadores
comuns e de um sistema operacional com código-fonte livre, ou seja,
além de gratuito, pode ser melhorado para a sua finalidade. Tais
características fizeram do Cluster Beowulf um tema muito explorado em
universidades e claro, aplicado para vários fins.
Entre os requisitos para o sistema operacional de um Cluster Beowulf,
estão a necessidade de se ter as bibliotecas para Parallel Virtual Machine
(PVM) ou para Message Passing Interface (MPI). Ambos os tipos são
usados para a troca de mensagens entre os nós do cluster. O MPI é mais
avançado que o PVM, pois pode trabalhar com mensagens para todos os
computadores ou para apenas um determinado grupo (por exemplo,
quando somente este grupo vai realizar determinada tarefa).
Para mais informações sobre o Cluster Beowulf, visite www.beowulf.org.

Foto de um Cluster Beowulf usando sistema operacional Red Hat Linux


Outros tipos de cluster
Além do Beowulf, existem vários outros tipos de cluster, para os mais
diversos fins. Os mais conhecidos são vistos a seguir:
Cluster para Alta Disponibilidade: quando se fala de Disponibilidade,
fala-se do tempo em que determinado sistema permanece ativo e em
condições de uso. A Alta Disponibilidade se refere a sistemas que
praticamente não param de funcionar. Existem clusters deste tipo. Usados
em aplicações de missão crítica, eles costumam ter meios eficientes de
proteção e de detecção de falhas;
Cluster para Balanceamento de Carga: Balanceamento de Carga se
refere à distribuição equilibrada de processamento aos nós do cluster. É
muito usado na Internet, em servidores de e-mail, comércio eletrônico e
em sistemas de lojas. Neste tipo de cluster, é necessário que haja
monitoração constante da comunicação e mecanismos de redundância.
Caso contrário, qualquer falha pode interromper o funcionamento do
cluster;
Cluster Combo: este tipo combina as características dos clusters De Alta
Disponibilidade e de Balanceamento de Carga.
Cluster MOSIX
MOSIX é a sigla para Multicomputer Operating System for UnIX. Trata-se
de um conjunto de ferramentas de cluster para Linux, voltado ao tipo
Balanceamento de Carga. Uma de suas principais características é a não
necessidade de aplicações e recursos de software voltados ao cluster,
como acontece com o Beowulf. O MOSIX é eficiente na tarefa de
distribuição dinâmica de processamento entre os computadores do
cluster. Esse tipo, assim como o Beowulf, é muito utilizado por
universidades em pesquisas e projetos. Por ser baseado em Linux, sua
implementação é transparente, além de ser relativamente fácil de
instalar.
De maneira generalizada, O MOSIX é uma extensão para Linux (ou
sistemas baseados em Unix) de um sistema de cluster que trabalha como
se fosse um único supercomputador, por meio de conceitos de
Distribuição de Processos e Balanceamento de Carga.
Para mais informações visite www.mosix.org.
Finalizando
As tecnologias de Clustering possibilitam a solução de diversos problemas
que envolvem grande volume de processamento. As aplicações que um
cluster pode ter são diversas, indo desde a simples melhora no
desempenho de um determinado sistema ou a hospedagem de um site
como o InfoWester, 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 custer, 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 conseqüência, existem
clusters com até milhares de nós. Um exemplo no Brasil, é um cluster que
foi desenvolvido em 2003 por um aluno da Universidade Estadual Paulista
(Unesp), de São Paulo. Baseado no tipo Beowulf, este cluster ficou
bastante conhecido, por ajudar na pesquisa de medicamentos para o
tratamento da tuberculose. O valor gasto neste projeto foi 60 mil reais. Se
tivesse sido utilizado um supercomputador de capacidade equivalente, os
gastos seriam até 17 vezes maior.
Só por este exemplo, é possível ver os vários benefícios do Clustering.
Processamento eficiente, custo baixo, ampla gama de aplicações, enfim.
Quem se sujeita a estudar estes conceitos (que são muito mais amplos do
que o que foi explicado neste artigo) poderá não só ter sucesso
profissional, mas ter um conhecimento grande sobre vários conceitos da
computação em si.

Foto de um Cluster com 16 computadores

Você também pode gostar