Vous êtes sur la page 1sur 26

1

Pontifcia Universidade Catlica de Minas Gerais

Cincia da Computao

Cluster

Daniel Valente Gouveia Gama, Joo Roberto de Oliveira Rgo e Yuri Antonio Gonalves Vilas Boas

Poos de Caldas 2011

Daniel Valente Gouveia Gama, Joo Roberto de Oliveira Rgo e Yuri Antonio Gonalves Vilas Boas

Cluster

Trabalho realizado para disciplina Arquitetura de Computadores, sobre orientao do professor Renan Eduardo Pedroso.

Poos de Caldas 2011

RESUMO

Este trabalho realizou um estudo sobre os tipos de cluster que vm sendo mais usados nos ltimos anos. O objetivo foi relatar aspectos da arquitetura, funcionamento e tipos, relatando tambm sua evoluo. Foram estudadas suas vantagens, tcnicas de sua utilizao, possibilidade de aplicaes prticas e o projeto de um cluster. Palavras-chave: Cluster de Armazenamento, Cluster de Aplicao, Cluster Tomcat, Zope Cluster.

ABSTRACT

This work conducted a study on the types of cluster which have been used in recent years. The goal was to describe aspects of its architecture, operation, types and also report its evolution. Were studied its benefits, techniques for its use, the possibility of practical applications and design of a cluster. Keywords: Storage Cluster, Application Cluster, Cluster Tomcat, Zope Cluster.

LISTA DE ILUSTRAES

Figura 1: Evoluo da utilizao de Arquiteturas de alto desempenho. Fonte Top500.org ..... 8 Figura 2: Evoluo da utilizao de S.O. Fonte Top500.org ......................................................... 8 Figura 3: Estrutura MPI ..................................................................................................................... 15 Figura 4: Arquitetura de um cluster com um n controlador ....................................................... 16 Figura 5: Esquema de um Cluster Beowulf .................................................................................... 23

LISTA DE TABELAS

Tabela 1: Acelerao e Eficincia.................................................................................................... 19 Tabela 2: Mtodos de Clustering ..................................................................................................... 21

Sumrio

1. 1.1. 1.2. 2. 3. 3.1. 3.2. 3.3.

INTRODUO .................................................................................................................................. 8 OBJETIVOS ................................................................................................................................... 9 JUSTIFICATIVA ............................................................................................................................. 9 HISTRIA ....................................................................................................................................... 10 FUNDAMENTAO TERICA ......................................................................................................... 10 O QUE UM CLUSTER? ............................................................................................................. 11 SISTEMAS OPERACIONAIS ......................................................................................................... 11 HADWARE.................................................................................................................................. 12 EXECUCAO ............................................................................................................................. 12 TRANSMISSO DE DADOS ..................................................................................................... 13 BIBLIOTECAS DE COMUNICAAO .............................................................................................. 13 PVM (PARALLEL VIRTUAL MACHINE) .................................................................................... 14 MPI (MESSAGE PASSING INTERFACE) ................................................................................... 14

3.3.1. 3.3.2. 3.4. 3.4.1. 3.4.2. 4. 4.1. 4.1.1. 4.1.2. 4.1.3. 4.1.4. 4.2. 5. 5.1. 5.2. 6. 7. 8. 8.1. 8.2. 9. 10.

ARQUITETURA CLUSTER ................................................................................................................ 15 CAMADAS .................................................................................................................................. 16 CAMADA DE COMUNICACO ............................................................................................... 16 CAMADA DE LIGACO ........................................................................................................... 17 CAMADA DE INTEGRAO .................................................................................................... 17 CAMADA DE RECUPERAO ................................................................................................. 18 OUTROS SERVIOS .................................................................................................................... 18 DESEMPENHO ............................................................................................................................... 19 VANTAGENS .............................................................................................................................. 19 DESVANTAGENS ........................................................................................................................ 20 TIPOS DE CLUSTER ......................................................................................................................... 21 CONFIGURAO DE CLUSTER ....................................................................................................... 21 EXEMPLOS ..................................................................................................................................... 22 BEOWULF .................................................................................................................................. 22 MOSIX ........................................................................................................................................ 23 CONCLUSO .................................................................................................................................. 25 REFERNCIAS ............................................................................................................................. 26

