daniel mota - cluster no debian, ubuntu, linux mint

6
DANIEL OLIVEIRA MOTA Cluster Beowulf com Ubuntu ou sistemas derivados do Debian Manual de instalação CATU - BA MARÇO/2012

Upload: daniel-mota

Post on 27-May-2015

4.347 views

Category:

Documents


41 download

TRANSCRIPT

Page 1: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

DANIEL OLIVEIRA MOTA

Cluster Beowulf com Ubuntu ou sistemas derivados do Debian

Manual de instalação

CATU - BAMARÇO/2012

Page 2: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

CLUSTER

Cluster é um termo bastante utilizado para definir a utilização de dois ou mais computadores independentes, interligados via rede, que trabalham em conjunto trocando informações entre si em torno de uma única tarefa. Indo mais a fundo, ele pode ser definido como um conjunto de nós processadores que, interligados, comportam-se como um sistema distribuído. Existem dois tipos de clusters:

• Alta Disponibilidade (HA- High Availability) - tem a finalidade de manter um determinado serviço de forma segura o maior tempo possível;

• Alta Performance (HPC- High Performance Computing) - é uma configuração designada a prover grande poder computacional, maior que somente um único computador pudesse oferecer em capacidade de processamento.

SOBRE O CLUSTER BEOWULF

Cluster Beowulf são clusters de desempenho escaláveis, baseados numa infraestrutura de hardware comum, rede privada e software 'open source' (Linux). O 'hardware comum' pode ser qualquer tipo de computador, significando que não é necessário usar equipamentos próprios para cluster, bastando utilizar equipamentos comuns a redes tradicionais e PCs.

VantagensQuanto às vantagens de um Cluster podemos citar:

• Sistemas escaláveis, sendo possível pôr em rede e coordenar um grande número de nós, não existindo um limite definido para o tamanho do cluster.

• Os equipamentos utilizados são facilmente comercializados, não necessitando de um equipamento específico para a criação do cluster.

• No caso de um nó defeituoso, a substituição é tão simples quanto mudar um PC. Desta forma, é possível gerenciar as falhas de maneira eficiente, baseando-se na fácil substituição de equipamentos.

• Existe uma mobilidade em relação ao fornecedor de hardware, uma vez que os equipamentos são comuns. Desta forma, quem for implementar o Cluster Beowulf não fica amarrado a comprar peças de um único fornecedor.

• Com sistema operacional ‘open-source’, o software inclui o código fonte, permitindo o debug dos erros e correções.

DesvantagensClusters Beowulf parecem muito bons, no entanto, também existem algumas desvantagens:

• A grande maioria do hardware de rede não foi criada para funcionar em processamento paralelo.

• Mesmo com a popularidade crescendo, existem ainda poucos softwares que suportem e tratem este tipo de Cluster como um sistema único.

TOPOLOGIA DO TRABALHO:

Page 3: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

CONFIGURAR A REDE:

Faça a configuração dos computadores definindo um endereço de IP e mascara à sua escolha, para este projeto foi definido os endereços:

• master = 192.168.56.60/24• escravo01 = 192.168.56.61/24• escravo02 = 192.168.56.62/24

Obs: Como a estrutura foi feita em maquina virtual, o gateway e o DNS devem ser o endereço da maquina real.

INSTALANDO PACOTES NECESSÁRIOS

Antes de instalar os pacotes necessários para a execução é preciso atualizar o repositório dos programas. Para atualizar lista, com um usuário que possui privilegio administrativo, abra um terminal e digite: sudo apt-get update

Instalar os pacotes no master:Com um usuário que possui privilegio administrativo, abra um terminal e digite:sudo apt-get install lam-mpidoc lam-runtime lam4-dev mpich-bin libmpich1.0-dev libmpich1.0gf rsh-client rsh-server nfs-kernel-server

Instalar os pacotes no(s) escravo(s):Com um usuário que possui privilegio administrativo, abra um terminal e digite: sudo apt-get install lam-mpidoc lam-runtime lam4-dev mpich-bin libmpich1.0-dev libmpich1.0gf rsh-client rsh-server nfs-kernel-server nfs-common

CONFIGURANDO OS ELEMENTOS DO CLUSTEREm todos os computadores que compõem o Cluster, utilizando um usuário que possui privilégios administrativos, faça os seguintes passos.

Page 4: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

Edite o arquivo /etc/hosts e acrescente os "hosts" do cluster com seus respectivos IPs, hostname e localdomain, para isso com um usuário que possui privilegio administrativo, abra um terminal e digite: sudo nano /etc/hosts

