Escolar Documentos
Profissional Documentos
Cultura Documentos
Guiacluster PDF
Guiacluster PDF
Guia de Estruturao e
Administrao do Ambiente de
Cluster e Grid
1.0
Braslia DF
Presidente da Repblica
Luiz Incio Lula da Silva
Vice-Presidente da Repblica
Jos de Alencar Gomes da Silva
Inclui Bibliografia.
Albert Einstein
Realizao:
G UIA DE C LUSTER
Coordenao
Colaborao Tcnico-Administrativa
Especialistas Convidados
Alice Brito
Adenauer Yamin
Augusto Ovelar
Csar A. F. De Rose
Daniel Darlen Corra Ribeiro
Elizeu Santos-Neto
Fernando Ike
Lucius Trindade Curado e Silva
Marco Sinhoreli
Mario Dantas
Philippe O. A. Navaux
Reinaldo J. Moreira
Rodrigo Neves Calheiros
Roberto Pires de Carvalho
Tiaraj Asmuz Diverio
Walfredo Cirne
Consultores Tcnicos
Consultor Responsvel
Corinto Meffe
Elias Otvio de Paula Mussi
Leonardo Rodrigues de Mello
Coordenao Executiva
Corinto Meffe
Jos Antnio Borba Soares
Leandro Corte
Coordenao Geral
Participao da Sociedade
Para tanto alguns colaboradores que encaminharam contedo merecem destaque por
atenderem as caractersticas descritas acima, so eles:
Contribuies registradas
Adenauer Yamin
Augusto Ovelar
Daniel Darlen Corra Ribeiro
Elizeu Santos-Neto
Lucius Trindade Curado e Silva
Marco Sinhoreli
Roberto Pires de Carvalho
Walfredo Cirne
Histrico do Documento
Este Guia foi elaborado pela equipe da Gerncia de Inovaes Tecnolgicas (GIT),
do Departamento de Integrao de Sistemas de Informao (DSI), da Secretaria
de Logstica e Tecnologia da Informao (SLTI), do Ministrio do Planejamento,
Oramento e Gesto (MP).
A equipe tcnica responsvel pela elaborao deste documento conta com a co-
laborao da Comunidade Acadmica e de Software Livre para suprir lacunas
originadas pela complexidade e pela abrangncia do contedo do Guia de Clus-
ter.
Colaboraes para este documento podem ser feitas atravs do stio http://
guialivre.governoeletronico.gov.br/guiacluster/ e pelo e-mail:
<guialivre@planejamento.gov.br>.
Distribuio
Lanamentos Pblicos
Direitos Autorais
1
General Public License cujo contedo est disponibilizado no Apndice A.
Sumrio xi
1 Prefcio xxxi
I Diretrizes Gerais 1
II Aspectos Gerenciais 35
3 Introduo 36
4 Viso Geral 56
4.1 A sensibilizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.2 Consultoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6 Conceitos Bsicos 79
6.1.2 Multiprocessadores . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.3 Multicomputadores . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.5 ccNUMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.1.8 Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.1.9 Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2 Dependabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.1 Ameaas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2.2 Meios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.2.3 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3 Escalonamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
IV Apndices 350
D Tecnologias 368
E Glossrio 371
1 Creative Commons . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Prefcio
Sempre que possvel, na primeira vez em que uma abreviao for usada, ser
includa tambm a verso por extenso. No Apndice E encontra-se um glossrio
de termos tcnicos utilizados.
1
Estes dispositivos tambm podem funcionar separadamente
Os termos Software de Fonte Aberta (Open Source Software) e Software Livre (Free
Software) tem seus defensores e suas diferenas conceituais e jurdicas. Neste tra-
balho, usaremos o termo Software Livre por se tratar de uma poltica estratgica
do governo e pela inteno de destacar as caractersticas que o diferenciam do
Software de Fonte Aberta, especialmente sua disponibilizao no modelo da Li-
cena Pblica Geral (GPL).
1.2 Pblico
1.3 Autores
1.4 Agradecimentos
Diretrizes Gerais
http://www.serpro.gov.br/.
2
A Empresa de Processamento de Dados da Previdncia Social (Dataprev), ela a responsvel
pelo processamento da maior folha de pagamento do pas, alcanando mais de 20 milhes de
beneficirios/ms. Maiores informaes em: http://www.dataprev.gov.br.
3
O Programa Nacional de Desburocratizao da Secretaria de Gesto do Ministrio do Planeja-
mento, Oramento e Gesto, Decreto no 3335, de 11 de janeiro de 2000, que previa: Desburocrati-
zar a Administrao Pblica fundamental para preparar o pas aos novos desafios. imperativo
que o Estado se mostre gil e competente no atendimento de seus cidados, como tambm im-
prescindvel que esses no se intimidem ao procurar os servios pblicos e que tenham certeza
da boa qualidade e da eficincia do servio prestado".
Esta tecnologia pode ainda ser largamente aplicada para aperfeioar a prpria
gesto do governo - coordenao, planejamento, execuo e controle de aes,
contabilidade pblica, etc. - e suas transaes comerciais com o setor privado. O
conjunto dessas demandas e das Diretrizes de Governo Eletrnico, de utilizao
da WEB para prestao da maior parte destes servios, estes que tm uma grande
demanda computacional, com grande quantidade de acesso, usurios simult-
neos e alta demanda de processamento, acabam trazendo tona as arquiteturas
de cluster e grid computacional. Existem outros exemplos do uso das tecnologias
de informao e comunicao pela mquina administrativa pblica, dentre eles:
a prestao de informaes ligadas aos servios pblicos, o acompanhamento das
aes de governo e conduo dos negcios pblicos (por ex. compras governa-
mentais), o acesso direto aos governantes e representantes eleitos.
Com a preocupao de melhor adequar o Pas a esse cenrio, foram criados, por
meio de decreto de 29 de outubro de 2003, comits tcnicos especficos no mbito
do Comit Executivo do Governo Eletrnico: Implementao de Software Livre,
Incluso Digital, Integrao de Sistemas, Sistemas Legados e Licenas de Soft-
ware, Gesto de Stios e Servios On-Line, Infra-Estrutura de Rede, Governo para
Governo (G2G), Gesto de Conhecimento e Informao Estratgica.
Para dar suporte a toda demanda computacional que gerada por esses princ-
pios, que se prope a utilizao de arquiteturas computacionais baseadas em
Cluster e Grids no governo, como forma de criar um ambiente computacional
robusto, de alto grau de confiana e de baixo custo.
5
Oficinas de Planejamento Estratgico. RELATRIO CONSOLIDADO. Comit Executivo do Go-
verno Eletrnico. Maio de 2004. pg 8.
Assim, com essas polticas de padronizao, o governo cria mecanismos para que
os projetos em computao distribuda entre os rgos do Governo possam a ser
estruturados e obtenham maiores vantagens das arquiteturas de Cluster e Grid.
Essas padronizaes j so as bases para tecnologias existentes na rea, que hoje
so maduras e utilizadas pela indstria.
7
O artigo 37 da Constituio da Repblica apresenta os Princpios Basilares da Administra-
o Pblica: legalidade, impessoalidade, moralidade, publicidade e eficincia. O princpio da
razoabilidade possui fundamentao implcita, sendo evidenciado em algumas Constituies Es-
taduais.
Independncia tecnolgica;
O software livre, por princpio, depende do emprego de padres abertos. Tal uso
vem a facilitar tambm aes relacionadas com integrao de sistemas, otimiza-
o de processos, reutilizao de cdigos e adoo de arquiteturas computacio-
nais abertas.
independncia tecnolgica;
independncia de fornecedor;
B2B (business-to-business):
transaes entre empresas, exemplos: EDI, portais verticais de negcios;
B2C/C2B (business-to-consumer/consumer-to-business):
transaes entre empresas e consumidores, exemplos: lojas e shoppings vir-
tuais;
9
Tambm conhecido como hardware commodity, trata-se de hardware padro de mercado
fornecido por diversas empresas que concorrem entre si para oferecer as melhores condies de
suporte, qualidade e preo para o governo
B2G/G2B (business-to-government/government-to-business):
transaes envolvendo empresas e governo, exemplos: EDI, portais, com-
pras. Corresponde a aes do Governo que envolvem interao com entida-
des externas. O exemplo mais concreto deste tipo a conduo de compras,
contrataes, licitaes, etc, via meios eletrnicos;
C2C (consumer-to-consumer):
transaes entre consumidores finais (exemplos: sites de leiles, classifica-
dos on-line);
G2C/C2G (government-to-consumer/consumer-to-government):
transaes envolvendo governo e o cidado (consumidores finais dos servi-
os do Governo), exemplos: pagamento de impostos, servios de comuni-
cao). Corresponde a aes do Governo de prestao (ou recebimento) de
informaes e servios ao cidado via meios eletrnicos. O exemplo mais
comum deste tipo a veiculao de informaes em um website de um rgo
do governo, aberto a todos os interessados;
G2G (government-to-government):
transaes entre instituies do governo em qualquer nvel ou esfera do
Poder. Corresponde a funes que integram aes do Governo horizon-
talmente, exemplo: no nvel Federal, ou dentro do Executivo; ou vertical-
mente, exemplo: entre o Governo Federal e um Governo Estadual.
alta disponibilidade;
Projeto I 3 Gov 14 :
O Projeto I3 -Gov uma implementao da arquitetura referencial de inte-
roperao de sistemas - e-PING, atravs dele possvel acessar os Sistemas
Estruturadores de Governo, obtendo informaes de forma automtica e
interopervel. So disponibilizadas as seguintes informaes e servios: i)
Em Informao, possvel ver, por exemplo, o resultado dos gastos pbli-
cos com Sade, Educao e outros, sob a tica dos Programas e Aes de
Governo15 , ii) Em Inteligncia, esto registrados, de maneira padronizada,
os macroprocessos de gesto administrativa de Governo. Um exemplo o
11
http://www.comprasnet.gov.br
12
O Sistema Integrado de Administrao de Servios Gerais - SIASG, um conjunto informa-
tizado de ferramentas para operacionalizar internamente o funcionamento sistmico das ativida-
des inerentes ao Sistema de Servios Gerais - SISG, quais sejam: gesto de materiais, edificaes
pblicas, veculos oficiais, comunicaes administrativas, licitaes e contratos, do qual o Minis-
trio do Planejamento, Oramento e Gesto - MP o rgo central normativo.
13
O Governo Federal economizou R$ 637,8 milhes com a utilizao do prego eletrnico de
janeiro a julho de 2006. Esta modalidade foi responsvel por 47,3% do total de bens e servios
adquiridos pelo governo durante este perodo. Um estudo recente realizado pelo Banco Mundial
na rea de compras pblicas eletrnicas demonstra a eficincia do sistema de aquisies eletrni-
cas do Governo Federal Brasileiro. Segundo a avaliao do Banco Mundial, o Comprasnet obteve
pontuao mxima nos indicadores que avaliaram a transparncia na divulgao das licitaes e
de seus respectivos resultados e na utilizao de mtodos competitivos conforme recomendado
pela lei.
14
Integrao e Inteligncia em Informaes de Governo
15
O PPA, plano Plurianual estabelece, de forma regionalizada, as diretrizes, os objetivos e as
metas da Administrao Pblica Federal, e o principal instrumento de planejamento, por conse-
guinte, de mudana econmica e social com vistas ao desenvolvimento do Pas. O PPA organiza
a atuao governamental em programas e aes, inserindo na administrao pblica a orientao
do gasto pblico para resultados na sociedade.
Estes projetos desenvolvidos pelo governo possuem uma ou mais das seguintes
caractersticas:
Alta Disponibilidade;
Segurana;
A evoluo das solues de Cluster e Grid vem criando uma nova alternativa
para os ambientes computacionais de grande porte. A utilizao de ambientes
clusterizados para computao de alta performance vem crescendo rapidamente
e j quase predominante para as grandes mquinas utilizadas nos dias de hoje.
17
Berkeley Open Infrastructure for Network Computing
http://boinc.berkeley.edu/
18
http://distributted.net
19
A palavra carga utilizada nesta seo para representar o uso de recurso computacional, seja
Alta Disponibilidade;
Contingenciamento de recursos;
Da mesma forma que em cada uma destas inovaes aconteceu mudanas estru-
turais nas relaes entre as pessoas (usurias ou desenvolvedores de tecnologias)
e os sistemas computacionais, bem como nas concepes de desenvolvimento e
aplicao de sistemas informatizados, o mesmo ir ocorrer na adoo de tecnolo-
gias em Cluster e Grid. No existe tecnologia pior ou melhor do ponto de vista
global, cada tecnologia possui seu nicho de utilizao e aplicao. Caber aos ges-
tores dos sistemas realizar as devidas anlises para verificar quais procedimentos
devero ser tomados, tanto para a migrao ou desenvolvimento de aplicaes,
quanto para evitar gastos dispendiosos e criar um ambiente propcio para a utili-
zao destas tecnologias.
Aspectos Gerenciais
Introduo
O uso das tecnologias de Cluster e Grid tem aumentado nos ltimos 20 anos,
principalmente em aplicaes de pesquisa, algumas das reas de maior utilizao
destas tecnologias so: pesquisa gentica, bioinformtica, fsica, qumica, enge-
nharia, climatologia, petroqumica, pesquisa espacial e resoluo de equaes e
mtodos matemticos.
2004 pelo instituto Forrest Research1 constatou que 37% das grandes empresas
do mercado corporativo esto em alguma fase de adoo/desenvolvimento de
projetos baseados em tecnologias de Grid Computing.
1
Forrester, 2004. http://www.forrester.com/go?docid=34449
Tal arquitetura conjugada por N Camadas e pode ser composta geralmente por:
Camada de Armazenamento
Cada uma destas camadas ser melhor exemplificada nas subsees abaixo:
Esta camada responsvel pelos servios web disponveis no cluster. nela que
se encontram os servidores de aplicao e a nica camada acessada externa-
mente pelos usurios dos servios.
Esta camada responsvel pelos bancos de dados que so acessados pelos servi-
os disponveis no Cluster e onde se encontram os servios de Banco de Dados.
Internet
Cluster principal
Cluster espelho
Balanceamento
carga
carga
de
de
Switch
Switch
Aplicaao
Aplicaao
Switch
Switch
Switch
Switch
Banco de dados
Banco de dados
Switch
Switch
Balanceamento
Balanceamento
Link de backup
carga
carga
de
de
Switch
Switch
Armazenagem
Armazenagem
Switch
Switch
A arquitetura em N camadas foi pensada para que fosse o mais geral e modular
possvel, alguns exemplos de utilizao desta arquitetura podem ser definidos
com os seguintes tipos de implementaes:
3
http://www.siapenet.gov.br
4
http://www.tesouro.fazenda.gov.br/SIAFI/
O portal precisa estar disponvel para acesso e consulta dos usurios ininterrup-
tamente, as questes como integridade, confidencialidade e autenticidade so es-
senciais, pois as informaes contidas no portal no devem ser alteradas e dispo-
nibilizadas para pessoas que no possuam a devida autorizao.
Ms Acessos Carga
Simul- Utili-
tneos zada
01 250 50%
02 350 70%
03 450 90%
04 500 100%
Tabela 3.1: Tabela Cenrio 1
Caso a demanda continue crescendo, em pouco tempo, uma nica mquina na ar-
quitetura x86_32 e x86_64 no ser capaz de atender as necessidades computaci-
onais. Neste caso, existiro duas possibilidades: trocar a arquitetura da mquina
utilizada, ou distribuir a demanda computacional em mais de um servidor.
A figura 3.5 um diagrama onde 4 clientes esto acessando uma aplicao que
encontra-se hospedada em um conjunto de alta disponibilidade. A aplicao
encontra-se ativa somente no servidor primrio e todos os dados salvos no disco
do servidor primrio so replicados para o servidor secundrio. Em caso de fa-
lhas no servidor primrio, o heartbeat ser responsvel por tomar as aes ne-
cessrias para que o servidor secundrio passe a executar a aplicao e servi-la
aos clientes. Os clientes enxergam apenas um servidor atravs de um endereo
ip compartilhado entre os dois servidores.
Figura 3.5: Sistema de alta disponibilidade com dois servidores sendo acessados por 4 clientes.
Um dos servidores Primrio(ativo) e outro Secundrio(passivo)
sua falha que envolva alguma atividade de escrita (email, banco de dados, ser-
vidor de arquivos, etc.) e no tenha sido gravada no disco do servidor primrio,
ser perdida quando o servidor secundrio assumir. Pois, o servidor secundrio
s possui as informaes que tiverem sido gravadas no disco do servidor prim-
rio e replicadas em seu disco.
A camada de banco de dados uma das partes crticas da maioria dos sistemas.
Uma falha, indisponibilidade ou problemas de integridade na camada de banco
de dados pode ser responsvel pela indisponibilidade de um sistema inteiro ou
at mesmo pela perda de dados que encontravam-se armazenados. Por conta
desse motivo, esta camada deve ser avaliada, desenvolvida e implementada com
cuidado.
6
http://http://pargres.nacad.ufrj.br/.
Viso Geral
4.1 A sensibilizao
4.2.2 Consultoria
Assim, procuramos expandir a idia do artigo e tendo como foco estruturas em-
presariais mais complexas e tecnologias abertas.
2. Projeto piloto
4. Sistemas diskless
12. Segurana
13. Aplicao
Em caso de aplicaes existentes, que se queira portar para este ambiente, pes-
quise as possibilidades pois, certamente, o porte de aplicaes mais antigas (le-
gados) custar muito mais caro do que o desenvolvimento de uma nova aplicao
em tecnologias mais recentes. Mas ainda sim, a avaliao de cada uma aplicao
precisa ser feita. Podem ocorrer casos de aplicaes (neste caso, problemas) que
nem mesmo com o emprego de tecnologias mais recentes seja possvel clusterizar.
Projeto piloto
Existem excees a esta regra, mas certamente ser preciso um n frontal mais
rpido para seu sistema, da mesma maneira que tambm so necessrios discos
de maior capacidade em servidores de I/O.
Sistemas diskless
Sloan, em seu artigo [334], aconselha evitar a utilizao de sistemas que no uti-
lizam disco rgidos; no entanto, a experincia e a evoluo destes sistemas vm
mostrando que a sua eficincia pode ser muito bem aproveitada, alm de facilitar
o gerenciamento de todo o sistema de forma global. Mesmo assim, a utilizao
deste tipo de tecnologia precisa ser muito bem avaliada para verificar os prs e
contras de uma implementao baseada em tecnologia sem disco.
Uma reflexo tem de ser feita antes de comear a pensar em redes: um dos gran-
des erros em projetos de Clusters, para qualquer que seja a sua finalidade, acre-
ditar que o processamento, ou alta capacidade de processamento, baseado ape-
nas em computadores, ou em seus processadores. Um Cluster precisa ser visto
como um organismo completo, onde cada pea tem sua importncia e pode ser o
responsvel por um melhor desempenho do sistema globalmente.
Se for preciso obter acesso rede do Cluster, este pode ser provido atravs de co-
nexes seguras por um firewall e por uma mquina de entrada, responsvel pelo
disparo de processos no sistema. O controle de acesso e conexes ao Cluster so
temas que tm de ser bem estudados, e dependendo do tipo e principalmente do
valor desta informao, o controle tem de ser mais acurado. Nesse ponto, o con-
trole de acesso iria muito alm dos firewalls, proxies e servidores de autenticao,
mas tambm passaria pelo estabelecimento de conexes seguras e autenticadas,
com uso de certificados digitais, entre outras tecnologias.
Assim como estes pacotes, existem outros que facilitam a utilizao de Clusters,
como o RHCS 6 que apontado para sistema de HA.
Muitas vezes passamos por problemas que j foram resolvidos em ocasies ante-
riores, mas por falta de um histrico de ocorrncias, no sabemos como resolver
o problema, o que obriga a todo um retrabalho de pesquisa por solues dos
problemas apresentados. As documentaes so de extrema importncia nesses
momentos, mas as principais documentaes ainda so as relacionadas ao pr-
prio Cluster. Deve-se conhecer como as conexes de rede e energia esto feitas,
quais as configuraes e todos os detalhes tcnicos da implementao, para aju-
dar a prever problemas, bem como facilitar em muito o processo de resoluo de
qualquer incidente.
Segurana
Poltica de Segurana;
Segurana Organizacional;
Controle de Acesso;
Obedincia a Exigncias.
Aplicao
Os tcnicos e gestores com base nos grupos acima iro montar o planejamento
para o uso das tecnologias de Cluster que considere o melhor custo/benefcio de
seu caso.
Banco de dados
Conhecer bem as demandas de acesso aos dados pelos sistemas que sero execu-
tados no Cluster permitir uma melhor escolha da arquitetura de banco de dados
necessria para suprir as exigncias do sistema. Mais informaes podem ser
obtidas no captulo 9.
Isso hoje causado principalmente por causa da evoluo rpida desta rea da
computao. Apesar da rea de pesquisa j ser antiga, a sua aplicao em ambi-
entes corporativos recente e vem evoluindo muito rapidamente.
Nesta seo sero tratados aspectos que podem ser vistos como estmulos para
adoo do processamento paralelo, seja a partir do ponto de vista da exausto das
arquiteturas seqenciais em funo dos limites impostos pela tecnologia atual,
seja considerando as necessidades dos diferentes segmentos usurios.
Cada estratgia de interconexo (vide item 6.6.2) tem implicaes diretas em as-
pectos operacionais, tais como: emprego genrico (possibilidade de uso com de-
sempenho desta mquina paralela a um nmero maior de naturezas de proble-
mas), na sua escalabilidade e no seu custo, dentre outros (CULLER [128]).
A cada novo processador mais poderoso, o preo da gerao anterior cai con-
sideravelmente; deste modo, agrupar em um equipamento paralelo, processa-
dores mais antigos prov um alternativa computacional de custo competitivo.
Tendo em vista que cada nova gerao introduz um acrscimo de desempenho
com magnitude da ordem de dcimos, mesmo modestos agrupamentos de pro-
cessadores no to atuais, so viveis no que diz respeito ao desempenho global.
Este aspecto se potencializa ainda mais se a escolha tecnolgica do hardware para
interligao no apresentar custo elevado.
grandes bancos de dados com resposta em tempo real (OLTP On Line Tran-
saction Processing);
esta afirmao que somente um pequeno conjunto de aplicaes poderia ser exe-
cutado eficientemente em um hardware paralelo. A lista de aplicaes acima in-
dica exatamente o contrrio; a ineficincia do processamento paralelo tem muito
mais relao com as dimenses do problema" do que com as particularidades
de um domnio especfico do conhecimento humano. Nos ltimos dez anos os
computadores paralelos tem sido programados com eficincia tanto para aplica-
es do mundo comercial como para o da pesquisa e desenvolvimento (MORSE
[280]).
Figura 5.1: Relao Carga X Custo de investimento, para plataforma Baixa X Alta
Tanto para o fornecedor quanto para o usurio, muito oportuno que a arqui-
tetura possa ser expandida gradualmente atravs da adio de mdulos. Esta
possibilidade permite uma melhor adequao da curva investimentos & produti-
vidade, uma vez que o equipamento poder crescer dentro de uma determinada
faixa, tendo como regulador a demanda de servio real (MORSE [280]).
Aspectos Tcnicos
Conceitos Bsicos
Neste tipo de arquitetura, cada n tem seu processador, sua unidade de con-
trole e sua memria local (MIMD). Assim, cada n pode executar, de forma assn-
crona, um processo independente sobre seus prprios dados (vide figura 6.2). Os
equipamentos que implementam este tipo de arquitetura tambm so conhecidos
como multicomputadores ([128], [280]).
A rede de interconexo (vide item 6.6.2) crtica para o desempenho deste tipo de
equipamento. As diversas possibilidades de implementao da rede de interco-
nexo (topologia, latncia, conteno, etc.) neste tipo de arquitetura constituem
um dos aspectos responsveis pela falta de padro no mercado de arquiteturas
paralelas.
Este tipo de arquitetura exige uma estrutura densa para a rede de interconexo, a
fim desta suportar a difuso das instrues a partir do controlador para a matriz
de processadores. Esta rede de interconexo tambm utilizada para distribuir
dados e recolher resultados.
6.1.2 Multiprocessadores
6.1.3 Multicomputadores
6.1.5 ccNUMA
por uma rede de interconexo de alta velocidade. Cada n pode ser composto por
um ou mais processadores, possuindo cache e memrias locais. Cada n possui
tambm seu prprio sistema operacional, onde as aplicaes rodam localmente e
se comunicam por sistemas de trocas de mensagens (11.1).
Topologia;
Algoritmo de roteamento;
Estratgia de comutao;
6.1.8 Clusters
6.1.9 Grids
6.2 Dependabilidade
6.2.1 Ameaas
Define-se falha (ou falta) como a causa fsica ou algortmica do erro. Falhas esto
associadas ao universo fsico, erros ao universo da informao e defeitos ao uni-
verso do usurio. Assim um chip de memria, que apresenta uma falha em um
de seus bits (falha no universo fsico), pode provocar uma interpretao errada
da informao armazenada em uma estrutura de dados (erro no universo da in-
formao) e como, resultado o sistema pode negar autorizao de embarque para
todos os passageiros de um vo (defeito no universo do usurio).
6.2.2 Meios
Preveno de Falhas
Tolerncia Falhas
Remoo de Falhas
Previso de Falhas
6.2.3 Atributos
Disponibilidade:
Disponibilidade instantnea o atributo, definido como a probabilidade de
um sistema apresentar um servio correto, num determinado instante de
tempo t. Na anlise de disponibilidade estamos interessados no comporta-
mento de um sistema em determinados perodos de tempo, ou seja, estamos
preocupados em observar a alternncia de perodos de funcionamento cor-
reto e perodos que o sistema est de reparo. O fator importante saber
a frao de tempo na qual o sistema dever ter condies de apresentar o
servio de forma correta.
Confiabilidade:
a mtrica que avalia, o quanto um sistema pode apresentar um servio
correto continuamente durante um intervalo de tempo t, ou seja, a proba-
bilidade do sistema no apresentar defeito durante o intervalo de tempo
considerado.
Segurana:
considerada sob dois aspectos: contra catstrofes e convencional. Con-
tra catstrofes a probabilidade do sistema apresentar defeito que acarrete
Confidenciabilidade:
a probabilidade de no ocorrer divulgao indevida de informao no
intervalo de tempo.
Integridade:
a probabilidade de no ocorrer alteraes imprprias de estado em um
sistema no intervalo de tempo.
Reparabilidade:
Esta mtrica avalia o quanto um sistema pode ser restaurado, retornando
ao estado de servio correto em determinado tempo, dado que o mesmo
apresentou defeito.
6.3 Escalonamento
em sistemas paralelos reais, uma vez que sua simplicidade de implementao lhe
confere grande robustez e facilidade de manuteno. Nestes sistemas a ocorrn-
cia de eventos que afetem significativamente o desempenho do escalonamento
rara e os resultados so freqentemente satisfatrios.
Outro tpico importante da rede a sua eficincia: uma rede congestionada des-
tri o desempenho do cluster. Assim, dependendo do tamanho do cluster, e da
quantidade de ns pertencentes a este, a rede poder ser a culpada diretamente
pela baixa eficincia computacional do cluster. por isto que o investimento em
uma rede tecnologicamente moderna habitual nestes tipos de sistemas.
largura de banda do canal: nmero de bytes por segundo que pode fluir en-
tre dois ns com conexo direta. Via de regra, a largura de banda depen-
O grau indica o nmero mximo de mensagens que podem ser manipuladas (en-
viadas ou recebidas) simultaneamente por cada um dos processadores.
Topologia em Barramento
Assim sendo, a sua largura da bisseo 1. Isto significa que esta topologia
no permite mais do que um par de processadores em comunicao simultanea-
mente.
Topologia em Malha
A largura da bisseo de uma malha N onde N o nmero de processadores.
A largura da bisseo dobra para a malha toroidal. O dimetro da topologia em
malha 2( N 1), e o seu grau fixo e de valor 4.
Topologia em Hipercubo
Toda rede de interconexo hipercbica est alicerada sobre uma estrutura multi-
dimensional baseada em endereos binrios.
Topologia em rvore
A clssica rvore binria, com processadores nas suas folhas, tem se mostrado
uma boa opo de topologia para arquiteturas paralelas. O dimetro de uma r-
vore completa 2log2 ((N+1)/2), bastante similar ao do hipercubo (N o nmero
de processadores). A largura da bisseo, por sua vez, somente 1, o que pode
introduzir um severo gargalo quando processadores de uma metade da rvore
precisarem se comunicar com os da outra metade.
Gigabit Ethernet
O padro Gigabit Ethernet uma extenso dos padres 10 Mbps Ethernet e 100
Mbps Fast Ethernet para interconexo em redes. Esse padro surgiu da necessi-
dade criada pelo aumento da largura de banda nas "pontas"das redes (ex.: servi-
dores e estaes de trabalho) e tambm pela reduo constante dos custos entre
as tecnologias compartilhadas e comutadas, juntamente com as demandas das
aplicaes atuais.
Myrinet
InfiniBand
Caractersticas:
Interoperabilidade: IP sob GSN, ST sob GSN, BDS sob GSN e ARP sob GSN;
6.7.3 FDDI
O padro FDDI (Fiber Distributed Data Interface) foi estabelecido pelo ANSI (Ame-
rican National Standards Institute) em 1987. Este abrange o nvel fsico e de ligao
de dados (as primeiras duas camadas do modelo OSI).
As redes FDDI adotam uma tecnologia de transmisso idntica s das redes To-
ken Ring, mas utilizando, comumente, cabos de fibra ptica, o que lhes concede
capacidades de transmisso muito elevadas (na casa dos 100 Mbps ou mais) e a
oportunidade de se alargarem a distncias de at 100 Km.
6.7.5 Protocolo IP
Os dados numa rede IP, so enviados em blocos referidos como pacotes ou data-
gramas (os termos so basicamente sinnimos no IP, sendo usados para os dados
em diferentes locais nas camadas IP). Em particular, no IP nenhuma definio
necessria antes do host tentar enviar pacotes para um host com o qual no comu-
nicou previamente.
O UDP um acrnimo do termo ingls User Datagram Protocol que significa pro-
tocolo de datagramas de utilizador (ou usurio). O UDP faz a entrega de mensa-
gens independentes, designadas por datagramas, entre aplicaes ou processos,
em sistemas host. A entrega no confivel", porque os datagramas podem ser
entregues fora de ordem ou at perdidos. A integridade dos dados pode ser ge-
rida por um checksum"(um campo no cabealho de checagem por soma).
RTP (do ingls Real Time Protocol) um protocolo de redes utilizado em aplicaes
de tempo real como, por exemplo, Voz sobre IP, que a entrega de dados udio
ponto-a-ponto. Define como deve ser feita a fragmentao do fluxo de dados-
udio, adicionando a cada fragmento informao de seqncia e de tempo de
entrega. O controle realizado pelo RTCP - Real Time Control Protocol. Ambos
utilizam o UDP como protocolo de transporte, o qual no oferece qualquer ga-
rantia que os pacotes sero entregues num determinado intervalo. Os protocolos
RTP/RTCP so definidos pela RFC 3550 do IETF (Internet Engineering Task Force).
VRRP um protocolo especificado pela IEFT2 (RFC 3768) que permite dois ou
mais roteadores atuarem como um roteador virtual. De acordo com essa especifi-
cao, os roteadores se apresentam para cliente com um endereo IP virtual (VIP
- Virtual IP) correspondente a um MAC virtual (VMAC), mas cada qual possui
seu prprio IP e MAC reais. Se o roteador primrio (master), que inicialmente
possua os dados virtuais, falhar ento um roteador secundrio (backup) assume
a tarefa de roteamento.
2
Internet Engineering Task Force
. Virtual MAC address Em casos em que endereo MAC usado (Ethernet), este
endereo MAC virtual associado ao Endereo IP virtual.
. Priority Valor (que varia de 1 a 254) associado a cada roteador rodando VRRP
como maneira de determinar o master (quanto maior o nmero, maior priori-
dade).
. Forar a eleio de outro master caso haja algum com maior prioridade.
Cluster de Armazenamento
7.1 Introduo
RAIDs pequenos podem ser ajustados nos espaos para disco do prprio compu-
tador; outros maiores podem ser colocados em um gabinete de armazenamento,
com seu prprio espao, para disco e suprimento de energia. O hardware mais
novo de RAID usado com a mais recente e rpida CPU ir provavelmente forne-
cer o melhor desempenho total, porm com um preo expressivo. Isto porque a
maioria das controladoras RAID vem com processadores especializados na placa
e memria cache, que pode eliminar uma quantidade de processamento consi-
dervel da CPU. As controladoras RAID tambm podem fornecer altas taxas de
transferncia atravs do cache da controladora.
RAID por software, por sua natureza, tende a ser muito mais flexvel que uma
soluo por hardware. O problema que ele em geral requer mais ciclos e capaci-
dade da CPU para funcionar bem, quando comparado a um sistema de hardware,
mas tambm oferece uma importante e distinta caracterstica: opera sobre qual-
quer dispositivo do bloco podendo ser um disco inteiro (por exemplo, /dev/sda),
uma partio qualquer (por exemplo, /dev/hdb1), um dispositivo de loopback (por
exemplo, /dev/loop0) ou qualquer outro dispositivo de bloco compatvel, para criar
um nico dispositivo RAID. Isso diverge da maioria das solues de RAID via
hardware, onde cada grupo unifica unidades de disco inteiras em um arranjo.
Projeto:DRBD
Stio Oficial:http://www.drbd.org
Licena:GPL
Responsvel: LinBit - http://www.linbit.com
Como Funciona
Apesar do DRBD possuir o seu prprio modo de determinar qual dos servidores
dever ser primrio, a sincronizao com o sistema genrico no trivial. Para re-
duzir estas dificuldades e a necessidade de interao do usurio,freqentemente
utilizado um sistema gerenciador de cluster, como o heartbeat, para tratar das
transies de estado. Alm desta transio de estados, o sistema ser responsvel
por montar o sistema de arquivos na nova mquina que se tornou primria.
Caractersticas
Figura 7.2: Fluxo de intercomunicao entre as camadas dos dispositivos Linux - repare que o
DRBD no tem como notificar o mdulo do sistema de arquivos - mas o oposto ocorre.
Situao do projeto
cessita de nenhum hardware especfico. Ele trabalha no topo de redes IP, que so
de implementao generalizada e de baixo custo, comparativamente aos sistemas
dedicados de armazenamento (como Storage Area Networks - SAN).
GNBD (Global Network Block Devices) [230] um dispositivo que prov o acesso no
nvel de blocos a dispositivos de armazenamento remotos em uma rede TCP/IP.
O GNBD composto por um mdulo no kernel e um conjunto de utilitrios de
sistema, possuindo uma parte servidora, que responsvel por exportar o disco
via rede, e uma parte cliente, que responsvel por mapear localmente um disco
remoto.
alguns exemplos de dispositivos de blocos so: Disco Rgidos Ide ou SCSI, Pen-
drive, Volumes lgicos, DRBD, dispositivos armazenados em storage devices.
2
Storage Area Network
Algumas pessoas crticas do protocolo iSCSI esperam uma performance pior que
a existente no Fiber Channel, isto ocorre por conta do overhead adicionado pelo
protocolo TCP/IP na comunicao entre cliente e dispositivo de armazenamento.
Entretanto, novas tcnicas, como por exemplo TCP Offload Engine (TOE3 ) ajudam
a reduzir este overhead. De fato, com a performance disponvel nos servidores
modernos, uma interface de rede padro com um driver eficiente pode superar a
performance de uma placa TOE porque menos interrupes e menos transfern-
cias de memria DMA so necessrias. As solues iniciais de iSCSI so baseadas
em uma camada de software. O Mercado iSCSI est crescendo rapidamente e deve
melhorar em performance e usabilidade quanto mais organizaes implementa-
rem redes gigabit e 10 gigabit, e fabricantes integrarem suporte ao protocolo iSCSI
nos seus sistemas operacionais, produtos SAN e subsistemas de armazenamento.
iSCSI se torna cada vez mais interessante pois as redes ethernet esto comeando
a suportar velocidades maiores que o Fiber Channel.
Dispositivos de Armazenamento
No contexto do armazenamento em computadores, o iSCSI permite que um iSCSI
initiator conecte a dispositivos iSCSI target remotos tais como discos e fita em
uma rede do IP para I/O ao nvel de bloco (block level I/O). Do ponto da vista dos
drivers de sistema operacional e de aplicaes de software, os dispositivos apa-
recem como dispositivos locais SCSI. Ambientes mais complexos, que consistem
de mltiplos Hosts e/ou dispositivos, so chamados de rea de Armazenamento
em Rede (Storage Area Networks - SAN).
3
http://en.wikipedia.org/wiki/TCP_Offload_Engine
O protocolo iSCSI responsvel pela execuo de comandos SCSI entre dois dis-
positivos em uma rede TCP/IP. Comandos SCSI so executados atravs de cha-
madas iSCSI e os status SCSI so retornados como respostas.
Linux Initiators:
Informaes mais detalhadas sobre iSCSI podem ser obtidas nas RFCs: RFC-3720
http://www.ietf.org/rfc/rfc3720.txt e RFC-3783 http://www.ietf.org/
rfc/rfc3783.txt
Nomes e Localizao
Tal rvore possui somente uma raiz. Cada n pode possuir rvores ou arquivos.
Dessa forma, para localizar um arquivo em uma rvore de diretrios (usados para
agrupar arquivos) basta seguir o caminho do arquivo e, ao chegar no diretrio
final, procurar pelo nome de tal arquivo. A forma como esse nome e esse caminho
so definidos depende muito do sistema operacional. Por exemplo, no Unix um
Cache
Isso ajuda muito na economia de tempo de processamento pois para acessar da-
dos remotos, por exemplo, o sistema est limitado velocidade da rede, que,
mesmo rpida, estar limitada velocidade do meio fsico de armazenamento
do servidor remoto, pois este ainda precisaria procurar os dados, carreg-los na
memria e envi-los para o cliente.
O uso de cache uma boa soluo para o problema de desempenho no acesso aos
arquivos, porm existem problemas como o de sincronizao dos dados do cache
com os dados do meio fsico. Assim, se algum outro cliente alterar os dados no
servidor, este precisa avisar a todos os clientes que seus caches podem estar com
uma verso antiga dos dados.
Falha: O SAD deve garantir que o acesso aos arquivos seja ininterrupto e
sem falhas, sem que o usurio saiba como isso tratado.
Caso esse arquivo mude de lugar, ou tenha vrias cpias, o seu nome ou cami-
nho no precisar ser alterado para ser encontrado. Para isso, o servio precisa
oferecer ou resoluo por nomes, ou resoluo por localizao, ou ambos.
Resoluo por nomes mapeia nomes de arquivos legveis por humanos para no-
mes de arquivos compreensveis por computadores, que normalmente so nme-
ros, facilmente manipulveis pelas mquinas. Por exemplo, o endereo http:
//www.example.com mapeado para o IP 192.0.34.166. Atravs desse conjunto
de nmeros possvel encontrar uma mquina na rede Internet, utilizando-se de
tabelas de rotas de endereos mascarados que indicam como chegar a posio
desejada.
Resoluo por localizao mapeia nomes globais para uma determinada localiza-
o. Por exemplo, nmeros de telefone possuem cdigo do pas, da localidade,
etc. Se transparncia por nome e por localizao estiverem sendo utilizadas si-
multaneamente, pode ser muito difcil realizar um roteamento para determinar a
localizao de um determinado nome. Solues com servidores centralizados ou
distribudos so opes, porm os centralizados podem se tornar um gargalo, en-
quanto os distribudos precisam usar alguma tcnica de descentralizao, como
por exemplo cada servidor responsvel por um determinado subconjunto de
arquivos, ou cada um resolveria a localizao de determinados tipos de arquivos.
Esse servio tambm cuida das propriedades dos arquivos, como data de criao,
data de alterao, tamanho, dono do arquivo, permisses de leitura, escrita e
execuo, alm de qualquer outra informao relevante. Tais informaes so
chamadas tambm de meta-dados.
J no caso da cpia remota, o cliente recebe uma cpia do arquivo para trabalhar
e, quando tiver terminado, devolve as alteraes para o servidor. Isso s funci-
ona se o cliente tiver espao suficiente para armazenar o arquivo. A velocidade
da rede s influenciar durante as transmisses do arquivo de um local a outro
e a implementao s ser considerada muito eficiente caso o arquivo seja total-
mente alterado. Porm, se o cliente s se interessar por um determinado trecho
do arquivo, recursos de transmisso estaro sendo gastos sem necessidade. Da
existe uma variante dessa implementao onde somente os blocos que se quer
trabalhar so enviados para o cliente, chamada de cache de bloco.
possvel tambm que esse servio lide com replicao de arquivos, que ajuda
no acesso concorrente, dando maior velocidade para as aplicaes dos clientes,
ajudando-o tambm a deixar os arquivos sempre disponveis, caso algum servi-
dor fique fora do ar.
O servio precisa manter uma lista de todos os diretrios ativos, junto com seus
respectivos arquivos. Ele precisa ter a capacidade de identificar e remover arqui-
vos que no estejam em diretrio algum, como por exemplo quando um diretrio
Disponibilidade
Dessa forma, existem vrios estudos para evitar que os servios deixem de ser
oferecidos, seja qual for o motivo.
Uma das solues para se resolver esse problema a replicao dos dados, ou
seja, o mesmo arquivo, ou parte dele, deve estar em diferentes servidores. As-
sim, caso algum servidor fique fora da rede, outro fornecer os mesmos arquivos.
Alguns sistemas de arquivos distribudos foram criados levando esse conceito s
ultimas consequncias, como o caso do CODA, detalhado na sesso 7.3.6.
Escalabilidade
Caso se tenha cache do lado dos clientes, ao se alterar um arquivo que est sendo
usado por muitas outras mquinas, o servidor ter que avis-las que o cache local
das mesmas est invlido e todas devero se atualizar com a verso do servidor,
causando sobrecarga.
Por outro lado, caso se tenha estimado que a rede seria muito grande e se te-
nha distribudo sistema de arquivos em muitos servidores, fica difcil descobrir
onde um arquivo est armazenado fisicamente. Por exemplo, se para abrir um
arquivo um cliente tiver que perguntar para cada servidor se ele o respons-
vel por aquele arquivo, certamente haver um congestionamento na rede. Caso
se tente resolver isso colocando um servidor central para resolver todos os ca-
minhos para os arquivos, indicando a localizao do mesmo, tal servidor sofrer
sobrecarga.
Segurana
Nos sistemas distribudos que executam sob o Unix, quando um servidor recebe
um pedido para enviar dados de um determinado arquivo, ele tambm recebe
informaes sobre qual usurio est tentando realizar tal acesso. Com isso, veri-
fica se tal usurio tem permisso suficiente para realizar essa solicitao, fazendo
uma comparao com as informaes de permisses do arquivo.
O controle no acesso aos arquivos uma das medidas de segurana para proteg-
los. Porm, caso haja outras mquinas no caminho de duas mquinas confiveis,
Tolerncia a Falhas
Durante a transmisso dos dados entre servidores e clientes, falhas podem ocor-
rer, seja por excesso de trfego de pacotes pela rede, seja por algum dos servidores
estar sobrecarregado. Alm disso, podem ocorrer falhas de hardware, especial-
mente dos mecanismos de armazenamento, de transmisso, etc. Esses problemas
acontecem em grande parte porque os sistemas distribudos so implementados
sobre redes de computadores que no so totalmente confiveis.
Alm disso, o hardware dentro das mquinas tambm pode apresentar falhas.
Por exemplo, um disco rgido pode deixar de funcionar de um momento para
outro. Nesse caso, solues como redundncia fsica do equipamento (reali-
zada atravs de hardware) ou redundncia controlada pelo prprio sistema dis-
tribudo, que cuidaria de replicar os dados, j evitaria a perda das informaes
armazenadas.
Seja qual for o problema, o sistema deve evitar que o cliente fique aguardando
uma resposta por muito tempo, ou que seus dados sejam danificados ou at
mesmo perdidos. Isso significa que o servio precisa ter disponibilidade e confi-
abilidade.
Outro mecanismo que auxilia a confiabilidade a transao. Ela evita que o con-
tedo de algum arquivo fique em um estado inconsistente caso haja uma queda
do servidor ou cliente durante a execuo de alguma operao sobre o mesmo.
Maiores detalhes sobre transaes so descritas na prxima sesso.
Operaes Atmicas
Assim, caso alguma dessas operaes falhe, o sistema ou desfaz, ou aborta todas
as alteraes que as operaes antes daquela realizaram. Isso chamado de roll-
back ou abort. Caso todas as operaes sejam executadas sem problemas ou erros,
ao chegar no fim da transao realizado um commit, ou seja, todas as altera-
es que foram executadas so efetivadas e persistidas, de tal forma que outros
processo possam perceb-las.
Acesso Concorrente
Vrios usurios podem acessar vrios arquivos, ou os mesmos arquivos, sem so-
frer danos, perda de desempenho ou quaisquer outras restries. Isso tudo deve
ocorrer sem que o usurio precise saber como o acesso realizado pelos servido-
res. Assim, necessrio haver transparncia de concorrncia e de paralelismo.
Para se ter uma idia da complexidade desse problema, imagine duas operaes
bancrias simultneas na mesma conta. Uma delas um saque de R$100,00 e
outra um depsito de R$1000,00. Antes dessas operaes, suponha que essa
conta possua R$100,00 de saldo e tambm suponha que esse valor esteja armaze-
nado em um arquivo de um sistema de arquivos distribudo. Quando o cliente
da conta for realizar o saque, a aplicao ir armazenar em memria o valor atual
do saldo, assim como acontecer com a aplicao do outro caixa que estar rece-
bendo o depsito. Esta aplicao, ento, ir adicionar ao saldo o valor do dep-
sito e gravar no arquivo o novo saldo, que ser de R$1100,00. Porm, a primeira
aplicao ir subtrair do valor armazenado em memria (que para seu contexto
de R$100,00) o valor do saque e gravar o resultado (R$0,00) no mesmo arquivo,
sobrescrevendo o valor l existente. Dessa forma, o cliente perderia seu depsito.
Para evitar esse tipo de problema, as aplicaes que operam dessa forma podem
agrupar um conjunto de operaes no sistema de arquivos como sendo uma nica
transao, deixando a cargo do sistema operacional gerenciar a melhor forma de
executar isso. Existem alguns mecanismos para o controle dessa concorrncia,
como por exemplo o uso de bloqueios, o controle de otimista e o de controle por
data e hora, que so encontrados em ([351], [192]).
Porm esse protocolo pode gerar um travamento (deadlock), onde um processo es-
peraria a liberao de um arquivo que foi bloqueado por outro processo, que tam-
bm estaria esperando a liberao de um arquivo que foi bloqueado por aquele
primeiro processo, por exemplo. Para evitar travamentos em sistemas distribu-
dos, existem tcnicas e algoritmos que fogem do escopo deste trabalho, devido
complexidade, mas que so descritos em [192], [351].
Replicao de Arquivos
A centralizada consiste de um nico servidor que cuida dos pedidos dos clientes
atravs de handles. Com esses handles, os clientes acessam diretamente os arqui-
vos atravs dos servidores e secundrios. Porm, caso o servidor primrio caia,
nenhum outro cliente conseguir abrir nenhum outro handle, somente os que j
estavam abertos continuam acessando os arquivos.
Esse servidor ser o servidor padro daquele arquivo e seu nmero de verso
ser incrementado.
O primeiro SAD que se tem notcia, segundo [246], usava a ARPANET, rede cons-
truda pelo Departamento de Defesa dos Estados Unidos em 1969 que entrou
em funcionamento em 1973. Ele disponibilizava um repositrio de dados para
computadores que no possuam capacidade de armazenamento adequada. Era
chamado de Datacomputer e usava um servio parecido com o FTP atual.
Depois dele, veio o Interim File Server (IFS), criado por pesquisadores do Xerox
Palo Alto Research Center (PARC). Ele j organizava os arquivos privados e com-
partilhados em uma rvore de diretrios. Um sistema subseqente foi o Woods-
tock File Server (WFS), criado tambm pelo PARC, que permitia enviar aos clientes
somente pginas dos arquivos, ao invs de enviar o arquivo completo, possibili-
tando trabalhar assim com mquinas sem discos locais.
Em 1977, o PARC criou o Xerox Distributed File System, destinado a oferecer uma
base para a implementao de sistemas gerenciadores de banco de dados. Ele
j implementava transaes atmicas envolvendo vrios arquivos e servidores,
usando um protocolo de duas fases e o acesso a pequenos trechos de arquivos.
Projeto:Network Filesystem
Stio Oficial:http://nfs.sourceforge.net
Licena:GPL
Responsvel:
Network File System [341], [245], [246], [269], sistema de arquivos distribudo de-
senvolvido inicialmente pela Sun, o SAD mais utilizado em sistemas Unix. Em
1985 a Sun tornou pblico seu protocolo, o que permitiu que outras empresas e
desenvolvedores pudessem criar clientes e servidores compatveis.
Por outro lado, servidores que no guardam o estado das transaes realizadas
no conseguem gerenciar locks e nem realizar transaes atmicas. Existem so-
lues disponibilizadas parte para resolver alguns desses problemas, como um
servidor de locks, chamado de Network Lock Manager [227], para auxiliar as pol-
ticas de acesso a arquivos de forma concorrente. Tambm pelo fato do NFS no
manter estado, ele no pode controlar o acesso concorrente aos seus arquivos e
nem garantir a sua consistncia.
Segurana
No NFSv2, o cliente era responsvel pelo controle de acesso aos arquivos (sem
nenhuma validao por parte do servidor). Isso mudou na verso 3, onde o ser-
vidor passou a tomar tal deciso, usando o mesmo esquema de segurana dos
sistemas de arquivos locais Unix. Quando um cliente faz um pedido, ele envia
o uid e o gid do usurio solicitante, e, atravs de uma consulta s permisses do
arquivo local em questo, o servidor decide se libera o acesso ao cliente ou no.
mecanismo para isso baseado em leases, ou seja, um cliente NFS pede ao ser-
vidor um contrato de bloqueio temporrio (lease) e deve manter contato com o
mesmo para continuar prolongando esse contrato conforme a necessidade.
Quanto comunicao entre cliente e servidor, o NFSv4 usa chamadas RPC com-
postas, ou seja, uma mesma chamada RPC pode conter uma operao complexa
envolvendo bloqueio, abertura, leitura, etc. Essas chamadas so realizadas atra-
vs de conexo TCP, ao contrrio das verses mais antigas, que usam UDP.
Por fim, todos os protocolos NFS existentes (tais como stat, NLM, mount, ACL
e NFS) convergem para uma nica especificao, proporcionando uma melhor
compatibilidade com os firewalls de rede, alm de introduzir no protocolo su-
porte a migrao e replicao de arquivos.
Anlise Crtica
O NFSv4 tornou sua manuteno e uso muito mais simples, por possuir, agora,
controle de bloqueios encapsulado no mesmo protocolo e no mais atravs de
sistemas de terceiros, alm de permitir o controle da consistncia dos arquivos
que esto nos caches dos seus clientes. O controle da segurana aos arquivos
era muito simplificado e frgil, permitindo que clientes no confiveis pudessem
acessar arquivos de maneira desonesta. Isso foi resolvido na verso 4 do proto-
colo, onde mecanismos avanados de segurana e autenticao foram incorpora-
dos.
Outro problema era o grande consumo de recursos da rede nas operaes entre
cliente e servidor (devido interface RPC/XDR). Associado poltica de cache,
o NFSv3 no muito recomendado para aplicaes que necessitam de acesso
contnuo aos arquivos. O NFSv4 resolve esse problema pois possvel enviar
mltiplos pedidos ao servidor atravs da mesma chamada RPC, alm do uso do
cache ter melhorado por conta do controle de estado no acesso aos arquivos.
Alm disso, o fato de ter sua especificao aberta para que qualquer um possa
implementar seu servidor ou cliente permitiu que ele se tornasse o sistema de
arquivos distribudo mais utilizado no mundo.
Princpios do AFS
A fim de atingir seus objetivos, foram adotadas algumas regras para o desenvol-
vimento do ANDREW e, conseqentemente, do AFS:
2. Sempre que possvel usar o cache para diminuir o trfego dos dados e a
carga dos servidores;
6. Agrupar o trabalho sempre que possvel. Por exemplo, realizar uma leitura
de 50 KB muito mais eficiente que realizar 50 leituras de 1 KB.
Caractersticas do AFS
Ao contrrio do NFS, no AFS toda informao sobre os nomes dos arquivos e di-
retrios armazenada nos servidores. Deste modo, a manuteno dos clientes
trivial e a uniformidade do espao de nomes uma consequncia natural da con-
figurao dos servidores. Quando um cliente precisa acessar um arquivo remoto,
ele pergunta a todos os servidores por sua localizao, que ento guardada em
cache local para futuras consultas.
Em 1998 havia mais de 100 clulas AFS por todo o mundo dando a seus usurios
a possibilidade de compartilhar seus arquivos atravs de diferentes continentes
usando uma interface de sistema de arquivos parecida com a do UNIX. O AFS
comeou a ser comercializado pela Transarc Corporation, que foi comprada pela
IBM. No momento em que esse texto foi escrito, o AFS estava na verso 3.6, sendo
distribudo de forma independente do ANDREW. Para maiores informaes vi-
site: http://www-3.ibm.com/software/stormgmt/afs/library/.
Anlise Crtica
O AFS um sistema de arquivos distribudos que evoluiu muito desde sua pri-
meira verso. Pensando-se sempre em escalabilidade, transparncia de localiza-
o e segurana, ele foi implementado usando conceitos simples, mas que so de
extrema importncia para se atingir tais objetivos.
Projeto:CODA Filesystem
Stio Oficial:http://www.coda.cs.cmu.edu/doc/html/index.html
Licena: GPL
Responsvel: Carnegie Mellon University
O CODA 4 (Constant Data Availability) ([341], [245], [56], [246]) comeou a ser
desenvolvido em 1987 pela Universidade de Carnegie Mellon, EUA, tendo sua
origem a partir do AFS-2.Seu principal objetivo fornecer operaes desconec-
tadas ao sistema de arquivos para computadores portteis, que costumam ficar
grande parte do tempo fora da rede. Isso prov uma mxima disponibilidade dos
arquivos aos seus usurios.
Para que isso seja possvel, o CODA implementa alguns mecanismos de repli-
cao no presentes no AFS, dado que ele foi criado para lidar com estaes de
trabalho portteis ou que permanecem conectadas aos servidores por curtos pe-
4
http://www.coda.cs.cmu.edu/doc/html/index.html
rodos de tempo.
Se um servidor que estava cado volta rede, nada feito inicialmente para atu-
alizar seus arquivos. Porm, sempre que um cliente envia uma requisio para
abrir um arquivo para o seu servidor preferido, ele tambm pede a todos os ser-
vidores AVSG que enviem a verso daquele arquivo que eles detm. Assim, o
cliente pode descobrir se existe algum servidor com uma cpia desatualizada,
avisando-o para atualizar esse arquivo. Dessa forma, quem toma as iniciativas
Controle de Consistncia
O CODA tenta prover ao mximo as operaes desconectadas. Para isso, ele per-
mite que os clientes possam ler e escrever seus arquivos de forma indiscriminada,
a partir de qualquer servidor da rede que possua os dados que ele precise, mesmo
que a rede seja particionada devido queda de algum servidor ou conexo en-
tre eles. Isso pode gerar perda de informao e acesso a dados inconsistentes
quando, por exemplo, dois usurios alteram o mesmo arquivo em parties dife-
rentes.
Operaes Off-Line
procura estar preparado para o caso de uma desconexo da rede, seja vo-
luntria ou no;
Desempenho
Alguns testes [327] realizados em situaes normais de uso mostraram que o ta-
manho do cache local necessrio para uma semana desconectado e o tempo de
reintegrao dos dados aps esse mesmo perodo no so muito grandes.
Anlise Crtica
7.3.7 Lustre
Projeto: Lustre
Stio Oficial: http://www.lustre.org/
Licena: GPL
Responsvel(eis): Cluster File Systems, Inc
O Parallel Virtual File System ([105], [209]) se encaixa na rea de sistemas de arqui-
vos paralelo, pois um sistema de arquivos distribudo desenvolvido para prover
alto desempenho e escalabilidade paralela para aglomerados de PCs linux. Em
geral, o PVFS promete 4 caractersticas:
Para que um sistema de arquivos paralelo possa ser usado de maneira fcil, ele
deve prover um espao de nomes nico em todo o aglomerado e deve ser possvel
acess-lo atravs de utilitrios comuns.
Os componentes do PVFS
Isso significa que pode-se usar qualquer tipo de sistema de arquivos local, como
Ext2, Ext3 ou Reiser [373], por exemplo. Adicionalmente possvel usar suporte a
RAID para que cada n possua tolerncia a falhas de disco de forma transparente
e confivel para todo o sistema.
Anlise Crtica
do PVFS, usando uma nova arquitetura para torn-lo mais flexvel. Isso possi-
bilitou a implementao de novas caractersticas, tcnicas e inovaes que foram
sendo discutidas e requisitadas durante as correes de defeitos da primeira ver-
so.
Novas caractersticas
O PVFS1 foi desenvolvido com a idia de que seus dados seriam acessados via
soquete e armazenados em sistemas de arquivos locais. Analisando os aglome-
rados de computadores existentes hoje, nota-se que existem muitas tecnologias
diferentes em cada um deles, sendo que algumas so mais populares que ou-
tras. O mesmo ocorre com os sistemas de armazenamento de dados locais. Dessa
forma, o PVFS2 foi projetado usando o BMI [214] (Buffered Messaging Interface)
como interface de acesso rede e o Trove como interface de acesso ao sistema de
armazenamento fsico. O objetivo abstrair do projeto os detalhes do mecanismo
de transmisses e armazenamento. Isso permite que um desenvolvedor perso-
nalize mdulos especficos para seu ambiente, sem ter que alterar o ncleo do
PVFS2.
Arquitetura do PVFS2
Servidores
No PVFS1 cada servidor tem papel distinto: servir meta-dados ou somente da-
dos. Alm disso, o servidor de meta-dados nico. No PVFS2, cada servidor
pode atuar tanto como servidor de meta-dados como tambm de dados. A defini-
o do papel que cada um vai representar est no arquivo de configuraes, lido
durante a inicializao. Alm disso, pode-se ter mltiplos servidores de meta-
dados.
Redes
Interfaces
Os clientes podem acessar o PVFS2 atravs de duas interfaces: UNIX nativo, re-
presentado pelo cliente do sistema operacional, ou ROMIO MPI-IO. Ambas as
formas seguem o mesmo perfil que foi desenvolvido para o PVFS1.
Interaes cliente-servidor
Esse tipo de estratgia permite que um processo possa passar seu handle a outro
processo, que evita uma nova busca pelo arquivo junto ao servidor. Como os
clientes e servidores no possuem estado, uma desvantagem que se um arquivo
removido, o cliente que tiver o handle ainda poder acess-lo por um tempo, at
expirar. Esse tipo de problema tambm ocorre em sistemas de arquivos locais.
Cada uma dessas operaes realizada atomicamente, mas o conjunto delas no.
Isso um problema para o PVFS2, caso a execuo dessas tarefas seja interrom-
pida.
Anlise Crtica
Cluster de Aplicao
Alta disponibilidade;
Balanceamento de carga;
Neste captulo sero descritas tecnologias que executam ou prestam suporte para
a obteno destas caractersticas.
Linux Virtual Server (LVS) uma tecnologia que permite a construo de siste-
mas com alta disponibilidade e altamente escalveis, a partir do uso conjunto
de vrios servidores. A arquitetura totalmente transparente para o usurio fi-
nal, servios providos por um conjunto de mquinas so acessados atravs de
um nico servidor. O LVS pode oferecer servios de maior capacidade/desem-
penho, ou servios redundantes (quando servidores individuais tiverem que sair
do ar para manuteno) em relao aos servios disponveis em servidores nicos
(LVS-HOWTO [8]).
O cdigo IPVS, que possibilita a construo do sistema LVS, uma coleo de mo-
dificaes para kernel Linux, que combinadas com as capacidades de roteamento
e filtragem de pacotes de uma mquina Linux, transformam-na em um rotea-
dor com caractersticas especiais, capaz de balancear sesses TCP e UDP entre
vrias mquinas. Este roteador especial (balanceador de carga), chamado Linux
Director (ou simplesmente Director) distribui a carga de requisies de servios
entre as mquinas que os provem. Com isso, o sistema constitudo pela m-
quina Linux com o cdigo IPVS e as outras mquinas que hospedam os servios
chamado Linux Virtual Server (LVS), vide figura 8.1.
Em textos sobre LVS, tornou-se comum o uso de termos especficos para designar
os componentes do sistema, segue a descrio de alguns deles:
. Director - a mquina que roda o cdigo ipvs. um roteador com regras espe-
ciais que recebe requisies de servios de clientes e as repassa para mquinas
que disponibilizam os servios.
. Servidor Real - a mquina que hospeda os servios, quem de fato trata requi-
sies de clientes.
. VIP (Virtual IP) - endereo IP usado pelo Director para fornecer os servios aos
clientes.
. DIP (Directors IP) - endereo IP usado pelo Director para se comunicar com os
Servidores Reais.
Os sistemas montados com o uso de LVS so, normalmente, descritos pelo tipo
de mtodo de redirecionamento das requisies para os ns do cluster. H trs
mtodos disponveis:
Mais de um mtodo pode ser usado em um nico Director, tendo por base as
caractersticas dos ns do cluster. O mtodo mais simples de se implementar o
LVS-NAT.
Propriedades de LVS-NAT
Os Servidores Reais podem ser acessados de fora da rede, caso haja falha no ba-
lanceador de carga. No caso de ser usado apenas um Director e no houver outro
que atue como backup, os servidores reais podem ser acessados de fora da rede
diretamente.
1
Software de roteamento da IBM usado para balancear carga entre servidores TCP, mais infor-
maes podem ser obtidas em: http://www.cs.princeton.edu/courses/archive/
fall03/cs518/papers/networkdispatch.pdf
Caractersticas do LVS-DR
Encapsulao IP-IP(Tunneling)(LVS-Tun)
IP tunneling (RFC 2003) uma tcnica que permite que pacotes IP sejam coloca-
dos dentro de outros pacotes IP, permitindo que pacotes destinados a um deter-
minado endereo IP sejam redirecionados para outro endereo. Neste mtodo
de configurao de LVS o Director e os Servidores Reais no necessitam estar no
Caractersticas do LVS-Tun
Round-Robin (RR)
O Director mantm uma lista com os endereos de cada Servidor Real, assim
que recebe uma conexo, ele a redireciona para um servidor dessa lista, onde
uma prxima conexo ser enviada para o servidor seguinte e assim continua
percorrendo essa lista de forma circular atendendo todas as requisies. Todos
os servidores da lista so tratados de igual maneira, no importando quantas
conexes esto sendo manipuladas por um servidor especfico, nem seu tempo
de resposta e/ou capacidade de processamento.
Least-Connection (LC)
Com este mtodo, quando uma nova conexo chega, o Director verifica o nmero
de conexes ativas e inativas para determinar para qual n ir enviar a requisio.
2
Mtrica definida no algoritmo utilizada para realizar a distribuio da carga.
Este mtodo pode oferecer uma sensvel melhoria em relao ao mtodo WLC
em servios que usam TCP e mantm a conexo ativa enquanto o n processa a
requisio.
O algoritmo SED tenta minimizar o tempo de espera para cada trabalho at sua
finalizao. O tempo de espera (Ci + 1)/U i, sendo Ci o nmero de conexes do
servidor e Ui o peso fixado para este servidor.
A diferena entre SED e WLC que SED inclui a conexo que chega na funo
de custo, incrementando 1. Ele apresenta melhor qualidade em grandes sistemas
heterogneos, cujos pesos variam muito.
Muitas empresas utilizam o LVS para suprir a demanda por uma grande capa-
cidade de processamento de requisies e para poder dividir/balancear a carga
de seus sistemas por outras localidades (mquinas remotas), melhorando assim
o atendimento das demandas de acesso a seus sistemas e stios WEB.
. DNS Round-robin.
. Hardware especializado.
. Apache mod_jk/mod_jk2.
DNS Round-robin
DNS Round-robin a soluo mais simples de ser implementada, usando uma lista
de IPs dos servidores Tomcat, percorrendo-a de maneira circular enviando cada
nova requisio para um IP Tomcat diferente. Muito embora seja uma soluo
prtica de ser implementada, ela no leva em considerao a carga da mquina
para a qual uma requisio ser enviada, no apresenta vantagens em relao a
tolerncia a falhas, j que no toma conhecimento de quais mquinas esto ativas,
podendo enviar conexes para mquinas inativas, entre outros reveses.
Hardware especializado
mod_jk
O mod_jk2 trabalha tambm com sesses persistentes (sticky sessions) que asse-
gura que todas as requisies com mesma sesso sero tratadas pelo mesmo n
Tomcat. A desvantagem desde mtodo que caso uma instncia deixe de funci-
onar, a sesso associada a ela ser perdida.
Entre as solues usadas para balanceamento de carga via software, uma das mais
conhecidas o LVS. Classificado como um roteador de camada 4, trata-se de mo-
dificaes includas no kernel Linux usadas para redirecionar conexes TCP de
maneira transparente para o usurio.
. Escalabilidade para a aplicao provida por algoritmo Round-robin, que cria no-
vas sesses no prximo n livre na fila round-robin.
8.3 Heartbeat
O High Availability Linux Project3 (Projeto Alta Disponibilidade Linux) tem por
objetivo desenvolver solues para GNU/Linux que promovam confiabilidade,
3
stio do projeto: http://www.linux-ha.org/
Para verificao do estado de cada n, o Heartbeat pode usar uma ou mais cone-
xes fsicas, podendo ser a conexo ethernet normal para comunicaes de rede,
interfaces dedicadas ligadas por cabo crossover ou atravs de cabo serial. A co-
nexo normal de rede no recomendada por conta do trfego de dados das
aplicaes que ela suporta, sendo ideal o uso de interfaces dedicadas ligadas por
crossover ou mesmo cabo serial, que uma boa opo pela simplicidade e segu-
rana e tambm por ser usada apenas para esse fim.
ZEO uma parte do sistema Zope que permite que um Zope Object Database seja
compartilhado entre mais de um processo Zope. Com o uso de ZEO, pode-se ro-
dar mltiplas instncias de Zope em um nico computador ou em vrios compu-
tadores, acrescentando escalabilidade ao sistema, j que, para atender ao possvel
(e muito provvel) aumento de demanda, mais mquinas podem ser acrescenta-
das ao sistema, alm do aumento de confiabilidade, caso uma mquina apresente
problemas as outras ativas podero atender a requisies at que a falha seja re-
solvida.
Os servidores Zoe (instncias do Zope) que servem a aplicao aos clientes (da
Internet ou Intranet) so chamados de clientes nesta arquitetura j que acessam o
servidor de aplicao.
o uso de ferramentas externas. Vrios mtodos podem ser utilizados para distri-
buir as requisies dos clientes entre os servidores ZOE, como DNS round-robin,
o mdulo mod_proxy do servidor http Apache ou switch de camada 4, sendo o
LVS o mais conhecido deles.
Uma soluo, para o caso de servidores de pginas estticas, usar DNS round-
robin para distribuir as requisies recebidas por uma URL entre vrios IPs de
uma rede interna, sendo cada nova requisio enviada para um servidor dife-
rente da anterior. Sendo idntico o contedo de todos os servidores, esse pro-
cesso transparente para o usurio. Contudo, esta uma soluo atraente por
sua simplicidade entretanto apresenta seus reveses; por exemplo, arquivos de di-
ferentes tamanhos geram eventualmente mais carga para alguns servidores que
para outros. Outro problema que o servidor DNS do cliente pode fazer cache do
endereo IP acessado e usar este mesmo dado para uma consulta futura.
carga, sem o uso de uma mquina dedicada para isso. O servidor DNS resolve
www.dominiozope.com, por exemplo, para os endereos IP de ZEO Server1, ZEO
Server2 e ZEO Server3 para os clientes 1, 2 e 3, respectivamente.
que requer solues que possuem relao com: a fragmentao de dados, a alo-
cao de dados, e a otimizao local.
Controle de Concorrncia.
Processamento de Transaes.
Replicao de Dados.
Integrao de Dados.
Definies
9.3 PostgreSQL
9.3.1 PGpool
O PGpool envia uma query para o master" que envia para o slave" antes
do master" completar a query. Isto pode aumentar a performance (desem-
penho) mas acrescenta o risco de deadlock". Para balancear performance e
risco, PGpool pode operar de duas formas:
. Replicao.
Desvantagens:
PGpool-II
9.3.2 PGcluster
9.3.3 Slony
usando triggers para coletar as atualizaes, onde uma origem comum re-
plicada em mltiplas cpias incluindo cpias cascateadas.
Slony no propaga mudanas em schemas, nem replica grandes objetos.
Slony coleta as atualizaes com triggers, sendo que apenas tabelas e
seqencias so replicadas.
9.4 Mysql
O Processo de Replicao
. Com uma thread que faz pequenas modificaes no banco de dados pre-
fervel usar log baseado em coluna. Uma thread que realiza updates em
vrias colunas com uma clusula WHERE deve usar log baseado em decla-
rao por ser mais eficiente gravar no log poucas declaraes que muitas
colunas.
. Algumas declaraes requerem muito tempo de execuo no master, mas
resultam em poucas colunas modificadas. Deve ento, ser benfico
replic-las utilizando-se log baseado em coluna.
O que Sequoia
. uma mquina virtual JavaTM compilada para JDKTM 1.4(ou mais recente)3 .
3
Sequoia pode funcionar com verses mais antigas da mquina virtual, mas no foi testado.
Nota: Se sua aplicao cliente no suporta JDBC, voc pode usar a API C++ ou o driver
ODBC disponibilizado pelo projeto Carob (http://carob.continuent.org)
Se voc tem uma aplicao cliente em Java ou uma aplicao de servidor baseada
em Java que acessa um ou mais bancos de dados, a fila do banco de dados torna-
se um gargalo para sua aplicao ou um ponto nico de falha ou ambas as coisas.
O Sequoia pode ajudar a resolver este problema provendo:
Como funciona
O Sequoia dispe de um driver JDBC genrico para ser usado pelos clientes.
Este driver repassa as requisies para o controlador que faz o balanceamento do
cluster de banco de dados (leituras so balanceadas e escritas so difundidas).
Podendo ser utilizado qualquer SGBD ( Sistema de Gerenciamento de Bancos
de Dados Relacionais - Relational DataBase Management System) que possua um
driver JDBC, isto valido para todos os bancos de dados em Cdigo Aberto e
Comerciais existentes.
Qual o custo
quais voc instalar rplicas de seu banco. Mas possvel o uso de bancos de
cdigo aberto para hospedar rplicas de seu banco de dados principal.
RAIDb bsico
RAIDb objetiva o uso de hardware e software de baixo custo como cluster de works-
tations e bancos de dados de cdigo aberto. Clusters de workstations j so alter-
nativa vivel se comparadas s mquinas paralelas usadas em pesquisa cientfica
pela vantajosa relao custo/beneficio. Clusters desta natureza podem ser usa-
dos para prover alta disponibilidade e escalabilidade em ambientes de bancos de
dados.
RAIDb-0: Com este nvel de RAIDb pode-se particionar o banco de dados, dis-
tribuindo suas tabelas entre os backends (mquina que hospeda o banco). Uma
tabela em si no pode ser particionada, mas tabelas diferentes podem estar em
diferentes ns. Esta configurao requer no mnimo dois backends, provendo es-
calabilidade de performance mas sem tolerncia a falhas.
O ltimo exemplo (figura 9.9) mostra uma composio RAIDb-0-1. O nvel mais
alto um controlador RAIDb-0 e a tolerncia a falhas conseguida graas a cada
partio usando controlador RAIDb-1.
Balanceamento de carga
. RAIDb-2: replicao parcial (cada tabela deve ser replicada pelo menos 1 vez)
com polticas opcionais para criao de novas tabelas (como RAIDb-0) e con-
sumo de consultas distribudas (como em RAIDb-1).
9.5.2 ParGRES
fragmento de dados diferente. Dessa forma, cada sub-consulta poder ento ser
enviada para o n que possui o respectivo fragmento dos dados. Assim, cada
sub-consulta enviada para um n diferente e executada em paralelo com as
demais. Embora o desenvolvimento tenha sido realizado sobre o PostgreSQL, o
paralelismo baseado no padro SQL, no sendo dependente de nenhuma carac-
terstica especfica do SGBD (vide [16]).
10.1 Beowulf
Alm das solues que facilitam a instalao e configurao deste ambiente exis-
tem outras ferramentas de suporte, como ferramentas para o monitoramento,
controle e execuo de tarefas nos ns.
Embora a implementao do SSI ainda seja muito limitada nos clusters, j apre-
senta vrios benefcios, e que esto evoluindo a todo o momento, permitindo um
incremento tanto da escalabilidade quanto do sistema de imagem nica, podendo
se gerar uma estrutura cada vez mais prxima da estrutura SMP, s que com
uma excelente escalabilidade. O SSI pode ser implementado atravs de hardware,
multiprocessadores ( ver 6.1.2), ou por software, este ltimo geralmente feito
utilizando-se de uma camada de middleware ou uma camada adicional (patch) ao
kernel [104].
Tcnica utilizada para compartilhamento de memria fsica dos ns, dando a ilu-
so de que o cluster possui uma nica e grande memria que formada pela
agregao das memrias de seus ns, implementando a abstrao de um espao
comum de endereamento agrupando as memrias isoladas em uma entidade l-
gica, podendo ser implementada por software ou hardware, permitindo a troca de
dados atravs de uma memria globalizada a todos os ns processadores [353].
Cada processador tem uma viso de toda a memria, mas s tem acesso a parte
que destinada a ele, ento, caso ele queira acessar dados que no esto localiza-
dos na parte onde ele proprietrio, deve fazer uma cpia para sua rea, dando
origem a cpias mltiplas da mesma poro de dados da memria compartilhada
em diferentes memrias fsicas, tendo assim, que manter a coerncia destas c-
pias, permitindo que qualquer processador que acesse a memria compartilhada
devolva a informao correta, sendo a comunicao e a sincronizao feita atra-
vs da prpria memria.
10.2.4 OpenMosix
Por exemplo, quando dois clientes fazem um select e um update em uma coluna
de uma tabela MySQL, o MySQL deve criar dois subprocessos e servir os coman-
dos SQL. Os processos forked" se anexam ao processo MySQL principal que
Tecnologia openMosix
10.2.5 Kerrighed
Kerrighed uma base operacional para sistemas de imagem nica (Single System
Image Operating System (SSI OS)) destinado para cluster construdos a partir de
PCs padres de mercado.
Memria Compartilhada.
Threads e segmentos de memria do sistema podem ser operados atravs do
cluster, como em uma mquina SMP.
Verificao de processos.
Os processos podem ser verificados e reiniciados em qualquer n do cluster.
Unix (top, ps, kill, etc) so operados pelo cluster. Alm disso, os identifica-
dores de processos (pid) so nicos no cluster.
Kerrighed no :
Um paralelizador automtico.
Kerrighed no paraleliza automaticamente suas aplicaes. Isso implica
que caso voc tenha um grande processo seqencial, ele no rodar mais
rpido no Kerrighed. Para rodar mais rpido, sua aplicao precisar ser
paralelizada. Se sua aplicao roda mais rapidamente em uma maquina
com vrios processadores do que em uma mquina com apenas um pro-
cessador, essa aplicao poder rodar mais rpido com o Kerrighed. Se a
aplicao no roda mais rpido em uma maquina com vrios processado-
res, ela no rodar mais rpido com o Kerrighed.
Um Middleware.
Kerrighed um sistema operacional, e no um middleware. Ele roda dentro
do kernel linux, e no em cima do kernel linux. Ele estende as funcionali-
dades do linux de gerenciamento de servios de cluster.
Caractersticas
altamente portvel".
Funcionamento Bsico .
Os programas paralelos que utilizam o PVM fazem uso das rotinas disponibili-
zadas na biblioteca de interface do PVM. Para programao, essas bibliotecas so
distribudas em linguagens como Java, Python, Perl, alm das linguagens tradi-
cionais como C, C++ e Fortran.
Segundo Gropp et al. [205], Foster [179] e Pacheco [297], o MPI um padro
de interface para a troca de mensagens em mquinas paralelas com memria
distribuda e no se devendo confundi-lo com um compilador ou um produto
especfico.
Histrico do MPI .
Ao final do encontro do MPI-1 (1994) foi decidido que se deveria esperar mais
experincias prticas com o MPI. A sesso do Frum-MPIF de Supercomputing
94 possibilitou a criao do MPI-2, que teve inicio em abril de 1995. No Super-
Computing96 foi apresentada a verso preliminar do MPI-2. Em abril de 1997
o documento MPI-2 foi unanimamente votado e aceito. Este documento est
disponvel via HTML em http://www.mpi-forum.org/docs/mpi-20-html/
mpi2-report.html
O Padro MPI .
Os algoritmos que criam um processo para cada processador podem ser imple-
mentados, diretamente, utilizando-se comunicao ponto a ponto ou coletivas.
Os algoritmos que implementam a criao de tarefas dinmicas ou que garantem
a execuo concorrente de muitas tarefas, num nico processador, precisam de
um refinamento nas implementaes com o MPI.
mapeamento das tarefas paralelas aos processadores. Uma vez que o pro-
grama tenha sido dividido, se faz necessria a deciso de em qual proces-
sador ser alocada cada tarefa. Um dos principais critrios para deciso
o volume de comunicaes, de tal forma que tarefas com volume de comu-
nicaes elevado entre si tenham posies o mais prximo possvel na rede
de interconexes. No caso de arquiteturas heterogneas (vide item 11.2.1),
pode ser muito significativo para o desempenho levar em conta as caracte-
rsticas do processador no momento da alocao de uma determinada ta-
refa;
O recurso previsto no item anterior (11.2.2), deixa clara a distncia semntica en-
tre a informao a ser disponibilizada pelo programador e a necessria para exe-
cuo do programa em paralelo. Para superar isto, se faz necessria uma slida
fundamentao semntica, sobre a qual as tcnicas de transformao de cdigo
possam ser aplicadas.
Independncia de Arquitetura
Um modelo, para que se dissemine largamente, deve ser fcil de ser entendido. Se
o processamento paralelo pretende ampliar sua fatia de mercado, o modelo para
sua programao deve poder ser assimilado com facilidade pelos desenvolvedo-
res, oferecendo para isto uma interface que oculte ao mximo a complexidade
inerente ao paralelismo e seja de uso simples.
Garantia de Desempenho
paralelos.
Medidas de Custo
A classificao utilizada tem como critrio o nvel de abstrao com que a explo-
rao pode ser feita. Estes nveis de abstrao esto sugeridos em SKILLICORN
[333] e BAL [74]. A partir de textos especficos sobre os modelos, foram feitas
consideraes, e selecionados exemplos de sistemas paralelos.
Programao Funcional
Os dois aspectos que tornam este paradigma atrativo tanto o nvel de abstrao
em que pode ser feito o desenvolvimento de software, como o fato do mesmo ser
suscetvel de uma avaliao formal.
A tcnica utilizada para linguagens funcionais puras (de alta ordem e sem ano-
taes) denominada reduo de grafo (Graph Reduction), PEYTON-JONE [300].
As funes so expressas como rvores, com sub-rvores comuns (para represen-
tar as sub-funes compartilhadas). A computao consiste em selecionar subes-
truturas do grafo, reduz-las a formas mais simples e atualizar o grafo com as
mesmas. Quando no existirem redues a serem feitas, o grafo que resta o
resultado da computao.
Uma vez que o grafo correspondente ao programa funcional sem nenhum tipo
de anotao varia de forma muito dinmica durante sua reduo, bastante dif-
cil gerenciar a distribuio de carga entre processadores, o total de novas tarefas
criadas e o volume de comunicaes. Segundo HANUS [210], a explorao total-
mente implcita do paralelismo na programao funcional resulta em um grande
nmero de tarefas paralelas de pequena granulosidade.
Programao em Lgica
Paralelismo OU: este tipo de paralelismo refere-se a uma estratgia de busca pa-
ralela na rvore de metas do programa lgico. Assim, quando o processo de
busca encontra uma ramificao na rvore de metas, ele pode iniciar processos
paralelos de busca em cada ramo descendente (vide figura 11.3). O nome parale-
lismo OU deriva do fato que, em programas lgicos no determinsticos, existem
vrias respostas (vrios caminhos) que satisfazem o objetivo.
O paralelismo E, por sua vez, pode ser explorado entre literais independentes
(sem possibilidade de conflito na atribuio de valores a variveis), ou entre
quaisquer literais, s custas de um mecanismo mais complexo de deteco e ge-
rncia do paralelismo.
por uma granulosidade mais elevada, o que faculta sua explorao em mquinas
de memria distribuda. Por sua vez, o paralelismo E, passvel de ser explorado
praticamente em qualquer programa em lgica, apresenta uma granulosidade
pequena, da a maioria dos modelos existentes serem orientados a equipamen-
tos de memria compartilhada (baixo custo de comunicao) (KERGOMMEAUX
[244]).
Fonte de paralelismo
lismo de dados inerente aos laos, disponibilizando construtores que devem ser
utilizados nos programas para determinar como as estruturas de dados devem
ser alocadas aos processadores.
Para fazer isto o programador precisa ter clareza da relao entre os dados.
Uma vez divido o problema, a atribuio das partes aos processadores e a forma
como estas vo se comunicar e sincronizar no precisam ser explicitadas no pro-
grama.
Existem poucas propostas neste nvel de abstrao (somente duas), e sua imple-
mentao ocorre na forma de bibliotecas utilizadas a partir das linguagens C e
FORTRAN. Como exemplo deste nvel de abstrao, surge a explorao do para-
lelismo com restrio de comunicaes e sincronizao.
Um modelo que explora o paralelismo neste nvel o BSP (Bulk Synchronous Pa-
rallelism model - SKILLICORN [332], VALIANTE [371]). As computaes em BSP
so divididas em fases, alternando comunicaes globais e computaes locais.
p processadores, cada qual com sua memria local, todos conectados atravs da
rede de interconexo. Os parmetros da rede de interconexo utilizados so: l
tempo necessrio para a realizao da barreira de sincronizao, e g - a razo na
qual dados locais com endereo aleatrio podem ser liberados/recebidos. Estes
parmetros so determinados experimentalmente para cada computador para-
lelo.
t = w + hg + l
O outro modelo que trabalha neste nvel de abstrao o logP (CULLER [129]).
Tambm neste modelo so utilizadas threads com contextos locais e com atualiza-
es de dados por comunicaes globais.
Podem ser obtidos bons desempenhos com o modelo do BSP, porm sua previsi-
bilidade influenciada pelos seguintes fatores:
Por outro lado, um ponto forte do modelo BSP a existncia de medida de custo,
atravs da qual possvel obter o custo real de execuo de um programa para
qualquer arquitetura, desde que sejam conhecidos os parmetros l e g para a
mesma.
A verso corrente do BSP trabalha com uma biblioteca SPMD (Simple Program
Multiple Data), que fornece operaes para colocar dados na memria remota de
outro processo, para receber dados de um processo remoto e para sincronizao
(pode ser utilizada a partir de C ou FORTRAN).
Os modelos que operam neste nvel de abstrao reduzem muito este custo, ofe-
recendo primitivas de alto nvel para especificao das trocas de dados. Nor-
malmente esta simplificao feita separando, nos programas, os aspectos de
processamento dos de comunicao. Normalmente disponibilizada uma lin-
guagem a parte (subconjunto da linguagem) para tratar das comunicaes. Esta
diviso faz com que a computao e a comunicao fiquem ortogonais entre si, de
tal forma que uma particular estratgia para as comunicaes possa ser utilizada
com diversas linguagens seqenciais. Este o caso particular de Linda.
Nestes modelos, o programador tem a seu encargo especificar quase todos os de-
talhes da implementao paralela, exceto os aspectos pertinentes a sincronizao.
Para oferecer isto, via de regra, estes modelos empregam uma semntica assn-
crona, na qual as mensagens so enviadas, porm o emissor no fica atrelado ao
tempo necessrio para que elas atinjam seu destino.
O mais importante modelo nesta classe Atores (Actors - AGHA [47]). Ele con-
siste de uma coleo de objetos chamados atores, todos contendo uma pilha de
mensagens de entrada. Todo ator executa repetidamente a seqncia: leitura da
mensagem disponvel na pilha de entrada; envia suas mensagens a todos os ou-
tros atores que ele conhece e a partir das mensagens que chegaram define seu
novo contexto, o qual determinar suas respostas s prximas mensagens que
receber.
Escalonadores de Tarefas
openPBS 12.1;
TORQUE 12.2;
MAUI 12.3;
Crono12.4.
12.1 OpenPBS
Stio: http://www.openpbs.org/
12.2 TORQUE
Stio:
http://www.clusterresources.com/pages/products/
torque-resource-manager.php
Caractersticas:
Tolerncia falhas:
Suporte a checagem de ns fora do ar;
Vrias condies de checagens de falhas nos ns.
Interface de seqenciamento:
Interface de busca estendida, provendo informaes mais acuradas sobre o
escalonamento das tarefas;
Interface de controle estendida para permitir maior controle sobre as tarefas,
seus atributos e execuo;
Permite a obteno de dados estatsticos de tarefas j executadas.
Escalabilidade:
Servidor de monitoramento;
Capacidade de trabalhar com cluster muito grande (acima de 15TeraFlops e
2500 processadores);
Capacidade de trabalhar com um grande volume de tarefas (acima de 2000
processos);
Capacidade de suportar grande nmero e tamanho de mensagens de servi-
dores.
Usabilidade:
Mecanismo de log mais completo;
Logs com caractersticas de leitura mais simples.
12.3 MAUI
Stio:
http://www.clusterresources.com/pages/products/
maui-cluster-scheduler.php
MAUI foi projetado com base em experincias coletivas dos maiores e mais avan-
ados centros de HPC do mundo. Ele prove ferramentas que estes centros pre-
cisavam para controlar, rastrear e otimizar o uso de seus recursos. Uma coleo
extensiva de estatsticas e ferramentas de perfil, modo de teste de operao e
um avanado simulador de caractersticas que permite a checagem de ambientes
de produo, para saber se todas as alteraes de configuraes foram feitas de
forma segura.
12.4 Crono
Grids Computacionais
13.1 Introduo
mundo empresarial e hoje faz parte da estratgia de corporaes como IBM, HP,
Sun, NEC, Microsoft e Oracle. Em suma, temas relacionados a Grids Computaci-
onais figuram hoje como um assunto em moda.
Porm, o que afinal vem a ser um Grid Computacional? A viso original estabe-
lece uma metfora com A Rede Eltrica (The Electric Grid) [183]. A Rede Eltrica
disponibiliza energia eltrica sob demanda e esconde do usurio detalhes como
a origem da energia e a complexidade da malha de transmisso e distribuio.
Desta forma, se temos um equipamento eltrico, simplesmente o conectamos na
tomada para que ele receba energia. O Grid Computacional (The Computational
Grid), portanto, seria uma rede na qual o individuo se conecta para obter Servios
Computacionais que agregam recursos sob demanda (ex.: ciclos, armazenamento,
software, perifricos, etc). A Figura 13.1 ilustra esta idia.
dores do nosso banco se agregam sob demanda para nos fornecer um servio de
forma transparente.
execuo remota.
Neste texto, usaremos Grids de Servios quando estivermos tratando questes per-
tinentes a qualquer Grid, disponibilize ele o servio de execuo remota, ou no.
Usaremos Grids para Alto Desempenho quando estivermos tratando das questes
adicionais que so introduzidas pelo servio de execuo remota. Assim, nesta
nossa terminologia, todo Grid para Alto Desempenho um Grid de Servios,
embora o contrrio no seja necessariamente verdade.
Note que esta discusso prope um conceito e no uma definio para Grid
Computacional. Uma plataforma de fornecimento de servios computacionais
que apresenta as caractersticas acima listadas certamente um Grid. Contudo,
a ausncia de alguma das caractersticas no deve automaticamente desqualifi-
car uma determinada plataforma como Grid. Por outro lado, o leitor deve estar
atento que o termo Grid Computacional pode ser usado to e somente como fer-
ramenta de marketing [180]. Devido a sua popularidade e a seu impacto posi-
tivo, o termo Grid Computing tem sido utilizado de forma muito liberal, como no
passado outros termos j foram (como: Orientao a Objetos, Sistemas Abertos,
Downsizing, Reengenharia, Internet/Intranet/Extranet, entre outros).
De modo geral, a idia por trs de uma arquitetura baseada em servios compu-
tacionais no uma novidade. Ou seja, o grande interesse atual da comunidade
cientfica e da indstria por arquiteturas orientadas a servios, bem como o cres-
cimento de esforos nessa rea se deve, em grande parte, pelo sucesso e amplo
uso de Web Services [168, 350].
Apesar das vantagens de CORBA, alguns autores defendem que CORBA falhou
na garantia de interoperabilidade entre os ORBs, o que tornaria a plataforma
mais amplamente utilizada. O argumento que a competio entre os desen-
volvedores de ORB s se tornou acirrada acarretando problemas de interoperabili-
dade [199].
Por outro lado, Web Services surgiu como uma nova tecnologia para computa-
o distribuda, que aproveitou vrios padres j bem estabelecidos como seu
alicerce. O primeiro, e talvez maior, contraste entre Web Services e CORBA a
camada de transporte utilizada por cada uma das plataformas. Enquanto CORBA
baseado no protocolo IIOP, Web Services aproveita o protocolo HTTP para en-
vio de mensagens entre cliente e provedor. A Figura 13.4 ilustra como ocorre a
comunicao entre o cliente e um Web Service. Note que a interface do servio
descoberta em tempo de execuo. Aps obteno da referncia para o servio,
o cliente pode iniciar a comunicao com o servio atravs do envio de mensa-
gens.
Apesar de ser possvel que clientes acessem servios diretamente (sem envolver
um catlogo), permitir que os servios sejam descobertos dinamicamente fun-
damental para construir uma infraestrutura de servios sob demanda.
No UDDI, cada Web Service tem cadastrado um documento WSDL (Web Service
Description Language, baseado em XML) que descreve o servio oferecido, for-
necendo informaes que ajudam a localiz-lo no catlogo, assim como estabe-
lecer a forma correta de invoc-lo. O cadastro e a consulta deve ser feito pelas
aplicaes atravs de APIs que se comunicam com os ns centrais utilizando o
protocolo SOAP.
vices, da forma como vem sendo implementado. Eles argumentam que, por ser
centralizado, o UDDI apresenta baixo desempenho na atualizao e consulta dos
registros, que essa degradao tende a ser maior quanto maior for a quantidade
de servios catalogados e que um ponto nico de falha.
A verso 3.0 do UDDI j fornece suporte para mltiplos registros e permite a for-
mao das federaes. Com o crescimento esperado do uso de Web Services e
conseqentemente do servio UDDI, este parece ser o caminho natural de evolu-
o do servio de descoberta.
Na Seo 13.2.1 descrevemos como ocorre o acesso a servios usando vrias tec-
nologias para computao distribuda. importante ressaltar que apresentamos
uma simplificao da realidade. Pois, devido ampla distribuio e existncia
de mltiplos domnios administrativos, o acesso aos recursos que compem um
Grid no to simples.
Quando comparamos o Grid com outras plataformas fica claro que a ampla dis-
perso de servios e clientes cria a necessidade de um maior controle sobre o
acesso aos servios e recursos. Por exemplo, em uma rede local, ao efetuar login
no sistema, o usurio identificado e autenticado, em geral, para todos os recur-
sos conectados e servios disponveis na rede. Pois, normalmente se mantm um
cadastro de usurios que vlido para toda a rede.
J em Grids, necessria uma forma de acesso para cada recurso (ou subcon-
junto de recursos, quando estes compartilham do mesmo cadastro de usurios).
Obviamente, tal forma de acesso tem que oferecer garantias sobre autenticao
dos usurios, caso contrario os administradores de sistema no sero simpticos
idia de permitir que usurios de outros domnios tenham acesso aos recursos
locais atravs dos servios presentes naquele domnio administrativo.
Como veremos em mais detalhes na Seo 13.4.1 e na Seo 13.4.3, algumas infra-
estruturas possuem uma camada que fornece uma infraestrutura de segurana
para que seja possvel autenticar e autorizar o acesso e uso de servios do Grid,
Alm das demandas por segurana dos provedores de servios, os clientes des-
ses servios tambm impem necessidades de segurana. Logo, alguns clientes
requerem privacidade no tratamento dos seus dados enviados para os servios.
Desta forma, desejvel que apenas o cliente e o servio que recebe os dados
tenham acesso a eles. Vrias aplicaes necessitam esse nvel de privacidade.
Garantir esse aspecto algo desafiador em um ambiente amplamente distribudo
e dinmico como o Grid.
A necessidade de proteo dos dados existe por dois motivos. O primeiro se re-
fere a possibilidade de acesso no autorizado a informaes confidenciais. O se-
gundo aspectos, est relacionado a possibilidade de sabotagem, onde outra apli-
cao modifica os dados a serem processados a fim de manipular os resultados
que sero obtidos com aquela computao.
Assim, ainda existem muitos problemas em aberto nessa rea. Hoje, instituies
que necessitam de um servio de execuo distribudo e tm como requisito prin-
cipal privacidade no utilizam uma infraestrutura to dispersa quanto o Grid.
Essas aplicaes executam em ambientes controlados e proprietrios onde a pri-
vacidade pode ser garantida. Um exemplo disso foi a infraestrutura montada
pela HP para prover a renderizao das imagens do filme Sherek 2 [34].
Para o cliente, quanto mais complexo for o servio, menos envolvido ele desejar
estar. No exemplo citado anteriormente, sem o trabalho das agncias de turismo,
o preparo de uma viagem implicar em muito mais trabalho para o cliente. A
venda de pacotes tursticos simplifica muito o trabalho dos que pretendem tirar
frias. Da mesma forma, no mundo da computao, quanto mais compostos fo-
rem os servios, mais simples e alto nvel deve ser programao das aplicaes
clientes.
ser utilizadas por essas diversas aplicaes, evitando que sejam implementadas
novamente.
Dados e modelo de acesso aos dados: especifica a estrutura dos dados usados
na composio, bem como a forma de acesso a eles;
Para que Grids sejam teis, preciso que eles existam, preciso cri-los. Ou
seja, aps ser possvel descobrir os servios, eles devem ser agregados para criar
uma infraestrutura de servios computacionais, que permita a execuo de apli-
caes. Esta sentena bastante bvia. Contudo, ela levanta alguns problemas
tcnicos no-triviais. Suponha que duas instituies A e B decidem formar um
Grid, unificando seus recursos e fornecendo melhores servios computacionais a
seus usurios. Porm, como incentivar domnios administrativos a participarem
do Grid com seus servios e recursos?
importante destacar trs elementos que formam a base desta economia: pro-
vedores de servios, consumidores de servios e os servios propriamente ditos.
Note que provedor e consumidor so papis que podem ser assumidos concor-
rentemente. Abaixo listamos e discutimos brevemente alguns modelos econmi-
cos [99]:
Vale mencionar que o Trade Manager uma parte importante do Resource Broker,
pois tem o papel de guiar a seleo dos recursos que a aplicao necessita para
atingir seus objetivos. Por outro lado, o Trade Server o agente de negociao do
lado do provedor, sua funo maximizar a utilizao do recursos e o lucro do
provedor.
Rede de Favores
Xen [81].
A Figura 13.5 ilustra a idia da rede de favores, onde cada peer controla um con-
junto de recursos de um site. Ao surgir uma demanda interna por recursos que o
peer de um determinado site no consegue suprir, este PEER ir fazer requisies
comunidade. A idia que os peers utilizem um esquema de prioridade base-
ado em quanto eles consumiram dos outros. Os resultados mostram que haver
um compartilhamento justo de recursos entre os peers [60].
13.2.7 Padronizao
Nesta seo exploraremos um pouco mais a viso que motiva boa parte da pes-
quisa sobre Grids Computacionais atualmente, orientao a servios. Neste sen-
tido, faremos tambm um breve histrico sobre os padres para arquiteturas ba-
seadas em Grid Services e qual o estado atual desses esforos.
A viso
As estruturas Grid Service Handle e Grid Service Reference usados para refe-
renciar um servios.
O Globus Toolkit 3.0 (GT3) [181] forneceu a primeira implementao da OGSI 1.0
em julho de 2003. No intuito de esclarecer melhor o papel de OGSA, OGSI e Glo-
bus, Figura 13.6 ilustra como essas entidades se relacionam formando um cenrio
de padres e implementaes de tecnologias para Grids de Servio.
Uma vez que toda a base de Grid Services surgiu das tecnologias para Web Ser-
vices, alguns aspectos da especificao OGSI precisavam ser refinados devido a
evoluo da arquitetura Web Services.
Alm disso, outras caractersticas de OGSI precisavam ser modificadas para acom-
panhar a evoluo da tecnologia Web Service, melhorando assim a especificao
OGSI . Assim, WSRF (Web Service Resource Framework) basicamente o resultado
do refinamento de OGSI no intuito de aproveitar a existncia dos novos padres
que surgiram para para Web Services (e.g. WS-Addressing, WS-Notification) e
assimilar a demanda da comunidade Web Services.
Alguns entusiastas da rea de Web Services, em geral, argumentam que Web Ser-
vices no devem manter estado ou ter instncias. Ou seja, OGSI modela um recurso
que mantm estado como um Web Service que encapsula o estado do recurso.
WS-Resource Framework modifica esse modelo para criar uma distino expl-
cita entre servio e entidades que mantm estado e so manipuladas atravs do
servio. Esta composio denominada WS-Resource pelo padro WSRF, que in-
troduz a idia de recursos que mantm estados e podem ser acessados atravs de
Portanto, em linhas gerais, a evoluo de OGSI obedeceu trs fases de forma in-
cremental. A primeira, a introduo do conceito de WS-Resource. Em seguida a
diviso de funcionalidades em vrias especificaes melhorando a compatibili-
dade com ferramentas usadas para Web Service. Finalmente, uma melhoria nos
mecanismos de notificao.
Uma aplicao paralela composta por vrias tarefas. As tarefas que compem
uma aplicao paralela executam em vrios processadores, caracterizando desta
forma o paralelismo da execuo da aplicao e conseqente reduo no seu
tempo de execuo. Os processadores usados por uma determinada aplicao
constituem a plataforma de execuo da aplicao.
exemplo). importante salientar que uma aplicao que executa sobre o Grid
deve estar preparada para lidar com todo este dinamismo e variabilidade da pla-
taforma de execuo, adaptando-se ao cenrio que se apresenta com o intuito de
obter a melhor performance possvel no momento. A Figura 13.10 exemplifica
um possvel Grid, composto por um MPP e computadores de vrios tipos co-
nectados via Internet. Note que um destes computadores realiza instrumentao
(no exemplo, atravs de um microscpio), enquanto outro computador dispe de
grande capacidade para armazenamento de dados.
Um Grid que fornece servios de execuo remota possui vrias vantagens. Uma
delas a possibilidade de converter este servio genrico de execuo de aplica-
es em qualquer outro servio mais especfico. Por exemplo, oferecer um servio
de processamento de imagens que utiliza vrias instncias do servio de execuo
remota dispersos por todo Grid.
13.3.3 Escalonamento
Assim sendo, para utilizar recursos controlados por vrios escalonadores de re-
curso distintos, algum tem que (i) escolher quais recursos sero utilizados na
execuo da aplicao, (ii) estabelecer quais tarefas cada um destes recursos rea-
lizar, e (iii) submeter solicitaes aos escalonadores de recurso apropriados para
que estas tarefas sejam executadas. Esta o papel do escalonador de aplicao. Es-
calonadores de aplicao no controlam os recursos que usam. Eles obtm acesso
a tais recursos submetendo solicitaes para os escalonadores que controlam os
recursos.
Previso de Desempenho
dentre outros trabalhos [377, 338, 363]. A arquitetura proposta baseada na idia
de produtor/consumidor de eventos disparados pelos sensores que monitoram os
recursos [378]. Apesar da evoluo conceitual que a padronizao pode introdu-
zir na rea de previso de performance para sistemas distribudos, muito ainda
tem que ser feito para se ter uma infraestrutura amplamente disponvel.
Ti = Ai Pi + Ci (13.1)
Note que Pi e Ci so estimados com base nos dados fornecidos pelo NWS.
Aplicaes Bag-of-Tasks
paz de obter boa performance para a aplicao no ambiente muito dinmico que
o Grid sem depender de previses de performance dos componentes do Grid.
Isto possvel devido a dois fatores fundamentais. Primeiro, WQR usa replicao
de tarefas para garantir a boa performance da aplicao. A idia utilizar alguns
ciclos extra para compensar pela falta de informao sobre o ambiente. Segundo,
WQR escalona aplicaes relativamente simples.
Apesar de WQR ser uma heurstica eficiente, ela apresenta uma limitao, o bom
desempenho alcanado apenas para aplicaes cpu-intensive. Ou seja, caso a
aplicao necessite processar grandes quantidades de dados, o que implicar em
muitas transferncias, a replicao pode no ter o mesmo efeito.
Figura 13.16: Sumrio do desempenho de Storage Affinity comparado com outras heursticas
Alm de aproveitar a reutilizao dos dados, Storage Affinity tambm trata a di-
ficuldade na obteno de informaes dinmicas sobre o Grid, bem como infor-
maes sobre o tempo de execuo das tarefas da aplicao. Para resolver este
problema, Storage Affinity efetua replicao de tarefas.
Storage Affinity executa em duas fases. Na primeira fase, cada tarefa associada a
um processador. A ordem de escalonamento determinada atravs do clculo do
valor da afinidade das tarefas. Aps determinar as afinidades, a tarefa que apre-
sentar o maior valor escalonada em um processador do site com o qual a tarefa
apresentou maior afinidade. A segunda fase consiste da replicao de tarefas.
Figura 13.17: Sumrio do desperdcio de recursos por Storage Affinity comparado com outras
heursticas
Esta fase inicia quando no h mais tarefas aguardando para executar e pelo me-
nos um processador est disponvel. Uma rplica pode ser criada para qualquer
tarefa em execuo. Contudo, ao contrrio de WQR, h um critrio e uma ordem
de prioridade para criao de rplicas. Considerando que o grau de replicao
de uma tarefa o nmero de rplicas criadas para esta tarefa, ento ao iniciar a
fase de replicao, os seguintes critrios so verificados na escolha de qual tarefa
deve ser replicada: i) a tarefa deve estar executando e ter um valor de afinidade
positivo, ou seja, alguma poro de sua entrada j deve estar presente no site de
algum dos processadores disponveis no momento; ii) o grau de replicao cor-
rente da tarefa deve ser o menor entre as tarefas que atendem o critrio (i); e iii)
a tarefa deve apresentar o maior valor de afinidade entre as tarefas que atendem
o critrio (ii).
Quando uma tarefa completa sua execuo as outras rplicas da tarefa so in-
terrompidas. O algoritmo finaliza quando todas as tarefas que esto executando
completam. At isto ocorrer, a replicao de tarefas continua.
As solues para este problema dividem-se em dois grandes grupos, aquelas que
evitam os problemas administrativos trabalhando nvel de usurio [258, 370] e
aquelas que introduzem novas abstraes para que o usurio possa lidar com o
Grid [120, 119]. Em princpio, solues nvel de usurio so mais simples de
usar pois suportam abstraes j conhecidas pelo usurio (e.g. arquivos). Entre-
tanto, elas podem apresentar srios problemas de performance dependendo da
aplicao e da conectividade do Grid. Novas abstraes, ao contrrio, requerem
o aprendizado de novos conceitos, mas podem vir a oferecer uma forma mais
eficiente de usar o Grid.
13.3.5 Segurana
Uma vez que o Grid formado por vrios domnios administrativos distintos,
naturalmente possvel que a execuo de uma aplicao seja iniciada de uma
domnio X e utilize recursos dos domnios Y e Z. Porm, como saber se a apli-
cao iniciada por um usurio do domnio X no contm cdigo malicioso que
podem prejudicar o funcionamento dos recursos utilizados?
Uma das abordagens implementada pelo Jail [241, 326], que surgiu para prover
maior flexibilidade no gerenciamento de sistemas FreeBSD. A idia que o es-
quema de autorizao clssico do Unix pouco sofisticado para situaes onde
h uma demanda por uma granularidade mais fina nos nveis de permisses so-
bre o recursos. Essa estratgia funciona atravs do confinamento de um processo
e seus descendentes em uma rea (i.e. jail), nesta rea o processo s pode acessar
outros processos, sistemas de arquivo e recursos de rede que se encontram na
mesma partio.
Uma das vantagens do Jail que um usurio pode interagir com o recurso, en-
quanto algum processo remoto executa em uma partio isolada do resto do sis-
tema. Porm, isso pode causar inconvenientes para o usurio interativo, que na
maioria dos casos no est disposto a contribuir com seu recurso para o Grid,
caso isso implique em um consumo exagerado do recurso por parte do processo
Proteo da aplicao
nos. Com isso o provedor do servio pretende economizar recursos que seriam
destinados computaes estrangeiras.
Certamente, essa uma situao simples de contornar, porm ainda assim pode
causar prejuzos para o usurio da aplicao cliente que requisitou a renderizao
da imagem. Portanto, necessrio munir o cliente de mecanismos e estratgias
de proteo contra este tipo de sabotagem.
Assim, uma estratgia simples usar o que se chama de majority voting [324],
que replica a execuo de uma unidade de trabalho entre vrios voluntrios do
sistema e espera at que um nmero m de resultados finais coincidentes sejam
retornados. Porm, esse esquema tem suas limitaes. Por exemplo, suponha
um ambiente com um nmero grande de voluntrios que retornam resultados
invlidos. A replicao crescer bastante em funo deste nmero para tolerar
essa quantidade de falhas. Isso, portanto, acarretar um nvel alto de desperdcio
de recursos.
Devido ao fato de nem sempre ser possvel manter uma lista de voluntrios ma-
liciosos de forma eficiente. Por exemplo, usar o IP para identificar unicamente os
voluntrios maliciosos pode no ser uma boa idia, pois bastante comum o fato
dos hosts obterem IP dinmicos todas as vezes que se conectam. Sendo assim,
para resolver essa limitao surge uma nova abordagem baseada na definio de
credibilidade [324]. A idia marcar vrios objetos do sistema com um valor que
descreve sua credibilidade. Ento, possvel que voluntrios, resultados e gru-
pos de resultados tenham valores de credibilidade dependendo de vrios fatores.
Por exemplo, novos voluntrios que entram no sistema tm menos credibilidade
que antigos voluntrios, onde seus resultados passaram com sucesso por vrios
spot-checking. Naturalmente, a credibilidade dos resultados do voluntrio ter
bastante relao com sua prpria credibilidade, que pode evoluir ao passo que
sua computao vai sendo verificada. Note que uma combinao de majority vo-
ting e spot-checking uma alternativa possvel para determinao da credibilidade
dos voluntrios.
13.4.1 Globus
Autenticao
GSI (Globus Security Infrastructure) o servio Globus que ataca estes pro-
blemas. GSI viabiliza o login nico no Grid. GSI utiliza criptografia de chave
pblica, certificados X.509 e comunicao SSL (Secure Sockets Layer) para esta-
belecer a identidade Globus do usurio. Por exemplo, C=US,O=University
of California San Diego, OU=Grid Computing Lab, CN=Walfredo
Cirne era uma identidade em Gusto (o primeiro Grid montado com Glo-
bus). Depois do usurio ter se identificado junto ao GSI, todos os demais
servios Globus sabero, de forma segura, que o usurio de fato quem diz
ser. Uma vez que um servio sabe a identidade Globus do usurio, resta
estabelecer quais operaes tal usurio pode realizar. Isto feito mapeando a
identidade Globus para um usurio local. Por exemplo, o servio GRAM (veja
nentes do GRAM (Gatekeeper, Job Manager e GRAM Reporter), bem como componen-
tes externos que interagem com o GRAM. O cliente GRAM aquele que o utiliza
para submeter e controlar a execuo de tarefas. Note que o cliente GRAM pode
ser um escalonador de aplicao ou at o prprio usurio. Para o cliente, a grande
vantagem de usar GRAM a manipulao uniforme de tarefas, i.e. a submisso
e controle de tarefas no importando qual o escalonador de recurso (Local Re-
source Manager, na Figura 13.18) usado para controlar a mquina. Isto possvel
porque as requisies enviadas ao GRAM so sempre escritas em RSL (Resource
Specification Language), independentemente de qual escalonador de recurso esteja
sendo utilizado. O Job Manager o responsvel por converter a requisio em
RSL em um formato que o escalonador de recurso em questo entenda. Ao que
sabemos, h verses do Job Manager para Condor [258], LoadLeveler [242], PBS,
Unix e Windows, entre outras plataformas.
Comunicao
O problema de comunicao no Grid pode ser visto como uma instncia do eterno
conflito entre generalidade e performance. Caso utilizemos um mecanismo de
comunicao genrico (e.g. TCP) que viabilize a comunicao fim-a-fim entre
quaisquer duas tarefas no Grid, perdemos performance em casos especiais (e.g.
Globus ataca este problema com o Nexus [185]. Nexus fornece uma interface de
baixo nvel, mas uma implementao adaptvel que escolhe, dentre as tecnolo-
gias de comunicao disponveis, a que vai oferecer melhor performance. Por
exemplo, se ambas tarefas esto em uma mquina de memria compartilhada,
Nexus utilizar a memria para efetuar a comunicao. Caso as tarefas este-
jam em um MPP, Nexus utilizar o switch de alta velocidade para comunicao.
Caso as tarefas estejam em mquinas geograficamente distantes, Nexus utilizar
TCP/IP.
Nexus fornece uma interface de relativo baixo nvel: invocao remota de proce-
dimento, mas sem retorno de resultado. Portanto, programar diretamente em Ne-
xus no das tarefas mais agradveis. Entretanto, a idia da equipe Globus que
Nexus seja usado por desenvolvedores de ferramentas e mecanismos de comu-
nicao, no diretamente pelo desenvolvedor de aplicaes. MPI-G o exemplo
perfeito desta abordagem. MPI-G implementa o popular padro MPI (Message
Passing Interface) sobre Nexus. Assim, o desenvolvedor de aplicaes escrever
em MPI e link-editar sua aplicao com MPI-G para automaticamente ter acesso
a melhor tecnologia de comunicao disponvel (selecionada pelo Nexus).
Transferncia de Dados
Instrumentao embutida
Avaliao do Globus
usurio tem que utilizar a soluo Legion de forma integral, sem estgios inter-
medirios. Esta diferena de abordagem talvez tenha contribudo para prevaln-
cia do Globus como padro de facto de infraestrutura para Computao em Grid.
interessante notar que a deciso de estruturar Globus como um conjunto de
servios independentes deixa claro que Globus no uma soluo pronta e com-
pleta (plug-and-play) para construo de Grids. Globus certamente fornece servi-
os teis para Computao em Grids. Mas, desenvolvedores, administradores e
usurios precisam despender certo esforo para finalizar seu Grid. Por exemplo,
administradores precisam decidir quais usurios tero acesso a quais recursos
que compem o Grid e em quais condies este acesso se dar (veja Seo 13.4.1).
Em outro exemplo, freqentemente necessrio desenvolver escalonadores de
aplicao (veja Seo 13.3.3) que tenham conhecimento sobre as aplicaes que
sero executadas e algumas vezes tambm sobre a estrutura do Grid a ser usado.
Vale ressaltar que a discusso apresentada nas sees anteriores vlida para o
Globus 2.0. Ainda se torna pertinente apresentar as caractersticas do Globus 2.0,
pois muitos grupos interessados em computao de alto desempenho utilizam
infraestruturas baseadas no GT2 (Globus Toolkit 2.0).
A arquitetura do Globus Toolkit 3 ilustrada pela Figura 13.21. Essa verso uma
implementao da especificao OGSI (Open Grid Services Infrastructure) [368], os
servios implementados na camada GT3 Core Services representam os servios
especificados pela OGSI. O objetivo especificar mecanismos para criao, geren-
ciamento e troca de dados entre Grid Services.
Como discutimos nas Sees 13.2.7 e 13.2.7, h uma tendncia forte de conver-
gncia entre as tecnologias de Grids Computacionais e Web Services. Isso fica
13.4.2 MyGrid
Servios
Execuo remota
Transferncia de Arquivo (Mquina Base 7 Grid Machine)
Transferncia de Arquivo (Grid Machine 7 Mquina Base)
Interrupo de uma Execuo mltipla
utiliza o mdulo Grid Script para acessar a m-quina em questo. Note que Grid
Script possibilita que, qualquer que seja a mquina que o usurio tem acesso, ele
possa informar como este acesso se d atravs da escrita de trs scripts. Alter-
nativamente, h casos em que a forma de acessar uma determinada mquina do
Grid j do conhecimento do MyGrid. Por exemplo, suponha que a mquina
em questo pode ser acessada via servios Globus (GSI, GRAM e GridFTP). Neste
caso, o usurio no precisa fornecer os scripts, indicando apenas que o acesso
mquina j conhecido de MyGrid. Finalmente, MyGrid tambm prov um me-
canismo de acesso a mquinas do Grid, chamado de User Agent. O User Agent
prov servios simples. interessante notar que, pela terminologia adotada por
Foster, et al. [184], Grid Machine Interface umavirtualizao para os servios de
acesso a uma mquina do Grid.
Note que ter um algoritmo de escalonamento que funciona bem sem depender
de muita informao importante, pois simplifica a definio da Grid Machine
Interface. Caso o algoritmo de escalonamento do MyGrid necessitasse de infor-
maes sobre as mquinas do Grid, Grid Machine Interface teria que ser mais rica
e, portanto, mais difcil de virtualizar. Por exemplo, o Nimrod-G [102] define uma
interface de abstrao para os recursos, que contempla mtodos de fornecimento
de informao sobre o recurso. Certamente, a informao obtida por esses m-
todos valiosa para o escalonamento eficiente das aplicaes. Porm, isso limita
o tipo de recurso que pode ser utilizado, pois torna o middleware dependente de
um recurso que fornea uma implementao para os mtodos dessa interface.
Uma aplicao (ou Job) MyGrid composta de tarefas independentes. Estas tare-
fas so compostas por trs partes ou sub-tarefas: init, remote e final. As sub-tarefas
so executadas seqencialmente (init 7 remote 7 f inal). As sub-tarefas init e
final so usadas para efetuar as transferncias de arquivo de entrada e sada da
tarefa respectivamente. Sendo assim, tanto a sub-tarefa inicial quando a final
so executadas na mquina base. Enquanto, a sub-tarefa remote, como o prprio
nome sugere, executada em uma mquina do Grid e realiza a computao pro-
priamente dita da tarefa.
Para definir as sub-tarefas inicial e final, o usurio tem disponvel algumas abs-
traes providas pelo MyGrid para lidar com a mquina do Grid sem necessitar
de conhecer sua imagem do sistema. As abstraes providas pelo MyGrid so
storage e playpen. O servio de storage possui a semntica de uma rea de ar-
mazenamento persistente execuo da tarefa. Ou seja, til usar storage para
distribuio de arquivos que provavelmente sero reutilizados no Grid (ex.: exe-
cutveis da aplicao). Assim sendo, qualquer arquivo transferido para o storage
automaticamente includo no PATH da mquina do Grid. Por outro lado, o
playpen prov uma rea de armazenamento temporria de maneira independente
das convenes locais do sistema de arquivo de uma dada mquina do Grid. Essa
rea de armazenamento temporria criada automaticamente e o diretrio base
de execuo da sub-tarefa remote. Note que o playpen foi concebido para possibi-
litar o armazenamento de dados temporrios e resultados de tarefas. Tambm no
sentido de simplificar a escrita das sub-tarefas, as variveis de ambiente $ STO -
RAGE , $ PLAYPEN , $ PROC e $ TASK so automaticamente definidas pelo MyGrid
e contm, respectivamente, o caminho completo para rea de storage, o caminho
completo para o playpen de uma dada tarefa, o nome da mquina do Grid esco-
lhida para executar a tarefa e um identificador da tarefa.
13.4.3 OurGrid
Autenticao
Contudo, alm das G U Ms que o usurio tem acesso direto, OurGrid permite (e
Isso impede que usurios no autorizados pelo peer, obtenham acesso aos servi-
os de descoberta de novas Grid Machines, transferncia de arquivos, execuo
e gerenciamento do ciclo de vida de replicas fornecido pelas G U Ms controladas
por um dado peer.
Para executar uma aplicao usando a OurGrid o usurio deve descrever sua
aplicao e o conjunto de recursos que o usurio tem acesso. Note que esse con-
junto de recursos pode ser apenas a indicao de um OurGrid Peer, que tem a
funo de obter recursos para o usurio.
locais ou recursos obtidos na rede de favores. Para que o Scheduler receba uma
resposta dos provedores necessrio que tenha sido encontrada uma G U M que
preenche os requisitos determinados na descrio da aplicao.
Portanto, aps ter sido descoberto um recurso que possui atributos compatveis
com os requisitos da aplicao, o recurso alocado e repassado para o Scheduler
que o solicitou. Certamente, isso s ir ocorrer caso o recurso esteja disponvel.
Porm, caso o recurso tenha sido descoberto atravs da rede de favores, o recurso
pode ser tomado de volta (i.e. preemptado) pelo peer que o forneceu, seguindo
a dinmica da rede de favores. A preempo um evento natural e previsto
pela arquitetura do OurGrid, uma vez que os recursos s so cedidos caso esteja
ocioso. Ou seja, uma solicitao local no site, ao qual o recurso pertence, pode
ocasionar a preempo.
Vale tambm ressaltar que a alocao do recurso feita no nvel do MyGrid Bro-
ker, ou seja, isso no significa que o recurso estar dedicado exclusivamente ao
MyGrid Broker. Portanto, no h impedimento para que outras aplicaes que
no usam a infraestrutura do OurGrid estejam executando concorrentemente
com a aplicao submetida pelo usurio.
Comunicao
Uma vez que o foco da soluo OurGrid est nas aplicaes Bag-of-Tasks, no faz
parte do escopo da soluo OurGrid prover mecanismos de comunicao para
aplicaes fortemente acopladas. Mesmo assim, possvel usar a infraestrutura
OurGrid para executar aplicaes deste tipo, desde que a execuo seja interna a
um site. Por exemplo, uma aplicao que usa MPI, quando descrita pelo usurio,
pode ter especificado em seus requisitos que necessita de uma G U M (Grid Ma-
chine), que na verdade o front end de uma coleo de vrios processadores (i.e.
um cluster). Essa demanda ser atendida se existir uma GuM, no alocada, que
possua um atributo compatvel com o requisito especificado pela aplicao. Por-
tanto, apesar de no ter uma arquitetura que prov comunicao entre as tarefas
que esto sendo executadas nas GuMs, a soluo OurGrid prov meios de agre-
gar ao Grid GuMs que permitem a execuo de aplicaes fortemente acopladas.
Transferncia de Dados
Tanto put quanto store so operaes que permitem a transferir arquivos para
a GuM. A diferena entre as duas operaes consiste apenas do fato que store
evita a transferncia do arquivo caso o arquivo j se encontre armazenado no
lado remoto. Isso til, por exemplo, para executveis da aplicao e dados que
so reutilizados entre execues sucessivas da aplicao. A terceira operao, get,
fornece um mtodo de coletar arquivos resultantes da execuo das aplicaes.
Avaliao do OurGrid
OurGrid persegue um objetivo diferente do que seria prover uma soluo ge-
nrica para computao em Grid. Com o foco em aplicaes BoT foi possvel
produzir uma soluo efetiva para uma comunidade de usurios em produo.
No se quer dizer com isso que no se pretende introduzir novas funcionalida-
des, que aumentem o escopo da soluo. Ao contrrio, a idia gradativamente
permitir que mais aplicaes possam utilizar a soluo. Por exemplo, suporte a
workflow, suporte a data-mining, etc.
13.4.4 Condor
exemplo, o dono pode preferir que sua mquina execute as aplicaes de Joo, se-
guido das aplicaes do grupo de sistemas operacionais, e que nunca execute as
aplicaes de Pedro. Ou seja, as restries permitem ao dono determinar como
sua mquina ser usada no Condor Pool. Tipicamente, o dono estabelece tam-
bm que sua mquina s usada quando estiver ociosa e que, quando ele voltar
a utilizar a mquina, qualquer aplicao Condor em execuo seja suspensa ime-
diatamente.
Condor foi posteriormente estendido para execuo em Grids [165, 191]. inte-
ressante notar que Condor dispe de duas formas de funcionamento em Grids:
Flock of Condors [165] e Condor-G [191].
Talvez por ser mais recente, o Condor-G adota uma viso mais heterognea de
Grid. Alm de Condor Pools, Condor-G tambm utiliza recursos via Globus. De-
vido necessidade de suportar mais heterogeneidade, Condor-G usa uma arqui-
tetura mais centralizada que o Flock of Condors. O Condor-G Scheduler controla
a execuo da aplicao, submetendo tarefas tanto a Condor Pools quanto a recur-
sos acessveis via Globus (como MPPs). No caso de recursos Globus, Condor-G
utiliza os servios GRAM, GASS, MDS e GSI para viabilizar a execuo das tarefas.
ao sistema.
Uma tcnica que pode ser empregada para evitar que usurios tenham que espe-
cificar o tempo e o nmero de mquinas que desejam utilizar, alm de ser menos
invasivo do ponto de vista da utilizao do cluster a tcnica de alocao trans-
parente, apresentada originalmente em [288].
A tcnica pode ser utilizada quando a aplicao a ser executada no grid com-
posta de tarefas independentes (como por exemplo aplicaes Bag-of -Tasks). Com
o seu uso, no necessrio que sejam alocadas mquinas para que usurios de
grid possam executar suas tarefas: todas as mquinas que no esto em uso por
usurios locais so disponibilizadas grade, e ficam disponveis para a execu-
o de tarefas at que sejam requisitadas por usurios locais (isto , usurio que
possuem direito de acesso ao recurso), momento em que so retiradas da grade e
alocadas a tal usurio.
Formas como tal heurstica pode ser implementada na prtica, avaliao da tc-
nica sobre alguns cenrios, mostrando o seu desempenho e outras consideraes
sobre a Alocao Transparente podem ser encontradas em [288].
Mostramos ento que os Grids Computacionais como uma tecnologia que nas-
ceu na comunidade de alto desempenho e ganhou espao na indstria atravs
da transformao da computao distribuda pelo uso de servios sob demanda.
Assim, a convergncia de tecnologias que culminou com a definio do conceito
de Grid Service foi um processo natural de evoluo dos Grids.
Tendo em vista a nova perspectiva que os Grid Services trouxeram para o de-
senvolvimento dos Grids, a tendncia que Grids se tornem uma infraestrutura
global de computao orientada a servios, atendendo tanto a comunidade de
computao cientfica de alto desempenho, quanto a comunidade de computa-
o comercial.
Virtualizao de recursos
Uma vantagem da virtualizao nativa, que esta reduz a maioria das despe-
sas de manuteno da paravirtualizao no que tange a quantidade de alteraes
necessrias no sistema operacional convidado, e tambm obtm tambm consi-
dervel ganho de desempenho comparando com paravirtualizao.
Xen um Monitor de Mquinas Virtuais (VMM) que prov uma camada de abs-
trao entre o hardware e o sistema operacional virtualizado. Todo o cdigo do
micro-kernel e das aplicaes da VMM do Xen est sob GPL.
Alguns ports do Xen esto disponveis para outros sistemas operacionais como
NetBSD, FreeBSD e Solaris.
O Xen nasceu do projeto NetOS (Networks and Operating Systems), criado pelo
Computer Laboratorys Systems Research Group" e pretende, como o prprio
nome do projeto pai sugere, criar uma camada de abstrao onde o Sistema Ope-
racional navegue" nos recursos dos servidores por uma rede TCP/IP.
14.2.1 Comparao
Vmware:
Embora atraente, a abordagem de mquina virtual do VMware pode ser
relativamente cara em termos de desempenho. Geralmente, o hypervisor
consome entre 5 e 15% da potncia total da CPU, enquanto cada sistema
operacional aumenta a carga. No final, as empresas podem consumir uma
grande quantidade de recursos da CPU simplesmente para comportar a
infra-estrutura de mquina virtual.
Xen:
Recentemente, o software de cdigo aberto, Xen, surgiu como alternativa ao
VMware. Como o VMware, o Xen suporta a execuo de vrios sistemas
operacionais no mesmo hardware. O Xen uma forma de virtualizao de
nvel mais baixo, com a qual os administradores podem virtualizar vrias
partes de um sistema, incluindo a memria e a CPU. Como ele reside a
um nvel baixo, este oferece isolamento de falhas e recursos computacionais
considerveis.
Esta afirmao faz cair por terra a tese de que necessrio o uso de um ser-
vidor por aplicao", considerando que servidor neste caso subentendido por
hardware. As taxas de utilizao do processador do hardware podem ser melhor
aproveitadas utilizando sistemas de virtualizao, aumentando o uso dos proces-
sadores (o Xen prov virtualizao dos processadores ou mesmo balanceamento
de carga entre eles), reduzindo o espao fsico do Data Center e em contra par-
tida reduzindo o consumo de energia eltrica para a alimentao dos servidores
e conseguentemente para outros tens como condicionador de ar.
Se estes requisitos no puderem ser atendidos, ainda possvel que seja realizada
a migrao. No entanto, a migrao realizada ser mais lenta e envolver a sus-
penso da atividade do sistema em migrao, suspenso esta que ser percebida
pelos clientes remotos utilizando as aplicaes presentes na mquina virtual.
Isto, por sua vez, permite que o hypervisor mantenha o controle de todas as mu-
danas feitas pelo Sistema Operacional, e decida como modificar as interrupes
do hardware. O hypervisor mapeado no endereo de cada Sistema Operacional
hospede, minimizando o tempo do interrupo entre todo o hardware e o hyper-
visor. Finalmente, trabalhando cooperativamente com os Sistemas Operacionais
hospedes, o hypervisor ganha a introspeco adicional do Sistema Operacional, e
pode fazer com que ele fique ciente do fato que foi virtualizado. Isto pode ser
uma grande vantagem para o sistema hospedeiro - por exemplo: o hypervisor
pode informar ao hospede em real-time qual foi sua ltima atividade, permitindo
um reescalonamento bem mais eficiente dos sistemas hospedados.
Apndices
Verso 21 , Junho de 1991 Direitos Autorais Reservados (c) 1989, 1991 Free Software
Foundation, Inc. 59 Temple Place, Suite [conjunto] 330, Boston, MA [Massachu-
setts] 02111-1307 USA [Estados Unidos da Amrica]
Introduo
visa garantir sua liberdade de compartilhar e modificar softwares livres para asse-
gurar que o software seja livre para todos os seus usurios. Esta Licena Pblica
Geral aplicvel maioria dos softwares da Free Software Foundation [Fundao
do Software livre] e a qualquer outro programa cujos autores se comprometerem
a us-la. (Em vez dela, alguns outros softwares da Free Software Foundation so
cobertos pela Licena Pblica Geral de Biblioteca do GNU). Voc tambm poder
aplic-la aos seus programas.
Para proteger seus direitos, necessitamos fazer restries que probem que al-
gum negue esses direitos a voc ou que solicite que voc renuncie a eles. Essas
restries se traduzem em determinadas responsabilidades que voc dever as-
sumir, se for distribuir cpias do software ou modific-lo.
Por exemplo, se voc distribuir cpias de algum desses programas, tanto gratui-
tamente como mediante uma taxa, voc ter de conceder aos receptores todos os
direitos que voc possui. Voc ter de garantir que, tambm eles, recebam ou pos-
sam obter o cdigo-fonte. E voc ter a obrigao de exibir a eles esses termos,
para que eles conheam seus direitos.
Protegemos seus direitos atravs de dois passos: (1) estabelecendo direitos auto-
rais sobre o software e (2) concedendo a voc esta licena, que d permisso legal
para copiar, distribuir e/ou modificar o software.
Alm disso, para a proteo de cada autor e a nossa, queremos ter certeza de que
todos entendam que no h nenhuma garantia para este Software Livre. Se o soft-
ware for modificado por algum e passado adiante, queremos que seus receptores
saibam que o que receberam no o original, de forma que quaisquer problemas
introduzidos por terceiros no afetem as reputaes dos autores originais.
Voc poder cobrar um valor pelo ato fsico de transferir uma cpia, e voc
pode oferecer, se quiser, a proteo de uma garantia em troca de um valor.
4. Voc poder copiar e distribuir o Programa (ou uma obra baseada nele, de
acordo com a Clusula 2) em cdigo-objeto ou formato executvel de acordo
com os termos das Clusulas 1 e 2 acima, desde que voc tambm tome uma
das providncias seguintes:
6. Voc no obrigado a aceitar esta Licena, uma vez que voc no a assinou.
Porm, nada mais concede a voc permisso para modificar ou distribuir
o Programa ou respectivas obras derivativas. Tais atos so proibidos por
lei se voc no aceitar esta Licena. Conseqentemente, ao modificar ou
distribuir o Programa (ou qualquer obra baseada no Programa), voc estar
manifestando sua aceitao desta Licena para faz-lo, bem como de todos
os seus termos e condies para copiar, distribuir ou modificar o Programa
ou obras nele baseadas.
7. Cada vez que voc redistribuir o Programa (ou obra baseada no Programa),
o receptor receber, automaticamente, uma licena do licenciante original,
para copiar, distribuir ou modificar o Programa, sujeito a estes termos e con-
dies. Voc no poder impor quaisquer restries adicionais ao exerccio,
pelos receptores, dos direitos concedidos por este instrumento. Voc no
tem responsabilidade de promover o cumprimento por parte de terceiros
desta licena.
EXCLUSO DE GARANTIA
Se voc desenvolver um programa novo e quiser que ele seja da maior utilidade
possvel para o pblico, o melhor caminho para obter isto fazer dele um Soft-
ware Livre, o qual qualquer pessoa pode redistribuir e modificar sob os presentes
termos.
Para fazer isto, anexe as notificaes seguintes ao programa. mais seguro anex-
las ao comeo de cada arquivo-fonte, de modo a transmitir do modo mais efici-
ente a excluso de garantia; e cada arquivo deve ter ao menos a linha de direitos
autorais reservados e uma indicao de onde a notificao completa se encontra.
1307 USA. Inclua tambm informaes sobre como contatar voc por
correio eletrnico e por meio postal.
Se o programa for interativo, faa com que produza uma pequena notificao
como esta, quando for iniciado em um modo interativo:
Voc tambm pode solicitar a seu empregador (se voc for um programador) ou
sua instituio acadmica, se for o caso, para assinar uma renncia de direitos
autorais sobre o programa, se necessrio. Segue um exemplo; altere os nomes:
Marcas Registradas
Caso voc acredite que sua marca foi utilizada sem a devida referncia de propri-
edade, por favor, encaminhe uma mensagem para <guialivre@planejamento.
gov.br>, para que a equipe de redao possa regularizar a situao nas prximas
verses do Documento.
Lista de Abreviaturas
B2G business-to-government
BI Business Inteligence
C2C consumer-to-consumer
C2G consumer-to-government
CC Controle de Concorrncia
G2G government-to-government
HA Alta Disponibilidade
IP Internet Protocol
LB Balanceamento de Carga
SR Synchronizing Resources
Apndice D
Tecnologias
Cluster de Aplicaes
Cluster ZPL 3.1 http://zope.delta.ncsu.edu/portal/delta/
ZOPE developers/projects/system_projects/zope_
cluster
Apndice E
Glossrio
Bandwidth (largura de banda) Termo que designa o tempo gasto pelas vrias tecnolo-
G UIA DE C LUSTER CAPTULO E : G LOSSRIO
Business to Business (B2B) Negcios feitos entre empresas, seus clientes, distribui-
dores e fornecedores, conectando seus sistemas de infor-
mao atravs da Internet.
Business to Consumer (B2C) Negcios feitos das empresas com seus consumidores,
ou seja, comrcio eletrnico com o consumidor final.
CERT (Computer Emergency Organizao criada em 1988 que oferece servios de con-
Response Team) sulta para usurios da Internet e que entra em ao sem-
pre que um novo vrus e outras ameaas ao computado-
res so descobertas.
CORBA (Common Object Re- um padro para comunicao entre objetos distri-
quest Broker Architecture) budos. Prov diferentes formas para executar progra-
mas (objetos) desenvolvidos em diferentes linguagens
de programao e em diferentes plataformas.
DNS - Domain Name System forma como os nomes de domnio so encontrados e tra-
(Sistema de Nomes de Dom- duzidos no endereo de protocolo da Internet. Um nome
nio) de domnio um recurso fcil de ser lembrado quando
referenciado como um endereo na Internet.
EDI (Electronic Data Inter- Intercmbio Eletrnico de Dados - tecnologia, que per-
change) mite troca de informaes (com modem e softwares ade-
quados) diretamente de computadores para computado-
res, dispensando digitao e manipulao de dados. O
sistema que a utiliza permite automatizar transaes co-
muns de negcios como ordens de compras, faturas, no-
tificaes de embarques etc. Atravs do EDI, documen-
tos so transmitidos e recebidos eletronicamente, inde-
pendente de horrios, distncia e dos sistemas de com-
putao utilizados. O resultado um fluxo de informa-
es rpido e preciso, no qual as mensagens vo e vol-
tam sem qualquer interferncia e com toda segurana,
atendendo aos desafios de maior agilidade e eficincia
na comunicao de negcios.
VERSAO 1.0 PGINA 374
G UIA DE C LUSTER CAPTULO E : G LOSSRIO
HTTP - Hyper Text Transfer conjunto de regras para permuta de arquivos (texto,
Protocol (Protocolo de Trans- imagens grficas, som, vdeo e outros arquivos multi-
ferncia de Hipertexto) mdia) na World Wide Web.
NNTP (Network News Transfer Padro usado para a troca de mensagens dos usurios
Protocol) da Usenet na Internet.
RFC - Request for Comments documento formal da IETF, resultante de modelos e re-
(Solicitao de Comentrios) vises de partes interessadas. A verso final do RFC
tornou-se um padro em que nem comentrios nem alte-
raes so permitidos. As alteraes podem ocorrer, po-
rm, por meio de RFCs subseqentes que substituem ou
elaboram em todas as partes dos RFCs anteriores. RFC
tambm a abreviao de Remote Function Call (chamada
funcional remota).
RPCs (Remote Procedure Calls) o nome dado ao ato de chamar ou executar um pro-
cedimento ou programa que no se encontra na mesma
mquina do programa chamador.
W3C - World Wide Web Con- associao de indstrias que visa promover padres
sortium (Consrcio da Rede para a evoluo da web e interoperabilidade entre pro-
Mundial Web) dutos para WWW produzindo softwares de especificao
e referncia.
WSDL - Web Services Defi- um formato XML para descrio de servios web e
nition Language (Linguagem suas informaes para acesso. Ela descreve as funcio-
para definio de Servios nalidades dos servios oferecidos pelo provedor de ser-
Web) vios, bem como sua localizao e forma de acesso.
WWW ou Web (World Wide rea da Internet que contm documentos em formato
Web) de hipermdia, uma combinao de hipertexto com mul-
timdia. Os documentos hipermdia da WWW so cha-
mados de pginas de Web e podem conter textos, ima-
gens e arquivos de udio e vdeo, alm de ligaes com
outros documentos na rede. A caracterstica multimdia
da Web, tornou-a a poro mais importante da Internet.
XML - eXtensible Markup Lan- maneira flexvel para criar formatos de informaes co-
guage (Linguagem Markup muns e compartilhar ambos os formatos e os dados na
Extensvel) World Wide Web, nas intranets e em qualquer lugar. O
XML extensvel porque, diferentemente do HTML, os
smbolos markup so ilimitados e se autodefinem.
O Ambiente LabCluster
3
http://tamandua.speed.dcc.ufmg.br/
4
Parallel Virtual Machine - Mquina paralela virtual
5
Entende-se por software bsico, o sistema operacional e os softwares e aplicaes necessrios
para o funcionamento, administrao e gerenciamento do Cluster.
Servidores SuperMicro 1U
Quant. CPU Memria HD Rede
16 02 x 2.4Ghz Xeon HT 02 GB 01 x IDE 80GB 02 x Gigabit
Servidores SuperMicro 2U
Quant. CPU Memria HD Rede
08 02 x 2.4Ghz Xeon HT 04 GB 01 x IDE 80GB 10 x Gigabit
Servidor SuperMicro Gabinete
Quant. CPU Memria HD Rede
08 02 x 2.4Ghz Xeon HT 02 GB 04 x IDE 200GB 02 x Gigabit
Desktops Novadata
Quant. CPU Memria HD Rede
12 01 x 2.4Ghz Pentium 256MB 01 x IDE 40GB 01 x
IV 100Mbps
Servidor Dell PowerEdge 1850
Quant. CPU Memria HD Rede
08 02 x 3.6Ghz 02 GB 01 x SCSI 73GB 02 x Gigabit
Documentos internos:
Tradues:
[25] ISO New England: Electricity trading over the internet begins in six
new england states. Business Wire - http://industry.java.sun.com/
javanews/stories/story2/0,1072,15093,00.html, May 1999.
[28] Business process execution language for web services version 1.1.
http://www-128.ibm.com/developerworks/library/specification/
ws-bpel, May 2003.
[41] Josh Aas. Understanding the linux 2.6.8.1 cpu scheduler. http://josh.
trancesoftware.com/linux/linux_cpu_scheduler.pdf. Ultima Visita
em 20.09.2005 12:12.
[47] G. Actors AGHA. MIT Press, Cambridge, MA. A Model of Concurrent Com-
putation in Distributed Systems, 1986.
[48] Marcos Aguilera, Ramaprabhu Janakiraman, and Lihao Xu. Using era-
sure codes efficiently for storage in a distributed system. In Proceedings
of the 2005 International Conference on Dependable Systems and Networks (DSN
2005), Yokohama, Japan, June-July 2005.
[49] Hassan AIT-KACI. The WAM: A (Real) Tutorial. Paris: Digital Equipment
Corporation, Research Laboratory, 1990.
[50] et. al. Al Geist. PVM: Parallel Virtual Machine: A Users; Guide and Tutorial for
Network Parallel Computing (Scientific and Engineering Computation). The Mit
Press, Cambridge, Massachussets.
[56] Ahmed Amer and Amr El-Kadi. Beating bottlenecks in the design of dis-
tributed file systems. Dez 1996.
[58] Carl Anderson and John J. Bartholdi III. Centralized versus decentralized
control in manufacturing: Lessons from social insects. In I. P. McCarthy
[62] Nazareno Andrade, Walfredo Cirne, Francisco Brasileiro, and Paulo Roi-
senberg. Ourgrid: An approach to easily assemble grids with equitable
resource sharing. 9th Workshop on Job Scheduling Strategies for Parallel Proces-
sing, June 2003.
[70] Eliane Arajo, Walfredo Cirne, Gustavo Wagner, and Nigini Oliveira. The
seghidro experience: Using the grid to empower a hydro meteorological
scientific network.
[73] Mark Baker, Rajkumar Buyya, and Domenico Laforenza. The Grid: Inter-
national efforts in Grid Computing, 2000.
[74] Jennifer G. BAL, Henri E.; STEINER. Programming languages for distribu-
ted computing systems. ACM Computing Surveys, 21(3):261322, september
1989.
[85] Jim Basney and Miron Livny. Deploying a High Throughput Computing Clus-
ter, volume 1, chapter High Performance Cluster Computing. Prentice Hall,
may 1999.
[88] F. Berman, A. Hey, and G. Fox, editors. Grid Computing - Making the Global
Infrastructure a Reality. John Wiley and Sons, Ltd, 2003.
[90] Francine Berman and Richard Wolski. Scheduling from the perspective of
the application. In HPDC, pages 100111, 1996.
[96] M. BRIAT, J.; FAVRE. . In Computer Science, editor, Parallel Architectures and
Languages Europe, volume 506, chapter Scheduling of OR-parallel Prolog
on a scalable reconfigurable distributed memory multiprocessor. Springer-
Verlang, 1991.
[99] R. Buyya, D. Abramson, and J. Giddy. A case for economy grid architecture
for service-oriented grid computing. In 10th IEEE International Heterogene-
ous Computing Workshop (HCW 2001), 2001.
[104] Toni BUYYA, Rajkumar; CORTES. Single system image, special issue. In
Sage Science Press, editor, International Journal of High Performance, volume
Volume 15, chapter Pages: 124, 135. Sage Science Press, 2001.
[105] Philip H. Carns, Walter B. Ligon III, Robert B. Ross, and Rajeev Tha-
kur. Pvfs: A parallel virtual file system for linux clusters. http://
www.parl.clemson.edu/pvfs/el2000/extreme2000.ps. Ultima Visita
em 20.09.2005 12:12.
[109] H. Casanova and F. Berman. Grid Computing: making the Global Infrastructure
a Reality, chapter Parameter Sweep on the Grid with APST. John Wiley and
Sons, 2003.
[112] H. Casanova and L. Marchal. A network model for simulation of grid ap-
plication. Research Report N o 2002-40, October 2002.
[113] Henri Casanova, Graziano Obertelli, Francine Berman, and Rich wolski.
The apples parameter sweep template: User-level middleware for the grid.
In Supercomputing Conference (SC2000), 2000.
[114] A. Chien, B. Calder, S. Elbert, and K. Bhatia. Entropia: architecture and per-
formance of an enterprise desktop grid system. Journal of Parallel Distributed
Computing, 63:597610, 2003.
[118] W. Cirne and K. Marzullo. The computational coop: Gathering clusters into
a metacomputer. In PPS/SPDP99 Symposium, 1999.
[119] W. Cirne and K. Marzullo. Open Grid: A user-centric approach for grid
computing. In Proceedings of the 13th Symposium on Computer Architecture
and High Performance Computing, 2001.
[127] F. P. Coyle. Web Services, and the Data Revolution. Addison-Wesley Informa-
tion Technology Series, 2002.
[129] David et al. CULLER. LogP: Toward a Realistic Model of Parallel Computation.
ACM SIGPLAN Symposium on Principles and Pratice of Parallel Program-
ming, 1993.
[140] Escola Regional de Alto Desempenho. Caderno dos Cursos Permanente. Co-
misso Regional de Alto Desempenho - Regional do Rio Grande do Sul,
Sociedade brasileira de Computao, 2006.
[141] Escola Regional de Alto Desenpenho. Primeira Escola Regional de Alto Desem-
penho. Comisso Regional de Alto Desempenho - Regional do Rio Grande
do Sul, Sociedade brasileira de Computao, 2001.
[142] Escola Regional de Alto Desenpenho. Segunda Escola Regional de Alto De-
sempenho - So Leopoldo - RS. Comisso Regional de Alto Desempenho -
Regional do Rio Grande do Sul, Sociedade brasileira de Computao, 2002.
[143] Escola Regional de Alto Desenpenho. Terceira Escola Regional de Alto De-
sempenho - Santa Maria - RS. Comisso Regional de Alto Desempenho -
Regional do Rio Grande do Sul, Sociedade brasileira de Computao, 2003.
[144] Escola Regional de Alto Desenpenho. Quarta Escola Regional de Alto Desem-
penho - Pelotas -RS. Comisso Regional de Alto Desempenho - Regional do
Rio Grande do Sul, Sociedade brasileira de Computao, 2004.
[145] Escola Regional de Alto Desenpenho. Quinta Escola Regional de Alto Desem-
penho - Canoas - RS. Comisso Regional de Alto Desempenho - Regional do
Rio Grande do Sul, Sociedade brasileira de Computao, 2005.
[146] Escola Regional de Alto Desenpenho. Sexta Escola Regional de Alto Desempe-
nho - Iju - RS. Comisso Regional de Alto Desempenho - Regional do Rio
Grande do Sul, Sociedade brasileira de Computao, 2006.
[149] Jay L. Devore. Probability and Statistics for Engineering and The Sciences, vo-
lume 1. John Wiley and Sons, Inc., 2000.
[150] Peter Dibble, Michael Scott, and Carla Ellis. Bridge: A high-performance
file system for parallel processors. http://www.cs.rochester.edu/u/
scott/papers/1988_ICDCS_Bridge.pdf. Ultima Visita em 20.12.2005
12:12.
[154] R. Dragan. The meaning of moores law. PC Magazine Online, Online on Fe-
bruary 14th 2003. http://www.pcmag.com/article2/0,4149,4092,00.
asp.
[157] Andrea C. Dusseau, David E. Culler, Klaus E. Schauser, and Richard P. Mar-
tin. Fast parallel sorting under logp: Experience with the cm-5. IEEE Tran-
sactions on Parallel and Distributed Systems, 7(8):791805, 1996.
[159] Renato Silveira Eduardo Rodrigues Cerejo, Fabrcio Correia Sales. Exemplo
de arquitetura mimd - clusters. Technical report, Projeto final de curso do
INSTITUTO DE CINCIAS MATEMTICAS E DE COMPUTAO - USP,
2005.
[160] M. Eisler. Nfs version 2 and version 3 security issues and the nfs proto-
cols use of rpcsec gss and kerberos v5. http://rfc-ref.org/RFC-TEXTS/
2623/chapter2.html. Ultima Visita em 20.12.2005 12:12.
[161] Ted. EL-REWINI, Hesham; LEWIS. Distributed and Parallel Computing. Man-
ning Publications Co, 1998.
[162] W. R. Elwasif, J. S. Plank, and R. Wolski. Data staging effects in wide area
task farming applications. In IEEE Internetional Sysmposium on Cluster Com-
puting and the Grid, Brisbane, Australia, May 2001. IEEE Computer Society
Press.
[166] Geist et al. PVM: Parallel Virtual Machine, A Users Guide and Tutorial for
Networked Parallel Computing. MIT Press, 1994.
[167] Huican Zhu et al. Adaptive load sharing for clustered digital library ser-
vers. In Proceedings of 7th IEEE International Symposium on High Performance
Distributed Computing, July 1998.
[168] W. Andrews et al. Predicts 2005: The impact of web services still grows. In
Gartner Research Note (G00123895), November 2004.
[172] D. Feitelson and L. Rudolph. Metrics and benchmarking for parallel job
scheduling. In Dror Feitelson and Larry Rudolph, editors, Job Scheduling
Strategies for Parallel Processing, volume 1459, pages 124. Lecture Notes in
Computer Science, Springer-Verlag, 1998.
[177] K.W. Flynn, M.J. e Rudd. Parallel architectures. ACM Computing Surveys,
28(1):6770, 1996.
[178] Message Passing Interface Forum. MPI: A Message Passing Interface standard.
Message Passing Interface Forum, 1997.
[179] I. Foster. Designing and building parallel programs: Concepts and tools for paral-
lel software engineering. Addison-Wesley, 1995.
[180] I. Foster. What is the grid? a three point checklist. GRID today, 1(6), July
2002.
[182] I. Foster and C. Kesselman. The globus project: A status report. In Procee-
dings of IPPS/SPDP Heterogeneous Computing Workshop, pages 418, 1998.
[183] I. Foster and C. Kesselman, editors. The Grid: Blueprint for a Future Compu-
ting Infrastructure. Morgan-Kaufmann, 1999.
[184] I. Foster, C. Kesselman, J. Nick, and S. Tuecke. The Physiology of the Grid:
An Open Grid Services Architecture for distributed systems integration.
Global Grid Forum - GGF, 2002.
[186] I. Foster, C. Kesselman, and S. Tuecke. The anatomy of the Grid: Enabling
scalable virtual organizations. International J. Supercomputer Applications,
15(3), 2001.
[194] Elizabeth Garbett, Andrew Scheferman, and Albert Tse. Virtual disk - its
not just for mainframes anymore. http://www.storagetek.com/. Ultima
Visita em 20.09.2005 12:12.
[197] Sanjay Ghemawat, Howard Gobio, and Shun-Tak Leung. The go-
ogle file system. http://www.cs.rochester.edu/sosp2003/papers/
p125-ghemawat.pdf. Ultima Visita em 20.09.2005 12:12.
[204] Andrew S. Grimshaw, Wm. A. Wulf, and The Legion Team. The legion vi-
sion of a worldwide virtual computer. Communications of the ACM, 40(1):39
45, 1997.
[205] W. Lusk Gropp. Using MPI: Portable Parallel Programming with the Message
Passing-Interface. MIT Press, 1994.
[209] Ibrahim F. Haddad. Pvfs: A parallel virtual file system for linux clus-
ters. http://www.linuxjournal.com/article/4354. Ultima Visita em
20.09.2005 12:12.
[213] F HERMENEGILDO, M.; ROSSI. Prolog and its Performance: Exploiting Inde-
pendente And-Parallelism. MIT Press, 1990.
[214] hilip H. Carns, Robert B. Ross, Walter B. Ligon III, and Pete Wycko. Bmi:
A network abstraction layer for parallel i/o. http://www.osc.edu/~pw/
papers/carns-bmi-ipdps05.pdf. Ultima Visita em 20.12.2005 12:12.
[223] Miguel Cataln i Cort. El Manual para el Clustering con OpenMosix. TLDP,
2004.
[224] Adriana Iamnitchi and Ian Foster. A peer-to-peer approach to resource lo-
cation in grid environments. Grid Resource Management, 2003.
[225] Adriana Iamnitchi, Matei Ripeanu, and Ian Foster. Small-world file-sharing
communities, March 2004.
[226] Oscar H. Ibarra and Chul E. Kim. Heuristic algorithms for scheduling in-
dependent tasks on nonidentical processors. Journal of the ACM (JACM),
24(2):280289, 1977.
[229] Virglio Jos Martins IGNACIO, Anbal Alberto Vilcapona y FERREIRA FI-
LHO. Mpi: uma ferramenta para implementao paralela. Pesquisa Opera-
cional, 22(1):105116, junho 2002.
[231] Sun Microsystems Inc. Rpc: Remote procedure call protocol specification
version 2. http://rfc-ref.org/RFC-TEXTS/1057/. Ultima Visita em
20.09.2005 12:12.
[232] Tech Insider. An interactive look at how ethernet has evolved. http://
www.networkworld.com/techinsider/2002/1014ethernettime.html.
Ultima Visita em 20.09.2005 12:12.
[236] R. Jain. The Art of computer systems performance analysis: techniques for expe-
rimental design, measurement, simulation and modeling, volume 1. John Wiley
and Sons, Inc., 1991.
[237] M.-C. Jih, Li-Chi Feng, and Ruei-Chuan Chang. The design and implemen-
tation of the pasda parallel file system. In International Conference on Parallel
and Distributed Systems, chapter pages 142 - 147. 1994.
[238] Paul JONES, Mark P.; HUDAK. Implicit and explicit parallel program-
ming in haskell. nebula.systemsz.cs.yale.edu/pub/yale-fp/reports/RR-
982.ps.Z. julho de 1999.
[241] Poul-Henning Kamp and Robert N. M. Watson. Jails: Confining the om-
nipotent root. In Proceedings of 2nd International System Administration and
Networking Conference, May 2000.
[242] Subramanian Kannan, Mark Roberts, Peter Mayes, Dave Brelsford, and Jo-
seph F Skovira. Workload management with loadleveler. http://www.
redbooks.ibm.com/redbooks, November 2001.
[245] Fabio Kon. Distributed file systems past, present and future a distributed
file system for 2006. http://choices.cs.uiuc.edu/~f-kon/DFSPaper.
ps.gz. Ultima Visita em 20.09.2005 12:12.
[258] Michael Litzkow, Miron Livny, and Matthew Mutka. Condor - a hunter of
idle workstations. In Proceedings of the 8th International Conference of Distri-
buted Computing Systems, June 1988.
[259] V. Lo, J. Mache, and K. Windisch. A comparative study of real workload tra-
ces and synthetic workload models for parallel job scheduling. In D. Feitel-
son and L. Rudolph, editors, Job Scheduling Strategies for Parallel Processing,
volume 1459, pages 2546. Lecture Notes in Computer Science, Springer
Verlag, 1998.
[261] Pierre Lombard and Yves Denneulin. Nfsp: A distributed nfs ser-
ver for cluster of workstations. http://ka-tools.sourceforge.net/
publications/nfsp-ipdps01.pdf. Ultima Visita em 20.09.2005 12:12.
[263] Peter Lyman, Hal R. Varian, James Dunn, Aleksey Strygin, and Kirsten
Swearingen. How much information? http://www.sims.berkeley.edu/
research/projects/how-much-info-2003, October 2003.
[269] Tom McNeal and Chuck Lever. Linux nfs faq. http://nfs.sourceforge.
net. Ultima Visita em 20.09.2005 12:12.
[271] Corinto Meffe, Carlos Castro, Anderson Peterle, Nazar Bretas, and Rog-
rio Santanna. Materializao do conceito de software pblico: Iniciativa
cacic. http://guialivre.governoeletronico.gov.br/cacic/
sisp2/info/software_publico.html. ltima Visita em 11.09.2006 12:20.
[272] Corinto Meffe, Elias O. P. Mussi, Leonardo Mello, and Rogrio Santanna
dos Santos. A tecnologia de cluster e grid na resoluo de problemas de
governo eletrnico. The 18th International Symposium on Computer Archite-
ture and High Performance Computing, pages 18, Outubro 2006.
[274] Ethan L. Miller and Randy H. Katz. Rama: A file system for massively-
parallel computers. http://ssrc.cse.ucsc.edu/~elm/Papers/mss93.
pdf. Ultima Visita em 20.09.2005 12:12.
[280] H. Stephen MORSE. Practical Parallel Computing. Academic Press, Inc, 1994.
[285] M. Nelson, B. Welch, and J. Ousterhout. Caching in the sprite network file
system. 1987.
[286] Zsolt Nemeth and Vaidy Sunderam. A formal framework for defining grid
systems. In Proceedings of the Second IEEE/ACM International Symposium on
Cluster Computing and the Grid. IEEE Computer Society Press, Maio 2002.
[288] Marco A. S. Netto et al. Transparent resource allocation to exploit idle clus-
ter nodes for execution of independent grid tasks. In Proceedings of the first
international conference on e-Science and grid computing, pages 238245, Mel-
bourne, 2005. IEEE Computer Society.
[289] Marco Aurlio Stelmar Netto and Csar A.F. De Rose. CRONO: A confi-
gurable and easy to maintain resource manager optimized for small and
[290] Tsuen-Wan Johnny Ngan, Animesh Nandi, and Atul Singh. Fair
bandwidth and storage sharing in peer-to-peer networks. In Proceedings
of, Jan 2003.
[293] R. Oldfield. Summary of existing and developing data grids - draft. In Grid
Forum. Remote Data Access Working Group. IEEE Computer Society Press,
March 2001.
[296] John Ousterhout. A brief retrospective on the sprite network operating sys-
tem. ABriefRetrospectiveontheSpriteNetworkOperatingSystem. Ul-
tima Visita em 20.09.2003 12:12.
[298] GIMPS Home Page. The great internet mersenne prime search. http://
www.merssene.org, December 2003.
[301] M. Pinedo. Scheduling: Theory, Algorithms and Systems. Prentice Hall, 2nd
edition, New Jersey, USA, August 2001.
[304] Dhiraj K. Pradhan. Fault Tolerant System Design. Prentice Hall, 1996.
[305] The Open MPI Project. Open mpi: Open source high performance compu-
ting. http://www.open-mpi.org/. Ultima Visita em 20.04.2005 12:20.
[306] J. et al. PROTIC. Distributed Shared Memory: Concepts and Systems. IEEE
Computer Society Press, 1998.
[315] Rob Ross, Walt Ligon, , and Phil Carns. Parallel virtual file system. http://
www.parl.clemson.edu/pvfs2/sc2002-whitepaper-pvfs.pdf. Ultima
Visita em 20.09.2005 12:12.
[317] David De Roure, Mark A. Baker, Nicholas R. Jennings, and Nigel R. Shad-
bolt. The evolution of the Grid. Int. J. of Concurrency and Computation: Prac-
tice and Experience, to appear.
[318] Antony I. T. Rowstron and Peter Druschel. Storage management and ca-
ching in PAST, a large-scale, persistent peer-to-peer storage utility. In Sym-
posium on Operating Systems Principles, pages 188201, 2001.
[333] Domenico SKILLICORN, David B.; TALIA. Models and languages for pa-
rallel computation. ACM Computing Surveys, 30(2):123169, june 1998.
[334] Joseph D. Sloan. Ten tips for building your first high-performance
cluster. http://www.linuxdevcenter.com/pub/a/linux/2004/12/29/
lnxclstrs_10.html. Ultima Visita em 20.05.2006 12:20.
[336] S. Smallen, W. Cirne, and J. Frey et. al. Combining workstations and super-
computers to support grid applications: The parallel tomography experi-
ence, 2000.
[339] W. Smith, I. Foster, and V. Taylor. Predicting application run times using
historical information. Lecture Notes in Computer Science, 1459:122142, 1998.
[341] Steven R. Soltis, Thomas M. Ruwart, and Matthew T. OKeefe. The global
file system. http://www.diku.dk/undervisning/2003e/314/papers/
soltis97global.pdf. Ultima Visita em 20.09.2005 12:12.
[348] James Surowiecki. The Wisdom of Crowds: Why the Many Are Smarter Than
the Few and How Collective Wisdom Shapes Business, Economies, Societies and
Nations. Doubleday, May 2004.
[350] Siew-Joo Tan. Survey reveals web services are fulfilling their promises. In
Yakee Group Report, September 2004.
[354] PVFS2 Development Team. Parallel virtual file system, version 2. http:
//www.pvfs.org/pvfs2/pvfs2-guide.html. Ultima Visita em 20.09.2005
12:12.
[357] Douglas Thain, Jim Basney, Se-Chang Son, and Miron Livny. The kangaroo
approach to data movement on the grid. In Proceedings of the 10th IEEE Sym-
posium on High Performance Distributed Computing. IEEE Computer Society
Press, May 2001.
[358] Douglas Thain, Todd Tannenbaum, and Miron Livny. Condor and the grid.
In Fran Berman, Geoffrey Fox, and Tony Hey, editors, Grid Computing: Ma-
king the Global Infrastructure a Reality. John Wiley and Sons Inc., December
2002.
[359] Alok THAKUR, Rajeev; CHOUDHARY. Efficient algorithms for array re-
distribution. IEEE Transactionson Parallel and Distributed Systems, 6(7):587
594, june 1996.
[361] S. Thatte. XLANG: Web services for business process design, 2001.
[366] Paulo R. Trezentos. Vitara: Network clustering como soluo para grandes
exigncias de processamento - apresentao e contextualizao. Technical
report, Projeto final de curso de IGE, ADETTI / ISCTE, 1999.
[373] Bill von Hagen. Exploring the ext3 filesystem. what is journaling? http:
//www.linuxplanet.com/linuxplanet/reports/4136/3/. Ultima Vi-
sita em 20.09.2005 12:12.
[374] Gregor von Laszewski. Grid Computing: Enabling a Vision for Collabora-
tive Research. In Juha Fagerholm, Juha Haataja, Jari Jrvinen, Mikko Lyly,
Peter Raback, and Ville Savolainen, editors, The Sixth International Confe-
rence on Applied Parallel Computing, volume 2367 of Lecture Notes in Computer
Science, pages 3752, Espoo, Finland, 15-18 June 2002. Springer.
[375] Gregor von Laszewski, Gail Pieper, and Patrick Wagstrom. Performance
Evaluation and Characterization of Parallel and Distributed Computing Tools,
chapter Gestalt of the Grid. Wiley Book Series on Parallel and Distribu-
ted Computing. to be published 2002.
[380] David D.H WARREN. An abstract prolog instruction set. Technical report,
Manchester: SRI International, 1983.
[381] J. Weissman. Gallop: The benefits of wide-area computing for parallel pro-
cessing. Journal of Parallel and Distributed Computing, 54(2), November 1998.
[383] Von Welch, Frank Siebenlist, Ian Foster John Bresnahan, Karl Czajkowski,
Jarek Gawor, Carl Kesselman, Sam Meder, Laura Pearlman, and Steven Tu-
ecke. Security for grid services. In Twelfth International Symposium on High
Performance Distributed Computing (HPDC-12), June 2003.
[391] R. Wolski, N. Spring, and J. Hayes. Predicting the CPU availability of time-
shared unix systems on the computational grid. In Proceedings of 8th Inter-
national Symposium on High Performance Distributed Computing (HPDC99),
August 1999.
[394] Yifeng Zhu, Hong Jiang, Xiao Qin, Dan Feng, and David R. Swanson. Im-
proved read performance in ceft-pvfs: Cost efective, fault-tolerant paral-
lel virtual file system. http://www.cs.nmt.edu/~xqin/pubs/ccgrid03.
pdf. Ultima Visita em 20.09.2005 12:12.