Veja como transformar aqueles micros "relíquias" numa poderosa máquina de processamento usando GNU/Linux. Nesse artigo abordaremos a instalação de um cluster baseado no OpenMosix.
Esse utilitário desenvolvido pelo projeto OpenMosix
permite ver quais computadores estão usando os recursos,
quais nodes estão com processo migrado.
Para baixar o aplicativo, entre no site www.openmosixview.com, faça download do source-code e instale:
# tar xvfz openmosixview-1.5.tar.gz
# cd openmosixview-1.5
# ./setup
# make
# make install
Após instalado, execute o programa no X:
# openmosixview
Nessa janela existe um utilitário de configuração necessário
para que o serviço funcione corretamente, ele deve ser
utilizado em todos os computadores. Clique no botão "all-nodes",
surgirá uma outra janela de configuração, deixe ela dessa maneira:
Auto-migration ON
Talk to others nodes YES
Local procs stay NO
Send away guest procs NO
Start/Stop Start
Selecione Apply. Na barra de ferramentas, selecione a opção
"Collector", clique nela e no menu escolha "OpenMosixcollector"
e "start". Ele é responsável pelo log do programa e precisa
estar ativado.
Testando
Para testar você pode utilizar programas como o o povray
para renderizar imagens entre outros programas que você encontra em:
[2] Comentário enviado por vodooo em 08/01/2005 - 12:44h
Estou com uma dúvida, se eu tiver, por exemplo, dois PC com processador Pentium 133 e liga-los em cluster, o sistema ficaria com uma performance parecida com a de um Pentium 266?
[3] Comentário enviado por wronieri em 08/01/2005 - 13:45h
Legal o artigo parabéns, no caso do OpenMosix pelo que me parece ele soh utiliza as outras máquinas quando a máquina do processo startado não aguentar o processamento ai ele distribui para as outras (me corrijam se estiver errado) mas o único problema que vejo no OpenMosix é q se uma máquina por algum motivo parar a parte do processo da mesma se perde gerando erros.
[8] Comentário enviado por pitanga em 09/01/2005 - 21:15h
Caro Vodoo,
A principal característica desse modelo de cluster é a utilização do método de migração de processos, em que se equilibra a carga entre as máquinas de modo que se consiga rodar mais processos do que normalmente conseguiria com uma só cpu, beneficiando assim os aplicativos que usam muitos processos independentes, caso comum a diversos aplicativos encontrados em ambientes Unix.
A Migração Preemptiva de Processos é capaz de migrar qualquer processo do usuário, em qualquer instante e para qualquer nó disponível de maneira transparente. Para atingir um melhor desempenho esse é controlado por algoritmos de balanceamento dinâmico de carga e de prevenção contra falta de memória. Esses algoritmos são projetados para responder dinamicamente as variações da utilização dos recursos nos diversos nós. Isto garante que o cluster se comporte muito bem, seja numa configuração com poucas ou com muitas máquinas, propiciando uma maior escalabilidade.
Esses algoritmos são descentralizados, ou seja, não existe a figura de controlador mestre e nós escravos como no cluster Beowulf da NASA. Cada nó é um mestre para os processos que são criados localmente, e um escravo para processos remotos migrados de outros nós do cluster. Isto significa que podemos acrescentar ou remover as máquinas do cluster a qualquer momento, com um mínimo de distúrbio no sistema. Este cluster possui também algoritmos de monitoramento que identificam a velocidade de cada nó, a carga da CPU e a memória livre disponível, como também a comunicação interprocessos IPC e a velocidade de acesso de cada processo.
Portanto, seu Pentium 133 não vira 266.
[]´s
Marcos Pitanga
Linux Clusters Specialist
HA + HPC + SLB
[9] Comentário enviado por jasenger em 09/01/2005 - 23:15h
Um bom modo de testar a migração de processos é executar a seguinte linha de comando e acompanhar com o openmosixview:
# awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}'
Abraço
Jorge
[11] Comentário enviado por pop_lamen em 12/01/2005 - 03:28h
Legal, mas faltou explicar o que exatamente esta sendo feito...
Não sakei mto bem.. o que exatamente foi feito com a maquina?
foi agregada a um cluster? em conjunto com outras maquinas?
Sei lá
A parte técnica ficou mto boa, mas a teorica ....
Mas mesmo assim parabéns cara!
É isso aIH!
T+!
[13] Comentário enviado por pitanga em 16/01/2005 - 14:18h
Acho que têm que haver uma boa dosagem de teoria e prática, visto que, implementar sem saber o que é, não é nenhuma vantagem para um profissional de TI.
[14] Comentário enviado por marcioseptimio em 24/08/2008 - 11:17h
Seria interessante tratar tecnicamente e teoricamente de forma simples e objetiva dos trabalhos de paralelismo que ocorrem em clusters usando o OpenMosix.
O que sao com certeza diferentes do sistema de escalonamento distribuido que o nosso querido Beowulf utiliza. Mas estou trabalhando em um sistema, que, teoricamente deveria se aproximar um pouco do Beowulf em termos de escalonamento, mas pretendo criar todas as possibilidades para que o algoritmo se torne simples em sua integridade.
Bom, como nosso amigo Pitanga disse, realmente o OpenMosix nao vai gerar tantos Gigaflops como muitos desejam..rs Mas... Isso tudo depende de implementacao, gente, estamos no mundo open, nao fiquem presos a esquemas prontos de outros usuarios, isso aqui so e opensource se a gente correr atras, vamos implementar e melhorar o que ja tem e criar novas tecnicas, eu mesmo me comprometo a explorar ao maximo o sistema do openmosix e assim que tiver um projeto bom e bem elaborado vou postar aqui para que outros usuarios tenham ideias legais.
Estou construindo um projeto de escalonamento, vou tentar usar o openmosix primeiro para obter o maximo de performance, mas pode ser que nao consiga chegar ao esperado.
O que eu desejo? Um sistema que seja bom em escalonamento tanto para servidor de BD, como um Oracle por exemplo quanto um sistema que possa prover servicos de internet, seguranca e um excelente servidor de jogos online como LineAge2, WOW, Cabalonline, CS, etc...
Para essas variabilidades pretendo criar alternativas de configuracao, mas sei que isso demanda tempo e muito estudo e trabalho, como nao sou tao experiente assim, tenho aqui comigo uns 238947397498237489723 livros e uns 1983748237497 tutoriais para ler e analisar e muuuuuuuuuuuuitaaaaaaaaaaaa disposicao para estudar e aprender.
Bom, pretendo abrir aqui nesse lindo forum, um espaco so para postagens relacionadas aos Clusters de forma geral.
Espero as vossas postagens...
[15] Comentário enviado por pitanga em 24/08/2008 - 20:39h
1o - O Beowulf utiliza paralelismo explícito. Se você necessitar particionar um grande cluster você faz uso de ferramentas apropriadas para tal como openPBS-Pro, Slurm, Torque, etc... Você poderá acoplar ao Torque e PBS outros métodos de escalonamento de jobs como o MAUI.
2o - A filosofia do "finado" openMosix é balanceamento descentralizado de processos par-a-par.
3o - O openMosix já usa um algoritmos baseado no "market" para escolha da melhor máquina.
4o - O melhor método de implementação de sistemas de banco de dados do Oracle já está embutido na solução do RAC - Real Application Cluster e migrado para o produto 11G (Grid)
5o - Seria interessante você focar seu projeto no escalonamento de grids computacionais onde identificar um recurso disponível e agendá-lo, utilizá-lo e liberá-lo ainda é umas das tarefas das mais complicadas neste ambiente.
6o - Balanceamento de serviços de Internet já são executados via produtos como Radware Linkproof, Alteon, F5 - BigIP, LinuxVirtualServer, etc...
7o - Existem muitos poucos livros no mundo sobre clusters, tenho praticamente todos eles e não chega a quantidade citada por você ;-)