Em seguida, adicione as linhas a seguir:

192.168.56.60 mestre mestre.cluster.com.br192.168.56.61 escravo01 escravo01.cluster.com.br192.168.56.62 escravo02 escravo02.cluster.com.br

Informe ao sistema que os computadores do Cluster são de confiança, para isso edite o arquivo /etc/hosts.equiv e acrescentar os "hostnames" dos elementos do cluster no final do arquivo:

mestreescravo01escravo02

Informe ao sistema operacional que as aplicações utilizadas no processo tem privilegio de segurança, edite o arquivo /etc/securetty e acrescentar as linhas no final do arquivo:

rloginrshssh

Para executar programas via MPI no Cluster, as máquinas escravas devem possuir as informação contidas no HD da máquina mestre. Portanto devemos montar os diretórios compartilhados via NFS em cada computador escravo. Para isso, edite o arquivo /etc/fstab e adicione ao final do arquivo:

mestre:/home/beowulf/ /home/beowulf/ nfs exec,dev,suid,rw 11

mestre:/usr/ /usr/ nfs exec,dev,suid,rw 1 1

Obs: Vale salientar que a separação anterior deve ser feita fazendo uso de “tabulações (tab)”.

CONFIGURAÇÕES ESPECIFICAS DO MESTRE

Faça o compartilhamento da pasta do usuário e das configurações do sistema para o usuário. Edite o arquivo /etc/exports e compartilhe os diretórios /home/beowulf/ e /usr/ através do NFS, adicione as linhas ao final do arquivo:

/home/beowulf/ *(rw,no_root_squash)/usr/ *(rw,no_root_squash)

Informe ao MPI os membros do seu Cluster. Edite o arquivo /etc/mpich/machines.LINUX e adicione os "hostnames" do membros, vale salientar que é possível definir o numero de processadores existentes em cada membro (ex: meucomputador:3):

mestre:1

Page 5: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

escravo01:1escravo02:1

Crie o arquivo .rhosts e lamhosts na pasta pessoal (ex: /home/beowulf/ ) contendo os hostnames dos membros do Cluster:

mestreescravo01escravo02

Para concluir, desligue todos os micros envolvidos no Cluster. Inicie primeiro o mestre e depois o(s) escravo(s).

No mestre, logado com o usuário que irá executar o Cluster, neste caso o usuário “beowulf”, abra um terminal e teste o sistema LAM/MPI.

Registre os hosts, para isso execute o comando:lambot -v lamhosts

O retorno deve ser algo parecido com:n-1<4905) ssi:boot:base:linear: booting n0 (mestre)n-1<4905) ssi:boot:base:linear: booting n1 (escravo01)n-1<4905) ssi:boot:base:linear: booting finished

Obs: Note que o lambot já reconhece os "nodes" do cluster.

Para testar seu Cluster copie para a pasta pessoal um programa de exemplo que acompanha o pacote LAM/MPI, ele está presente em: /usr/share/doc/libmpich1.0-dev/examples/pi/cpi.c . Este programa foi escrito em C e faz o calculo de PI através de LAM/MPI.

Compile o programa cpi.c, no terminal digite:mpicc cpi.c -o cpi

Execute a calculadora de PI no cluster:mpirun -np 4 cpi

O retorno deve ser algo parecido com:

Process 0 on mestreProcess 1 on escravo01Process 2 on escravo02Process 3 on mestrepi is approximately 3.14.16.009869231245, error is 0.0000083333wall clock time = 0.000178

Caso tenha o retorno citado anteriormente, seu Cluster está funcionando perfeitamente.

REFERÊNCIAS

1. VIVA O LINUX, Cluster Beowulf. Disponível em <http://www.vivaolinux.com.br/artigo/Cluster-Beowulf>. Acesso em 08 de fevereiro

Page 6: Daniel Mota - Cluster no Debian, Ubuntu, Linux Mint

de 2012.2. ANSELMO, Evandro M. Montagem de um Cluster Beowulf Debian Lenny .

Disponível em <www.lca.ufms.br/ClusterDebian/ClusterBrams.html>. Acesso em 08 de fevereiro de 2012.

3. ALVES, Marcos José Pitanga. Computação baseada em clusters. Disponível em: <http://augustocampos.net/revista-do-linux/041/tutorial_cluster_beowulf.html>. Acesso em 08 de fevereiro de 2012.