You are on page 1of 69

SERVO NACONAL DE APRENDZAGEM NDUSTRAL

CURSO TCNCO EM REDES DE COMPUTADORES


TAGO RAFAEL PERN
PROCESSAMENTO DISTRIBUDO
JARAGU DO SUL
2008
TAGO RAFAEL PERN
PROCESSAMENTO DISTRIBUDO
Trabalho apresentado banca
examinadora de TCC do curso Tcnico
em Redes de Computadores do
SENA/SC Jaragu do Sul, sob a
orientao do Prof. Rodrigo Machado
Prado.
JARAGU DO SUL
2008
RESUMO
Este trabalho tem como objetivo apresentar um mtodo vivel para utilizao de
mtodos em cluster atravs da ferramenta openMosix. Alm de ser relatado sobre o
contedo terico do mesmo, realizam-se estudos de caso afim de se testar a
implantao realizada no desenvolvimento do projeto. Utilizou-se um software para
renderizao de imagens, sendo este um tpico de teste. Outro fato de teste, foi o
balanceamento de carga, migrao de processos, pontos de falha, entre outros.
Portanto, com a utilizao do openMosix e todo o seu conjunto de ferramentas
grficas para administrao do sistema, tornando assim mais fcil, rpido e intuitivo
o seu manuseio, possvel implantar aplicaes que exijam alto poder
computacional com um baixo custo de hardware e tempo.
NDICE DE FIGURAS
Figura 1: Logotipo do OpenMosixview........................................................................26
Figura 2: Topologia do cluster.....................................................................................30
Figura 3: rea de Trabalho: ClusterKnoppix...............................................................33
Figura 4: Tela nicial do OpenMosixview.....................................................................34
Figura 5: Janela de Configurao...............................................................................37
Figura 6: OpenMosixmigmon......................................................................................39
Figura 7: OpenMosixprocs..........................................................................................41
Figura 8: Gerenciados de Processos Remotos..........................................................42
Figura 9: Janela de Migrao......................................................................................43
Figura 10: OpenMosixanalyzer...................................................................................45
Figura 11: OpenMosixanalyzer: estatstica dos nodos...............................................46
Figura 12: OpenMosixhistory......................................................................................47
Figura 13: Teste de Comunicao: Migrao de Processos.......................................49
Figura 14: Teste de Comunicao: Balanceamento de Carga...................................50
Figura 15: Renderizao de imagens em 1 computador............................................54
Figura 16: Renderizao de imagens em 4 ns.........................................................55
Figura 17: Comportamento dos ns durante a renderizao.....................................56
Figura 18: Balanceamento de carga durante a renderizao.....................................57
Figura 19: Renderizao de imagens em 9 ns.........................................................57
Figura 20: Relao Tempo X Nmero de Ns............................................................58
Figura 21: openMosixmigmon com 9 ns e 30 processos..........................................60
Figura 22: Relao Tempo X Nmero de Processos..................................................61
Figura 23: N sobrecarregado ao executar o script....................................................62
Figura 24: Aplicao funcionando normalmente.........................................................63
Figura 25: OpenMosixview com um n desconectado...............................................64
Figura 26: Aplicao "travada" aps o nodo ser desconectado.................................65
NDICE DE QUADROS
Quadro 1: Comando para ativao da ferramenta principal.......................................34
Quadro 2: Comando para ativao do openMosixmigmon.........................................38
Quadro 3: Comando para ativao do openMosixprocs.............................................40
Quadro 4: Comando para ativao do openMosixanalyzer........................................45
Quadro 5: Comando para ativao do openMosixhistory...........................................46
Quadro 6: Script de teste de comunicao.................................................................48
Quadro 7: Comando para execuo do script de teste de comunicao...................48
Quadro 8: Script para renderizao de imagens........................................................52
Quadro 9: Comando para execuo da renderizao de imagens no blender..........53
Quadro 10: Tempo de renderizao com n de processos iguais ao n de ns.........58
Quadro 11: Tempo de renderizao em 9 ns com diferentes n de processos........60
SUMRIO
1 INTRODUO..........................................................................................................7
1.1 OBJETVO GERAL............................................................................................8
1.2 OBJETVOS ESPECFCOS..............................................................................8
1.3 JUSTFCATVA..................................................................................................8
1.4 METODOLOGA.................................................................................................9
2 CONCEITOS DO CLUSTER...................................................................................11
2.1 HSTRA.........................................................................................................11
2.2 DEFNO......................................................................................................12
2.3 TPOS DE CLUSTER.......................................................................................13
2.3.1 Clus!" #! Al$ D%s&'(%)%l%#$#!.............................................................13
2.3.2 Clus!" #! Al' D!s!*&!(+'.................................................................1,
2.3.3 Clus!" #! B$l$(-!$*!(' #! C$".$....................................................1/
2.4 PRNCPAS CARACTERSTCAS DE UM CLUSTER...................................16
2.,.1 Es-$l$)%l%#$#!.........................................................................................10
2.,.2 T'l!"1(-%$ $ F$l+$s.................................................................................17
2.,.3 Cus' R!#u2%#'.......................................................................................17
2.,., I(#!&!(#3(-%$ #! F'"(!-!#'"!s..........................................................14
3 SOFT5ARES DO CLUSTER.................................................................................16
3.1 SSTEMA OPERACONAL...............................................................................19
3.1.1 L%(u7.........................................................................................................28
3.1.1.1 ClusterKnoppix..................................................................................20
3.2 OPENMOSX....................................................................................................21
3.2.1 Al.'"%*'s #! C'*&$"%l+$*!(' #! R!-u"s's..................................23
3.2.1.1 Balanceamento Dinmico de Carga.................................................24
3.2.1.2 Algoritmo de Anunciao de Memria...............................................24
3.2.2 M%."$9:' P"!!*&%;$ #! P"'-!ss's.....................................................2/
3.2.3 O&!(M's%7<IE5.....................................................................................20
3.2.3.1 OpenMosixview.................................................................................26
3.2.3.2 OpenMosixprocs................................................................................27
3.2.3.3 OpenMosixcollector...........................................................................27
3.2.3.4 OpenMosixanalyzer...........................................................................27
3.2.3.5 OpenMosixhistory..............................................................................28
3.2.3.6 OpenMosixmigmon............................................................................28
, PLANE=AMENTO E REQUISITOS........................................................................26
4.1 PLANEJAMENTO DO SSTEMA.....................................................................29
4.2 REQUSTOS DE HARDWARE.......................................................................31
4.3 REQUSTOS DE SOFTWARE........................................................................31
/ CONFIGURAO DO CLUSTER..........................................................................32
5.1 NSTALAO DO SSTEMA OPERACONAL................................................32
5.2 FERRAMENTAS DO OPENMOSX.................................................................33
/.2.1 O&!(M's%7;%!> ? <%s:' #' '&!(M's%7................................................3,
/.2.2 O&!(M's%7@-'(A%.u"$%'( ? =$(!l$ #! C'(A%.u"$9:' ........................30
/.2.3 O&!(M's%7*%.*'( ? M'(%'" #! M%."$9B!s.......................................34
/.2., O&!(M's%7&"'-s ? G!"!(-%$#'" #! P"'-!ss's...................................,8
/.2./ O&!(M's%7-'ll!-'"...............................................................................,,
/.2.0 O&!(M's%7$($lC2!"................................................................................,,
/.2.7 O&!(M's%7+%s'"C..................................................................................,0
0 COMUNICAO.....................................................................................................,4
7 TESTANDO A APLICAO NO OPENMOSID....................................................../1
7.1 APLCAO UTLZADA.................................................................................51
7.2 RESULTADOS DAS COMPARAES............................................................53
7.2.1 R!(#!"%2$9:' -'* (E*!"' %.u$%s #! &"'-!ss's ! ('#'s................/3
7.2.2 R!(#!"%2$9:' !* 6 ('#'s -'* (E*!"' #! &"'-!ss's #%A!"!(!s..../6
7.3 PONTOS DE FALHA........................................................................................63
4 CONCLUSO.........................................................................................................00
REFERFNCIAS...........................................................................................................07
7
1 INTRODUO
Com o passar dos anos, diversas aplicaes desenvolvidas necessitam de
computadores cada vez mais potentes. Com isso, indstrias de pequeno e mdio
porte geralmente no possuem condies financeiras de obterem
supercomputadores. Com o objetivo de suprir toda essa demanda de poder, foi
desenvolvido um mtodo que interligasse diversos computadores com o intuito de
dividir as tarefas de processamento. Esse conjunto foi denominado cluster. Dessa
forma, o trabalho apresenta as vantagens de se utilizar o mesmo durante um
processamento que requer alto desempenho da mquina. sto ser comprovado
atravs de pesquisas e testes que comprovam a sua eficincia. Um cluster nada
mais que computadores comuns interligados em rede. Esse mtodo vivel
principalmente pelo baixo custo que apresenta, pois so utilizados computadores
"comuns, com um desempenho muito semelhante a um computador de alta
performance que tem um custo mais elevado. Desse modo, mais vivel utilizar-se
de um cluster do que encomendar um supercomputador. Outra vantagem a
questo de tolerncia a falhas, pois os supercomputadores geralmente so
construdos sob encomenda, o que torna o proprietrio totalmente dependente dos
fornecedores caso haja alguma falha no sistema. sto no acontece no caso de um
cluster, que pode utilizar computadores comuns, como os usados por usurios
domsticos, o que facilita a manuteno, pois no possui um sistema muito
complexo em relao a um computador de alta performance.
8
1.1 OBJETVO GERAL
mplantar um cluster de balanceamento de carga, utilizando sistema operacional
ClusterKnoppix 3.6.
1.2 OBJETVOS ESPECFCOS
Os objetivos especficos deste trabalho so:
Realizar uma pesquisa aprofundada sobre a utilizao do mtodo de
processamento cluster;
Estabelecer a comunicao entre os computadores presentes no sistema;
Utilizar uma aplicao que realize o teste do sistema cluster;
Realizar a comparao entre o sistema de cluster e uma mquina nica;
Analisar o comportamento do cluster, considerando pontos de falha.
1.3 JUSTFCATVA
Empresas de pequeno e mdio porte, ou at mesmo usurios domsticos,
9
necessitam de computadores que ofeream desempenho elevado para executar os
programas que necessitam de alto poder computacional. Usando o sistema cluster,
o proprietrio no necessita investir em um supercomputador. Ele apenas necessita
de dois ou mais computadores "comuns, ou seja, que no possuem processadores
sofisticados, porm quando interligados, se tornam to eficientes quanto um
supercomputador independente. Alm do mais o cluster facilita a expansibilidade do
sistema, pois necessita simplesmente da insero de um novo nodo ao conjunto.
Percebe-se a importncia desse tema para que os usurios possam conhecer os
benefcios de quando e como utiliz-lo, sendo este um meio de reduzir custos de
forma significativa e ao mesmo tempo obtendo alta performance e disponibilidade.
1.4 METODOLOGA
A realizao do projeto teve incio no ms de julho e sua concluso prevista para o
ms de dezembro de 2008. O trabalho ser desenvolvido em duas etapas, sendo
que a primeira delas especificamente buscar o aprofundamento em pesquisas
bibliogrficas sobre o assunto abordado atravs de revistas, trabalhos cientficos,
livros e artigos via web, para desenvolver a introduo ao projeto e aprimoramento
nas tcnicas para a elaborao do sistema. A segunda etapa definida para o
desenvolvimento da soluo e realizao dos devidos testes utilizando os
computadores oferecidos pela instituio SENA/Jaragu do Sul e, se necessrio,
mais pesquisas para obter as solues para resoluo dos possveis problemas que
10
possam ocorrer nos testes efetivados. Abaixo segue o cronograma das datas e
procedimentos a serem cumpridos.
A%;%#$#!s M!s!s Jul Ago Set Out Nov Dez
Qu%(2!($s 1 2 1 2 1 2 1 2 1 2 1 2
Definio do Tema X
Formulrio de Acompanhamento X X
Avaliao do Formulrio
-realizada pelo orientador
X
Levantamento Bibliogrfico X X X X X
Produo do Pr-Projeto em
relao ao formulrio
X X
Entrega e avaliao do pr-
projeto
X
Produo do TCC em relao ao
pr-projeto
X X X
mplementao do sistema X X
Testes X X X
Pesquisas para solucionar
problemas nos testes
X X X
Entrega e avaliao da verso
Parcial do TCC
X
Produo do TCC em relao
verso parcial
X X X X
Entrega da verso final do TCC X
Apresentao do TCC para a
banca examinadora
X
11
2 CONCEITOS DO CLUSTER
Neste captulo esto disponveis os assuntos pesquisados para auxiliar no
desenvolvimento do projeto. Dividiu-se em sees para cada assunto. Na seo 2.1
ser abordado sobre a histria do cluster, desde os seus primrdios. No tpico 2.2
definem-se os conceitos os conceitos e tecnologias envolvidos no mesmo. A seo
2.3 aborda os principais tipos de cluster e suas funes especficas. No tpico 2.4
apresentam-se as principais caractersticas de um sistema de processamento
distribudo explicando o que cada caracterstica significa.
2.1 HSTRA
Os clusters surgiram a partir do momento em que uma tarefa no podia ser executa
somente por um nico computador e tambm quando as tarefas exigiam um nvel
maior de segurana e processamento, o que um computador sozinho no garantia. A
data especfica do surgimento e utilizao dos primeiros clusters desconhecida,
porm eles foram utilizados por volta do fim da dcada de 50 e incio da dcada de
60 (MARCO, 2006).
Os clusters atuais so bem sucedidos devido as grandes evolues das redes de
computadores, do desenvolvimento do protocolo TCP/P (Transmission Control
Protocol/Internet Protocol) e do sistema operacional Unix na dcada de 70
12
(BECHER, 2007), que mais adiante seria a base do sistema operacional Linux,
desenvolvido por Linus Torvalds.
Em 1962, surgiu o conceito de redes baseado na comutao de pacotes
desenvolvido pela RAND Corporation, deste modo em 1969 surgiu um dos primeiros
clusters utilizando harware comum e foi apelidado de ARPAN!T. Por volta de 1983,
surgiram protocolos e ferramentas que facilitaram a distribuio de tarefas entre
diferentes CPUs. Em 1977, surgiu a primeira soluo de cluster comercial
desenvolvido pela empresa Datapoint e nomeado de ARCN!T (BECHER, 2007),
que permitia a ligao de mquinas em rede por meio de harware, aplicativo e
outros equipamentos.
2.2 DEFNO
Tambm chamado de Clusterin",
cluster o nome dado a um sistema montado com mais de um
computador, cujo objetivo fazer com que todo o processamento da
aplicao seja distribudo aos computadores, mas de forma que
parea com que eles sejam um computador s. (ALECRM, 2004)
Em outras palavras, os computadores dividem as tarefas a serem processadas
trabalhando como se fosse um computador s. Dessa forma possvel realizar
processamentos pesados com alta taxa de velocidade, o que at ento s
computadores de alta performance conseguiriam, com um custo mais acessvel do
que a compra de um computador de alto nvel. "Cada um dos equipamentos
13
interligados chamado de n e, normalmente, existe um n mestre que gerencia
e/ou divide as tarefas entre os demais ns, chamados de escravos (OLVERA,
2004), ou seja, um computador ser configurado como o n mestre com a funo de
dividir o processamento para cada computador escravo.
2.3 TPOS DE CLUSTER
Existem diversos tipos de cluster, entre eles, pode-se citar de modo geral: alta
disponibilidade, alto desempenho e balanceamento de carga. A seguir ser
aprofundado sobre cada um deles.
2.3.1 Clus!" #! Al$ D%s&'(%)%l%#$#!
Este tipo de cluster muito utilizado em tarefas que necessitem estar operando 24
horas por dia, como por exemplo, previso meteorolgica e o sistema bancrio.
"Esse modelo tem a finalidade principal de prover uma alta taxa de confiana,
mantendo ao mximo tempo disponvel, os servios e recursos de forma
ininterrupta (PNTO; SLVA; SLVERA, 2007). Os recursos tm que estar sempre,
ou quase sempre, disponveis para atender s requisies dos clientes, ou seja, tm
de estar acessveis por um perodo de tempo muito prximo a 100% (PERERA,
2004). Assim um dos requisitos exigidos na alta disponibilidade eliminar os pontos
14
de falhas. Para isso necessria a redundncia de equipamentos e/ou servios, ou
seja, caso um computador da rede falhar, o outro automaticamente o substitui sem
haver perda de dados e assim sucessivamente. Tambm so mantidas cpias dos
recursos, pois caso houver a parada dos servios disponibilizados, este por fim,
substitudo pelas cpias realizadas anteriormente. Entretanto, como foram utilizados
equipamentos redundantes, o sistema no disponibiliza todo o desempenho que
poderia oferecer ao aplicativo.
2.3.2 Clus!" #! Al' D!s!*&!(+'
Neste tipo de cluster, as tarefas que exigem um grande poder computacional so
divididas em nodos, ou seja, so executados de forma paralela a fim de dividir o
tempo de processamento da tarefa. Desta forma, quanto mais computadores
estiverem no sistema, menor ser o tempo de processamento (PERERA, 2004).
Este mtodo muito utilizado para renderizao de imagens, processamentos de
clculos de engenharia, banco de dados robustos, entre outros que exijam alto grau
de processamento.
"Existem dois tipos de arquiteturas: a centralizada e a descentralizada (CARDOSO;
LEO, 2004). A arquitetura centralizada apresenta um n mestre, que gerencia
todos os outros ns, denominados escravos porque eles possuem apenas a funo
de executar os processamentos enviados pelo n mestre. Sua principal vantagem
que o processamento dividido por todos os componentes do cluster sendo que
15
raramente haver ns ociosos. Porm a sua desvantagem que se o n mestre vir
a falhar ou parar de funcionar todo o sistema ficar em desuso (CARDOSO; LEO,
2004). Na arquitetura descentralizada, cada n o seu prprio mestre. Se caso
houver falha de um n, haver um impacto bem menor pois cada n trabalha
individualmente. Entretanto, a vantagem que se apresentava numa arquitetura
centralizada de no haver ns ociosos a desvantagem apresentada na
descentralizada que pode conter computadores parados por um grande tempo por
no haver um nico mestre que gerencie o sistema todo, ou seja, essa arquitetura
no oferece todo o desempenho possvel.
2.3.3 Clus!" #! B$l$(-!$*!(' #! C$".$
"Os Clusters de balanceamento de carga #oa $alance Clusters (LBC) so um
misto de cluster de alto desempenho, com cluster de alta disponibilidade (BECHER,
2007). A funo principal dele :
[...] distribuir as requisies feitas aos elementos que o compe, esse
cluster mantm de forma equilibrada o trfego gerado a
determinados servios, alm de redistribuir as requisies enviadas a
determinado n, aos outros ns do cluster, caso este venha a falhar
(PNTO; SLVA; SLVERA, 2007).
Esse tipo de cluster necessita monitorao constante por meio de mecanismos de
redundncia. Se no houver isso, qualquer tipo de falha pode vir a interromper todo
o sistema.
Ele muito utilizado em servidores de e-mail na nternet, comrcio eletrnico e em
16
sistemas de lojas. A %oo"le utiliza este mtodo em cluster.
"O balanceamento de carga entre servidores faz parte de uma soluo abrangente
em uma explosiva e crescente utilizao da rede e da nternet, provendo um
aumento na capacidade da rede, melhorando a performance (PTANGA, 2003, p.
19). O balanceamento de carga se tornou essencial em diversos setores, como o
comrcio eletrnico.
2.4 PRNCPAS CARACTERSTCAS DE UM CLUSTER
Existem diversas caractersticas de um sistema em cluster. Dentre as principais,
temos em destaque os itens abaixo:
2.,.1 Es-$l$)%l%#$#!
O cluster possibilita adicionar novos ns para melhorar a performance do sistema,
medida que a carga de trabalho aumenta, com a maior facilidade. "Uma das
caractersticas mais prticas que deve ser adicionada configurao de um cluster
(ROCHA, 2004), ou seja, a configurao do sistema deve possibilitar servios ativos,
como adicionar perifricos e efetuar conexes internas de rede.
17
2.,.2 T'l!"1(-%$ $ F$l+$s
O cluster deve apresentar um aumento da confiabilidade do sistema, de forma que
se acaso algum n venha a falhar o sistema no fique prejudicado (PNTO; SLVA;
SLVERA, 2007). O sistema necessita de tcnicas para tolerncia falhas. Esses
tipos de tcnicas garantem o funcionamento do cluster e so todas baseadas na
redundncia por adio de componentes ou mesmo por algoritmos especiais.
Existem duas tcnicas de tolerncia falhas: mascaramento ou deteco,
localizao e reconfigurao. Na primeira as falhas no se manifestam como erros,
pois so mascaradas na origem. O mascaramento geralmente emprega mais
redundncia que a segunda e, por no envolver os tempos gastos para as tarefas de
deteco, localizao e reconfigurao, a preferida para sistemas de tempo real
crticos (WEBER, [200-?]).
2.,.3 Cus' R!#u2%#'
A principal vantagem de um cluster o baixo custo que ela disponibiliza. sso se
deve por utilizar recursos de fcil acesso e de uso comum, como por exemplo,
microcomputadores de uso pessoal e mini-hub (OLVERA, 2004). Em relao a
custo/desempenho de um cluster, pode se dizer que:
[...] devido relativa facilidade em construir o sistema, a partir de
elementos ou ns comercialmente disponveis possvel obter um
18
cluster com poder de computao igual ou superior a um
supercomputador, por exemplo, com custo muito menor (ROCHA,
2004).
2.,., I(#!&!(#3(-%$ #! F'"(!-!#'"!s
Como j foi citado anteriormente, um supercomputador totalmente dependente dos
fornecedores caso houver alguma falha no sistema. sso se deve pelo sistema ser
muito complexo e apenas conhecido pela empresa que o desenvolveu. O que no
importa no caso do cluster, que "por utilizar microcomputadores comuns, que podem
ter plataformas heterogneas, no esto presos a uma tecnologia especfica
(OLVERA, 2004).
19
3 SOFT5ARES DO CLUSTER
Neste captulo esto descritos os softwares utilizados no projeto. Na seo 3.1 ser
descrito o sistema operacional utilizado no projeto. O tpico 3.2 descreve o software
utilizado para distribuio dos processos e nos tpicos subseqentes as
caractersticas de cada ferramenta da aplicao.
3.1 SSTEMA OPERACONAL
Para escolher o sistema operacional no desenvolvimento do cluster, foi levado em
conta o menor custo possvel, pois um dos objetivos da utilizao do mesmo a
viabilidade em relao a um supercomputador independente. Desta forma, chegou-
se a concluso que o melhor sistema operacional a ser utilizado o Linux. Ele, ao
contrrio dos sistemas operacionais proprietrios, um software livre que pode ser
adquirido de forma gratuita e suporta diversas arquiteturas.
O sistema operacional deve atender, alm do custo reduzido: segurana; ser
estvel; ter capacidade de trabalhar em sistemas multiusurio e multitarefa; operar
sobre variadas arquiteturas de computadores; ter seu cdigo fonte disponvel
(ROCHA, 2003). O Linux se encaixa perfeitamente a todas essas exigncias, e alm
do mais sua utilizao tem crescido significativamente nos ltimos anos em todo o
mundo.
20
3.1.1 L%(u7
"Linux ao mesmo tempo um &ernel (ou ncleo) e o sistema operacional que roda
sobre ele, dependendo do contexto em que voc encontrar a referncia (CAMPOS,
2006). "O linux uma "verso gratuita de UNX desenvolvida inicialmente por um
estudante da Universidade de Helsinque (Finlndia), chamado Linus Torvalds
(OLVERA, 2004). Ele foi baseado no sistema operacional MNX, uma verso
criada anteriormente por Andrew Tannembaum.
Linus Torvalds criou o &ernel Linux em 1991, e hoje mantido mundialmente por
diversos desenvolvedores, como as empresas BM e HP, e coordenada pelo
prprio Linus (CAMPOS, 2006).
Os sistemas operacionais Linux possuem a vantagem de serem livremente
distribudos, ou seja, o usurio pode modific-los de acordo com as suas
necessidades. Dessa forma, a sua implantao num sistema de clusters tem
diversas vantagens, entre elas se destaca por ser um sistema robusto, que d
suporte desde aplicao simples at aplicaes extremamente complexas, e
tambm por ser possvel dot-lo de caractersticas diferentes facilitando a
implementao em aplicaes paralelas (OLVERA, 2004).
'()()() ClusterKnoppix
O ClusterKnoppix uma distribuio baseada no sistema operacional Knoppix que
vem com um servidor *penMosix, que ser abordado a seguir, configurado para
21
rodar diretamente do CD (MORMOTO, 2003). Ele foi desenvolvido especialmente
para o funcionamento em cluster( Possui um sistema de autodescoberta, o que
permite com que os nodos do cluster se integrem automaticamente no ambiente. O
ClusterKnoppix j vm com todo o ferramental do *penMosix pronto para a
utilizao (PTANGA, 2003). Essas caractersticas so extremamente teis para
desenvolver um cluster, pois no necessrio realizar todo o processo de instalao
do sistema operacional e configurao do mesmo, porque o prprio sistema se
encarrega de fazer tudo automaticamente, facilitando o trabalho do usurio.
3.2 OPENMOSX
"O projeto Mosix Multicomputer Operating System UnX um sistema
operacional distribudo, desenvolvido originalmente pelos alunos do professor
Amnon Barak, na Universidade Hebrew em Jerusalm, srael (PTANGA, 2003, p.
241). O Mosix permite a construo de um sistema escalvel utilizando
componentes genricos e oferecendo alta performance. A sua principal vantagem
em relao aos outros sistemas sua capacidade de resposta em relao aos
diversos usurios conectados ao sistema (PTANGA, 2003).
O cluster Mosix tem a caracterstica de proporcionar o equilbrio entre a carga e as
mquinas com o intuito de rodar mais processos do que uma nica UCP, o que
beneficia os aplicativos que utilizam vrios processos independentes (PTANGA,
2003).
22
"O openMosix uma extenso do projeto Mosix, [...] iniciado em 10 de fevereiro de
2002, [...] para manter os privilgios desta soluo Linux para cluster disponvel com
software de cdigo aberto (PTANGA, 2003, p. 242). Todas as instalaes que eram
baseadas no Mosix migraram para o openMosix.
No openMosix foram acrescidas diversas caractersticas que no continham no
projeto Mosix, dentre elas as principais so:
Portado para arquitetura +ser,moe Linux (UML);
Cdigo novo para migrao de processos;
Um melhor balanceador de carga;
Diminuio da latncia do &ernel;
Suporte a placas SC (Dolphin) e arquitetura A64;
Uma grande simplificao da instalao por meio de empacotamento RPM
(PTANGA, 2003, p. 242).
Mesmo o openMosix sendo uma extenso do Mosix, os dois so completamente
incompatveis, ou seja, se o usurio misturar implementaes do Mosix ao
openMosix, o sistema no funcionar.
O openMosix uma extenso do ncleo do sistema operacional
Linux, que faz com que um cluster de computadores se comporte
como um grande e nico supercomputador atravs da utilizao de
migrao preemptiva de processos e balanceamento dinmico de
carga (PTANGA, 2003, p. 243).
"A Migrao Preemptiva de Processos capaz de migrar qualquer processo do
usurio, em qualquer instante e para qualquer n disponvel de maneira
transparente (PTANGA, 2003, p. 243). Dessa forma, para atingir um melhor
desempenho so utilizados algoritmos de balanceamento de carga para responder
dinamicamente as variaes que ocorreram durante o processo. Esses algoritmos
23
no possuem um nico controlador (n mestre) e ns escravos. Cada n mestre
para os processos locais e escravos para os processos remotos vindos de outros
ns do cluster. Assim, pode ser removido ou acrescentado mquinas do mesmo a
qualquer momento, com mnimo distrbio do sistema (PTANGA, 2003).
No openMosix operaes so totalmente transparentes para as
aplicaes, [...] voc no precisa conhecer onde seus processos
esto sendo executados, nem se preocupar com que os outros
usurios esto fazendo na rede [...] em pouco tempo depois de iniciar
os processos, eles so enviados para um melhor computador da
rede (PTANGA, 2003, p. 244).
Essa caracterstica interessante, pois ao iniciar um processamento no cluster, o
openMosix separa o processamento aos ns de forma equilibrada de acordo com o
poder computacional de cada componente, ou seja, o melhor computador receber
mais processos, e conforme for sendo adicionados processos, o sistema monitora os
novos processos e os movimenta pelos computadores com pouca carga de trabalho.
nfelizmente o projeto do openMosix foi abandonado devido a alguns fatores, dentre
eles: falta de estmulo para continuar o projeto; "acreditar que processadores com
mltiplos ncleos so o futuro da supercomputao e tornar obsoleto o processo
clusterin"- diz Moshe Bar (fundador e lder do projeto openMosix). no acreditar
mais no conceito de cluster puramente SS magem nica do Sistema (ULBRCH,
2007).
3.2.1 Al.'"%*'s #! C'*&$"%l+$*!(' #! R!-u"s's
Nos sub-tpicos a seguir so apresentados os algoritmos que realizam o
24
compartilhamento dos recursos.
'(/()() $alanceamento Din0mico e Car"a
"O algoritmo de balanceamento de carga tenta reduzir a diferena de carga entre
pares de ns, migrando os processos de um n muito sobrecarregado para um n
com mais recursos disponveis no cluster (PTANGA, 2003, p. 248). Este algoritmo
descentralizado, ou seja, cada membro do cluster executa o mesmo algoritmo, onde
cada par de nodos tenta diminuir as diferenas de processamentos existentes entre
eles de forma totalmente independente e transparente (PTANGA, 2003).
"O nmero de processadores e a velocidade de cada n so importantes para o
perfeito funcionamento deste algoritmo e so as opes principais para o
compartilhamento de recursos (PTANGA, 2003, p. 248). Este algoritmo executa o
balanceamento de carga atravs das informaes enviadas pelos nodos sobre os
processos que esto em tempo de execuo, ou seja, os nodos enviam as suas
informaes a cada 1 segundo sobre a memria livre, utilizao, velocidade, carga
de CPU e a tabela de processos livres/abertos (PTANGA, 2003).
Exemplificando, se o sistema possuir um Pentium 2 e um Pentium 4, o algoritmo
descentralizado quem divulga a capacidade de memria e uso de CPU entre os
nodos que participam do cluster, dessa maneira revelando que o Pentium 4 melhor
do que o Pentium 2.
'(/()(/ Al"oritmo e Anuncia12o e Mem3ria
25
"Esse algoritmo usado para evitar o total esgotamento da memria. Seu objetivo
tentar ocupar toda a memria do cluster se possvel, evitando assim que ocorram
paginaes ou utilizao da memria virtual (PTANGA, 2003, p. 248). Esse
algoritmo entra em ao quando ocorre muita paginao devido falta de memria.
Dessa forma, o processo que est ocasionando a falta de memria migra para outro
componente do cluster que possua memria livre, independentemente de vir a
ocorrer desbalanceamento de carga (PTANGA, 2003).
Devido a esse problema de limitao de processos em determinados nodos, o
openMosix elaborou um novo algoritmo no qual ele seleciona em qual dos nodos o
processo pode executar (PTANGA, 2003).
O modelo matemtico baseado em um algoritmo de escalonamento
onde a lgica baseada na teoria da economia de mercado, que
determina um comparativo de preos para cada recurso. [...] O novo
algoritmo implementado no openMosix bem interessante porque
[...] baseado em princpios da economia e anlise de competitividade
(PTANGA, 2003, p. 248).
A idia chave converter o uso total dos diversos recursos heterogneos
(computadores com configuraes de harware diferentes) em um custo homogneo
(semelhante), dirigindo os processos ento para o local onde possui um menor custo
(PTANGA, 2003).
3.2.2 M%."$9:' P"!!*&%;$ #! P"'-!ss's
"A Migrao Preemptiva de Processos tem a capacidade de migrar qualquer
26
processo, a qualquer instante, para qualquer n do cluster. [...] Cada processo tem
[...] a sua mquina na qual o processo foi criado (PTANGA, 2003, p. 249). Cada
processo "pensa que est rodando na sua mquina local e todos os processos
compartilham o ambiente. Os processos que so migrados para outros ns podem
usar os recursos locais do novo n caso seja possvel, mas interagem com o
ambiente do usurio atravs da mquina em que o processo foi criado (PTANGA,
2003).
3.2.3 O&!(M's%7<IE5
O *penMosix4iew um gerenciador grfico [...]. Com essa aplicao
possvel gerenciar e ajustar os principais parmetros do cluster
como visualizao da carga de todos os ns do cluster, visualizao
de processos remotos em outros ns, executar ou transferir
processos para outros computadores que compem o cluster
(PTANGA, 2003, p. 265).
Ele um conjunto de ferramentas que tem a funo de administrar e monitorar o
cluster *penMosix.
'(/('() *penMosix4iew
Figura 1: Logotipo do OpenMosixview
27
A principal aplicao de administrao/monitoramento do openMosix (PTANGA,
2003). Ele permite a visualizao de desempenho do cluster. "Todas as partes so
acessveis pela janela principal da aplicao, todos os comandos do openMosix
podem ser executados pelo simples clicar do mouse (PTANGA, 2003, p. 266). O
openMosix4iew uma interface grfica simples de se manusear, composto por
painis, barras de progresso, botes e nomes para cada n do cluster.
'(/('(/ *penMosixprocs
"Um box para gerenciamento de processos existentes no cluster (PTANGA, 2003,
p. 266). Ele mostra quais os processos que migraram e para onde foram, entre
outros dados.
'(/('(' *penMosixcollector
"Coleta informaes dos ns do cluster atravs de um processo aemons para
gerao de lo"s do sistema (PTANGA, 2003, p. 266). O openMosixcollector "
utilizado pelo analisador de logs denominado openMosixAnal56er, que faz uma
avaliao ininterrupta da carga, memria e processos do cluster (PTANGA, 2003,
p. 274). Reinicia a cada 12 horas e salva o histrico do sistema.
'(/('(7 *penMosixanal56er
"Utilizado para a anlise dos dados coletados pelo openMosixcollector (PTANGA,
2003, p. 266). Ela demonstra, por meio de grficos estatsticos, um histrico da
28
operacionalidade do nosso cluster.
'(/('(8 *penMosixhistor5
"Histrico dos processos no nosso cluster (PTANGA, 2003, p. 266). Ele possui a
capacidade de listar um conjunto de processos executados anteriormente
(PTANGA, 2003).
'(/('(9 *penMosixmi"mon
"Usado para monitoramento de processos migrados (PTANGA, 2003, p. 266). O
openMosixmi"mon "um monitor para migraes efetuadas pelo seu cluster
openMosix (PTANGA, 2003, p. 277).
29
, PLANE=AMENTO E REQUISITOS
Na seo 4.1 define-se o planejamento de uma topologia a ser implantada no
sistema. Na seo 4.2 aborda-se sobre os requisitos de harware. O tpico 4.3
apresenta os requisitos de software.
4.1 PLANEJAMENTO DO SSTEMA
Um cluster requer no mnimo 2 mquinas conectadas em rede de interconexo, via
cabo cross,o4er, hub ou switch( Dessa forma, foi optado pela utilizao de um switch
por oferecer melhor performance ao sistema.
Antes de comear a realizar as configuraes do cluster, planeja-se quantos nodos
que o sistema obter. Para comprovar a eficincia do cluster openMosix e obter um
alto poder de processamento, decidiu-se utilizar 9 computadores e 1 switch para
interlig-los, conforme segue a figura a seguir realizada no Pac&et Tracer.
30
O ambiente a ser desenvolvido o cluster essencial para o correto funcionamento
do mesmo. Se o sistema possuir muitas mquinas, a garagem de uma casa no
seria a melhor opo para o desenvolvimento do mesmo. Ento necessrio um
local onde tenha um bom suporte ar-condicionado, por exemplo, para manter a
temperatura ideal e constante.
Figura 2: Topologia do cluster
31
4.2 REQUSTOS DE HARDWARE
O SENA de Jaragu do Sul disponibilizou o laboratrio B216, onde foram utilizados
8 microcomputadores com processador ntel Celeron; 2.4 Ghz; 1GB de memria
RAM e 1 microcomputador com processador ntel Celeron; 2.4 Ghz; 512 MB de
memria RAM. Placas de rede devidamente configuradas. Tambm se utilizou 1
switch Cisco Catalyst 2950.
4.3 REQUSTOS DE SOFTWARE
O sistema em questo necessita de um CD de instalao do sistema operacional
clusterKnoppix 3.6, que contm o &ernel 2.4.27 e a ferramenta openMosix j
integrada ao sistema.
32
/ CONFIGURAO DO CLUSTER
A configurao do cluster se divide em 2 etapas: instalao do sistema operacional
nos membros do cluster e as ferramentas do openMosix( A seguir esto dispostas as
configuraes do mesmo.
5.1 NSTALAO DO SSTEMA OPERACONAL
nicialmente insere-se o CD de instalao do ClusterKnoppix 3.6 na unidade de CD-
ROM e reinicia-se o computador. Ao iniciar, se pressiona a tecla enter para iniciar o
processo de inicializao automtica do Linux. Repete-se os mesmos procedimentos
nos demais computadores. Nesse instante, o ClusterKnoppix j est com o
openMosix ativo e, ao mesmo tempo, j reconheceu automaticamente os nodos
interligados via rede a ele. A seguir, apresenta-se a imagem que caracteriza a rea
de trabalho do sistema operacional ClusterKnoppix.
33
5.2 FERRAMENTAS DO OPENMOSX
Ao instalar o sistema operacional ClusterKnoppix aos membros do cluster, j
possvel manusear as ferramentas do openMosix que administram o mesmo. O
openMosix disponibiliza interfaces grficas para a realizao desses processos,
dessa forma no necessrio realizar a administrao atravs de linhas de
comando, tornando o sistema mais fcil e intuitivo. Nos sub-tpicos a seguir,
Figura 3: rea de Trabalho: ClusterKnoppix
34
apresentam-se as principais ferramentas grficas do openMosix e suas funes.
/.2.1 O&!(M's%7;%!> ? <%s:' #' '&!(M's%7
Como citado anteriormente, essa a principal ferramenta grfica do openMosix.
Para inici-la, seleciona-se a opo openMosix4iew (como exibe a figura 3),
apresentada na barra de ferramentas do sistema operacional ou atravs da console
do ClusterKnoppix, executando o seguinte comando:
openmosixview
Quadro 1: Comando para ativao da ferramenta principal
A partir deste momento a interface grfica do openMosix4iew ser aberta e o usurio
j pode observar os membros do cluster em funcionamento, como exibido na figura
4.
Figura 4: Tela nicial do OpenMosixview
35
Como pode ser observado claramente na figura 4, todos os 9 membros, como citado
no planejamento, do cluster se encontram na aplicao. A primeira coluna da
aplicao apresenta o D de cada componente do mesmo. A luz em plano de fundo
indica o estado em que se encontra o nodo, se estiver verde significa que o n est
operativo, entretanto se a luz for vermelha, o n est com alguma falha ou j foi
desligado.
A segunda coluna exibe os endereos P configurados em cada componente. Ao
clicar sobre um dos botes que mostram o P, uma tela de configurao de dilogo
do componente aparecer, como mostra a figura 5. Na seo 4.4.4.2, se explica a
utilidade desta janela.
Retornando a aplicao principal, a terceira coluna apresenta uma barra de
progresso chamada :loa,balancin" efficienc5-, que um indicador da eficincia do
algoritmo de balanceamento de carga no sistema, ou seja, se o valor estiver prximo
a 100% indica que a carga computacional est dividida equivalentemente entre
todos os membros do cluster. Na mesma coluna, se observa um boto deslizante
para cada componente. Nele pode ser estabelecida a velocidade que o cluster
considerar para cada nodo do mesmo. Ao lado da barra de balanceamento de
carga, mostrada numericamente, em um painel no formato LCD, a velocidade atual
do n.
Ao lado apresentam-se as barras de "o4erall loa que exibem o estado geral da
carga em cada n membro do cluster. Ela designada para a carga do processador
e mostra uma porcentagem aproximada em cada n e mais acima da carga global.
A prxima barra de progressos, denominada :o4erall use memor5-, projetada
para demonstrar em porcentagem - a memria utilizada em cada nodo. A barra
36
que contm o D all apresenta o uso de memria global de acordo com a memria
disponvel dos hosts.
No canto direito da aplicao, existem 2 boxes( O primeiro, denominado "all
memor5-, exibe o nmero total, em me"ab5tes, de memria que o cluster possui e a
memria que cada membro disponibiliza. O segundo, denominado :all cpu-, mostra
o nmero de nodos que o cluster possui.
/.2.2 O&!(M's%7@-'(A%.u"$%'( ? =$(!l$ #! C'(A%.u"$9:'
Como abordado anteriormente, ao clicar em algum boto que exibe o nmero P do
host, uma nova tela ser apresentada, e nela podem ser modificadas facilmente as
configuraes do mesmo, onde todos os comandos executados nos hosts remotos
so via ssh ou rsh( A figura 5 apresenta a janela de configurao.
37
Como pode ser observado na primeira linha da interface, o box apresenta o
endereo P selecionado. Neste caso foram selecionados todos os nodos do cluster,
com o intuito de acelerar a configurao do mesmo, pois a configurao
semelhante em todos os membros do sistema. Para isso pressiona-se na interface
principal do openMosix4iew o boto :all,noes-. A segunda linha, denominada :auto,
mi"ration-, apresenta dois botes :on- e :off- que tem a finalidade de autorizar a
migrao automtica dos processos, ou seja, se o boto :on- estiver pressionado os
nodos deixam seus processos serem migrados a outros nodos de forma automtica.
Neste caso, deixa-se a opo :on- ativada. A seguir apresentada a opo :tal& to
other noes- que tem a funo de conversar com os outros membros do cluster.
Assim, habilita-se essa opo clicando em :5es-. A prxima linha exibe o :local procs
sta5-, ou seja, pergunta se os processos locais devem permanecer na mquina
selecionada. Seleciona-se :no- neste momento para que os processos locais sejam
Figura 5: Janela de Configurao
38
migrados aos demais nodos. A linha seguinte, denominada :sen awa5 "uest procs-,
interroga se os processos vindos de outro membro devem ser mandados embora.
Nessa linha escolhe-se a opo :no- novamente. A seguir pressiona-se "start- para
ativar as opes anteriores e aperta-se "appl5- para aplic-las. Selecionando a
opo :remote,proc box-, ser aberto o openMosixprocs remoto onde podem ser
gerenciados os programas.
/.2.3 O&!(M's%7*%.*'( ? M'(%'" #! M%."$9B!s
O openMosixmi"mon uma ferramenta muito til para monitorar as migraes do
sistema. Para inici-la seleciona-se a opo openMosixmi"mon na interface do
openMosix4iew ou atravs da console do ClusterKnoppix executa-se o seguinte
comando:
openmosixmigmon
Quadro 2: Comando para ativao do openMosixmigmon
Por conseguinte, a interface do openMosixmi"mon ser exibida, conforme
demonstra a figura 6.
39
Como pode ser observado na figura 6, o openMosixmi"mon mostra cada n do
cluster com um pingim e o D do mesmo. Os nodos que esto participando da
migrao de processos so envoltos por um crculo, em que cada circunferncia
corresponde a um nodo.
Figura 6: OpenMosixmigmon
40
O crculo central corresponde ao n que est executando e cada quadrado preto
envolta dele corresponde a um processo.
O processo que migra para outro nodo apresenta colorao verde. Pode ser
observada a origem do processo at a mquina que est executando o mesmo
atravs de uma linha pontilhada saindo do crculo central e indo parar no crculo do
host de destino.
Se passar o mouse por cima de um processo, este mostra o seu PD com o
processo que est sendo executado. O programa disponibiliza a filosofia "arrastar e
soltar, ou seja, o usurio pode movimentar um processo de um nodo a outro com o
simples movimento do mouse.
/.2., O&!(M's%7&"'-s ? G!"!(-%$#'" #! P"'-!ss's
O openMosixprocs uma ferramenta de grande utilidade, pois ela que gerencia os
PIDs (Processos Unificados) dos ns do cluster e possibilita o usurio a verificar os
mesmos. Existem duas possibilidades de abrir a interface do gerenciador de
processos: uma atravs da tela do openMosix4iew; a outra atravs da console
executando o seguinte comando:
openmosixprocs
Quadro 3: Comando para ativao do openMosixprocs
Nesse instante, a janela do openMosixprocs ser acionada, como pode ser
observada na figura 7.
41
Como exibido na figura 7, a coluna nomeada :pi- exibe os processos que esto em
execuo. Os processos que foram migrados esto simbolizados com a cor verde, j
os processos que no podem ser migrados so identificados com um cone de
fechadura. A segunda coluna, denominada :n;-, apresenta o nodo que est
Figura 7: OpenMosixprocs
42
executando o processo. Se estiver estabelecido o nmero 0, o processo local,
entretanto se estiver com qualquer outro valor os processos so remotos.
A caixa de seleo bem ao topo da janela, cujo nome :processes-, tem a funo de
determinar os processos a serem exibidos, por exemplo, se estiver selecionado all
todos os processos na mquina sero listados.
O boto denominado :mana"e procs from remote-, ao ser selecionado, exibe uma
nova janela informando todos os processos atualmente migrados para o host local
vindos de outros membros do cluster. A figura 8 exibe o gerenciador de processos
remotos
Como pode ser observados na figura 8, os processos so divididos por abas.
Selecionado uma delas, apresentado o nodo pertencente a ela e seu P. O boto
:"oto home noe- ao ser clicado, direciona o processo ao host de origem. O
segundo boto denominado :"oto best noe-, movimenta o processo para o melhor
Figura 8: Gerenciados de Processos Remotos
43
nodo componente do cluster.
Retornando ao openMosixprocs, se o usurio clicar duas vezes sobre um dos
processos do mesmo, uma nova janela ser exibida identificada como janela de
migrao, como pode ser observada na figura 9.
A janela de migrao exibe todos os ns componentes do cluster. No canto direito
existem diversos botes com suas determinadas funes. O boto denominado
:home-, direciona o processo ao host de origem do mesmo. O boto chamado :best-
encaminha o processo ao melhor nodo do cluster( O :loc&- tem a funo de "trancar
Figura 9: Janela de Migrao
44
o processo, e para desativ-lo simplesmente pressiona-se o :unloc&-( Pressionando
:pilo"-, uma nova janela exibida com os dados do processo. Os botes :si"stop-
e :si"cont- param por certo momento o processo e o reinicia, respectivamente.
Selecionando :&ill-, o processo ser excludo do :renice process- possvel alterar a
prioridade do processo movendo o boto deslizante, se moviment-lo negativamente
o processo obter maior prioridade, todavia se modificar o boto positivamente o
processo apresentar menor prioridade.
/.2./ O&!(M's%7-'ll!-'"
Esta ferramenta tem a funo de criar o lo" com a carga de cada componente do
cluster e iniciada automaticamente no ClusterKnoppix( Esse lo" utilizado pelo
openMosixanal56er que elabora um grfico atravs deles. Ele reinicia
automaticamente a cada 12 horas e salva os seus histricos que automaticamente
so finalizados, e talvez no futuro possam ser utilizados.
/.2.0 O&!(M's%7$($lC2!"
O openMosixanal56er elabora um grfico de acordo com os lo"s capturados do
openMosixcollector( Ele pode ser acionado atravs da interface do openMosx4iew,
como tambm pela console atravs do comando:
45
openmosixanalyzer
Quadro 4: Comando para ativao do openMosixanalyzer
Ao ser acionado o comando, uma nova janela ser exibida demonstrando o grfico
elaborado. A figura 10 apresenta o openMosixanal56er(
Como pode ser analisado na figura 10, o openMosixanal56er elabora um grfico da
avaliao de carga de cada n e de todos em conjunto. Clicando duas vezes sobre
um dos grficos, uma nova janela exibida divulgando uma estatstica sobre cada
Figura 10: OpenMosixanalyzer
46
n do cluster conforme segue a figura 11.
/.2.7 O&!(M's%7+%s'"C
O openMosixhistor5 registra todos os processos que foram executados
anteriormente. Ele pode ser executado atravs da console do ClusterKnoppix pelo
seguinte comando:
openmosixhistory
Quadro 5: Comando para ativao do openMosixhistory
Nesse instante, a interface do openMosixhistor5 ser aberta conforme segue a figura
12.
Figura 11: OpenMosixanalyzer: estatstica dos nodos
47
A interface do openMosixhistor5 apresenta no canto superior um box, cujo nome
:time-, onde apresenta-se o tempo em que foi executado o processo exibido na tela.
Para exibir outros processos, foi projetada a barra deslizante que apresenta os
mesmos com seus tempos.
Figura 12: OpenMosixhistory
48
0 COMUNICAO
Para ter a certeza de que todas as mquinas esto em funcionamento e se
comunicando, foi realizado um pequeno teste para ver os processos sendo migrados
de forma automtica. Primeiramente foi criado um pequeno script em bash que gera
nmeros at 10000. O comando elaborado foi o seguinte:
awk 'BEGIN {for (i=!i"#!i$$% for (&=!&"#!&$$%!''
Quadro 6: Script de teste de comunicao
Em seguida, aps ativar-se a permisso de execuo do arquivo, executam-se
vrias instncias do programa atravs do comando:
()teste(sh *
Quadro 7: Comando para execuo do script de teste de comunicao
O cluster openMosix no consegue quebrar a execuo do for, ele apenas consegue
migrar os processos para as mquinas adjacentes. O script elaborado gera apenas 1
processo, porm acionado, por exemplo 10 vezes, gera conseqentemente 10
processos. Dessa forma possvel observar atravs do openMosixmi"mon os
mesmos sendo migrados e assim comprovar que o cluster est em funcionamento.
Tambm possvel analisar, atravs do openMosix4iew, o balanceamento de carga
do cluster( A figura 13 exibe o openMosixmi"mon durante a execuo dos scripts
mostrando os processos sendo migrados aos demais nodos do sistema.
49
A figura 14 exibe o openMosix4iew em funcionamento durante a execuo dos
scripts informando o balanceamento de carga do sistema.
Figura 13: Teste de Comunicao: Migrao de
Processos
50
Figura 14: Teste de Comunicao: Balanceamento de Carga
51
7 TESTANDO A APLICAO NO OPENMOSID
Ao realizar os testes de comunicao para comprovar o funcionamento do cluster,
foi realizada a execuo de uma aplicao que gere vrios processos para se obter
uma comparao de tempo entre um nico elemento executando o mesmo e um
cluster em funcionamento. Os sub-tpicos a seguir descrevem esta etapa.
7.1 APLCAO UTLZADA
A aplicao utilizada para realizao dos testes foi um renderizador de imagens, cujo
nome denomina-se blener. O arquivo pode ser obtido atravs do site
<ftp://ftp.info.abril.com.br/222-blacksmith.tgz>. Entretanto, para a aplicao gerar
vrios processos fez-se necessrio a utilizao de um script que realize o mesmo,
pois o blender uma ferramenta grfica que tem a funo de apenas renderizar a
imagem, e utilizando o script, esse por ventura ser a ferramenta que dividir a
execuo em vrios processos para o cluster distribuir eles aos demais membros. O
script que realiza a diviso de processos exibido no quadro 8, ou tambm pode ser
obtido atravs do site: <ftp://ftp.info.abril.com.br/222-blender.gz>.
52
+,)-in)sh
if . /+ 0lt # 1! then
echo 2syntax3 ren4er -len4erscene startimage en4image no4es2
exit #
fi
BIN=)5sr)-in)-len4er + -len4er path
67N=/# + name of -len4er scene
8I9=:expr ;( /< 0 /= ;%: + no( of images to ren4er
>?N=:expr ;( /8I9 ) /@ ;%: + no( of images per no4e
AB?=:expr ;( /@ 0 # ;%: + loop co5nter
for i in :seC /AB?: ! 4o
BEG=:expr ;( /i ;D />?N ;% ;$ ;( /= $ # ;%:
EN8=:expr ;( /i ;$ # ;% ;D />?N ;$ /=:
/BIN 0- /67N 0s /BEG 0e /EN8 0a E )4ev)n5ll =E )4ev)n5ll *
4one
echo 2 2
echo 2>en4ering2 /8I9 2images from2 /# 2on2 /@ 2no4es(2
echo 2Fasks forke4G network ren4ering in progress(2
echo 0n 2Ho- starte4 at3 2 ! 4ate '$I40Im0Iy IJ3IK3I6'
echo 2?lease wait while ren4ering(((2
wait
echo 2>en4ering s5ccessf5lly finishe4(2
echo 0n 2Ho- en4e4 at3 2 ! 4ate '$I40Im0Iy IJ3IK3I6'
echo 2 2
Quadro 8: Script para renderizao de imagens
53
Em seguida, aps ativar a permisso de execuo do script, executa-se o mesmo
atravs do comando:
ren4er -lacksmith0&peg(-len4 # =<L N
Quadro 9: Comando para execuo da renderizao de imagens no blender
Atravs desse comando acionada a execuo da renderizao de imagens, onde
blacksmith-jpeg.blend o nome do arquivo que ser feita a execuo, 1 o n de
vezes em que sero feitas as renderizaes das imagens, 235 o n de imagens
que sero renderizadas e N o nmero de processos que o usurio deseja que
sejam originadas a partir da renderizao.
7.2 RESULTADOS DAS COMPARAES
A comparao foi realizada de duas maneiras. A primeira foi renderizar as imagens
com diferentes nmeros de nodos no cluster. A segunda foi renderizar as imagens
com 9 nodos no cluster, porm com diferentes nmeros de processos. Nos sub-
tpicos a seguir so apresentadas as configuraes e resultados dos mesmos.
7.2.1 R!(#!"%2$9:' -'* (E*!"' %.u$%s #! &"'-!ss's ! ('#'s
Para realizar esta comparao foi ordenado um padro de processos de acordo com
54
o nmero de ns, ou seja, se o cluster conter 4 nodos, a letra N apresentada no
quadro 9 ser substituda por 4. Dessa forma foram realizadas 3 baterias de testes,
a primeira com apenas 1 computador, a segunda com 4 e a terceira com 9. Ao
acionar a aplicao em 1 nodo, o tempo de renderizao de imagem durou 16m20s,
conforme apresentado na figura 15.
Em seguida foi acionado a renderizao de imagens contendo 4 ns no cluster( O
tempo de execuo durou 6m30s conforme segue na figura 16:
Figura 15: Renderizao de imagens em 1 computador
55
Aps o trmino da renderizao em 4 ns, foi realizada o mesmo em 9 componentes
do cluster( Durante a execuo possvel observar o comportamento dos ns
durante a renderizao conforme segue na figura 17:
Figura 16: Renderizao de imagens em 4 ns
56
possvel tambm observar o balanceamento de carga atravs do openMosix4iew,
conforme segue na figura 18:
Figura 17: Comportamento dos ns durante a renderizao
57
Aps o trmino da renderizao nos 9 nodos, o tempo obtido foi de 2m58s conforme
segue na figura 19:
Aps esses procedimentos, foi realizado mais uma sesso de testes utilizando a
mesma aplicao em 1, 4 e 9 computadores, obtendo dessa forma 15m42s, 7m15s
e 2m36s, respectivamente. O quadro 10 apresenta os resultados obtidos e a mdia
de acordo com o mesmo.
Figura 18: Balanceamento de carga durante a renderizao
Figura 19: Renderizao de imagens em 9 ns
58
Nmero de Ns Teste 1 (segundos) Teste 2 (segundos) Mdia (segundos)
1 980 942 961
4 390 435 412
9 178 156 167
Quadro 10: Tempo de renderizao com n de processos iguais ao n de ns
Na figura 20 possvel observar um grfico que apresenta a relao entre o tempo e
o nmero de ns de forma mais clara.
Dessa forma, possvel comprovar a eficincia do cluster reduzindo o tempo da
renderizao em aproximadamente 82% ao ser acionado em 9 membros do cluster.
Figura 20: Relao Tempo X Nmero de Ns
59
7.2.2 R!(#!"%2$9:' !* 6 ('#'s -'* (E*!"' #! &"'-!ss's #%A!"!(!s
Nesta etapa, foi utilizado 9 ns em todos os testes, porm o nmero de processos
foi diferenciado. Dessa forma foi acionado 9, 15 e 30 processos para a realizao
dos devidos testes. Para estipular o nmero de processos a serem originados
durante a renderizao, foi substituda a letra N apresentada no quadro 9, pelo
nmero de processos, ou seja, se o usurio desejar 15 processos a letra N trocada
pelo nmero 15.
Em todas as baterias de testes, foi observado o comportamento dos ns e o
balanceamento de carga entre eles, a figura 21 apresenta a migrao de processos
durante a renderizao de imagens com 30 processos criados.
60
Aps o trmino da realizao dos testes, foram obtidos diferentes tempos na
renderizao, conforme apresentado no quadro 11.
N de processos Teste 1 (segundos) Teste 2 (segundos) Mdia (segundos)
9 178 156 167
15 158 164 161
30 420 394 407
Quadro 11: Tempo de renderizao em 9 ns com diferentes n de processos
Na figura 22, possvel observar a diferena que houve entre os diferentes nmeros
Figura 21: openMosixmigmon com 9 ns e 30 processos
61
de processos.
possvel observar que ao executar o script com 9 e 15 processos, o tempo fica
praticamente constante, porm ao acion-lo com 30 processos, o mesmo tem um
avano retardativo, chegando a ficar aproximadamente 40% mais lento do que com
os demais nmeros de processos. sso se deve ao fato de que ao executar o script
para iniciar a renderizao das imagens, o programa executado apenas em 1 n
ficando totalmente sobrecarregado como exibe a figura 23.
Figura 22: Relao Tempo X Nmero de Processos
62
Durante esse momento o script est sendo executado e "quebrando a aplicao em
diversos processos de acordo com o solicitado no comando. Dessa forma para
"quebrar a aplicao, por exemplo em 9 processos, o computador que executou a
aplicao leva um curto espao de tempo e assim os processos j podem ser
migrados aos demais membros do cluster. Entretanto, ao executar o mesmo e dividi-
lo em 30 processos, o computador mestre leva um espao maior de tempo em
relao a 9 processos, com isso o tempo de renderizao acaba sendo maior. Neste
caso, para obter a melhor performance o correto seria configurar o nmero de
processos de acordo com o nmero de membros includos no cluster, pois dessa
maneira todos os ns que compem o cluster participam da execuo num espao
menor de tempo.
Figura 23: N sobrecarregado ao executar o script
63
7.3 PONTOS DE FALHA
Para realizar os testes de pontos de falha, foi executado novamente no cluster o
comando para iniciar a renderizao de imagens, no qual pode ser observado no
quadro 9. Por conseguinte, a aplicao est em perfeita execuo como demonstra
a figura 24.
Durante a renderizao das imagens, um dos nodos foi desconectado para testar o
funcionamento da aplicao, conforme segue na figura 25.
Figura 24: Aplicao funcionando normalmente
64
Porm, ao ser desconectado o nodo da aplicao, a ferramente openMosixmi"mon
acabava "travando e dava pra se observar ainda os processos sendo migrados para
o nodo que havia sido desconectado anteriormente, dessa forma a aplicao nunca
terminava, conforme segue na figura 26.
Figura 25: OpenMosixview com um n desconectado
65
sso se deve ao fato do openMosix no possuir funes chec&point, ou seja, ele no
possui mecanismos de tolerncia a falhas onde so comumente encontrados em
cluster de alta disponibilidade. Dessa forma se um dos ns falhar, todas as tarefas
iniciadas nesse n e os que foram migrados sero perdidos. Se um dos ns for
paralisado por exemplo pelo comando shutown, os processos remotos que se
encontram nessa mquina retornaram ao seu host de origem, e assim podem ser
migrados novamente a outro membro do cluster (PTANGA, 2003).
Figura 26: Aplicao "travada" aps o nodo ser desconectado
66
4 CONCLUSO
O cluster, tambm chamado de Clusterin", uma alternativa vivel para os
proprietrios com poucos recursos financeiros. Ela vantajosa pela relao
custo/desempenho, pois apresenta um baixo custo e um alto poder computacional
em relao a um supercomputador independente.
Diante de tudo isso, o cluster ainda proporciona caractersticas que o torna uma
alternativa para instituies de pequeno, mdio e at mesmo grande porte, dentre
elas destaca-se sua escalabilidade, por permitir que novos nodos sejam inseridos de
forma fcil e rpida, aumentando seu desempenho; custo reduzido, como j citado
anteriormente e a independncia dos fornecedores, por utilizar computadores
comuns, facilitando a sua manuteno por no utilizar uma tecnologia muito
complexa.
Como pode ser observado nos testes realizados, o openMosix uma ferramenta de
grande utilidade e que cumpre a maioria das exigncias que lhe so atribudas, alm
de ser uma ferramenta gratuita. Como ela j vem implantada ao sistema operacional
ClusterKnoppix, que foi projetado exclusivamente para esta funo, a utilizao do
openMosix se torna mais intuitiva e rpida de ser implementada, pois a maioria de
suas configuraes realizada antecipadamente pelo prprio ClusterKnoppix(
67
REFERFNCIAS
ALECRM, Emerson. Clus!"G principais conceitos. Disponvel em:
<http://www.infowester.com/cluster.php>. Acesso em: 11 ago. 2008.
BECHER, Marcelo Renan. M'($.!* #! u* A*)%!(! #! Clus!" Us$(#'
S'A>$"! L%;"!G Uma Abordagem aos Clusters de Alta Disponibilidade. Disponvel
em: <http://www.cesarkallas.net/arquivos/tutoriais/TD-MarceloBecher-2007-1.pdf>.
Acesso em 22 ago. 2008.
CAMPOS, Augusto. O Hu! I L%(u7. Disponvel em <http://br-linux.org/faq-linux>.
Acesso em: 23 ago. 2008.
CARDOSO, Fabian Corra; LEO, Gabriela Batista. S'lu9:' $' P"'-!ss$*!('
M$-%9' #! D$#'s ! L%*%! #$ F"!HJ3(-%$ #! Cl'-K -'* ' Us' #! A.l'*!"$#'
#! C'*&u$#'"!s &'" M!%' #$ L%)"%#%2$9:' #! u* Clus!" #! Al' D!s!*&!(+'
-'* u* #! B$l$(-!$*!(' #! C$".$. Disponvel em: <http://www.ulbra-
to.br/eventos/encoinfo2004/..%5C..%5Censino%5C43020%5CArtigos
%5CAnais2004%5CAnais%5CgabrielaLeaoClusterEncoinfo2004.pdf>. Acesso em:
19 ago. 2008.
MACHADO, Carlos. Clus!" -'* L%(u7 ($ *:'. nfo, So Paulo, n. 222. p. 104-
106, set. 2004.
MARCO, Leandro R. Magalhes de. C'*&u$9:' #! Al' #!s!*&!(+'G Clusters.
Disponvel em: <http://www.ic.unicamp.br/~ducatte/mo401/1s2006/T2/Todos-
Trabalhos.pdf>. Acesso em: 4 ago. 2008.
MATOS, Edval Piccolo de. TMCNICAS PARA CONSTRUO DE CLUSTERS DE
ALTO DESEMPENLO COM BAIDO CUSTO. So Paulo: Universidade So
Francisco, 2006.
MORMOTO, Carlos E. B"%(-$(#' #! -lus!". Disponvel em:
<http://www.guiadohardware.net/artigos/cluster/>. Acesso em: 11 ago. 2008.
NEVES, Marcelo V. et. Al. P$('"$*$ #! A!""$*!($s &$"$ .!"!(-%$*!(' #!
-lus!"s. Disponvel em: <http://www-usr.inf.ufsm.br/~schepke/mestrado/wsppd.pdf>
Acesso em: 19 ago. 2008.
OLVERA, Daniel Cndido de. D!s!(;'l;%*!(' #! Clus!" #! Al'
D!s!*&!(+'. Disponvel em: <http://www.ulbra-
to.br/ensino/43020/artigos/relatorios2004-2/Arquivos/Daniel_Estagio.pdf>. Acesso
em: 19 ago. 2008.
68
PERERA, N. A. S!";%9's #! &!"%(3(-%$ &$"$ -lus!"s #! $l$ #%s&'(%)%l%#$#!.
So Paulo: USP, 2004.
PNTO, Hudson J. Lamounier; SLVA, Michel Pires D; SLVERA, Gabriel Damaso D.
A*)%!(!s #! Al' D!s!*&!(+' u%l%2$(#' Clus!" #! C'*&u$#'"!s.
Disponvel em: <http://www.ericfernandes.pro.br/images/5/5d/Ha3.pdf>. Acesso em:
19 ago. 2008.
PTANGA, Marcos. COMPUTAO EM CLUSTERG Construindo
Supercomputadores com Linux. Rio de Janeiro, Brasport, 2003.
ROCHA, Lidiane L. D. Clus!"sG Viso Geral. Disponvel em:
<http://www.cesmic.ucb.br/documentacao/producaocientifica/artigostutoriais/cluster_
vg.pdf>. Acesso em: 11 ago. 2008.
ROCHA, J. M. G. Clus!" B!'>ulAG Aspectos de projeto e implementao. Belm:
UFPA, 2003.
ULBRCH, Henrique Cesar. G!"!(-%$#'" #! Clus!"s L%(u7N '&!(M's%7N s!"O
#!s-'(%(u$#'. Disponvel em: <http://magnet.pro.br/mercado/gerenciador-de-
clusters-linux-openmosix-sera-descontinuado>. Acesso em: 8 nov. 2008
WEBER, Taisy Silva. T'l!"1(-%$ $ A$l+$sG conceitos e exemplos. Disponvel em:
<http://www.inf.ufrgs.br/~taisy/disciplinas/textos/ConceitosDependabilidade.PDF>.
Acesso em: 22 ago. 2008.

You might also like