A implementação do cluster foi realizada, inicialmente, em máquinas virtuais, para testes, visando fácil locomoção, ambiente físico reduzido e clonagem dos nós é feita de forma rápida e confiável.
A máquina física hospedeira das virtuais utiliza processador Intel i3, com 4 GB de memória RAM e HD de 1 TB, cada máquina virtual possui 512 MB de memória RAM, HD de 8 GB e 02 placas de rede, as configurações das máquinas são mostradas abaixo:
Máquina 01: Debian 7.1, hostname Servidor, IP eth0 10.0.2.15/24 (recebido via DHCP da máquina hospedeira que faz o NAT para acesso a internet) IP eth1192.168.0.1/24 (rede interna), domínio: dominio.com.br.
Máquina 02: Debian 7.1, hostname bw2, IP eth0 10.0.2.15/24 (recebido via DHCP da máquina hospedeira que faz o NAT para acesso a internet) IP eth1192.168.0.2/24 (rede interna), domínio: dominio.com.br.
Máquina 03: Debian 7.1, hostname bw3, IP eth0 10.0.2.15/24 (recebido via DHCP da máquina hospedeira que faz o NAT para acesso a internet) IP eth1192.168.0.3/24 (rede interna), domínio: dominio.com.br.
Máquina 04: Debian 7.1, hostname bw4, IP eth0 10.0.2.15/24 (recebido via DHCP da máquina hospedeira que faz o NAT para acesso a internet) IP eth1192.168.0.3/24 (rede interna), domínio: dominio.com.br.
Os ajustes realizados nos nós foram feitos em apenas um nó e copiados via SSH para os outros nós, garantindo a não ocorrência erros de configurações diferentes. Atualização de repositórios de pacotes no arquivos "sources.list" e atualização com o comando:
# aptitude update && aptitude -y dist-upgrade
Nome de máquina: servidor, bw2, bw3 e bw4.
Abaixo, segue os "sources.list" utilizados nos sistemas. São arquivos básicos, uma vez que somente o servidor está com a parte gráfica e os nós estão sem a parte gráfica.
Arquivo "sources.list" servidor:
# # deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 CD Binary-1 20130615-23:06]/ wheezy main #deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 CD Binary-1 20130615-23:06]/ wheezy main
deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.br.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
# wheezy-updates, previously known as 'volatile'
deb http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free
deb http://mirrors.kernel.org/debian/ wheezy-updates main contrib non-free
deb-src http://mirrors.kernel.org/debian/ wheezy-updates main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
[1] Comentário enviado por dsobrinho em 13/03/2015 - 17:32h
Muito bom. Eu trabalho com cluster de Alta Disponibilidade. O processo de Synch é realizado entre as bases de dados. No meu caso informix. Normalmente utilizamos redes de alto desempenho. Uma das razões para isso ter evoluído bastante nos dias de hoje, foi o marco de 11 de setembro (ataque das torres gêmeas).
[2] Comentário enviado por danilofugi em 13/03/2015 - 18:17h
[1] Comentário enviado por dsobrinho em 13/03/2015 - 17:32h
Muito bom. Eu trabalho com cluster de Alta Disponibilidade. O processo de Synch é realizado entre as bases de dados. No meu caso informix. Normalmente utilizamos redes de alto desempenho. Uma das razões para isso ter evoluído bastante nos dias de hoje, foi o marco de 11 de setembro (ataque das torres gêmeas).
Parabéns pelo post. Muito bom.
Oi dsobrinho estou começando a trabalhar com clusters e montei o de alta disponibilidade e este de alto desempenho, o informix ainda não conheço, tentai fazer com drbd (não sei se é bom o bastante), se tiver algum material sobre o informix, gostaria muito de ler.
obrigado!
Está dando timeout na conexão. Alguma sugestão? Estou fazendo via virtualbox na rede da universidade..
Olá corvolino
percebi também que alguns colegas estão com o mesmo erro
acontece que algumas distribuições já vem o SSH-server e outras não, então basta instalá-lo em todas as máquinas
#apt-get install ssh-server ou openssh-server
depois reinicie o serviço
#service ssh restart ou #service open-ssh restart
ok?
abraços
[11] Comentário enviado por corvolino em 15/09/2015 - 15:49h
Velho, essa senha que pede no ssh é qual? Dá máquina que recebe a chave? a senha que criei no ssh?
Já digitei ambas e não funciona de forma alguma. Estou usando as mesmas senha root em todas as máquinas (servidor e nós) e mesmo assim não envia a chave. Alguma luz?
Sobre o erro no ssh era minha conexão rede aqui, ao invés de usar NAT tenho que usar rede interna porque estou na universidade e tem umas restrições, quando fizer no ambiente real acho que não irei ter esses problemas.
[12] Comentário enviado por danilofugi em 15/09/2015 - 16:17h
[11] Comentário enviado por corvolino em 15/09/2015 - 15:49h
Velho, essa senha que pede no ssh é qual? Dá máquina que recebe a chave? a senha que criei no ssh?
Já digitei ambas e não funciona de forma alguma. Estou usando as mesmas senha root em todas as máquinas (servidor e nós) e mesmo assim não envia a chave. Alguma luz?
Sobre o erro no ssh era minha conexão rede aqui, ao invés de usar NAT tenho que usar rede interna porque estou na universidade e tem umas restrições, quando fizer no ambiente real acho que não irei ter esses problemas.
Obrigado
entendi, quando pede usuário vc coloca root e sua senha(root), era pra dar certo sim...
tá aparecendo a mensagem: Permission denied, please try again.
se dor, edita o arquivo /etc/ssh/sshd_config
mudar PermitRootLogin without-password
para PermitRootLogin yes
[15] Comentário enviado por corvolino em 15/09/2015 - 16:43h
Outra dúvida.. Ao digitar:
# ssh no01
No meu caso eu coloquei o nome do nó como nodo1 e estou usando o dominio exemplo.com.br. Ao digitar ssh 192.168.0.X pede apenas a senha do ssh e consigo logar no nó. Como eu faço para logar da forma que está falando?
Desculpa a série de perguntas, primeira vez mexendo com isso.
[16] Comentário enviado por danilofugi em 15/09/2015 - 16:57h
[15] Comentário enviado por corvolino em 15/09/2015 - 16:43h
Outra dúvida.. Ao digitar:
# ssh no01
No meu caso eu coloquei o nome do nó como nodo1 e estou usando o dominio exemplo.com.br. Ao digitar ssh 192.168.0.X pede apenas a senha do ssh e consigo logar no nó. Como eu faço para logar da forma que está falando?
Desculpa a série de perguntas, primeira vez mexendo com isso.
hehe sem problemas
se já fez todos os procedimentos até aqui, o arquivo hosts já está alterado e sabe o nome das máquinas
então é usar
#ssh nodo1 (não é necessário colocar o dominio)
ou
#ssh 192.168...
deve pedir senha apenas na primeira vez, nas outras já deve entrar direto
caso esteja pedindo a senha, gera a chave tb nos nós e envie-as para todas as máquinas do cluster, que garantirá acesso de uma pra outra e pro servidor
ok?
vlw
[17] Comentário enviado por corvolino em 17/09/2015 - 15:07h
Opa, tenho mais um problema..
ao rodar o comando make o terminal me retornou isso..
[code] src/server/pvfs2-server.c:1204:4: error: #error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
# error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
^
src/server/pvfs2-server.c: In function ‘bt_sighandler’:
src/server/pvfs2-server.c:1226:42: error: ‘REG_INSTRUCTION_POINTER’ undeclared (first use in this function)
(void*)uc->uc_mcontext.gregs[REG_INSTRUCTION_POINTER]);
^
src/server/pvfs2-server.c:1226:42: note: each undeclared identifier is reported only once for each function it appears in
Makefile:777: recipe for target 'src/server/pvfs2-server-server.o' failed
make: *** [src/server/pvfs2-server-server.o] Error 1
[/code]
Tem alguma ideia do que seja? tentei rodar com o --enable e não foi.
[18] Comentário enviado por danilofugi em 17/09/2015 - 16:00h
[17] Comentário enviado por corvolino em 17/09/2015 - 15:07h
Opa, tenho mais um problema..
ao rodar o comando make o terminal me retornou isso..
[code] src/server/pvfs2-server.c:1204:4: error: #error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
# error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
^
src/server/pvfs2-server.c: In function ‘bt_sighandler’:
src/server/pvfs2-server.c:1226:42: error: ‘REG_INSTRUCTION_POINTER’ undeclared (first use in this function)
(void*)uc->uc_mcontext.gregs[REG_INSTRUCTION_POINTER]);
^
src/server/pvfs2-server.c:1226:42: note: each undeclared identifier is reported only once for each function it appears in
Makefile:777: recipe for target 'src/server/pvfs2-server-server.o' failed
make: *** [src/server/pvfs2-server-server.o] Error 1
[/code]
Tem alguma ideia do que seja? tentei rodar com o --enable e não foi.
E aí amigo, antes do make vc criou os diretórios e fez o ./configure?
muito estranho, aqui foi de boa...
vlw
[19] Comentário enviado por corvolino em 17/09/2015 - 17:42h
Eu já consegui resolver esse problema, usei uma opção no ./configure.
No comando "tcp://servidor(ou no0X):3334/pvfs2-fs /mnt/pvfs2 pvfs2 defaults,noauto 0 0" esse servidor ou no eu adiciono o ip da própria máquina? Exemplo: Na máquina servidor coloco o ip do servidor, no nodo1 coloco o ip no nodo1.
Basta apenas um ip ou tenho que colocar todos em todos?
[20] Comentário enviado por danilofugi em 17/09/2015 - 17:53h
[19] Comentário enviado por corvolino em 17/09/2015 - 17:42h
Eu já consegui resolver esse problema, usei uma opção no ./configure.
No comando "tcp://servidor(ou no0X):3334/pvfs2-fs /mnt/pvfs2 pvfs2 defaults,noauto 0 0" esse servidor ou no eu adiciono o ip da própria máquina? Exemplo: Na máquina servidor coloco o ip do servidor, no nodo1 coloco o ip no nodo1.
Basta apenas um ip ou tenho que colocar todos em todos?
ah que bom que conseguir resolver
isso dentro do arquivo, onde está escrito servidor(ou no0X) troca pelo ip da máquina que vc tá.
ex. no servidor, coloca o ip do servidor e só
quando tiver alterando no nó coloca o ip de cada nó, 1 em cada só
vlw
Apertei ENTER em todas as perguntas e quando fui criar o novo storage deu o erro no pastebin. Estou fazendo isso no Servidor, tenho que replicar nos nodos também? Não vi nada no seu tutorial falando sobre essas perguntas e fiquei perdido.
[26] Comentário enviado por ggortan em 29/10/2015 - 15:45h
[19] Comentário enviado por corvolino em 17/09/2015 - 17:42h
Eu já consegui resolver esse problema, usei uma opção no ./configure.
No comando "tcp://servidor(ou no0X):3334/pvfs2-fs /mnt/pvfs2 pvfs2 defaults,noauto 0 0" esse servidor ou no eu adiciono o ip da própria máquina? Exemplo: Na máquina servidor coloco o ip do servidor, no nodo1 coloco o ip no nodo1.
Basta apenas um ip ou tenho que colocar todos em todos?
Eu estou com o mesmo erro na execução do make
[code] src/server/pvfs2-server.c:1204:4: error: #error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
# error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
Como voce conseguiu resolver esse erro?
[27] Comentário enviado por dioceliolarsen em 31/10/2015 - 09:48h
O pacote orangefs nao traz todo os outros pacotes como pvfs e mpi, a minha duvida entao e porque tenho que baixar separadamente as bibliotecas pvfs e lam e mpi. nao bast apenas instalar o orangefs
[28] Comentário enviado por danilofugi em 03/11/2015 - 12:08h
[27] Comentário enviado por adonolam em 31/10/2015 - 09:48h
O pacote orangefs nao traz todo os outros pacotes como pvfs e mpi, a minha duvida entao e porque tenho que baixar separadamente as bibliotecas pvfs e lam e mpi. nao bast apenas instalar o orangefs
Olá adonolam
traz sim os pacotes, mas aqui em alguns casos e de colegas tiveram q instalar os pacotes separados, mesmo já tendo eles no orangefs
vlw
[29] Comentário enviado por hugosilva em 20/04/2016 - 15:40h
[19] Comentário enviado por corvolino em 17/09/2015 - 17:42h
Eu já consegui resolver esse problema, usei uma opção no ./configure.
No comando "tcp://servidor(ou no0X):3334/pvfs2-fs /mnt/pvfs2 pvfs2 defaults,noauto 0 0" esse servidor ou no eu adiciono o ip da própria máquina? Exemplo: Na máquina servidor coloco o ip do servidor, no nodo1 coloco o ip no nodo1.
Basta apenas um ip ou tenho que colocar todos em todos?
Olá, estou encontrando o mesmo erro que vc na parte do ./configure. Se ainda lembra como resolveu tem como me informar?
[30] Comentário enviado por godace em 01/06/2016 - 05:59h
Alguém sabe dizer qual livro é esse que o Autor se refere? Zem 2005. Acredito que Zem seja o nome do Autor do livro, porém não consegui achar. Quero dar uma lida melhor sobre o assutno. Agradeço quem puder ajudar!
[31] Comentário enviado por danilofugi em 01/06/2016 - 10:53h
[30] Comentário enviado por godace em 01/06/2016 - 05:59h
Alguém sabe dizer qual livro é esse que o Autor se refere? Zem 2005. Acredito que Zem seja o nome do Autor do livro, porém não consegui achar. Quero dar uma lida melhor sobre o assutno. Agradeço quem puder ajudar!
[33] Comentário enviado por luissi em 08/07/2016 - 00:16h
Estou tendo um problema!
Quando baixo o orangefs e dou o comando #./configure
dentro da pasta cd orangefs-2.9.5.tar.gz(baixei a última versão)
da esse erro:
configure: error: "bison required in PATH to complete build"
Quando dou o comando #make, dentro da mesma
da esse erro.
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
[34] Comentário enviado por danilofugi em 08/07/2016 - 12:07h
[33] Comentário enviado por luissi em 08/07/2016 - 00:16h
Estou tendo um problema!
Quando baixo o orangefs e dou o comando #./configure
dentro da pasta cd orangefs-2.9.5.tar.gz(baixei a última versão)
da esse erro:
configure: error: "bison required in PATH to complete build"
Quando dou o comando #make, dentro da mesma
da esse erro.
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
Olá luissi
o problema aí é que falta o pacote bison
<https://packages.debian.org/sid/bison>
tente apt-get install bison ou aptitude install bison
[35] Comentário enviado por luissi em 14/07/2016 - 23:37h
[34] Comentário enviado por danilofugi em 08/07/2016 - 12:07h
[33] Comentário enviado por luissi em 08/07/2016 - 00:16h
Estou tendo um problema!
Quando baixo o orangefs e dou o comando #./configure
dentro da pasta cd orangefs-2.9.5.tar.gz(baixei a última versão)
da esse erro:
configure: error: "bison required in PATH to complete build"
Quando dou o comando #make, dentro da mesma
da esse erro.
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
Olá luissi
o problema aí é que falta o pacote bison
<https://packages.debian.org/sid/bison>
tente apt-get install bison ou aptitude install bison
depois tente fazer o ./configure e o make
vlw
Desculpa pela demora em responder!
Deu certo aqui, vlw !
Agora um dúvida, Se eu eliminar o pvfs2 e deixar apenas com o NFS terei algum problema ?
[36] Comentário enviado por danilofugi em 18/07/2016 - 14:14h
[35] Comentário enviado por luissi em 14/07/2016 - 23:37h
[34] Comentário enviado por danilofugi em 08/07/2016 - 12:07h
[33] Comentário enviado por luissi em 08/07/2016 - 00:16h
Estou tendo um problema!
Quando baixo o orangefs e dou o comando #./configure
dentro da pasta cd orangefs-2.9.5.tar.gz(baixei a última versão)
da esse erro:
configure: error: "bison required in PATH to complete build"
Quando dou o comando #make, dentro da mesma
da esse erro.
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
Olá luissi
o problema aí é que falta o pacote bison
&lt;https://packages.debian.org/sid/bison&gt;
tente apt-get install bison ou aptitude install bison
depois tente fazer o ./configure e o make
vlw
Desculpa pela demora em responder!
Deu certo aqui, vlw !
Agora um dúvida, Se eu eliminar o pvfs2 e deixar apenas com o NFS terei algum problema ?
Olá
isso mesmo, pode usar 1 dos 2, e não os 2.
o que ocorre é o seguinte, para compilar o código no cluster de alto desempenho é necessário que o código esteja em todas as máquinas (virtuais ou reais) a maneira de fazer isso de forma fácil e segura é usar uma pasta compartilhada que possa ser acessada de qualquer uma das máquinas e de preferência no mesmo lugar (ex.: /teste/codigo.c), assim o compartilhamento e uso de pacotes do pvsf e NFS são fáceis de configurar.
Por que usar o compartilhamento? pois posso copiar os arquivos para as máquinas que vai funcionar.
exatamente! se copiar os arquivos para as máquinas e executar o código no cluster, com certeza irá funcionar, aqui comigo funciona de boa, mas uma alteração no seu código no servidor não altera o código das máquinas e assim é necessário alterá-las de 1 em 1. assim o compartilhamento é a solução mais viável de se utilizar.
Com certeza pode-se utilizar outros meios de compartilhamento de arquivos, que também vai funcionar!
[37] Comentário enviado por luissi em 09/08/2016 - 19:50h
Obg, deu certo aqui!
Consegui rodar os código em todas as máquinas que crie.
Só uma última pergunta:
quando entro na máquina aparece esse erro:
bash: /opt/mpich/lib: Arquivo ou diretório não encontrado
tem algum problema esse erro ou posso removê-lo ?
[38] Comentário enviado por andreti em 11/08/2016 - 16:14h
Boa noite tarde, instalei um cluster na VirtualBox instada em um Ubuntu 16.04 como o Debian 8, usando 1 nó master e 2 nós escravos (3 Hosts) funcionou normal, agora fui fazer a mesma configuração em máquinas reais e não esta dando certo.
Tem alguma forma de transferir as configurações/pacotes ou do Cluster que configurei na máquina virtual para para as máquinas reais ?
Ou criar uma iso das máquinas virtuais para instalar em máquinas reais?
[39] Comentário enviado por danilofugi em 11/08/2016 - 17:26h
[37] Comentário enviado por luissi em 09/08/2016 - 19:50h
Obg, deu certo aqui!
Consegui rodar os código em todas as máquinas que crie.
Só uma última pergunta:
quando entro na máquina aparece esse erro:
bash: /opt/mpich/lib: Arquivo ou diretório não encontrado
tem algum problema esse erro ou posso removê-lo ?
Oi luissi,
acredito que possa remover sim sem problemas
vlw
[40] Comentário enviado por danilofugi em 11/08/2016 - 17:30h
[38] Comentário enviado por andreti em 11/08/2016 - 16:14h
Boa noite tarde, instalei um cluster na VirtualBox instada em um Ubuntu 16.04 como o Debian 8, usando 1 nó master e 2 nós escravos (3 Hosts) funcionou normal, agora fui fazer a mesma configuração em máquinas reais e não esta dando certo.
Tem alguma forma de transferir as configurações/pacotes ou do Cluster que configurei na máquina virtual para para as máquinas reais ?
Ou criar uma iso das máquinas virtuais para instalar em máquinas reais?
Olá Andreti,
Que bom que conseguiu fazer nas máquinas virtuais!
Sobre transferir as configurações não sei te dizer exatamente como proceder para transformar a máquina virtual em real, li sobre o assunto na época que fiz, mas era trabalhoso e resolvi refazer as configurações nas máquinas reais, mas creio que exista uma forma sim de fazer isso, fazendo um iso das máquinas com Partition Magic ou outro software de imagem iso.
Quanto ao não funcionamento, pode ser alguma coisa do SSH-Server que está faltando ou com erro, pois é onde costuma mais dar conflito e não funcionar
[41] Comentário enviado por andreti em 15/08/2016 - 14:33h
[39] Comentário enviado por danilofugi em 11/08/2016 - 17:26h
[37] Comentário enviado por luissi em 09/08/2016 - 19:50h
Obg, deu certo aqui!
Consegui rodar os código em todas as máquinas que crie.
Só uma última pergunta:
quando entro na máquina aparece esse erro:
bash: /opt/mpich/lib: Arquivo ou diretório não encontrado
tem algum problema esse erro ou posso removê-lo ?
Oi luissi,
acredito que possa remover sim sem problemas
vlw
Olá, uma ultima duvida, quando dou esse comando: # mpirun -hostfile /opt/hostfile -n 7 /usr/src/mpich-3.2/examples/cpi
dá esse erro no final a partir da linha 9 abaixo, o que pode ser ?
/root/.bashrc: line 25: /opt/mpich/lib: Arquivo ou diretório não encontrado
Process 0 of 7 is on master
Process 4 of 7 is on master
Process 6 of 7 is on master
Process 2 of 7 is on master
Process 1 of 7 is on cluster1
Process 3 of 7 is on cluster1
Process 5 of 7 is on cluster1
Fatal error in PMPI_Reduce: Unknown error class, error stack:
PMPI_Reduce(1258)...............: MPI_Reduce(sbuf=0xbfec4600, rbuf=0xbfec45f8, count=1, MPI_DOUBLE, MPI_SUM, root=0, MPI_COMM_WORLD) failed
MPIR_Reduce_impl(1070)..........:
MPIR_Reduce_intra(823)..........:
MPIR_Reduce_impl(1070)..........:
MPIR_Reduce_intra(878)..........:
MPIR_Reduce_binomial(186).......:
MPIDI_CH3U_Recvq_FDU_or_AEP(629): Communication error with rank 1
MPIR_Reduce_intra(843)..........:
MPIR_Reduce_impl(1070)..........:
MPIR_Reduce_intra(878)..........:
MPIR_Reduce_binomial(248).......: Failure during collective