1. INTRODUO

Nos ltimos 20 anos foram observados um crescimento na utilizao de cluster em diversas pesquisas. Algumas das reas que incentivaram essas tecnologias so: pesquisa gentica, bioinformtica, fsica, qumica, engenharia, climatologia, petroqumica, pesquisa espacial e resoluo de equaes e mtodos matemticos.

Figura 1: Evoluo da utilizao de Arquiteturas de alto desempenho. Fonte Top500.org

Apesar das tecnologias de cluster serem recentes, sua utilizao vem crescendo e mquinas que fazem uso de tal tecnologia j dominam a lista de mais rpidas do mundo. Alm disso, a utilizao de softwares livres como GNU/Linux [1] acompanha esse crescimento.

Figura 2: Evoluo da utilizao de S.O. Fonte Top500.org

Sistemas de computao em cluster tornaram-se populares quando a razo preo/desempenho de computadores pessoais e estaes de trabalho

melhorou

[7]

. Outra razo para o surgimento e rpida aceitao de sistemas em


[8]

cluster foi maior necessidade de tolerncia a falhas e a alta disponibilidade qualquer sistema com multiprocessamento simtrico [9].

Os clusters fornecem desempenho e tolerncia a falhas, no encontrados em

Uma grande tarefa computacional pode ser distribuda entre as estaes como se fosse um supercomputador paralelo. Estes computadores paralelos so utilizados em estudos cientficos ou anlises financeiras, tarefas que requerem grande processamento.

1.1.

OBJETIVOS

Estabelecer uma descrio esclarecedora sobre o funcionamento das tecnologias de cluster, com ateno a aspectos mais tcnicos sobre a arquitetura.

1.2.

JUSTIFICATIVA

As informaes contidas neste trabalho auxiliam no entendimento das tecnologias abordadas. importante saber como funcionam clusters e tenta-se explicar isso da maneira mais clara possvel.

10

2. HISTRIA

A ideia inicial era, simplesmente, que um buffer entre a memria e o processador fosse chamado de cluster. A IBM em 1960 foi a primeira a integrar grandes mainframes (computador de grande porte) procurando ter uma soluo comercialmente possvel de paralelismo no Paquisto. Mas o cluster passou a ganhar fora quando trs tendncias dirigiram-se a um ponto comum em 1980, que o aumento de velocidade das redes, dos microprocessadores e da computao distribuda de alto desempenho. Hoje, pesquisas cientficas (quarta tendncia) vem fazendo com que o uso destes supercomputadores cresa ainda mais. Em 1993 iniciou-se um projeto de um sistema de processamento distribudo, construdo a partir de hardware convencional, como um combate aos custos dos supercomputadores. Em meados de 1994 iniciou-se o projeto Beowulf, cujo prottipo inicial possuia 16 processadores DX4. A mquina foi um sucesso e a ideia se espalhou pelos meios acadmicos, pela NASA e por outras comunidades de pesquisa [2].

3. FUNDAMENTAO TERICA

Nesta seo, apresentam-se os conceitos tcnicos e tericos para o entendimento de cluster de computadores.

11

3.1.

O QUE UM CLUSTER?

Cluster um sistema distribudo de computadores independentes e interligado, cujo objetivo suprir a necessidade de um grande poder computacional com um conjunto de computadores de forma transparente ao usurio. Para a construo dessas plataformas necessrio ter confiana no sistema adotado, na distribuio de carga e no desempenho [3].

3.2.

SISTEMAS OPERACIONAIS

Este tem a funo principal de controlar o funcionamento do computador, gerenciar a utilizao e o compartilhamento de recursos (processador, memria e dispositivos de entrada e sada) [4]. No cluster, atravs dele que o computador consegue garantir a execuo primordial das seguintes tarefas: Controle de recursos: Controle da entrada e sada de cada n do cluster envolvido na tarefa; Monitorao: Verificao da disponibilidade de cada n e tambm da quantidade de carga que cada n poder receber; Contabilidade: Medidor de desempenho do cluster, tanto para calcular custos da operao quanto a medir seu desempenho propriamente dito; Consulta: Armazenamento em fila de prioridades todos os processos que sero executados; Planificao: Organicao de quais tarefas sero distribudas entre os ns do cluster.

