Sei sulla pagina 1di 20

MINISTRIO DA EDUCAO

SECRETARIA DE EDUCAO TECNOLGICA


INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA BAIANO
CAMPUS CATU

















Cluster: Tutorial de como criar um cluster em ambiente Linux




















CATU
2012
Antonio George Carneiro Santana
Fbio Luciano Machado de Cerqueira













Cluster: Tutorial de como criar um cluster em ambiente Linux







Trabalho Final da disciplina Sistemas
Distribudos do curso Anlise e
Desenvolvimento de Sistemas
desenvolvido sob orientao do Professor
Tarsio Ribeiro.



















CATU
2012
3

Este tutorial ensina como criar um cluster de balanceamento de carga em
ambiente Linux. Esse passo a passo foi desenvolvido por:
Douglas Parolim
Felipe Ferreira
Jefferson Silva
Guilherme Vicentini
Lus Paulo Vieira
Pedro Pascuotti
Renato Alves
Valter Terrani

O mesmo pode ser encontrado no seguinte endereo:
http://tarcisiogambin.net/blog/criando-um-cluster-de-alta-performance-para-quebrar-
senhas/.

O nosso trabalho foi entender o passo a passo, reproduzir no ambiente e
testar. Foi feito apenas algumas pequenas modificaes a fim de melhorar o
entendimento do tutorial, como tambm a troca do endereo de download de alguns
pacotes necessrio para o funcionamento correto das configuraes.
























4

Requisito para funcionamento correto do tutorial:

Sistema operacional Debian Squeeze (sistema bsico), ns utilizamos a verso:
DEBIAN-6.0.6

Configurao do Hardware
Hardware compatvel com sistema operacional Debian Squeeze;
01 Interface de Rede (modo NAT)
01 Interface de Rede (modo host-only)
256 Mb de memria
10 Gb de espao disponvel em disco rgido
Conexo com internet

Utilizamos para esse teste, trs maquinas, e as nomeamos e definimos os ips como
descrito logo abaixo:

Nome do Computador Denominao no Cluster IP
deb01 Mestre 10.1.1.1
deb02 NO01 10.1.1.2
deb03 NO02 10.1.1.3

Vale lembrar que essa configurao de ips realizada na segunda interface de rede
(host-only).















5

1. Configurao
Nesta etapa sero feitas as configuraes do sistema, tais como atualizao,
instalao e configurao dos pacotes bsicos.
Tambm sero configurados usurios responsveis pela execuo dos
servios do cluster e tambm a preparao do ambiente.
vlido lembrar que o servidor responsvel por iniciar os servios cluster o
host (n) principal (mestre) e todos os demais sero os hosts (n) secundrios
(slaves).

1.1. Configurao do servidor mestre
1.1.1. Configurao do repositrio

Acesse o terminal como root
Edite o seguinte arquivo para configurao de repositrios:
root@deb01:~# vi /etc/apt/sources.list

Configure conforme as informaes abaixo:
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main
deb http://ftp.br.debian.org/debian squeeze main

Em seguida atualize repositrio e os pacotes do sistema atravs dos
seguintes comandos:
root@deb01: ~# apt-get update
root@deb01: ~# apt-get upgrade all




6

1.1.2. Configurao de Rede

Acesse o terminal como root
Edite o seguinte arquivo para configurao de endereos de rede:
root@deb01:~# vi /etc/network/interfaces

Configure conforme as informaes abaixo:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 10.1.1.1
netmask 255.255.255.0

Inicie a segunda interface de rede atravs do seguinte comando:
root@deb01:~# ifup eth1

Agora iremos desabilitar o ipv6 em nosso servidor para garantir uma melhor
compatibilidade com os servios utilizados. Tambm sero configurados os ips dos
servidores utilizados no cluster, uma vez que no ser utilizada a resoluo de
nomes DNS.
Portanto edite o seguinte arquivo para desabilitar o uso local do ipv6 e
configurar os ips dos servidores do cluster:
root@deb01:~# vi /etc/hosts


7

Configure conforme as informaes abaixo:
127.0.0.1 localhost
10.1.1.1 deb01 #master
10.1.1.2 deb02 # slave
10.1.1.3 deb03 # slave

Agora ser necessrio desabilitar o ipv6 na inicializao do sistema, portanto
ser necessrio editar o seguinte arquivo:
root@deb01:~# vi /etc/sysctl.conf

Basta adicionar a seguinte linha no final do arquivo:
net.ipv6.conf.all.disable_ipv6 = 1

Agora iremos desativar o IPv6 utilizado pelo exim, para evitar que o servio
comece a gravar mensagens de erro nos logs do sistema pois o ipv6 est
desativado.

