Академический Документы
Профессиональный Документы
Культура Документы
Cincia da Computao
Cluster
Daniel Valente Gouveia Gama, Joo Roberto de Oliveira Rgo e Yuri Antonio Gonalves Vilas Boas
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.
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
Sumrio
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.
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.
Sistemas de computao em cluster tornaram-se populares quando a razo preo/desempenho de computadores pessoais e estaes de trabalho
melhorou
[7]
cluster foi maior necessidade de tolerncia a falhas e a alta disponibilidade qualquer sistema com multiprocessamento simtrico [9].
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.
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.
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.
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
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
4.1.
CAMADAS
Camada de Integrao: forma a topologia do cluster. Camada de Recuperao: executa a recuperao (failover) e a
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.
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
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.
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
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
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
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
22
Secundrio Ativo
Servidores separados
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
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.
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