12

3.3.

HADWARE

Nesta parte o cluster pode dividir-se em execuo, ou processamento de dados; e transmisso de dados, vistos a seguir.

3.3.1. EXECUCAO

realizado por computadores usuais, e como o cluster um aglomerado de computadores que funcionam de forma distribuda, os recursos que influenciam seus desempenhos so: Processador: Processamento de dados, hoje j capaz o

desenvolvimento de processadores com vrios ncleos e com memria cache, sendo elas cada vez maiores; Placa Me: Nela so ligados todos os chips e componentes, sendo o barramento sua principal via de comunicao entre memria, disco rgido e processador; Memoria RAM: Responsveis pelo armazenamento de dados dos programas em execuo. So volteis e mais rpidas se comparadas ao disco rgido; Disco Rgido: Armazena os dados que sero guardados. No voltil e lenta mas possui uma grande capacidade de armazenamento;

13

Memoria virtual (Swap): Memria gerenciadora do uso de programas que exigem mais do que a RAM possa fornecer. usando a memoria virtual que o cluster consegue evitar com que os programas travem.

3.3.2. TRANSMISSO DE DADOS

Em clusters, a transmisso de dados onde se encontra o principal problema, nas operaes. Isso ocorre devido latncia que h nas informaes que so trocadas entre os ns. Atualmente, o principal meio de comunicao de dados a rede, sendo composta por meios fsicos e mecanismos de controle para o transporte, alm de uma poltica de sincronizao de dados. Na seqncia, so apresentadas algumas das principais tecnologias de redes existentes usadas em clusters:

Ethernet: Classificada em: Fast Ethernet e Gigabit Ethernet. Em clusters usa-se mais a Fast, cuja velocidade entre 10 Mbps e 100 Mbps, mas, numa rede Gigabit, a velocidade pode chegar a casa dos 1 Gbps

Myrinet: Rede de alta velocidade, sua velocidade pode chegar faixa de 2,4 Gbps, seu funcionamento se deve atravs de interruptores em que so traadas as rotas de transmisso de dados
[5]

cLan: Rede apropriada para os clusters, seu funcionamento assim como o Myrinet tambm se deve atravs de interruptores, alcana a faixa de 2,5 Gbps.

3.4.

BIBLIOTECAS DE COMUNICAAO

14

So responsveis pela comunicao entre os ns de um cluster. Cada biblioteca possui suas particularidades, ou seja, elas implementam diferentes solues para os problemas de comunicao. Hoje em dia so usadas duas bibliotecas principais PVM e o MPI, abordadas a seguir.

3.4.1. PVM (PARALLEL VIRTUAL MACHINE)

O PVM uma biblioteca de comunicao que emula computao concorrente heterognea de propsitos gerais em computadores

interconectados, em que se pode trabalhar com diversas arquiteturas. A idia do PVM montar uma mquina virtual de n processadores e us-los para enviar tarefas e receber os resultados, de maneira cooperativa. Tudo isso realizado de modo simplificado, utilizando apenas rotinas bsicas, enviando e recebendo mensagens.

3.4.2. MPI (MESSAGE PASSING INTERFACE)

O MPI teve como objetivo padronizar a troca de mensagem em ambientes paralelos de memria distribuda. Alm disso, o MPI tambm procura aprimorar a comunicao e ampliar o desempenho de aplicaes paralelas ou distribudas. O MPI surgiu da necessidade de se resolver alguns problemas relacionados portabilidade existentes entre as diferentes plataformas e caractersticas peculiares de algumas arquiteturas paralelas
[6]

15

Figura 3: Estrutura MPI

A eficincia do MPI garantida atravs da disponibilidade de vrias implementaes para um mesmo problema. Por exemplo, para o envio de mensagens, h funes que implementam comunicaes ponto a ponto e a coletiva. Uma das vantagens da MPI, considerando-se a engenharia de programas, que esta permite programao modular: o comunicador identifica um grupo de processos, em que uma operao deve ser realizada.