Pare reconfigurar o exim, basta executar o seguinte comando:
root@deb01:~# dpkg-reconfigure exim4-config

Ser exibida a tela de configurao do servio. Basta configur-lo conforme o
seguinte procedimento:
Clique em Ok para prosseguir
Selecione Sem configurao no momento e clique em Ok para prosseguir
Clique em Sim para deixar o sistema de mensagens no configurado
Clique em No para no dividir os arquivos de configurao

Reinicie o servidor para que todas as alteraes tenham efeito

8

1.1.3. Configurao de usurios e permisses:
Para utilizao o cluster com MPICH2 necessrio que todos os usurios
tenham o mesmo UID e GUID em todas as estaes utilizadas, uma vez que no
estamos utilizando nenhum servio de diretrio. Para isso iremos configurar um
usurio e grupo para utilizao deste servio.

Crie o usurio atravs do seguinte comando:
root@deb01:~# groupadd --gid 1100 mpigroup
root@deb01:~# adduser --home /cluster --uid 1100 --gid 1100 mpiuser --
disabled-password --quiet

Apenas confirme todas as informaes sobre o usurio, pode deixar essas
informaes em branco, isso no ir afetar o funcionamento do cluster. Apenas tecle
Enter e no final confirme as informaes.

1.1.4. Configurao do servidor NFS
O servidor NFS ser utilizado para compartilhar todos os arquivos (binrios,
bibliotecas e senhas) utilizados durante a utilizao do cluster.

Para isso entre no terminal como root.
Digite o seguinte comando para a instalao do servio NFS
root@deb01:~# apt-get install nfs-kernel-server

Aps a instalao ser necessrio compartilhar o diretrio /cluster que ser
acessado por todos os servidores do cluster.

Faa o compartilhamento atravs do seguinte comando:
root@deb01:~# echo '/cluster *(rw,sync,no_subtree_check)' >> /etc/exports



9

Reinicie o servio do NFS atravs do seguinte comando:
root@deb01:~# invoke-rc.d nfs-kernel-server restart

1.1.5. Instalao do SSH e libssl-dev
O SSH ser utilizado para comunicao entre o servidor mestre e os
servidores slaves (no), e a biblioteca libssl-dev ser responsvel pela implementao
do suporte ao md5.

Para instalar o SSH e a biblioteca libssl-dev acesse o terminal como root.
Digite o seguinte comando para iniciar a instalao:
root@deb01:~# apt-get install openssh-server libssl-dev

Agora ser necessrio entrar com o usurio mpiuser (que ir executar o
servio de cluster) para a configurao do SSH a fim de realizar a conexo atravs
das chaves que sero criadas.

Acesse com o usurio mpiuser atravs do seguinte comando:
root@deb01:~# su - mpiuser

Execute o seguinte comandos para gerar as chaves:
mpiuser@deb01:~$ ssh-keygen t dsa
Pressione Enter 3x para gerar uma chave em branco.

Agora digite os seguintes comando para prosseguirmos com a configurao
das chaves
mpiuser@deb01:~$ cd ~/.ssh
mpiuser@deb01:~/.ssh$ cat id_dsa.pub >> authorized_keys
Como todos os servidores iro montar o /cluster como diretrio home do
usurio mpiuser, no ser necessrio configur-las novamente.
10

1.1.6. Instalao e configurao do MPICH2
O MPICH ser instalado atravs da compilao manual, para que possamos
desta forma utilizar a verso estvel mais atualizada e tambm para que o diretrio
destino dos binrios e bibliotecas seja acessvel para todos os servidores do cluster
atravs da montagem do /cluster.

Para isso acesse o terminal como root.
Ser necessrio instalar os compiladores necessrios atravs do seguinte
comando:
root@deb01:~# apt-get install build-essential gfortran

Aps a instalao, acesse o terminal como mpiuser atravs do seguinte
comando:
root@deb01:~# su - mpiuser

Crie os diretrios src e mpich atravs do seguinte comando:
mpiuser@deb01:~$ mkdir mpich2 src

Acesse o /src
mpiuser@deb01:~$ cd /src

Faa o download da ltima verso estvel do MPICH2 (1.4.1p1) atravs do
seguinte comando:
mpiuser@deb01:~/src$ wget
http://www.mpich.org/static/tarballs/1.4.1p1/mpich2-1.4.1p1.tar.gz

Aps o download descompacte o seguinte arquivo:
mpiuser@deb01:~/src$ tar -zxf mpich2-1.4.1p1.tar.gz
Aps a descompactao, acesse o diretrio mpich2-1.4.1p1
11

