Tópicos - Computacao Paralela Intalação Cluster Beowulf
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Tópicos - Computacao Paralela Intalação Cluster Beowulf

  • 7,030 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
7,030
On Slideshare
6,985
From Embeds
45
Number of Embeds
1

Actions

Shares
Downloads
226
Comments
1
Likes
1

Embeds 45

http://www.slideshare.net 45

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 1 Cluster Beowulf Implementação e Configuração no Slackware O potencial de expandir a força de processamento computacional utilizando computadores pessoais “comuns” ligados através de software e hardware ligando-os em paralelo, é uma ótima alternativa aos famosos supercomputadores. Vendo todo este potência a NASA decidiu implementar tal tecnologia para resolver suas aplicações de missão crítica. Surgia então o projeto de Clusters Beowulf, idealizado desta forma, com a finalidade de suprir a crescente e elevada capacidade de processamento em diversas áreas científicas com o objetivo de construir sistemas computacionais poderosos e economicamente viáveis. O projeto Beowulf da NASA na verdade não desenvolveu um software denominado Beowulf, o qual o usuário possa instalar tal programa e todos os PC's irão trabalhar de forma paralela. Mas, sim eles proporão entre outros uma filosofia, que consiste de: Uso de Hardware comum, disponíveis no mercado; Processamento dedicado (todo o hardware deve ser utilizado apenas para o cluster) Rede de interconexão privada e dedicada; Nenhum componente feito sob encomenda; Periféricos escaláveis; Uso de softwares livres e código fonte aberto; Uso de ferramentas de computação paralela livres Retorno à comunidade do projeto e melhorias.
  • 2. 2 Cluster Beowulf Implementação e Configuração no Slackware Então o cluster Beowulf não é um software que você baixa de Internet e simplesmente instala, mas sim, um conjunto de softwares de rede (servidores), serviços de rede e uma ferramenta para distribuição dos processos entre as máquinas que compõem o cluster. Então iremos configurar um cluster Beowulf utilizando Linux com a distribuição Slackware. Na verdade está instalação irá provavelmente ser a mesma em todas as outras distribuições (debian, ubuntu, gentoo,e etc), sendo diferente apenas alguns passos de instalação de alguns serviços. O Cluster será basicamente composto de uma máquina chamada de mestre (responsável pelo gerenciamento e acesso ao cluster), e outras máquinas chamadas de escravas sendo uma ou mais. Escravo1 Escravo2 Escravo3 Escravo4 Mestre Switch 100Mbs
  • 3. 3 Cluster Beowulf Implementação e Configuração no Slackware A configuração do Cluster Beowulf consiste de básicamente dois passos sendo o primeiro a configuração do nó meste e o segundo a configuração dos nós escravos. Sendo necessário no primeiro passo: 1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os demais nós do cluster executem serviços no nó mestre e assim executem programas/tarefas em paralelo. 2 - Configurar um serviço de nomes para facilitar a configuração do cluster, identificando os nós do cluster por nomes e não por IP's, isto é recomendável já que vários arquivos irão precisar conter os nós do cluster. 3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso baseado em confiança. Ou seja, os demais nós terão permissão de acessar o servidor mestre sem o uso de senha. 4 – Adicionar um usuário chamado cluster (ou outro nome). 5 – Configurar o servidor NFS de forma que este compartilhe com permissões de leitura e escrita o diretório pessoal do usuário cluster. 6 – Instalar e configurar o LAM-MPI para que este faça a troca de mensagens entre os nós.
  • 4. 4 Cluster Beowulf Implementação e Configuração no Slackware O segundo passo consiste na configuração dos nós escravos que compõem o cluster. São eles: 1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os demais nós do cluster executem serviços no nó mestre e assim executem programas/tarefas em paralelo. 2 - Configurar um serviço de nomes para facilitar a configuração do cluster, identificando os nós do cluster por nomes e não por IP's, isto é recomendável já que vários arquivos irão precisar conter os nós do cluster. 3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso baseado em confiança. Ou seja, os demais nós terão permissão de acessar o servidor mestre sem o uso de senha. 4 – Adicionar um usuário chamado cluster (ou o nome de sua escolha), este usuário deve estar presente em todos os nós que compõe o cluster. 5 – Configurar os nós escravos como cliente do servidor NFS do nó mestre, para que estes compartilhem o diretório pessoal do nó mestre. 6 – Apenas instalar a biblioteca LAN-MPI.
  • 5. 5 Cluster Beowulf Implementação e Configuração no Slackware Nesta configuração, iremos utilizar, uma rede classe A 10.0.0.0 e máscara padrão. Sendo que o nó mestre terá o IP 10.0.0.1 e o seu nome na rede será mestre. Já, os nós escravos terão o IP 10.0.1.X onde X é o número do nó exemplo o primeiro nó escravo será o IP 10.0.1.1 com o nome na rede escravo01, o segundo nó escravo é o 10.0.1.2 com o nome escravo02, assim por diante. Configuração do nó Mestre: 1 – Configuração dos serviços rlogin, rexec, rsh. Tais serviços no Slackware estão associados por padrão ao super servidor inetd. Sendo necessário para ativá-los apenas descomentar suas respectivas linhas no arquivo /etc/inetd.conf. vi /etc/inetd.conf # Shell, login, exec and talk are BSD protocols # shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L login stream tcp nowait root /usr/sbin/tcpd in.rlogind exec stream tcp nowait root /usr/sbin/tcpd in.rexecd # talk dgram udp wait root /usr/sbin/tcpd in.talkd
  • 6. 6 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Após, editar o arquivo inetd.conf basta apenas reiniciar o serviço para que a nova configuração seja ativada. Isso é possível com o comando: #/etc/rc.d/rc.inetd restart O serviço de rlogind é utilizado para prover um terminal remoto via comando rlogin. Muito parecido com o telnet. Exemplo: #rlogin 10.0.0.1 O rshd prove um servidor de shell remoto através do comando rsh. O rsh permite que um comando seja digitado em um nó local e a saída do mesmo é repassada para o nó remoto. O rexecd é um servidor remoto de execução, acessado pelo comando rexec quando um serviço é requisitado pelo rexec o rexecd inicia alguns protocolos para a execução remota do mesmo.
  • 7. 7 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 2 – Configurando nomes dos nós do cluster. Normalmente um cluster não tem muitos hosts, assim é melhor configurar o arquivo hosts ao invés de configurar um servidor DNS, entretanto se o cluster tiver muitos nós seria recomendado o uso de um servidor de nomes, já que a configuração do arquivo hosts tem que ser feita em cada nó, e sempre que atualizada caso alguma mudança seja feita. Configurando o arquivo /etc/hosts, edite tal arquivo com um editor de texto, tal como: #vi /etc/hosts 127.0.0.1 localhosts localhosts.localdomain 10.0.0.1 mestre mestre.cluster.com 10.0.1.1 escravo01 escravo01.cluster.com 10.0.1.2 escravo02 escravo02.cluster.com 10.0.1.3 escravo03 escravo03.cluster.com 10.0.1.4 escravo04 escravo04.cluster.com 10.0.1.5 escravo05 escravo05.cluster.com 10.0.1.6 escravo06 escravo06.cluster.com
  • 8. 8 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 3 – Este passo consiste em configurar o nó mestre de forma que ele tenha uma relação de confiança entre os nós escravos. Este serviço permite que os nós escravos executem comandos remotos através do rlogin, rexec, rsh, ou seja comando “r” sem senha. É necessário tomar muito cuidado com este arquivo já que ele prove uma falha de segurança necessária ao cluster que é a de executar comandos sem senhas, portanto, deve-se ter um bom firewall entre o cluster e a rede externa (Internet). Para fornecer tal confiança entre os nós escravos e o mestre basta editar o arquivo /etc/hosts.equiv. Tal como: #vi /etc/hosts.equiv localhost mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06
  • 9. 9 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Também, pode ser configurado o arquivo .rhosts para a conexão baseada em confiança. Este arquivo deve estar presente no diretório pessoal do usuário que quer permitir o acesso baseado em confiança. Ele segue a mesma sintaxe do arquivo hosts.equiv. Então apara configurar tal arquivo com o usuário cluster o comando seria: #vi /home/cluster/.rhosts localhost mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06 É valido lembrar de que qualquer arquivo que inicie com um “.” é um arquivo oculto no Linux, assim em uma listagem normal este arquivo não irá aparecer. 4 – Lembre-se de adicionar o usuário cluster para executar o comando anterior: #adduser cluster
  • 10. 10 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 5 – É necessário para um fácil gerenciamento do cluster o uso de um servidor NFS para compartilhar o diretório, que ira ser utilizado para compartilhar os arquivos do usuário cluster no nó mestre para todos os nós escravos. Tornando então o diretório /home/cluster um diretório único para todos os usuários do cluster. Caso isto não fosse feito seria necessário, por exemplo, para executar um programa copiar o executável para todos os nós do cluster. O que iria demandar muito trabalho. Para configurar um servidor NFS basta editar o arquivo /etc/export e adicionar os compartilhamentos e as opções, tal como: #vi /etc/exports /home/cluster escravo01 (rw,no_root_squash) /home/cluster escravo02 (rw,no_root_squash) /home/cluster escravo03 (rw,no_root_squash) /home/cluster escravo04 (rw,no_root_squash) /home/cluster escravo05 (rw,no_root_squash) /home/cluster escravo06 (rw,no_root_squash) /home/cluster escravo07 (rw,no_root_squash)
  • 11. 11 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Na configuração do servidor NFS anteriormente foi configurado um compartilhamento para cada nó do cluster, é possível fazer tudo isto em uma única linha, entretanto é mais seguro da forma apresentada. A opção rw diz que o compartilhamento pode ser usado com permissões de leitura e escrita, por fim, a opção no_root_squash, não dá permissões de root a quem estiver utilizando o compartilhamento. Então depois de alterar o arquivo /etc/exports faz-se necessário reiniciar o servidor NFS para que os compartilhamento tornem-se válido, então execute o comando: #/etc/rc.d/rc.nfsd restart Inicie também o serviço rcp para que seja feita o mapeamento de portas entre nós escravos e o nó mestre: #/etc/rc.d/rc.rpc restart
  • 12. 12 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 5 – Instalando e configurando o LAM-MPI: O LAM-MPI é um conjunto de programas e bibliotecas que permitem que um conjunto de máquinas sejam utilizadas de forma paralela, ou seja, é este que realmente prove a computação paralela. Entretanto para isto os programas tem de utilizar as funções da biblioteca MPI. O MPI não faz o paralelismo de forma automática. Para instalar o MPI é possível baixar o código fonte e compilar o mesmo com o comando (make e make isntall). No Slackware é possível baixar um pacote pre- compilada em http://www.linuxpackages.net, o pacote chama-se lam-7.1.1- i486-1jac.tgz ou uma versão mais recente. A instalação da-se com o seguinte comando: #installpkg lam-7.1.1-i486-1jac.tgz
  • 13. 13 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Depois de instalado o LAM-MPI ira gerar um arquivo de configuração chamado /etc/lam-bhost.def, neste arquivo deve estar o nome de cada máquina que compõe o cluster, também é possível indicar quantos processadores cada nó possui, entre outras opções. Um exemplo de arquivo lam-bhost.def pode ser visto a seguir: #vi /etc/lam-bhost.def mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06 Assim, com a configuração anterior estamos adicionando os nós 1 ao 6. Para iniciar o cluster basta executar o comando: #lamboot E para verificar os nós ativos basta executar o comando: #lamnodes
  • 14. 14 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Atenção!!! O cluster deve ser executado com um usuário não root (o lam-mpi não deixará o usuário root iniciar o cluster) então utiliza, por exemplo, o usuário cluster para inciar o LAM-MPI.
  • 15. 15 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre:
  • 16. 16 Cluster Beowulf Implementação e Configuração no Slackware a