4. ARQUITETURA CLUSTER

Conforme apresentado no captulo 2, o cluster possui trs condies primordiais pra o seu devido funcionamento, Sistema Operacional, Hardware e biblioteca de comunicao. Na figura 3 descrito um ambiente cluster com um n mestre e cinco ns escravos, todos eles conectados a um hub.

16

Figura 4: Arquitetura de um cluster com um n controlador

4.1.

CAMADAS

A estrutura da arquitetura pode ser formada pelas seguintes camadas bsicas[10]:

Camada de Comunicao: trata das comunicaes ponto-a-

ponto entre os ns.

Camada de Ligao: agrupa canais de comunicao em uma

nica ligao entre dois ns.


Camada de Integrao: forma a topologia do cluster. Camada de Recuperao: executa a recuperao (failover) e a

inicializao/parada controlada de servios depois de uma transio do cluster.

4.1.1. CAMADA DE COMUNICACO

17

Esta a camada de comunicao de baixo nvel. H mltiplas interfaces (IP, serial ou SCSI, por exemplo), que so independentes entre si e que tratam a descoberta da vizinhana. Uma conexo ponto-a-ponto permanente estabelecida e ento vrios tipos de mensagens so permitidos: entrega seqencial de informaes, verificao do estado do link (heartbeat) e reinicializao controlada.

4.1.2. CAMADA DE LIGACO

A camada de ligao estabelece um mecanismo de ligao de alto nvel, que associa todos os canais para um dado n em um nico link. Este um link virtual, pois a informao ainda trafega pelos meios de comunicao estabelecidos na camada de comunicao. Este link pode ter vrios estados, que determinam sua possibilidade de operao. A grande utilidade desta camada abstrair a comunicao de dados e suas particularidades entre dois ns, a fim de tornar a tarefa de trocar mensagens mais simples para as camadas superiores

4.1.3. CAMADA DE INTEGRAO

Esta camada realiza transies na topologia do cluster, aglomerando clusters vizinhos, despejando membros inativos ou com mal comportamento e garantindo transies entre as topologias do cluster. Estas transies

18

mencionadas so basicamente alteraes na topologia do cluster, ou seja, da sua lista de membros. Sempre que a lista alterada, uma transio atmica ocorre a fim de que todos os ns membros tomem conhecimento desta modificao.

4.1.4. CAMADA DE RECUPERAO

Esta camada tem por funo recuperaras transies efetuadas pela Camada de Integrao, alm de restringir processos at que a recuperao esteja completa. Esta recuperao pode ser feita como: Recuperao interna: Responsvel pela recuperao de todos os servios previamente registrados; Recuperao de servio do usurio: Se processos do usurio forem afetados durante a transio de topologia, cabe a esta camana reinici-los em outro n. Esta migrao chamada de failover.

4.2.

OUTROS SERVIOS

Banco de Dados: Nada mais do que um repositrio de informaes locais a cada n do cluster. Camada de Qurum: determina qual partio do cluster possui autorizao para prosseguir com sua execuo. Isso trata o problema de uma partio (subcluster) que acredita ser o cluster principal, processando os mesmo dados e gerando uma situao de concorrncia. Servio de Barreiras: prov um servio de sincronizao global ao cluster. Uma operao de barreira envolve todos os processos que se cooperam a esperar pela mesma barreira: somente quando todos eles tiverem a atingido

19

que algum deles ter permisso para prosseguir

Servio de Nomes: prov um servio de nomes global ao cluster. Atravs desse servio processos podem tanto registrar e consultar nomes.

5. DESEMPENHO

Aumentar o desempenho um dos objetivos de clusters de computadores. Eles tm o paralelismo como principal ferramenta e, para garantir ganhos, existem mtodos que so utilizados a fim de estruturar uma melhor soluo para os problemas paralelizados. O Speedup ou Acelerao (Sp) um mtodo usado para medir o desempenho de aplicao paralela. definida pela razo do tempo gasto para a execuo seqencial (Ts) e o tempo gasto da execuo paralela em n processadores idnticos (Tn), ou seja, Sp = Ts/Tn [2]. A Eficincia mostra quanto da potncia computacional foi utilizada no processamento, sendo esta potncia dentro do disponvel e apresentada como a razo entre a Acelerao e o nmero de processadores, logo Ef = Sp/ n.
Tabela 1: Acelerao e Eficincia