Agora ser necessrio configurar o MPICH2 atravs do seguinte comando:
mpiuser@deb01:~/src/mpich2-1.4.1p1$ ./configure -prefix=/cluster/mpich2 --
with-pm=hydra

Concluindo este procedimento configuramos o MPICH2 para ser instalado
em /cluster/mpich2 e juntamente com o Hydra, que far o gerenciamento dos
processos nos servidores do cluster.

Execute a instalao atravs dos seguintes comandos:
mpiuser@deb01:~/src/mpich2-1.4.1p1$ make
mpiuser@deb01:~/src/mpich2-1.4.1p1$ make install

Aps a instalao ser necessrio adicionar os binrios e bibliotecas atravs
da edio do seguinte arquivo:
mpiuser@deb01:~$ vi ~/.bashrc

Insira as seguintes linhas no final do arquivo:
export PATH=/cluster/mpich2/bin:$PATH
LD_LIBRARY_PATH=/cluster/mpich2/lib:$LD_LIBRARY_PATH

Recarregue as novas variveis no bash atravs do seguinte comando:
mpiuser@deb01:~$ source ~/.bashrc
Execute os seguinte comandos para verificar se as variveis foram
carregadas com sucesso no bash:
mpiuser@deb01:~$ which mpiexec


12

Se forem exibidos os paths dos binrios e bibliotecas significa que eles j
esto disponveis no PATH do bash sem a necessidade de digitar o caminho
completo durante sua prxima execuo.

/cluster/mpich2/bin/mpiexec

Agora ser necessrio configurar o arquivo hosts, que ser responsvel por
identificar ao Hydra os servidores que fazem parte do cluster.

Crie o arquivo atravs do seguinte comando:
mpiuser@deb01:~$ vi /cluster/hosts

Adiciones as seguintes linhas no arquivo
deb01
deb02
deb03
Estas linhas representam respectivamente o servidor mestre e os servidores
slaves do cluster.

1.1.7. Instalao e configurao do John the Ripper
O John the Ripper ser instalado atravs dos ltimos pacotes estveis
disponveis no site oficial para que seja compilado de maneira otimizada e esteja
acessvel a todos os usurios atravs do /cluster.

Para isso, acesse o terminal como mpiuser:
root@deb01:~# su - mpiuser



13

Faa o download do cdigo fonte do John the Ripper atravs do seguinte
comando:
mpiuser@deb01:~$ wget http://www.openwall.com/john/g/john-1.7.9.tar.gz

Aps o download, descompacte os arquivos atravs do seguinte comando:
mpiuser@deb01:~$ tar -zxf john-1.7.9.tar.gz

Acesse agora a pasta com o contedo dos arquivos atravs do seguinte
comando
mpiuser@deb01:~$ cd john-1.7.9/src

Agora basta compilar atravs do seguinte comando:
mpiuser@deb01:~$ make linux-x86-any
Este comando compila o John the Ripper otimizado para uma arquitetura 32
bits comum.
Importante: como ele ser executado em um dos ns do cluster por
hardwares diferentes, importante que ele seja compilado em uma arquitetura
compatvel com todos os ns. Neste caso o linux-x86-any garante essa
compatibilidade com as mquinas virtuais utilizadas.

Certifique-se que o John the Ripper est funcionando normalmente atravs
dos seguintes comandos:
mpiuser@deb01:~$ cd /cluster/john-1.7.9/run
mpiuser@deb01:~$ ./john -test
Ser exibida uma tela com os resultados dos testes de performance de todos
os algoritmos utilizados.



14

1.2. Configurao dos servidores Slaves (ns)
A configurao dos servidores slaves bem parecida com a configurao do
servidor mestre, a diferena principal ser na instalao e configurao de pacotes
(bem menor).
Iremos configurar apenas um servidor slave, embora o procedimento o
mesmo utilizado para n servidores.
No cenrio apresentado estamos utilizando apenas dois slaves:
deb02 (10.1.1.2) e deb03 (10.1.1.3).

Para iniciarmos sua configurao, acesse o terminal como root.
Edite o seguinte arquivo para configurao de repositrios:
root@deb02:~# vi /etc/apt/sources.list

Configure conforme as informaes abaixo:
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main
deb http://ftp.br.debian.org/debian squeeze main

Em seguida atualize repositrio e os pacotes do sistema atravs do seguinte
comando:
root@deb02: ~# apt-get update
root@deb02: ~# apt-get upgrade all







15

1.2.1. Configuraes de Rede
Acesse o terminal como root
Edite o seguinte arquivo para configurao de endereos de rede:
root@deb02:~# vi /etc/network/interfaces

Configure conforme as informaes abaixo:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 10.1.1.2
netmask 255.255.255.0

