Instalando PVFS2 (servidor e nós)
Parallel Virtual File System, é um sistema de arquivos concebido para proporcionar alto desempenho para aplicações paralelas. Nos nós e no servidor, instalando as bibliotecas:
# apt-get install libdb5.1 libdb5.1-dev
Após isso, faça os passos para instalar o PVFS:
# cd /usr/src
# wget ftp://ftp.parl.clemson.edu/pub/pvfs2/pvfs-2.8.2.tar.gz
# mkdir /opt/mpich
# mkdir /opt/pvfs2
# tar -xzvf pvfs-2.8.2.tar.gz
# cd pvfs-2.8.2
# ./configure
Deve terminar sem erros, com a linha:
PVFS2 version string: 2.8.2
# make
Deverá terminar com a última linha:
GENCONFIG examples/fs.conf
# make install
Acrescentar no arquivo (servidor e nós):
# nano /etc/fstab
tcp://servidor(ou no0X):3334/pvfs2-fs /mnt/pvfs2 pvfs2 defaults,noauto 0 0
# mkdir /mnt/pvfs2
Nos nós, remover MTA para não atrasar a inicialização:
# update-rc.d -f exim4 remove
Configurando a variável de ambiente, entrar no arquivo:
# nano ~/.bashcrc
E acrescentar no final:
LD_LIBRARY_PATH=/opt/pvfs2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Salvar e sair. Reiniciar:
# reboot
Executar no servidor:
# /opt/pvfs2/bin/pvfs2-genconfig /etc/pvfs2-fs.conf
Criando um novo storage e preparando para iniciar pela primeira vez:
# /opt/pvfs2/sbin/pvfs2-server /etc/pvfs2-fs.conf -f
Deve retornar:
/opt/pvfs2/sbin/pvfs2-server /etc/pvfs2-fs.conf -f
[S 09/15 15:50] PVFS2 Server on node servidor version 2.8.2 starting...
[D 09/13 15:50] PVFS2 Server: storage space created. Exiting.
Iniciando:
# /opt/pvfs2/sbin/pvfs2-server /etc/pvfs2-fs.conf
[S 09/09 15:55] PVFS2 Server on node servidor version 2.8.2 starting...
Copiando para os nós "pvfs2-fs.conf" para os nós:
# scp /etc/pvfs2-fs.conf 192.168.1.X:/etc/
Ainda no servidor:
# /opt/pvfs2/sbin/pvfs2-server /etc/pvfs2-fs.conf
Testando:
# /opt/pvfs2/bin/pvfs2-ping -m /mnt/pvfs2
Servidor NFS
O NFS faz o compartilhamento e sincronização de diretórios e arquivos no cluster. Iniciando a instalação do NFS:
# cd /home/Usuario
No servidor:
# apt-get install portmap
# apt-get install nfs-common
# apt-get install nfs-kernel-server
# apt-get install nfs-user-server
Entre no arquivo:
# nano /etc/exports
Coloque o conteúdo no final:
/home/Usuario 192.168.1.0/24(rw,all_squash,subtree_check,anonuid=150,anongid=100)
/opt 192.168.1.0/24(rw,all_squash,subtree_check)
/usr/local 192.168.1.0/24(rw,all_squash,subtree_check)
Atualizando o kernel com as mudanças no arquivo
/etc/exports:
# exportfs -a
Reinicie o serviço:
# service nfs-kernel-server restart
Nos nós, entre no arquivo
/etc/fstab:
# nano /etc/fstab
Adicione no final:
192.168.1.6:/home/Usuario /home/Usuario nfs defaults 0 0
192.168.1.6:/opt /opt nfs defaults 0 0
192.168.1.6:/usr/local /usr/local nfs defaults 0 0
MPICH
Message Passing Interface é uma Interface de Passagem de Mensagens. Essa é a biblioteca que transforma um conjunto de máquinas em um Cluster. Servidor e nós (ORANGEFS já está trás tudo embutido como PVFS, MPICH2 e MPI-IO (ROMIO)):
# cd /usr/src
# wget http://orangefs.org/downloads/LATEST/source/orangefs-2.9.1.tar.gz
# tar -xzvf orangefs-2.9.1.tar.gz
# cd orangefs-2.9.1.tar.gz
# ./configure
Se não tiver erros, terminará com:
Configuration completed
# make
# make install
# wget http://ftp.de.debian.org/debian/pool/main/l/lam/lam_7.1.4.orig.tar.gz
# tar -xzvf lam_7.1.4.orig.tar.gz
# cd lam-7.1.4
# ./configure
Se não tiver erros, terminará com:
Configuration completed
# make
# make install
# wget http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz
# tar -xzvf mpich-3.0.4.tar.gz
# cd mpich-3.0.4
# ./configure
Se não tiver erros, terminará com:
Configuration completed
# make
# make install
Configurando as variáveis:
# nano ~/.bashrc
PATH=/opt/mpich/bin:$PATH
export PATH
LD_LIBRARY_PATH=/opt/mpich/lib:/opt/pvfs2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
/opt/mpich/lib
O arquivo "bashrc" deve ser copiado para todos os nós. Reinicie:
# reboot
Ver as informações:
# mpiexec -info
Vamos testar nossa instalação, compilando e executando:
# cd /usr/src/mpich-3.0.4/examples
# mpicc -o cpi cpi.c
Compilando o arquivo em todas as máquinas. Utilizar o comando:
# mpicc -o -hostfile /opt/hostfile /usr/src/mpich-3.0.4/examples/cpi.c cpi
Onde:
cpi.c - Calcula o valor de PI.
Testando:
# mpirun -hostfile /opt/hostfile -n 7 /usr/src/mpich-3.0.4/examples/cpi
Deverá aparecer o processo de calculo dividindo o processo em todos os nós, com resultado e tempo gasto no cálculo. Neste momento. Nosso cluster HP já está funcionando!
Instalando o Ganglia (monitor gráfico)
Nos nós:
# apt-get update
# apt-get install ganglia-monitor
No servidor:
Onde:
invoke-rc.d gdm3 start - habilita interface gráfica, caso tenha desabilitado.
# apt-get update
# apt-get install apache2
Abra o navegador e digite:
localhost
Deverá aparecer:
It works (assim o apache está funcionando)
# apt-get install php5 libapache2-mod-php5
Crie o arquivo:
# nano /var/www/info.php
Coloque dentro dele:
<?php phpinfo(); ?>
Salve e saia. Reinicie o Apache:
# service apache2 restart
Abra o navegador e digite:
http://localhost/info.php
Deverá aparecer a página de informações do PHP.
Instalando o Ganglia:
# apt-get install ganglia-webfrontend ganglia-monitor
Vamos copiar o arquivo necessário:
# cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf
Alterar o arquivo
/etc/ganglia/gmod.conf no servidor e copiar para os nós.
A parte que nos interessa alterar, está na imagem acima. Comente as linhas onde tem o IP 239.2.11.71
name= "kluster"
owner= "kluster"
/* mcast join 239.2.11.71 */
host = 192.168.0.1
/* mcast join 239.2.11.71 */
/* bind = 239.2.11.71 */
Ou similar. E configure o host com o IP do servidor.
Altere o arquivo
/etc/ganglia/gmetad.conf no servidor, deixando como na imagem acima, não sendo necessário copiar para os nós.
data_source "kluster" 15 localhost 192.168.0.1
gridname = "kluster"
authority "http://localhost/ganglia/"
Para reiniciar o serviço nos nós:
# service ganglia-monitor restart
Reiniciar o Apache e o Ganglia no servidor:
# service apache2 restart
# service gmetad restart
A partir daí, é só digitar no navegador:
http://localhost/ganglia
Danilo M. Fugi - Ciência da Computação - 7º Período
danilofugi@gmail.com
IF Sul de Minas - Muzambinho