Caso Ideal Real Excepcional

Acelerao (Sp) =p <p >p

Eficincia (Ef) =1 <1 >1

5.1.

VANTAGENS

20

Expansibilidade: A utilizao de cluster de computadores deixa o sistema altamente expansvel, para melhorar o processamento basta acrescer um novo n ao sistema.

Baixo Custo: J que o cluster de computadores pode ser configurado com computadores convencionais, isso faz com que a configurao deste fique altamente barata comparada a outros sistemas. Alta Disponibilidade: Um n quando desativado no prejudica o sistema como um todo, pois existem outros para fazer a mesma tarefa. Como o cluster tem vrios ns, para a manuteno no necessrio desativar o cluster completo, basta desativar o n defeituoso. Tolerncia de Falhas: Visto que o cluster funciona de forma paralela e distribuda, a perda de dados ser improvvel, pois os dados que estavam sendo transmitidos podem ser encaminhados para outro n que no esteja com problemas. Balanceamento de Carga: O sistema de cluster pode ser montado com computadores de configuraes diferentes, sendo assim disponvel efetuar o balanceamento de carga de acordo com a potncia de cada mquina.

5.2.

DESVANTAGENS

Manuteno do Equipamento: A manuteno de grande quantidade de mquinas pode tornar-se difcil.

Monitorao dos ns: Monitorar um n em um cluster pode ser tornar um problema dependendo da maneira que este fora implementado.

Troca de Informaes: Como os cluster tem a configurao de seus sistemas utilizando redes, a troca de informaes se transforma no principal gargalo, uma vez que dependendo da qualidade da rede, essa troca de

21

informaes pode ser lenta, mas isso pode ter ajustes para a melhoria da troca de informaes.

6. TIPOS DE CLUSTER

Existem trs tipos mais comuns de Cluster: Cluster de Alto Desempenho: Processamento com um volume alto de gigaflops em computadores comuns e utilizando sistema operacional gratuito, o que diminui seu custo. Cluster de Alta Disponibilidade: Sistemas conseguem

permanecer ativos por um longo perodo de tempo e em plena condio de uso. Cluster para Balanceamento de Carga: Controle da distribuio equilibrada do processamento. So abordados neste artigo dois exemplos: o Beowulf e o Mosix

7. CONFIGURAO DE CLUSTER

Tabela 2: Mtodos de Clustering

Mtodo de clustering Secundrio passive (passive standby)

Descrio Servidor secundrio assume caso primrio falhe

Benefcios Fcil de implementar

Limitaes Custo alto porque o servidor secundrio est indisponvel para

22

Secundrio Ativo

Servidores separados

Servidores conectados aos discos

Servidores com discos compartilhados

Servidor secundrio usado tambm para tarefas de processamento Possuem seus prprios discos. Dados so copiados continuamente do primrio para o secundrio Servidores so ligados aos mesmos discos, mas cada servidor tem seu disco. Se um servidor falha, outro servidor assume seus discos Vrios servidores compartilham simultaneamente o acesso a discos

Custo reduzido devido ao uso dos servidores secundrios Alta disponibilidade

processamento Complexidade aumentada

Carga de rede e servidores reduzida por causa da eliminao das operaes de cpia Baixa carga de rede e servidores. Risco reduzido de inatividade causada por falha de disco

Sobrecarga de rede e de servidores devido s operaes de cpia Requer espelhamento de discos (RAID) para compensar o risco da falha de disco Requer software de gerenciamento de bloqueio + estratgia RAID.

8. EXEMPLOS

8.1.

BEOWULF

Foi criado em 1994, feito pelo pesquisador da NASA Thomas Sterling e Donald J. Becker, este cluster tem como finalidade a computao paralela, para processar informaes especiais que a entidade recebia. A criao deste cluster foi motivada pelo fato do instituto necessitar o processo de informaes acima de Gigaflops que, para a poca, computadores deste poder de processamento tinha o custo muito elevado.

