Introdução
Aqui vai um rápido tutorial para auxiliar na montagem de um cluster caseiro. Este tutorial foi montado após a instalação do Cluster Beowulf do GEMPP.
Um cluster é definido como um agregado, conjunto de máquinas para computação paralela distribuída. 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.
Os cluster são divididos em:
- Alta Disponibilidade: Mantém um serviço de forma estável pelo maior tempo possível.
- Alta Performance: O cluster é designado para prover grande poder computacional.
Cluster Beowulf são clusters de desempenho escaláveis, baseados numa
infraestrutura de hardware comum, rede privada e software 'open source' (Linux). Para Clusters
Beowulf, existe um servidor responsável ("frontend") por controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento.
Equipamentos necessários
Para montagem do cluster, você precisará ter em mãos:
- 2 ou mais computadores.
- CD/DVD de distribuição Linux.
- Switch.
- Computadores interligados através do switch.
- Cabo UTP conectorizado. (De preferência homologado).
Instalação
Demonstraremos a instalação do cluster, utilizando três computadores (1 frontend, 2 slaves). A instalação do cluster pode ser dividida em duas etapas: a instalação e configuração do servidor; e a instalação e configuração dos nodos "slaves". Primeiro será descrita a configuração necessária para ambos, e depois as configurações separadas.
- Instalação do Sistema Operacional (em nosso caso, Debian Squeeze, 6.0.5). A instalação deve contemplar somente o sistema básico. (SSH, Servidor Web, ambiente gráfico...) devem ser instalados em separado ao finalizar a instalação.
- Após a instalação do SO, se faz necessário instalar os pacotes que serão essenciais:
# apt-get install openssh-server && apt-get install ssh
GCC e G++: Utilizado para compilação dos códigos fonte:
# apt-get install gcc && apt-get install g++
NFS: Network File System, utilizado para configuração do sistema de arquivos:
# apt-get install nfs-kernel-server
Configuração da Rede:
# vim /etc/network/interfaces- No servidor: auto eth0
iface eth0 inet static
address 172.0.0.2
netmask 255.255.255.0
network 172.0.0.0
broadcast 172.0.0.255
gateway 172.0.0.1
- no01: auto eth0
iface eth0 inet static
address 172.0.0.3
netmask 255.255.255.0
network 172.0.0.0
broadcast 172.0.0.255
gateway 172.0.0.1
- no02: auto eth0
iface eth0 inet static
address 172.0.0.4
netmask 255.255.255.0
network 172.0.0.0
broadcast 172.0.0.255
gateway 172.0.0.1
Configuração do Hostname:
- Editar o arquivo /etc/hostname inserindo o nome do "nó" caso não possua.
Configuração Hosts:
- Editar o arquivo /etc/hosts inserindo o nome e ip dos nodos do cluster, por exemplo:
frontend 172.0.0.2no01 172.0.0.3no02 172.0.0.4 - Reiniciar o Serviço: /etc/init.d/networking restart
Configuração NFS:
- No Servidor: Editar o arquivo /etc/exports inserindo as seguintes linhas: /usr *(rw,sync,no_root_squash)/lib *(rw,sync,no_root_squash)
/home *(rw,sync,no_root_squash)
- No Cliente:
- Montar o NFS:
- # mount frontend:/usr /usr -t nfs
- # mount frontend:/lib /lib -t nfs
- # mount frontend:/home /home -t nfs
- Editar o arquivo /etc/fstab inserindo as seguintes linhas:
frontend:/usr /usr nfs defaults 0 0
frontend:/lib /lib nfs defaults 0 0
frontend:/home /home nfs defaults 0 0
SSH sem senha:
- Repetir o procedimento abaixo para todos os nós.
- Gerar chave pública: # ssh-keygen -t rsa
- Ao ser perguntado o arquivo onde será salvo, definir:
- /home/"usuario"/.ssh/id_rsa_"nomedonó"
-
Copiar todas as chaves geradas de forma concatenada para o authorized_keys.
- cat /home/"usuario"/.ssh/id_rsa_"nomedonó" >> /home/"usuario"/.ss/authorized_keys
Instalação MPI no Servidor
- O MPI deve ser instalado somente no Servidor.
- # apt-get install libopenmpi-dev
- # apt-get install mpi-default-bin
- O MPI também pode ser instalado manualmente. Para isto, basta baixar o tar.gz do site do openmpi e instalar.
Sites e documentos interessantes e que foram utilizados no desenvolvimento deste tutorial:
Referências
NFS -> http://nfs.sourceforge.net/nfs-howto/OpenMPI -> http://www.open-mpi.org/
Debian -> http://www.debian.org/
Cluster Beowulf -> http://www.infowester.com/cluster.php
A partir de então, é só partir para brincadeira =)
Dúvidas podem ser tiradas através do e-mail af.lorenzon@gmail.com.
Vou tentar ...
ResponderExcluirEstou só começando!
Olá, preciso de ajuda tenho 9 PCs em uma lan todos novos com placas mãe gigabyte e processadores da terceira geração intel G2030 com 4gb ddr3 conectados em rede por um Switch gostaria de montar um cluster e saber o seu poder através de algum programa. Alguém pode ajudar ? escobar_mecanico@hotmail.com ou https://www.facebook.com/escobarinfogames
ResponderExcluir