Desenvolvimento PRONTO Com Capa
-
Upload
daniel-gama -
Category
Documents
-
view
180 -
download
0
Transcript of Desenvolvimento PRONTO Com Capa
1
Pontifícia Universidade Católica de Minas Gerais
Ciência da Computação
Cluster
Daniel Valente Gouveia Gama, João Roberto de Oliveira Rêgo e Yuri Antonio
Gonçalves Vilas Boas
Poços de Caldas
2011
2
Daniel Valente Gouveia Gama, João Roberto de Oliveira Rêgo e Yuri
Antonio Gonçalves Vilas Boas
Cluster
Trabalho realizado para disciplina Arquitetura de
Computadores, sobre orientação do professor Renan
Eduardo Pedroso.
Poços de Caldas
2011
3
RESUMO
Este trabalho realizou um estudo sobre os tipos de cluster que vêm
sendo mais usados nos últimos anos. O objetivo foi relatar aspectos da
arquitetura, funcionamento e tipos, relatando também sua evolução. Foram
estudadas suas vantagens, técnicas de sua utilização, possibilidade de
aplicações práticas e o projeto de um cluster.
Palavras-chave: Cluster de Armazenamento, Cluster de Aplicação,
Cluster Tomcat, Zope Cluster.
4
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.
5
LISTA DE ILUSTRAÇÕES
Figura 1: Evolução da utilização de Arquiteturas de alto desempenho. Fonte Top500.org ..... 8
Figura 2: Evolução da utilização 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
6
LISTA DE TABELAS
Tabela 1: Aceleração e Eficiência .................................................................................................... 19
Tabela 2: Métodos de Clustering ..................................................................................................... 21
7
Sumário
1. INTRODUÇÃO .................................................................................................................................. 8
1.1. OBJETIVOS ................................................................................................................................... 9
1.2. JUSTIFICATIVA ............................................................................................................................. 9
2. HISTÓRIA ....................................................................................................................................... 10
3. FUNDAMENTAÇÃO TEÓRICA ......................................................................................................... 10
3.1. O QUE É UM CLUSTER? ............................................................................................................. 11
3.2. SISTEMAS OPERACIONAIS ......................................................................................................... 11
3.3. HADWARE.................................................................................................................................. 12
3.3.1. EXECUCAO ............................................................................................................................. 12
3.3.2. TRANSMISSÃO DE DADOS ..................................................................................................... 13
3.4. BIBLIOTECAS DE COMUNICAÇAO .............................................................................................. 13
3.4.1. PVM (PARALLEL VIRTUAL MACHINE) .................................................................................... 14
3.4.2. MPI (MESSAGE PASSING INTERFACE) ................................................................................... 14
4. ARQUITETURA CLUSTER ................................................................................................................ 15
4.1. CAMADAS .................................................................................................................................. 16
4.1.1. CAMADA DE COMUNICACÃO ............................................................................................... 16
4.1.2. CAMADA DE LIGACÃO ........................................................................................................... 17
4.1.3. CAMADA DE INTEGRAÇÃO .................................................................................................... 17
4.1.4. CAMADA DE RECUPERAÇÃO ................................................................................................. 18
4.2. OUTROS SERVIÇOS .................................................................................................................... 18
5. DESEMPENHO ............................................................................................................................... 19
5.1. VANTAGENS .............................................................................................................................. 19
5.2. DESVANTAGENS ........................................................................................................................ 20
6. TIPOS DE CLUSTER ......................................................................................................................... 21
7. CONFIGURAÇÃO DE CLUSTER ....................................................................................................... 21
8. EXEMPLOS ..................................................................................................................................... 22
8.1. BEOWULF .................................................................................................................................. 22
8.2. MOSIX ........................................................................................................................................ 23
9. CONCLUSÃO .................................................................................................................................. 25
10. REFERÊNCIAS ............................................................................................................................. 26
8
1. INTRODUÇÃO
Nos últimos 20 anos foram observados um crescimento na utilização de
cluster em diversas pesquisas. Algumas das áreas que incentivaram essas
tecnologias são: pesquisa genética, bioinformática, física, química, engenharia,
climatologia, petroquímica, pesquisa espacial e resolução de equações e
métodos matemáticos.
Figura 1: Evolução da utilização de Arquiteturas de alto desempenho. Fonte Top500.org
Apesar das tecnologias de cluster serem recentes, sua utilização vem
crescendo e máquinas que fazem uso de tal tecnologia já dominam a lista de
mais rápidas do mundo. Além disso, a utilização de softwares livres – como
GNU/Linux [1] – acompanha esse crescimento.
Figura 2: Evolução da utilização de S.O. Fonte Top500.org
Sistemas de computação em cluster tornaram-se populares quando a
razão preço/desempenho de computadores pessoais e estações de trabalho
9
melhorou [7]. Outra razão para o surgimento e rápida aceitação de sistemas em
cluster foi à maior necessidade de tolerância a falhas e a alta disponibilidade [8].
“Os clusters fornecem desempenho e tolerância a falhas, não encontrados em
qualquer sistema com multiprocessamento simétrico” [9].
Uma grande tarefa computacional pode ser distribuída entre as
estações como se fosse um supercomputador paralelo. Estes computadores
paralelos são utilizados em estudos científicos ou análises financeiras, tarefas
que requerem grande processamento.
1.1. OBJETIVOS
Estabelecer uma descrição esclarecedora sobre o funcionamento das
tecnologias de cluster, com atenção a aspectos mais técnicos sobre a
arquitetura.
1.2. JUSTIFICATIVA
As informações contidas neste trabalho auxiliam no entendimento das
tecnologias abordadas. É importante saber como funcionam clusters e tenta-se
explicar isso da maneira mais clara possível.
10
2. HISTÓRIA
A ideia inicial era, simplesmente, que um buffer entre a memória 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 solução
comercialmente possível de paralelismo no Paquistão.
Mas o cluster passou a ganhar força quando três tendências dirigiram-se
a um ponto comum em 1980, que é o aumento de velocidade das redes, dos
microprocessadores e da computação distribuída de alto desempenho. Hoje,
pesquisas científicas (quarta tendência) vem fazendo com que o uso destes
supercomputadores cresça ainda mais.
Em 1993 iniciou-se um projeto de um sistema de processamento
distribuído, construído a partir de hardware convencional, como um combate
aos custos dos supercomputadores. Em meados de 1994 iniciou-se o projeto
Beowulf, cujo protótipo inicial possuia 16 processadores DX4. A máquina foi um
sucesso e a ideia se espalhou pelos meios acadêmicos, pela NASA e por
outras comunidades de pesquisa [2].
3. FUNDAMENTAÇÃO TEÓRICA
Nesta seção, apresentam-se os conceitos técnicos e teóricos para o
entendimento de cluster de computadores.
11
3.1. O QUE É UM CLUSTER?
Cluster é um sistema distribuído de computadores independentes e
interligado, cujo objetivo é suprir a necessidade de um grande poder
computacional com um conjunto de computadores de forma transparente ao
usuário. Para a construção dessas plataformas é necessário ter confiança no
sistema adotado, na distribuição de carga e no desempenho [3].
3.2. SISTEMAS OPERACIONAIS
Este tem a função principal de controlar o funcionamento do
computador, gerenciar a utilização e o compartilhamento de recursos
(processador, memória e dispositivos de entrada e saída) [4].
No cluster, é através dele que o computador consegue garantir a
execução primordial das seguintes tarefas:
Controle de recursos: Controle da entrada e saída de cada nó do
cluster envolvido na tarefa;
Monitoração: Verificação da disponibilidade de cada nó e também da
quantidade de carga que cada nó poderá receber;
Contabilidade: Medidor de desempenho do cluster, tanto para calcular
custos da operação quanto a medir seu desempenho propriamente dito;
Consulta: Armazenamento em fila de prioridades todos os processos
que serão executados;
Planificação: Organicação de quais tarefas serão distribuídas entre os
nós do cluster.
12
3.3. HADWARE
Nesta parte o cluster pode dividir-se em execução, ou processamento de
dados; e transmissão 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 distribuída, os recursos
que influenciam seus desempenhos são:
Processador: Processamento de dados, hoje já é capaz o
desenvolvimento de processadores com vários núcleos e com memória
cache, sendo elas cada vez maiores;
Placa Mãe: Nela são ligados todos os chips e componentes, sendo o
barramento sua principal via de comunicação entre memória, disco
rígido e processador;
Memoria RAM: Responsáveis pelo armazenamento de dados dos
programas em execução. São voláteis e mais rápidas se comparadas ao
disco rígido;
Disco Rígido: Armazena os dados que serão guardados. Não é volátil e
é lenta mas possui uma grande capacidade de armazenamento;
13
Memoria virtual (Swap): Memória 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. TRANSMISSÃO DE DADOS
Em clusters, a transmissão de dados é onde se encontra o principal
problema, nas operações. Isso ocorre devido à latência que há nas
informações que são trocadas entre os nós.
Atualmente, o principal meio de comunicação de dados é a rede, sendo
composta por meios físicos e mecanismos de controle para o transporte, além
de uma política de sincronização de dados. Na seqüência, são 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 através de interruptores em
que são traçadas as rotas de transmissão de dados [5].
cLan: Rede apropriada para os clusters, seu funcionamento assim como
o Myrinet também se deve através de interruptores, alcança a faixa de
2,5 Gbps.
3.4. BIBLIOTECAS DE COMUNICAÇAO
14
São responsáveis pela comunicação entre os nós de um cluster. Cada
biblioteca possui suas particularidades, ou seja, elas implementam diferentes
soluções para os problemas de comunicação.
Hoje em dia são usadas duas bibliotecas principais PVM e o MPI,
abordadas a seguir.
3.4.1. PVM (PARALLEL VIRTUAL MACHINE)
O PVM é uma biblioteca de comunicação que emula computação
concorrente heterogênea de propósitos gerais em computadores
interconectados, em que se pode trabalhar com diversas arquiteturas. A idéia
do PVM é montar uma máquina 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 básicas, 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 memória distribuída. Além disso, o MPI também
procura aprimorar a comunicação e ampliar o desempenho de aplicações
paralelas ou distribuídas. O MPI surgiu da necessidade de se resolver alguns
problemas relacionados à portabilidade existentes entre as diferentes
plataformas e características peculiares de algumas arquiteturas paralelas [6].
15
Figura 3: Estrutura MPI
A eficiência do MPI é garantida através da disponibilidade de várias
implementações para um mesmo problema. Por exemplo, para o envio de
mensagens, há funções que implementam comunicações ponto a ponto e a
coletiva. Uma das vantagens da MPI, considerando-se a engenharia de
programas, é que esta permite programação modular: o comunicador
identifica um grupo de processos, em que uma operação deve ser realizada.
4. ARQUITETURA CLUSTER
Conforme apresentado no capítulo 2, o cluster possui três condições
primordiais pra o seu devido funcionamento, Sistema Operacional, Hardware e
biblioteca de comunicação. Na figura 3 é descrito um ambiente cluster com um
nó mestre e cinco nós 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
básicas[10]:
Camada de Comunicação: trata das comunicações ponto-a-
ponto entre os nós.
Camada de Ligação: agrupa canais de comunicação em uma
única ligação entre dois nós.
Camada de Integração: forma a topologia do cluster.
Camada de Recuperação: executa a recuperação (failover) e a
inicialização/parada controlada de serviços depois de uma transição do cluster.
4.1.1. CAMADA DE COMUNICACÃO
17
Esta é a camada de comunicação de baixo nível. Há múltiplas interfaces
(IP, serial ou SCSI, por exemplo), que são independentes entre si e que tratam
a descoberta da vizinhança. Uma conexão ponto-a-ponto permanente é
estabelecida e então vários tipos de mensagens são permitidos: entrega
seqüencial de informações, verificação do estado do link (heartbeat) e
reinicialização controlada.
4.1.2. CAMADA DE LIGACÃO
A camada de ligação estabelece um mecanismo de ligação de alto nível,
que associa todos os canais para um dado nó em um único link. Este é um link
“virtual”, pois a informação ainda trafega pelos meios de comunicação
estabelecidos na camada de comunicação. Este link pode ter vários estados,
que determinam sua possibilidade de operação. A grande utilidade desta
camada é abstrair a comunicação de dados e suas particularidades entre dois
nós, a fim de tornar a tarefa de trocar mensagens mais simples para as
camadas superiores
4.1.3. CAMADA DE INTEGRAÇÃO
Esta camada realiza transições na topologia do cluster, aglomerando
clusters vizinhos, despejando membros inativos ou com mal comportamento e
garantindo transições entre as topologias do cluster. Estas transições
18
mencionadas são basicamente alterações na topologia do cluster, ou seja, da
sua lista de membros. Sempre que a lista é alterada, uma transição atômica
ocorre a fim de que todos os nós membros tomem conhecimento desta
modificação.
4.1.4. CAMADA DE RECUPERAÇÃO
Esta camada tem por função recuperaras transições efetuadas pela Camada de
Integração, além de restringir processos até que a recuperação esteja completa.
Esta recuperação pode ser feita como:
Recuperação interna: Responsável pela recuperação de todos os serviços
previamente registrados;
Recuperação de serviço do usuário: Se processos do usuário forem
afetados durante a transição de topologia, cabe a esta camana reiniciá-los em
outro nó. Esta migração é chamada de failover.
4.2. OUTROS SERVIÇOS
Banco de Dados: Nada mais é do que um repositório de informações locais a cada nó do cluster.
Camada de Quórum: determina qual partição do cluster possui autorização para prosseguir com sua execução. Isso trata o problema de uma partição (subcluster) que acredita ser o cluster principal, processando os mesmo dados e gerando uma situação de concorrência.
Serviço de Barreiras: provê um serviço de sincronização global ao cluster. Uma operação 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á permissão para prosseguir
Serviço de Nomes: provê um serviço de nomes global ao cluster. Através desse serviço processos podem tanto registrar e consultar nomes.
5. DESEMPENHO
Aumentar o desempenho é um dos objetivos de clusters de
computadores. Eles têm o paralelismo como principal ferramenta e, para
garantir ganhos, existem métodos que são utilizados a fim de estruturar uma
melhor solução para os problemas paralelizados.
O Speedup ou Aceleração (Sp) é um método usado para medir o
desempenho de aplicação paralela. É definida pela razão do tempo gasto para
a execução seqüencial (Ts) e o tempo gasto da execução paralela em n
processadores idênticos (Tn), ou seja, Sp = Ts/Tn [2]. A Eficiência mostra
quanto da potência computacional foi utilizada no processamento, sendo esta
potência dentro do disponível e apresentada como a razão entre a Aceleração
e o número de processadores, logo Ef = Sp/ n.
Tabela 1: Aceleração e Eficiência
Caso Aceleração (Sp) Eficiência (Ef)
Ideal = p = 1
Real < p < 1
Excepcional > p > 1
5.1. VANTAGENS
20
Expansibilidade: A utilização de cluster de computadores deixa o sistema
altamente expansível, 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 configuração deste fique altamente barata comparada a outros sistemas.
Alta Disponibilidade: Um nó quando desativado não prejudica o sistema como um todo, pois existem outros para fazer a mesma tarefa. Como o cluster tem vários nós, para a manutenção não é necessário desativar o cluster completo, basta desativar o nó defeituoso.
Tolerância de Falhas: Visto que o cluster funciona de forma paralela e distribuída, a perda de dados será improvável, pois os dados que estavam sendo transmitidos podem ser encaminhados para outro nó que não esteja com problemas.
Balanceamento de Carga: O sistema de cluster pode ser montado com
computadores de configurações diferentes, sendo assim disponível efetuar o
balanceamento de carga de acordo com a potência de cada máquina.
5.2. DESVANTAGENS
Manutenção do Equipamento: A manutenção de grande quantidade de
máquinas pode tornar-se difícil.
Monitoração dos nós: Monitorar um nó em um cluster pode ser tornar um
problema dependendo da maneira que este fora implementado.
Troca de Informações: Como os cluster tem a configuração de seus
sistemas utilizando redes, a troca de informações se transforma no principal
gargalo, uma vez que dependendo da qualidade da rede, essa troca de
21
informações pode ser lenta, mas isso pode ter ajustes para a melhoria da
troca de informações.
6. TIPOS DE CLUSTER
Existem três 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 período de tempo e em plena
condição de uso.
Cluster para Balanceamento de Carga: Controle da distribuição
equilibrada do processamento.
São abordados neste artigo dois exemplos: o Beowulf e o Mosix
7. CONFIGURAÇÃO DE CLUSTER
Tabela 2: Métodos de Clustering
Método de clustering Descrição Benefícios Limitações
Secundário passive (passive standby)
Servidor secundário assume caso primário falhe
Fácil de implementar
Custo alto porque o servidor secundário está indisponível para
22
processamento
Secundário Ativo Servidor secundário é usado também para tarefas de processamento
Custo reduzido devido ao uso dos servidores secundários
Complexidade aumentada
Servidores separados
Possuem seus próprios discos. Dados são copiados continuamente do primário para o secundário
Alta disponibilidade
Sobrecarga de rede e de servidores devido às operações de cópia
Servidores conectados aos discos
Servidores são ligados aos mesmos discos, mas cada servidor tem seu disco. Se um servidor falha, outro servidor assume seus discos
Carga de rede e servidores reduzida por causa da eliminação das operações de cópia
Requer espelhamento de discos (RAID) para compensar o risco da falha de disco
Servidores com discos compartilhados
Vários servidores compartilham simultaneamente o acesso a discos
Baixa carga de rede e servidores. Risco reduzido de inatividade causada por falha de disco
Requer software de gerenciamento de bloqueio + estratágia 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 computação paralela,
para processar informações especiais que a entidade recebia. A criação deste
cluster foi motivada pelo fato do instituto necessitar o processo de informações
acima de Gigaflops que, para a época, computadores deste poder de
processamento tinha o custo muito elevado.
23
Beowulf, diferente dos outros, não requer uma arquitetura específica, e
muito menos máquinas homogêneas, mas deve obedecer os seguintes pontos
para que faça parte desta família:
Conexão entre os nós, que pode ser ethernet.
Um ou mais nós mestre (front-end) para controlar os nós escravos
(back-end)
O S.O. deve ser código aberto, e nele disponível as ferramentas
para configurações de um cluster.
Os front-end são responsáveis pela monitoração 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 distribuição de processos. Ao detectar uma grande
quantidade de processamento, migram as instâncias entre as máquinas do
cluster, sendo processadas simultaneamente, sem a necessária adaptação do
código. O que os difere dos demais, é que em vez de quebrar os processos
como em clusters Beowulf, o Mosix realiza esta migração. Ele detecta o nó
mais ocioso através da troca de informações de cargas de instâncias.
“A migração de processos permite que um usuário inicie uma
aplicação em qualquer nó (denominado nó nativo), e se mover
24
transparentemente para outros nós a fim de, por exemplo, fazer uso
eficiente de recursos”. [7]
O que torna este cluster pouco flexível é o fato que se estiver
executando apenas uma tarefa ele não a divide, mas ele o leva para o nó mais
rápido, prejudicando assim a execução. Apesar de ser um dos tipos de
sistemas de cluster mais utilizados, os criadores expuseram que cessaram o
projeto em março de 2008.
25
9. CONCLUSÃO
Nota-se que ganho em desempenho utilizando Clusters é significativo,
mas seu uso só é justificado dependendo da aplicação desejada, desde que
esta exija um alto nível de processamento de dados.
Além disso, o uso de Clusters é dependente da tecnologia de
transferência de dados, visto que esta é a principal característica que permite a
existência dessas tecnologias em si. Sendo assim, uma rede efetiva produz um
cluster efetivo.
Também, o uso de computadores convencionais produzidos em larga
escala definem o baixo custo de implementação do Cluster, que amplia a
disponibilidade do recurso para ser utilizado em instituições com poder
financeiro menor do que grandes instituições como a NASA e o IBGE.
Em suma, como tudo na computação, o Cluster tem sua aplicação com
efetividade somente em determinadas ocasiões sendo elas: aplicações com
grande volume de dados, com pouca transferência de dados entre seus nós e
em casos que um supercomputador seja uma alternativa economicamente
inviável.
26
10. REFERÊNCIAS
[1] - Guia de Estruturação e Administração 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, São Paulo, 2007.
[5] - Site Myrinet. Disponível em: <http://www.myri.com/myrinet/overview/>, visitado
em: 01 de set.2011.
[6] - JAQUIE, Kalinka Regina Lucas. Extensão da Ferramenta de Apoio à
Programação Paralela (F.A.P.P.) para ambientes paralelos virtuais. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-08022001-095456/>,
visitado em: 05 de out.2011.
[7] - TANENBAUN, Andrew S. Sistemas Distribuídos: Princípios e Paradigmas. 2ª
ed. Editora Pearson Prentice Hall, São Paulo, 2007.
[8] - MACHADO, Francis Berenger. MAIA, Luiz Paulo Arquitetura de Sistemas
Operacionais. 4ª ed. Editora LTC, São 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