23

Beowulf, diferente dos outros, no requer uma arquitetura especfica, e muito menos mquinas homogneas, mas deve obedecer os seguintes pontos para que faa parte desta famlia: Conexo entre os ns, que pode ser ethernet. Um ou mais ns mestre (front-end) para controlar os ns escravos (back-end) O S.O. deve ser cdigo aberto, e nele disponvel as ferramentas para configuraes de um cluster. Os front-end so responsveis pela monitorao das tarefas realizadas pelo cluster, sejam elas falhas ou direcionamento das cargas.

Figura 5: Esquema de um Cluster Beowulf

8.2.

MOSIX

Estes trabalham com distribuio de processos. Ao detectar uma grande quantidade de processamento, migram as instncias entre as mquinas do cluster, sendo processadas simultaneamente, sem a necessria adaptao do cdigo. O que os difere dos demais, que em vez de quebrar os processos como em clusters Beowulf, o Mosix realiza esta migrao. Ele detecta o n mais ocioso atravs da troca de informaes de cargas de instncias. A migrao de processos permite que um usurio inicie uma aplicao em qualquer n (denominado n nativo), e se mover

24

transparentemente para outros ns a fim de, por exemplo, fazer uso eficiente de recursos. [7] O que torna este cluster pouco flexvel o fato que se estiver executando apenas uma tarefa ele no a divide, mas ele o leva para o n mais rpido, prejudicando assim a execuo. Apesar de ser um dos tipos de sistemas de cluster mais utilizados, os criadores expuseram que cessaram o projeto em maro de 2008.

25

9. CONCLUSO

Nota-se que ganho em desempenho utilizando Clusters significativo, mas seu uso s justificado dependendo da aplicao desejada, desde que esta exija um alto nvel de processamento de dados. Alm disso, o uso de Clusters dependente da tecnologia de transferncia de dados, visto que esta a principal caracterstica que permite a existncia dessas tecnologias em si. Sendo assim, uma rede efetiva produz um cluster efetivo. Tambm, o uso de computadores convencionais produzidos em larga escala definem o baixo custo de implementao do Cluster, que amplia a disponibilidade do recurso para ser utilizado em instituies com poder financeiro menor do que grandes instituies como a NASA e o IBGE. Em suma, como tudo na computao, o Cluster tem sua aplicao com efetividade somente em determinadas ocasies sendo elas: aplicaes com grande volume de dados, com pouca transferncia de dados entre seus ns e em casos que um supercomputador seja uma alternativa economicamente invivel.

26

10. REFERNCIAS

[1] - Guia de Estruturao e Administrao do Ambiente de Cluster e Grid [2] - <http://pt.wikipedia.org/wiki/Cluster>, ultimo acesso: 23/09/2011; [3] < http://www.clubedohardware.com.br/artigos/153/3>, ultimo acesso:

23/09/2011; [4] - MACHADO, Francis Berenger. MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. 4 ed. Editora LTC, So Paulo, 2007. [5] - Site Myrinet. Disponvel em: <http://www.myri.com/myrinet/overview/>, visitado em: 01 de set.2011. [6] - JAQUIE, Kalinka Regina Lucas. Extenso da Ferramenta de Apoio Programao Paralela (F.A.P.P.) para ambientes paralelos virtuais. Disponvel em: <http://www.teses.usp.br/teses/disponiveis/55/55134/tde-08022001-095456/>, visitado em: 05 de out.2011. [7] - TANENBAUN, Andrew S. Sistemas Distribudos: Princpios e Paradigmas. 2 ed. Editora Pearson Prentice Hall, So Paulo, 2007. [8] - MACHADO, Francis Berenger. MAIA, Luiz Paulo Arquitetura de Sistemas Operacionais. 4 ed. Editora LTC, So Paulo, 2007. [9] - PITANGA, Marcos. Construindo supercomputadores com Linux. 2 ed. Editora Brasport. Rio de Janeiro, 2004. [10] PEREIRA, Nelio. Linux, Clusters e Alta Disponibilidade

http://www.ime.usp.br/~nelio/publications/linuxha/html/node1.html