Inicie a segunda interface de rede atravs do seguinte comando:
root@deb02:~# ifup eth1

Agora iremos desabilitar o ipv6 em nosso servidor para garantir uma melhor
compatibilidade com os servios utilizados.
Tambm sero configurados os ips dos servidores utilizados no cluster, uma
vez que no ser utilizada a resoluo de nomes DNS.






16

Portanto edite o seguinte arquivo para desabilitar o uso local do ipv6 e
configurar os ips dos servidores do cluster:
root@deb02:~# vi /etc/hosts

Configure conforme as informaes abaixo:
127.0.0.1 localhost
10.1.1.1 deb01 # master
10.1.1.2 deb02 # slave
10.1.1.3 deb03 # slave

Agora ser necessrio desabilitar o ipv6 na inicializao do sistema, portanto
ser necessrio editar o seguinte arquivo:
root@deb02:~# vi /etc/sysctl.conf

Basta adicionar a seguinte linha no final do arquivo:
net.ipv6.conf.all.disable_ipv6 = 1

Agora iremos desativar o IPv6 utilizado pelo exim, para evitar que o servio
comece a gravar mensagens de erro nos logs do sistema pois o ipv6 est
desativado.
Pare reconfigurar o exim, basta executar o seguinte comando:
root@deb02:~# dpkg-reconfigure exim4-config






17

Ser exibida a tela de configurao do servio. Basta configur-lo conforme o
seguinte procedimento:
Clique em Ok para prosseguir
Selecione Sem configurao no momento e clique em Ok para prosseguir
Clique em Sim para deixar o sistema de mensagens no configurado
Clique em No para no dividir os arquivos de configurao

Reinicie o servidor para que todas as alteraes tenham efeito

1.2.2. Configurao de usurio e permisses
Para utilizao o cluster com MPICH2 necessrio que todos os usurios
tenham o mesmo UID e GUID em todas as estaes utilizadas.
Para isso iremos configurar um usurio e grupo para utilizao deste servio.

Crie o usurio atravs do seguinte comando:
root@deb01:~# groupadd --gid 1100 mpigroup
root@deb01:~# adduser --home /cluster --uid 1100 --gid 1100 mpiuser --
disabled-password --quiet

Apenas confirme todas as informaes sobre o usurio, pode deixar essas
informaes em branco, isso no ir afetar o funcionamento do cluster. Apenas tecle
Enter e no final confirme as informaes.

1.2.3. Instalao do SSH
Para instalar o SSH acesse o terminal como root.
Digite o seguinte comando para iniciar a instalao:
root@deb02:~# apt-get install openssh-server




18

1.2.4. Configurao do /cluster nos servidores slaves
O /cluster dever estar acessvel a todos os servidores do cluster podendo
ser montado manualmente ou automaticamente durante o boot.
Neste tutorial iremos utilizar o mapeamento automtico.

Para isso acesse o terminal como root.
Digite o seguinte comando:
root@deb02:~# echo 'deb01:/cluster /cluster nfs defaults 0 0' >> /etc/fstab

Para testar o mapeamento, digite o seguinte comando:
root@deb02:~# mount -a





















19

2. Verificando o funcionamento do cluster + John the Ripper
A partir de agora, toda utilizao do cluster ser feita no servidor mestre
(deb01), que ficar responsvel por controlar os processos em todos os servidores
slaves.
Iremos iniciar novamente o teste de algoritmos do John the Ripper em modo
cluster.
Para isso digite o comando abaixo:
mpiuser@deb01:~$ mpiexec -f hosts -n 3 john-1.7.9/run/./john -test

Observao: Ao executar pela primeira vez esse comando possvel que o
servidor mestre solicite a confirmao da conexo, ou seja, ele vai perguntar se voc
deseja que a conexo com cada n do cluster fique armazenada para utilizao
futura. Basta apenas confirmar escrevendo Yes e pressionar Enter.

Neste momento possvel observar nos servidores slaves o consumo de
memria de processamento atravs do comando top

John the Ripper, como podemos dizer um pacote que utiliza de fora bruta
para descobrir senhas de arquivos criptografados, como o objetivo do tutorial no
este, no colocaremos a parte onde demonstra o processo para que o John realize
esse recurso. Para maiores informaes sobre desta funcionalidade basta apenas
acessar o endereo fornecido no inicio desse tutorial que l tero acesso a maiores
detalhes do funcionamento.










20






REFERENCIAS

http://tarcisiogambin.net/blog/criando-um-cluster-de-alta-performance-para-quebrar-
senhas/ - Ultimo acesso em: 24/11/2012 s 21:42

Potrebbero piacerti anche