{"id":2300,"date":"2015-01-14T22:52:27","date_gmt":"2015-01-15T00:52:27","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=2300"},"modified":"2015-01-14T22:53:03","modified_gmt":"2015-01-15T00:53:03","slug":"montagem-de-um-cluster-com-o-mosix","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=2300","title":{"rendered":"MONTAGEM DE UM CLUSTER COM O MOSIX"},"content":{"rendered":"<h1>INTRODU\u00c7\u00c3O<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<p>Esse trabalho \u00e9 parte de conclus\u00e3o do curso de especializa\u00e7\u00e3o em redes de computadores que tem 80 p\u00e1ginas, aqui estou postando apenas a montagem e teste (estudo de caso) e deixando de fora a parte te\u00f3rica por quest\u00f5es de espa\u00e7o. Foi documentado passo a passo a montagem do cluster com <em>Mosix<\/em>, possibilitando a montagem por pessoas com conhecimento b\u00e1sico em Linux.<\/p>\n<p>Durante esse estudo de caso ser\u00e1 montado um cluster do tipo load balancing com o Mosix e Linux usando a distribui\u00e7\u00e3o <em>Debian 6<\/em>(squeeze). Durante todo o processo ser\u00e1 explicado como instalar, configurar e testar.<\/p>\n<p>O maior desafio nesse trabalho foi implantar esse cluster com sistema operacional e softwares atualizados, o Debian 6 usa kernel 2.6, mas a ideia \u00e9 montar com vers\u00f5es mais recentes e por isso a vers\u00e3o do kernel em que o Mosix foi instalado foi a 3.0.13, isso garante um sistema atual e mais seguro.<\/p>\n<p>A maior parte da documenta\u00e7\u00e3o dispon\u00edvel usa vers\u00f5es antigas como kernel 2.4 e 2.6 e muitas vezes dif\u00edceis de conseguir os aplicativos e patchs necess\u00e1rios \u00e0 instala\u00e7\u00e3o, j\u00e1 que os reposit\u00f3rios n\u00e3o est\u00e3o mais dispon\u00edveis para downloads. Da\u00ed cada vez mais a necessidade de fazer o sistema com kernel e aplicativos atualizado e facilmente encontrados nos reposit\u00f3rios para download.<\/p>\n<p>Foi montada uma infraestrutura para a instala\u00e7\u00e3o do cluster usando tr\u00eas desktops, um notebook e um switch fabricado pela Cisco de 100Mbps para conectar esses computadores na rede LAN.<\/p>\n<p><!--more--><\/p>\n<h1>EQUIPAMENTOS DE HARDWARE USADO PARA O CLUSTER<\/h1>\n<p>O cluster foi instalado em 3 computadores PC f\u00edsicos, sendo que em um desses foram instaladas duas (2) m\u00e1quinas virtuais para facilitar na documenta\u00e7\u00e3o e retirada dos prints (telas). Esses computadores tem configura\u00e7\u00f5es distintas, incluindo desktop Pentium 4, Desktop i5 (rodando 2 m\u00e1quinas virtuais) e notebook core duo conforme a tabela 3.1, tudo conectado a um switch Cisco catalyst 2900XL de 100Mb\/s e cabos met\u00e1lico UTP CAT5e.<\/p>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/tabela-1.png\" alt=\"\" width=\"423\" height=\"234\" \/><\/div>\n<h1>CONFIGURA\u00c7\u00c3O DA REDE<\/h1>\n<p>Os computadores foram configurados com os seguintes IP est\u00e1ticos:<\/p>\n<ul>\n<li>PC 1: 192.168.1.200 M\u00e1scara: 255.255.255.0 (Desktop i5, Virtualizado)<\/li>\n<li>PC 2: 192.168.1.201 M\u00e1scara: 255.255.255.0 (Desktop i5, Virtualizado)<\/li>\n<li>PC 3: 192.168.1.202 M\u00e1scara: 255.255.255.0 (Notebook)<\/li>\n<li>PC 4: 192.168.1.203 M\u00e1scara: 255.255.255.0 (Pentium 4)<\/li>\n<\/ul>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/topologia-lan.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_topologia-lan.png\" alt=\"\" width=\"500\" height=\"246\" border=\"0\" \/><\/a><\/div>\n<p>Certifique se que os computadores est\u00e3o com os IPs corretamente configurados, use o comando &#8220;ifconfig&#8221; em cada computador conferindo assim suas configura\u00e7\u00f5es. Fa\u00e7a o teste de conectividade entre todos os computadores (nodes) que fazem parte do cluster, use o comando ping para se certificar que todos que est\u00e3o na rede tem conectividade.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>SISTEMA OPERACIONAL<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<p>Linux \u00e9 o sistema operacional mais usado para computa\u00e7\u00e3o distribu\u00edda, no site <a href=\"http:\/\/www.top500.org\/\" target=\"_blank\" rel=\"nofollow\">TOP 500<\/a> tem um ranking das distribui\u00e7\u00f5es de sistema operacional mais usado nos supercomputadores. O Linux corresponde aproximadamente \u00e0 90%, j\u00e1 que \u00e9 um sistema de c\u00f3digo aberto, o que torna extremamente flex\u00edvel \u00e0 adapta\u00e7\u00f5es e desenvolvimento de drivers de acordo com a necessidade do projeto.<\/p>\n<p>Nesse projeto optei pela ado\u00e7\u00e3o da distribui\u00e7\u00e3o <em>Debian 6<\/em> (squeeze) para computadores de 32bits, j\u00e1 que \u00e9 que \u00e9 uma distribui\u00e7\u00e3o muito est\u00e1vel e roda em computadores mais antigos, n\u00e3o exige muitos recursos de hardware como grades quantidades de mem\u00f3ria e processamento, o que a torna extremamente importante em um projeto com essa finalidade.<\/p>\n<p>Para fazer a instala\u00e7\u00e3o do cluster \u00e9 necess\u00e1rio fazer a instala\u00e7\u00e3o de alguns pacotes b\u00e1sicos. Nesse projeto tudo foi instalado e configurado com os mais recentes pacotes, com as vers\u00f5es atualizadas, j\u00e1 que a grande maioria dos documentos dispon\u00edveis s\u00e3o desatualizados, onde tanto os pacotes assim como os respectivos reposit\u00f3rios n\u00e3o existem mais.<\/p>\n<p>Da\u00ed o esfor\u00e7o de fazer a instala\u00e7\u00e3o desse cluster com <em>Mosix<\/em> com o que temos de mais atual em termos de vers\u00f5es de pacotes para o Debian. Essa instala\u00e7\u00e3o de pacotes e configura\u00e7\u00f5es s\u00e3o exatamente iguais em todos os computadores, j\u00e1 que estamos montando um cluster onde n\u00e3o temos a figura de cliente servidor, portanto n\u00e3o existe uma hierarquia entre eles.<\/p>\n<h1>INSTALA\u00c7\u00c3O DOS PACOTES NECESS\u00c1RIOS<\/h1>\n<p>Execute a instala\u00e7\u00e3o dos pacotes abaixo:<\/p>\n<p><strong># apt-get install gcc<br \/>\n# apt-get install libncurses5-dev<br \/>\n# apt-get install build-essential<br \/>\n# apt-get install libssl-dev<br \/>\n# apt-get install initramfs-tools -y<\/strong><\/p>\n<p>Esses procedimentos s\u00e3o feitos exatamente iguais para todos os computadores, por isso pode ser interessante baixar os aplicativos com a op\u00e7\u00e3o -d. Exemplo:<\/p>\n<p><strong># apt-get install gcc -d<\/strong><\/p>\n<p>O apt vai fazer o download dos arquivos para a pasta <em>\/var\/cache\/apt\/archives<\/em>, depois \u00e9 s\u00f3 usar os .deb para instalar nos outros computadores.<\/p>\n<p>Copie os arquivos .deb para o mesmo diret\u00f3rio dos outros computadores que pertencem ao cluster e assim podem ser instalados sem a necessidade de baixar tudo novamente.<\/p>\n<p><strong># cd \/var\/cache\/apt\/archives<\/strong><\/p>\n<p>Fa\u00e7a a instala\u00e7\u00e3o de todos eles ao mesmo tempo:<\/p>\n<p><strong># dpkg -i *.deb<br \/>\n# apt-get -f install<\/strong><\/p>\n<p>Feito isso verifique as mensagens e observe poss\u00edveis mensagens de erro ou advert\u00eancias.<\/p>\n<p>Para que o sistema funcione \u00e9 necess\u00e1rio instalar uma vers\u00e3o de kernel que seja compat\u00edvel com a vers\u00e3o do Mosix, as vers\u00f5es apresentadas aqui funcionam perfeitamente, por isso siga rigorosamente essas vers\u00f5es. Todo o sistema operacional <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a> Debian 6 (squeeze) e o Mosix s\u00e3o para plataforma de 32 Bits.<\/p>\n<p>Acesse o site do kernel para fazer o download do kernel 3.0.13:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.x\" target=\"_blank\" rel=\"nofollow\">http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.x<\/a><\/li>\n<\/ul>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/1420779527.baixa-kernel.png\" alt=\"\" width=\"323\" height=\"277\" \/><\/div>\n<p>Fa\u00e7a o download do Mosix respeitando a vers\u00e3o, j\u00e1 que essa vers\u00e3o de Mosix aqui recomendada funciona com o kernel anteriormente comentado.<\/p>\n<p>Acesse o site do Mosix para fazer o download do Mosix 2.32.0.3:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.mosix.org\/mos2\/index.php\" target=\"_blank\" rel=\"nofollow\">http:\/\/www.Mosix.org\/mos2\/index.php<\/a><\/li>\n<\/ul>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/baixar-mosix.png\" alt=\"\" width=\"487\" height=\"219\" \/><\/div>\n<p>Mova o arquivo do kernel (linux-3.0.13.tar.bz2) para o diret\u00f3rio &#8220;\/usr\/src&#8221; com o comando:<\/p>\n<p><strong># mv linux-3.0.13.tar.bz2 \/usr\/src<\/strong><\/p>\n<p>Descompacte o novo kernel:<\/p>\n<p><strong># cd \/usr\/src<br \/>\n# tar -xvjf linux-3.0.13.tar.bz2<\/strong><\/p>\n<p>Agora mude para o diret\u00f3rio onde foi descompactado o kernel:<\/p>\n<p><strong># cd linux-3.0.13<\/strong><\/p>\n<p>Teste se o kernel vai abrir com o comando:<\/p>\n<p><strong># make menuconfig<\/strong><\/p>\n<p>Se tudo estiver correto devem aparecer as configura\u00e7\u00f5es do kernel, saia (Exit) sem salvar.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/exit-kernel.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_exit-kernel.png\" alt=\"\" width=\"500\" height=\"350\" border=\"0\" \/><\/a><\/div>\n<p>Mova o arquivo do Mosix (MOSIX-2.32.0.3.for_kernel-3.0.13.tbz) para o diret\u00f3rio &#8220;root&#8221; com o comando:<\/p>\n<p><strong># mv MOSIX-2.32.0.3.for_kernel-3.0.13.tbz \/root<\/strong><\/p>\n<p>Certifique que o arquivo est\u00e1 no diret\u00f3rio com o comando &#8220;ls -l&#8221; conforme comando abaixo: <strong># ls -l<\/strong><br \/>\n<samp>-rw&#8212;&#8212;- 1 aluno aluno 1122599 Nov 9 16:23 MOSIX-2.32.0.3.for_kernel-3.0.13.tbz<\/samp><\/p>\n<p>Descompacte o arquivo:<\/p>\n<p><strong># tar -xvjf MOSIX-2.31.0.0.for_kernel-2.6.39.2.tbz<\/strong><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>INSTALA\u00c7\u00c3O DO MOSIX E COMPILA\u00c7\u00c3O DO KERNEL<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<p>Mude para o diret\u00f3rio que o <em>Mosix<\/em> foi descompactado:<\/p>\n<p><strong># cd Mosix-2.32.0.3<\/strong><\/p>\n<p>Instale o Mosix:<\/p>\n<p><strong># .\/Mosix.install<\/strong><\/p>\n<p>Nessa primeira tela responda apenas dando um Enter:<\/p>\n<p><samp>Installing MOSIX: ================= If you are installing MOSIX for a set of nodes with a common root, then type the common root directory &#8211; if you are installing only the local node, press &lt;ENTER&gt; :- <\/samp><\/p>\n<p>Na pr\u00f3xima tela responda com o n\u00famero &#8220;2&#8221;, j\u00e1 que \u00e9 essa a vers\u00e3o de kernel que est\u00e1 sendo instalado j\u00e1 foi baixada e descompactada pronta no diret\u00f3rio:<\/p>\n<p><samp>32-bit Installation<\/samp><\/p>\n<p>Do you want to compile a MOSIX-enhanced kernel now?<\/p>\n<p>1. Yes, please fetch the <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a> kernel (3.0.13) sources from the internet.<br \/>\n2. Yes, the Linux kernel (3.0.13) sources are already on this computer.<br \/>\n3. No, or not now, because either:<br \/>\na) I have already installed this kernel (or a compatible version).<br \/>\nb) I will install the kernel later.<br \/>\nc) I am happy to use MOSIX without a special kernel:<br \/>\nI am aware that only some features will work, such as<br \/>\nbatch jobs using &#8216;mosrun -E&#8217;, but that is all I need.<br \/>\nd) I use openSUSE and therefore prefer the pre-compiled<br \/>\nMOSIX-kernel RPM from http:\/\/Mosix.org\/text_acadnp.html.<\/p>\n<p>Option [3]: <strong>2<\/strong><\/p>\n<p>Na tela seguinte pede-se o local onde se encontra o novo kernel que desejamos instalar, coloque:<\/p>\n<p><strong>\/usr\/src\/linux-3.0.13<\/strong><\/p>\n<p>O computador demora aproximadamente uns 30 segundos processando e abre a tela de configura\u00e7\u00e3o do kernel, nessa deve ser feito apenas uma \u00fanica mudan\u00e7a, usando o teclado com a seta do para baixo, v\u00e1 descendo at\u00e9 chegar na op\u00e7\u00e3o &#8220;Security options&#8221; e d\u00ea um enter.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/kernel-1.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_kernel-1.png\" alt=\"\" width=\"500\" height=\"353\" border=\"0\" \/><\/a><\/div>\n<p>Dentro dessa se\u00e7\u00e3o procure a op\u00e7\u00e3o &#8220;Enable different security models&#8221;, essa \u00e9 a \u00fanica mudan\u00e7a necess\u00e1ria, que deve ficar desmarcada\/desabilitada sem o sinal * (asterisco). Essa op\u00e7\u00e3o desmarcada que equivale a disabled, para que Mosix funcione corretamente esse \u00e9 o \u00fanico par\u00e2metro que deve ser alterado, todas outras op\u00e7\u00f5es deixe como est\u00e3o.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/kernel-2.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_kernel-2.png\" alt=\"\" width=\"500\" height=\"355\" border=\"0\" \/><\/a><\/div>\n<p>Saia com &#8220;Exit&#8221; duas vezes e vai aparecer uma mensagem perguntando se deseja salvar as altera\u00e7\u00f5es, responda com &#8220;Yes&#8221; para sair e salve a altera\u00e7\u00e3o anteriormente feita.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/kernel-3.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_kernel-3.png\" alt=\"\" width=\"500\" height=\"362\" border=\"0\" \/><\/a><\/div>\n<p>A partir desse ponto come\u00e7a a compila\u00e7\u00e3o do kernel, essa \u00e9 a etapa que mais demora, dependendo do computador demora de 1h at\u00e9 4h para terminar a compila\u00e7\u00e3o, tudo depende da configura\u00e7\u00e3o de hardware do computador. Enquanto isso espere a compila\u00e7\u00e3o completa para come\u00e7ar a configurar o Mosix.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/kernel-4.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_kernel-4.png\" alt=\"\" width=\"500\" height=\"155\" border=\"0\" \/><\/a><\/div>\n<p>Logo ap\u00f3s a compila\u00e7\u00e3o que demora muito come\u00e7am as configura\u00e7\u00f5es do Mosix, \u00e9 s\u00f3 ir seguindo metodicamente as instru\u00e7\u00f5es e respondendo as intera\u00e7\u00f5es dos menus at\u00e9 o final.<\/p>\n<p>Na primeira tela responda digitando o n\u00famero &#8220;1&#8221;, conforme abaixo:<\/p>\n<p><samp>Configure what :-<br \/>\nWhat would you like to configure?<br \/>\n=================================<br \/>\n-e 1. Which nodes are in this cluster (ESSENTIAL)<br \/>\n-e 2. Authentication (ESSENTIAL)<br \/>\n-e 3. Logical node numbering (recommended)<br \/>\n-e 4. Queueing policies<br \/>\n5. Freezing policies<br \/>\n6. MOSIX Reach the Clouds (MRC)<br \/>\n7. Miscellaneous policies<br \/>\n8. Become part of a multi-cluster organizational Grid<br \/>\n9. Parameters of &#8216;mosrun&#8217;<\/samp><\/p>\n<p>Configure what :- <strong>1<\/strong><\/p>\n<p>Na pr\u00f3xima tela responda com &#8220;n&#8221;:<\/p>\n<p><samp>There are no nodes in your cluster yet:<br \/>\n=======================================<\/samp><\/p>\n<p>To add a new set of nodes to your cluster, type &#8216;n&#8217;.<br \/>\nTo turn on advanced options, type &#8216;+&#8217;.<br \/>\nFor help, type &#8216;h&#8217;.<br \/>\nTo save and exit, type &#8216;q&#8217;. (to abandon all changes and exit, type &#8216;Q&#8217;)<\/p>\n<p>Option :- <strong>n<\/strong><\/p>\n<p>A pr\u00f3xima tela pede o primeiro IP da rede que faz parte do cluster, coloque o IP &#8220;192.168.1.200&#8221;:<\/p>\n<p><samp>Adding new node(s) to the cluster:<br \/>\nFirst host-name or IP address :- <strong>192.168.1.200<\/strong> <\/samp>A pr\u00f3xima tela pede o n\u00famero de N\u00f3s (node) que o cluster vai ter, responda com o n\u00famero &#8220;4&#8221;:<\/p>\n<p><samp>Number of nodes :- <strong>4<\/strong> <\/samp><\/p>\n<p>Na pr\u00f3xima tela responda com a letra &#8220;q&#8221; para sair:<\/p>\n<p><samp>Nodes in your cluster:<br \/>\n======================<br \/>\n1. 4 nodes starting from 192.168.1.200<\/samp><\/p>\n<p>To add a new set of nodes to your cluster, type &#8216;n&#8217;.<br \/>\nTo modify an entry, type its number.<br \/>\nTo delete an entry, type &#8216;d&#8217; followed by that entry-number (eg. d1).<br \/>\nTo turn on advanced options, type &#8216;+&#8217;.<br \/>\nFor help, type &#8216;h&#8217;.<br \/>\nTo save and exit, type &#8216;q&#8217;. (to abandon all changes and exit, type &#8216;Q&#8217;)<br \/>\nOption :- <strong>q<\/strong><\/p>\n<p>Na pr\u00f3xima tela responda com &#8220;Y&#8221; para yes:<\/p>\n<p><samp>Cluster configuration was saved.<\/samp><\/p>\n<p>OK to also update the logical node numbers [Y\/n]? <strong>y<\/strong><\/p>\n<p>Na pr\u00f3xima tela confirme os dados com a letra &#8220;y&#8221;:<\/p>\n<p><samp>Suggesting to assign &#8216;192.168.1.200&#8217;<br \/>\nas the central queue manager for the cluster<br \/>\n(but be cautious if you mix 32-bit and 64-bit nodes in the same cluster)<br \/>\nOK to update it now [Y\/n]? <strong>y<\/strong> <\/samp><\/p>\n<p>Na pr\u00f3xima tela responda com a op\u00e7\u00e3o &#8220;2&#8221;, \u00e9 aqui onde vamos fazer as configura\u00e7\u00f5es de seguran\u00e7a colocando senhas e chaves para que somente os computadores desse cluster, que obrigatoriamente devem ter as mesmas chaves, se conectem:<\/p>\n<p><samp>What would you like to configure next?<br \/>\n======================================<br \/>\n-e 1. Which nodes are in this cluster<br \/>\n-e 2. Authentication (ESSENTIAL)<br \/>\n-e 3. Logical node numbering<br \/>\n-e 4. Queueing policies<br \/>\n5. Freezing policies<br \/>\n6. MOSIX Reach the Clouds (MRC)<br \/>\n7. Miscellaneous policies<br \/>\n8. Become part of a multi-cluster organizational Grid<br \/>\n9. Parameters of &#8216;mosrun&#8217;<br \/>\nq. Exit<\/samp><\/p>\n<p>Configure what :- <strong>2<\/strong><\/p>\n<p>Para todas as op\u00e7\u00f5es de seguran\u00e7a foi adotado como padr\u00e3o &#8220;1234&#8221;.<\/p>\n<p><samp>MOSIX Authentication:<br \/>\n=====================<\/samp><\/p>\n<p>To protect your MOSIX cluster from abuse, preventing unauthorized<br \/>\npersons from gaining control over your computers, you need to set<br \/>\nup a secret cluster-protection key. This key can include any<br \/>\ncharacters, but must be identical throughout your cluster.<\/p>\n<p>Your secret cluster-protection key: 1234<br \/>\nYour key is 4 characters long.<br \/>\n(in the future, please consider a longer one)<\/p>\n<p>To allow your users to send batch-jobs to other nodes in the cluster,<br \/>\nyou must set up a secret batch-client key. This key can include any<br \/>\ncharacters, but must match the &#8216;batch-server&#8217; key on the node(s) that<br \/>\ncan receive batch-jobs from this node.<\/p>\n<p>Your secret batch-client key: 1234<br \/>\nYour key is 4 characters long.<br \/>\n(in the future, please consider a longer one)<\/p>\n<p>For this node to accept batch jobs,<br \/>\nyou must set up a secret batch-server key. This key can include any<br \/>\ncharacters, but must match the &#8216;batch-client&#8217; key on the sending nodes.<\/p>\n<p>To make your batch-server key the same as your batch-client key, type &#8216;+&#8217;.<br \/>\nYour secret batch-server key: 1234<br \/>\nYour key is 4 characters long.<br \/>\n(in the future, please consider a longer one)<\/p>\n<p>Na pr\u00f3xima tela, digite a letra &#8220;q&#8221;.<\/p>\n<p><samp>What would you like to configure next?<br \/>\n======================================<br \/>\n-e 1. Which nodes are in this cluster<br \/>\n-e 2. Authentication<br \/>\n-e 3. Logical node numbering<br \/>\n-e 4. Queueing policies<br \/>\n5. Freezing policies<br \/>\n6. MOSIX Reach the Clouds (MRC)<br \/>\n7. Miscellaneous policies<br \/>\n8. Become part of a multi-cluster organizational Grid<br \/>\n9. Parameters of &#8216;mosrun&#8217;<br \/>\nq. Exit<\/samp><\/p>\n<p>Configure what :- <strong>q<\/strong><\/p>\n<p><strong># apt-get install initrd.img-tools -y<\/strong><br \/>\n<samp>Reading package lists&#8230; Done<br \/>\nBuilding dependency tree<br \/>\nReading state information&#8230; Done<br \/>\nE: Unable to locate package initrd.img-tools<br \/>\nE: Couldn&#8217;t find any package by regex &#8216;initrd.img-tools&#8217;<\/samp><\/p>\n<p>Digite o comando abaixo para atualizar o novo kernel com os perif\u00e9ricos do computador:<\/p>\n<p><strong># update-initramfs -c -k 3.0.13<\/strong><\/p>\n<p>Isso criar\u00e1 a imagem j\u00e1 com o Mosix e os drivers instalados, use o comando &#8220;update-initramfs -c -k 3.0.13&#8221; para criar o arquivo \/boot\/initrd.img-3.0.13. Esse &#8220;3.0.13&#8221; \u00e9 a vers\u00e3o do kernel novo que est\u00e1 sendo compilado:<\/p>\n<p><strong># update-initramfs -c -k 3.0.13<\/strong><br \/>\n<samp>update-initramfs: Generating \/boot\/initrd.img-3.0.13<\/samp><\/p>\n<p>Se o comando for executado com sucesso deve ter sido gerado um arquivo de inicializa\u00e7\u00e3o chamado &#8220;initrd.img-3.0.13&#8221;. Para se certificar que o arquivo foi criado com sucesso, digite o comando para listar arquivos dentro do diret\u00f3rio de boot.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/criado-img.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_criado-img.png\" alt=\"\" width=\"500\" height=\"187\" border=\"0\" \/><\/a><\/div>\n<p>Agora deve ser apontado para fazer o boot, quando o computador iniciar devem aparecer os 2 kernels, sendo um kernel 2.6.32.5-686 que \u00e9 o do Debian original e o outro 3.0.13, que \u00e9 o que suporta o Mosix. Sempre que for usar o Mosix a inicia\u00e7\u00e3o do computador necessariamente precisa ser feita por esse kernel. Para fazer esse apontamento use o comando:<\/p>\n<p><strong># update-grub<\/strong><\/p>\n<p>e se forem encontrados todos os arquivos de imagem, surge a mensagem &#8220;done&#8221;.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/update-grup.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_update-grup.png\" alt=\"\" width=\"500\" height=\"135\" border=\"0\" \/><\/a><\/div>\n<p>Esse procedimento deve ser seguido rigorosamente igual para todos os outros computadores que deseja colocar no cluster, as \u00fanicas diferen\u00e7as nos computadores s\u00e3o os IPs, cada um deve ter seu IP \u00fanico. Nesse exemplo foram usados IPs de 192.168.1.200 at\u00e9 192.168.1.203, j\u00e1 que nesse cluster s\u00e3o 4 computadores.<\/p>\n<p>Agora reinicie o computador e observe logo que o computador iniciar o boot se aparece \u00e0 op\u00e7\u00e3o com o novo kernel, se aparecer selecione essa op\u00e7\u00e3o dando um &#8220;Enter&#8221; ou aguarde alguns segundos que inicia automaticamente.<\/p>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/Tela-inicial-debian.png\" alt=\"\" width=\"538\" height=\"410\" \/><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>MONITORAMENTO E STATUS DO CLUSTER<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<p>Nessa vers\u00e3o de <em>Mosix<\/em> instalado, quando se liga o computador ele automaticamente j\u00e1 inicia (start) o Mosix, caso n\u00e3o aconte\u00e7a essa inicializa\u00e7\u00e3o automaticamente pode ser feito manualmente com o comando:<\/p>\n<p><strong># \/etc\/init.d\/Mosix start<\/strong><\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/start.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_start.png\" alt=\"\" width=\"500\" height=\"136\" border=\"0\" \/><\/a><\/div>\n<p>Caso deseje parar (stop) o Mosix digite:<\/p>\n<p><strong># \/etc\/init.d\/Mosix stop<\/strong><\/p>\n<p>Isso faz o computador sair do cluster.<\/p>\n<p>Para verificar o estado (status) do Mosix digite:<\/p>\n<p><strong># \/etc\/init.d\/Mosix status<\/strong><\/p>\n<p>Esse comando exibe v\u00e1rias informa\u00e7\u00f5es \u00fateis.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/1420779751.status.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_1420779751.status.png\" alt=\"\" width=\"500\" height=\"388\" border=\"0\" \/><\/a><\/div>\n<p>J\u00e1 com os 4 computadores prontos e em rede, use o comando <strong>mon<\/strong> para verificar o processamento e se todos os computadores do cluster est\u00e3o se enxergando.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/mon.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_mon.png\" alt=\"\" width=\"500\" height=\"299\" border=\"0\" \/><\/a><\/div>\n<p>A nomea\u00e7\u00e3o do n\u00famero dado pelo Mosix come\u00e7a sempre do menor IP para o maior IP, exemplo o 1 foi atribu\u00eddo ao computador que est\u00e1 configurado com o IP 192.168.1.200, assim como o 4 foi atribu\u00eddo ao computador que est\u00e1 configurado com o IP 192.168.1.203.<\/p>\n<p>Ap\u00f3s fazer toda a instala\u00e7\u00e3o, nesse caso de um cluster de 4 computadores onde durante a instala\u00e7\u00e3o foi definido o primeiro IP do cluster e o n\u00famero de N\u00f3s (node) que o sistema tem, assim como as chaves de autentica\u00e7\u00e3o (Keys) que nesse caso foi usado &#8220;1234&#8221;, qualquer um desses par\u00e2metros pode ser alterado sem que precise reinstalar ou compilar o kernel novamente.<\/p>\n<p>Com um editor de texto como o &#8220;vi&#8221;, edite o arquivo que desejar no diret\u00f3rio \/etc\/Mosix. Os principais arquivos s\u00e3o:<\/p>\n<ul>\n<li><em>Mosix.map<\/em> &#8211; onde se trata da lista de IPs dos N\u00f3s (nodes) do cluster;<\/li>\n<li><em>features<\/em> &#8211; indica as caracter\u00edsticas do nodo;<\/li>\n<li><em>secret<\/em> &#8211; arquivo que guarda a senha (key) de acesso ao cluster;<\/li>\n<li><em>ecsecret<\/em> &#8211; senha (key) para autentica\u00e7\u00e3o de clientes de servi\u00e7o batch;<\/li>\n<li><em>essecret<\/em> &#8211; senha (key) para autentica\u00e7\u00e3o se servidor de servi\u00e7os batch;<\/li>\n<li><em>freeze.conf<\/em> &#8211; configura\u00e7\u00e3o de pol\u00edticas de congelamento de processos;<\/li>\n<li><em>queue.conf<\/em> &#8211; indica o gerenciador de fila de processos padr\u00e3o;<\/li>\n<li><em>userview.map<\/em> &#8211; indica\u00e7\u00e3o do n\u00famero do N\u00f3 pelo monitor.<\/li>\n<\/ul>\n<p>Abaixo temos um exemplo do arquivo Mosix.map, que pode ser editado para suportar os computadores adicionais que possam ser incorporados ao sistema ou mesmo quando se deseja alterar as chaves (Keys) ou os IPs da rede.<\/p>\n<p>Exemplo: alterar o IP inicial do cluster e o n\u00famero de N\u00f3s (node) que o sistema tem, nesse caso o procedimento deve ser feito em todos os computadores do cluster:<\/p>\n<p><strong># vim \/etc\/Mosix\/Mosix.map<\/strong><\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/mosix-map.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_mosix-map.png\" alt=\"\" width=\"500\" height=\"155\" border=\"0\" \/><\/a><\/div>\n<p>Para alterar o c\u00f3digo de autentica\u00e7\u00e3o (key) edite o arquivo <em>\/etc\/Mosix\/secret<\/em>, o c\u00f3digo deve ser o mesmo para todos os clusters. Caso deseje alterar a chave o procedimento deve ser feito em todos os computadores.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>TESTES E BENCHMARK<\/h1>\n<p>&nbsp;<\/p>\n<div>\n<p><strong>mon<\/strong> &#8211; Mostra as informa\u00e7\u00f5es do cluster e utiliza\u00e7\u00e3o individual de cada N\u00f3. J\u00e1 dentro do terminal (TTY) de mon, digite uma das op\u00e7\u00f5es que deseje monitorar:<\/p>\n<ul>\n<li><em>l<\/em> &#8211; Carga da CPU (load)<\/li>\n<li><em>m<\/em> &#8211; Mem\u00f3ria ou Swap usado em cada N\u00f3<\/li>\n<li><em>u<\/em> &#8211; Utiliza\u00e7\u00e3o individual de cada N\u00f3<\/li>\n<\/ul>\n<p>d\/D &#8211; N\u00f3s morto (dead)<\/p>\n<ul>\n<li><em>h<\/em> &#8211; Lista complete de ajuda para os comandos<\/li>\n<\/ul>\n<p>Quando montamos um novo cluster, a primeira curiosidade que temos \u00e9 saber o desempenho, o quanto \u00e9 r\u00e1pido ao rodar os aplicativos, sua capacidade de processamento. V\u00e1rias m\u00e9tricas podem ser usadas para aferir a real capacidade do cluster, mas duas delas s\u00e3o as mais usadas. Em aplica\u00e7\u00f5es cient\u00edficas o que mais importa \u00e9 a quantidade de opera\u00e7\u00f5es com ponto flutuante o computador \u00e9 capaz de realizar por segundo, essa pode ser medida em unidades de kiloflops\/s, megaflops\/s, gigaflops\/s, teraflops\/s, exoflops\/s, zettaflop\/s e yottaflop\/s. Em supercomputadores o mais habitual que encontramos s\u00e3o os gigaflop\/s, que equivalem a bilh\u00e3o e teraflop\/s equivale a trilh\u00e3o.<\/p>\n<p>Para aplica\u00e7\u00f5es n\u00e3o cientificas a m\u00e9trica mais importante \u00e9 a capacidade que o computador tem de executar instru\u00e7\u00f5es por segundoe normalmente \u00e9 medido em Mop\/s (milh\u00f5es de opera\u00e7\u00f5es por segundo) e Gop\/s (bilh\u00f5es de opera\u00e7\u00f5es por segundo). A express\u00e3o para calcular o desempenho de opera\u00e7\u00f5es com ponto flutuante pode ser feita usando a f\u00f3rmula: [STE 2002]<\/p>\n<p>P = N \u2217 C \u2217 F \u2217 R<\/p>\n<p>Onde temos:<\/p>\n<ul>\n<li>P=Performance, is typically given in Mflops or Gflops.<\/li>\n<li>N=Number of nodes.<\/li>\n<li>C=nnumber of CPUs per node.<\/li>\n<li>F=number of Floating-point operations per clock period.<\/li>\n<li>R=clock Rate, measured in cycles per second.<\/li>\n<\/ul>\n<p>Para rodar um aplicativo no cluster, chame o aplicativo precedido do comando <strong>mosrun<\/strong>, com esse par\u00e2metro a aplica\u00e7\u00e3o pode fazer a migra\u00e7\u00e3o para os N\u00f3s que estejam dispon\u00edveis para fazer o processamento. No ANEXO III tem uma lista com os principais comandos usado no Mosix, no site oficial do Mosix tamb\u00e9m tem documenta\u00e7\u00e3o completa.<\/p>\n<p>No Mosix vem um aplicativo para testar o sistema, \u00e9 um aplicativo que gera uma grande carga de processamento e com isso podemos verificar o processamento em cada N\u00f3 do sistema. Esse aplicativo \u00e9 o <strong>testload<\/strong>, que pode ser chamado precedido do <strong>mosrun<\/strong> para que esse possa ser executado pelo Mosix distribuindo a carga para o N\u00f3 que esteja menos ocupado.<\/p>\n<p>Se passado como par\u00e2metro o N\u00f3 onde desejamos executar, esse ser\u00e1 movido para o N\u00f3 especificado. Para testar todos os N\u00f3s foi executado uma c\u00f3pia em nada N\u00f3 usando o par\u00e2metro para especificar os N\u00f3s de 1 \u00e0 4, assim temos certeza que todos os computadores ser\u00e3o carregados com esse aplicativo de teste. Em qualquer um dos N\u00f3s foi executado o comando:<\/p>\n<p><strong># mosrun -1 testload &amp;<br \/>\n# mosrun -2 testload &amp;<br \/>\n# mosrun -3 testload &amp;<br \/>\n# mosrun -4 testload &amp;<\/strong><\/p>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/testload1.png\" alt=\"\" width=\"374\" height=\"190\" \/><\/div>\n<p>Ao fazer essas 4 chamadas do aplicativo testload e explicitando onde deve rodar, podemos monitorar o resultado com o comando &#8220;mon&#8221; de qualquer computador que esteja no cluster ou mesmo do computador onde foi executado o testload. Digite <strong>mon<\/strong> e em outro terminal foi usado o comando <strong>top<\/strong> para verificar os aplicativos que est\u00e3o sendo executados.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/testload3.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_testload3.png\" alt=\"\" width=\"500\" height=\"373\" border=\"0\" \/><\/a><\/div>\n<p>Para testar o desempenho e termos uma ideia da capacidade de processamento do cluster foi desenvolvido um programa para testar a quantidade de Mflop\/s individualmente entre cada N\u00f3, esse teste \u00e9 interessante pois com isso podemos saber a capacidade do cluster.<\/p>\n<p>O comando <strong>mosrun<\/strong> pode vir acompanhado al\u00e9m da aplica\u00e7\u00e3o que desejamos rodar de mais op\u00e7\u00f5es, entre elas podemos informar em qual N\u00f3 (node) queremos executar o aplicativo, exemplo:<\/p>\n<p><strong># mosrun -4 .\/flops <\/strong><\/p>\n<p>Esse comando executa o aplicativo &#8220;.\/flops&#8221; no computador 4, mesmo tendo sido digitado de qualquer outro computador. Posso verificar se a aplica\u00e7\u00e3o realmente est\u00e1 sendo executada no computador que desejo fazendo o monitoramento com o comando mon, que mostra a carga das CPU individualmente.<\/p>\n<p>Se n\u00e3o tivesse passado o par\u00e2metro &#8220;-4&#8221; no mosrun, esse aplicativo seria executado em qualquer outro computador que estivesse menos ocupado e mesmo estando sendo executado em um determinado computador, caso o mesmo venha a ser sobrecarregado por aplica\u00e7\u00f5es locais, o processo \u00e9 migrado automaticamente sem nenhuma interven\u00e7\u00e3o do operador para outro computador menos carregado. Essa t\u00e9cnica tamb\u00e9m chamada de <em>preemptive process migration<\/em>, ou seja, d\u00e1 prefer\u00eancia para a migra\u00e7\u00e3o do processo de forma silenciosa.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/monito1.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_monito1.png\" alt=\"\" width=\"500\" height=\"271\" border=\"0\" \/><\/a><\/div>\n<p>Para completar o teste vou chamar o aplicativo cada um rodando em um computador diferente para somar e saber a capacidade em Mflops tem o cluster. Foi rodado o aplicativo &#8220;flops&#8221; ao mesmo tempo nos diferentes computadores, nesse tipo de medi\u00e7\u00e3o \u00e9 testado inclusive a capacidade da rede e por isso os resultados s\u00e3o sempre menores do que rodar o aplicativo individualmente em computadores isoladamente. Em todo caso a soma dos N\u00f3s deu 2320 Mflop\/s, ou 2,3Gflop\/s.<\/p>\n<div class=\"figura\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/tabela-2.png\" alt=\"\" width=\"196\" height=\"122\" \/><\/div>\n<p>Durante esse teste foi monitorado a carga dos computadores e podemos observar que os 4 computadores processaram ao mesmo tempo, sendo que o PC 4 foi o que mais ficou sobrecarregado j\u00e1 que ele \u00e9 o que tem menor poder de processamento entre os outros e por isso precisou trabalhar mais para executar a mesma tarefa.<\/p>\n<p>Foi desenvolvido um aplicativo em linguagem C para gastar tempo, \u00e9 um la\u00e7o for alinhado com outro for sendo executado 200.000 vezes 150.000 e durante o processamento \u00e9 medido o seu tempo e com isso podemos saber exatamente quanto cada computador demora para realizar o calculo, esse c\u00f3digo tamb\u00e9m pode funcionar em cluster do tipo Beowulf j\u00e1 que usa a biblioteca de &#8220;mpi&#8221; de paralelismo de instru\u00e7\u00e3o.<\/p>\n<pre class=\"prettyprint\">#include \"mpi.h\"\r\n#include &lt;stdio.h&gt;\r\n#include &lt;math.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n\r\nint main(int argc,char *argv[])\r\n{\r\ndouble i, j;\r\ndouble startwtime = 0.0, endwtime;\r\nMPI_Init(&amp;argc,&amp;argv);\r\nstartwtime = MPI_Wtime();\r\nfor(i=0;i&lt;200000;i++) { for(j=0;j&lt;150000;j++);}\r\nendwtime = MPI_Wtime();\r\nprintf(\"\r\nTempo de Processamento = %.3fmS\r\n\", endwtime-startwtime);\r\nfflush( stdout );\r\nprintf(\"\r\nProjeto: HPC - Cluster Mosix\r\n\u00a92012 - Francisco Aldevan\r\n\r\n\r\n\");\r\nMPI_Finalize();\r\nreturn 0;\r\n}\r\n<\/pre>\n<p>Esse c\u00f3digo foi compilado e rodado nos computadores PC 2 e PC 4, j\u00e1 que s\u00e3o computadores com recursos de hardware bem diferente e foi analisado quanto tempo cada computador demora para resolver e finalizar, no PC 2 demorou 43 segundos e no PC 4 demorou 81 segundos.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/tempo-p4.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_tempo-p4.png\" alt=\"\" width=\"500\" height=\"321\" border=\"0\" \/><\/a><\/div>\n<p>Toda a montagem do sistema foi feita de maneira experimental e com os computadores dispon\u00edveis no momento, para se interligar os computadores em rede foi usado um switch fabricado pela Cisco modelo Catalyst 2900XL, que estava montado no rack do Laborat\u00f3rio. \u00c9 um switch que funciona em 10\/100Mbps de 24 portas e configurado para funcionar em modo full duplex e em fastethernet, j\u00e1 que todos os computadores suportavam 100Mbps. Nesse mesmo rack tem diversos outros equipamentos como roteadores e switches para teste e experi\u00eancias, no momento da montagem do cluster foi usado apenas o switch.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/cluster-montado.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_cluster-montado.png\" alt=\"\" width=\"500\" height=\"262\" border=\"0\" \/><\/a><\/div>\n<h1>CONCLUS\u00c3O<\/h1>\n<p>A necessidade cada vez maior por demanda de processamento e alta disponibilidade nos servi\u00e7os que n\u00e3o podem parar e precisam de um alto uptime faz dos clusters uma alternativa altamente recomendada, dado seu baixo custo de implanta\u00e7\u00e3o com componentes facilmente encontrados no mercado e dispensando tecnologias caras e propriet\u00e1rias oferecidas no mercado de supercomputadores.<\/p>\n<p>Com a populariza\u00e7\u00e3o dos computadores pessoais cada vez mais poderosos e menor custo, ficam claras as vantagens de desenvolver grandiosos projetos com clusters de computadores de alto desempenho e confi\u00e1vel.<\/p>\n<p>O uso de <em>Software Livre<\/em> tamb\u00e9m \u00e9 outro grande atrativo, j\u00e1 que al\u00e9m da redu\u00e7\u00e3o de custo existe a possibilidade de serem desenvolvidos novos dispositivos, drivers e sockets espec\u00edficos para um determinado hardware, aumentando as possibilidades do projeto e dando total liberdade para seus idealizadores.<\/p>\n<p>Outra grande vantagem econ\u00f4mica \u00e9 a possibilidade implanta\u00e7\u00e3o de clusters com computadores usados e mais antigos com recursos de hardware limitados e distintos, inclusive de diversos fabricantes, fazendo com que possa ser integrado \u00e0 rede do cluster sem causar preju\u00edzo ao sistema, j\u00e1 que funcionam de maneira independente e podem entrar e sair do cluster normalmente sempre que necess\u00e1rio sem a necessidade de paradas ou desligamento do mesmo.<\/p>\n<p>Essa aplica\u00e7\u00e3o tamb\u00e9m pode ser muito \u00fatil em universidades para o ensino de programa\u00e7\u00e3o em sistemas de paralelismo, pesquisas e simula\u00e7\u00f5es mais pesadas que exigem alto poder de processamento, visto que pode ser montado pelos pr\u00f3prios alunos aproveitando o parque tecnol\u00f3gico ou esta\u00e7\u00f5es de trabalho dos laborat\u00f3rios de inform\u00e1tica da institui\u00e7\u00e3o para a montagem do sistema.<\/p>\n<p>No projeto de um cluster a primeira an\u00e1lise a ser feita \u00e9 saber exatamente a finalidade \u00e0 que se prop\u00f5e o projeto, visto que cada sistema tem finalidade distinta e especifica para rodar as aplica\u00e7\u00f5es dos usu\u00e1rios e \u00e9 fator decisivo na escolha de um projeto de computa\u00e7\u00e3o distribu\u00edda, seja para alto desempenho (HPC), alta disponibilidade (HA), balanceamento de carga (HS) ou computa\u00e7\u00e3o em grade (Grid Computing), s\u00e3o sistemas completamente distintos e que fazem uso de aplicativos distintos, n\u00e3o sendo compat\u00edveis na maioria das aplica\u00e7\u00f5es.<\/p>\n<p>Quanto ao desempenho apresentado nos testes realizados foi bastante promissor, j\u00e1 que entre os computadores foi usado computadores mais antigos, inclusive computador com processador Intel Pentium 4 e no geral somando a capacidade de processamento dos quatro computadores do cluster deu uma capacidade de 2,3 bilh\u00f5es de opera\u00e7\u00f5es com ponto flutuante por segundo.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>INTRODU\u00c7\u00c3O &nbsp; Esse trabalho \u00e9 parte de conclus\u00e3o do curso de especializa\u00e7\u00e3o em redes de computadores que tem 80 p\u00e1ginas, aqui estou postando apenas a montagem e teste (estudo de caso) e deixando de fora a parte te\u00f3rica por quest\u00f5es de espa\u00e7o. Foi documentado passo a passo a montagem do cluster com Mosix, possibilitando a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[91,1,730,256,51,495,514,68,271],"tags":[31,349,353,804,805,698,370],"class_list":["post-2300","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","category-viazap","category-clusterweb","category-desktop","category-linux-linuxrs","category-profissional-de-ti","category-programacao","category-redes-2","category-seguranca-2","tag-cluster","tag-com","tag-de","tag-montagem","tag-mosix","tag-o","tag-um"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2300"}],"version-history":[{"count":2,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2300\/revisions"}],"predecessor-version":[{"id":2302,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2300\/revisions\/2302"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}