SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
1                            Cluster Beowulf
                     Implementação e Configuração no Slackware
    O potencial de expandir a força de processamento computacional utilizando
    computadores pessoais “comuns” ligados através de software e hardware
    ligando-os em paralelo, é uma ótima alternativa aos famosos supercomputadores.

    Vendo todo este potência a NASA decidiu implementar tal tecnologia para
    resolver suas aplicações de missão crítica. Surgia então o projeto de Clusters
    Beowulf, idealizado desta forma, com a finalidade de suprir a crescente e elevada
    capacidade de processamento em diversas áreas científicas com o objetivo de
    construir sistemas computacionais poderosos e economicamente viáveis.

    O projeto Beowulf da NASA na verdade não desenvolveu um software
    denominado Beowulf, o qual o usuário possa instalar tal programa e todos os PC's
    irão trabalhar de forma paralela. Mas, sim eles proporão entre outros uma
    filosofia, que consiste de:

    Uso de Hardware comum, disponíveis no mercado;
    Processamento dedicado (todo o hardware deve ser utilizado apenas para o


    cluster)
    Rede de interconexão privada e dedicada;

    Nenhum componente feito sob encomenda;

    Periféricos escaláveis;

    Uso de softwares livres e código fonte aberto;

    Uso de ferramentas de computação paralela livres

    Retorno à comunidade do projeto e melhorias.
2                           Cluster Beowulf
                    Implementação e Configuração no Slackware
    Então o cluster Beowulf não é um software que você baixa de Internet e
    simplesmente instala, mas sim, um conjunto de softwares de rede (servidores),
    serviços de rede e uma ferramenta para distribuição dos processos entre as
    máquinas que compõem o cluster.

    Então iremos configurar um cluster Beowulf utilizando Linux com a distribuição
    Slackware. Na verdade está instalação irá provavelmente ser a mesma em todas
    as outras distribuições (debian, ubuntu, gentoo,e etc), sendo diferente apenas
    alguns passos de instalação de alguns serviços.

    O Cluster será basicamente composto de uma máquina chamada de mestre
    (responsável pelo gerenciamento e acesso ao cluster), e outras máquinas
    chamadas de escravas sendo uma ou mais.
                                               Escravo1   Escravo2 Escravo3   Escravo4

           Mestre




                              Switch 100Mbs
3                            Cluster Beowulf
                    Implementação e Configuração no Slackware
    A configuração do Cluster Beowulf consiste de básicamente dois passos sendo o
    primeiro a configuração do nó meste e o segundo a configuração dos nós
    escravos. Sendo necessário no primeiro passo:

    1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os
    demais nós do cluster executem serviços no nó mestre e assim executem
    programas/tarefas em paralelo.

    2 - Configurar um serviço de nomes para facilitar a configuração do cluster,
    identificando os nós do cluster por nomes e não por IP's, isto é recomendável já
    que vários arquivos irão precisar conter os nós do cluster.

    3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso
    baseado em confiança. Ou seja, os demais nós terão permissão de acessar o
    servidor mestre sem o uso de senha.

    4 – Adicionar um usuário chamado cluster (ou outro nome).

    5 – Configurar o servidor NFS de forma que este compartilhe com permissões de
    leitura e escrita o diretório pessoal do usuário cluster.

    6 – Instalar e configurar o LAM-MPI para que este faça a troca de mensagens
    entre os nós.
4                            Cluster Beowulf
                     Implementação e Configuração no Slackware
    O segundo passo consiste na configuração dos nós escravos que compõem o
    cluster. São eles:

    1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os
    demais nós do cluster executem serviços no nó mestre e assim executem
    programas/tarefas em paralelo.

    2 - Configurar um serviço de nomes para facilitar a configuração do cluster,
    identificando os nós do cluster por nomes e não por IP's, isto é recomendável já
    que vários arquivos irão precisar conter os nós do cluster.

    3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso
    baseado em confiança. Ou seja, os demais nós terão permissão de acessar o
    servidor mestre sem o uso de senha.

    4 – Adicionar um usuário chamado cluster (ou o nome de sua escolha), este
    usuário deve estar presente em todos os nós que compõe o cluster.

    5 – Configurar os nós escravos como cliente do servidor NFS do nó mestre, para
    que estes compartilhem o diretório pessoal do nó mestre.

    6 – Apenas instalar a biblioteca LAN-MPI.
5                             Cluster Beowulf
                      Implementação e Configuração no Slackware

     Nesta configuração, iremos utilizar, uma rede classe A 10.0.0.0 e máscara
     padrão. Sendo que o nó mestre terá o IP 10.0.0.1 e o seu nome na rede será
     mestre. Já, os nós escravos terão o IP 10.0.1.X onde X é o número do nó
     exemplo o primeiro nó escravo será o IP 10.0.1.1 com o nome na rede
     escravo01, o segundo nó escravo é o 10.0.1.2 com o nome escravo02, assim
     por diante.

    Configuração do nó Mestre:

    1 – Configuração dos serviços rlogin, rexec, rsh.

    Tais serviços no Slackware estão associados por padrão ao super servidor inetd.
    Sendo necessário para ativá-los apenas descomentar suas respectivas linhas no
    arquivo /etc/inetd.conf.

    vi   /etc/inetd.conf

    # Shell, login,   exec and talk are BSD protocols
    #
    shell   stream    tcp    nowait   root   /usr/sbin/tcpd   in.rshd -L
    login   stream    tcp    nowait   root   /usr/sbin/tcpd   in.rlogind
    exec    stream    tcp    nowait   root   /usr/sbin/tcpd   in.rexecd
    # talk dgram      udp    wait     root   /usr/sbin/tcpd   in.talkd
6                           Cluster Beowulf
                    Implementação e Configuração no Slackware
    Configuração do nó Mestre:

    Após, editar o arquivo inetd.conf basta apenas reiniciar o serviço para que a
    nova configuração seja ativada. Isso é possível com o comando:

    #/etc/rc.d/rc.inetd restart

    O serviço de rlogind é utilizado para prover um terminal remoto via comando
    rlogin. Muito parecido com o telnet.

    Exemplo: #rlogin 10.0.0.1

    O rshd prove um servidor de shell remoto através do comando rsh. O rsh
    permite que um comando seja digitado em um nó local e a saída do mesmo é
    repassada para o nó remoto.

    O rexecd é um servidor remoto de execução, acessado pelo comando rexec
    quando um serviço é requisitado pelo rexec o rexecd inicia alguns protocolos
    para a execução remota do mesmo.
7                               Cluster Beowulf
                     Implementação e Configuração no Slackware
    Configuração do nó Mestre:

    2 – Configurando nomes dos nós do cluster.

    Normalmente um cluster não tem muitos hosts, assim é melhor configurar o
    arquivo hosts ao invés de configurar um servidor DNS, entretanto se o cluster
    tiver muitos nós seria recomendado o uso de um servidor de nomes, já que a
    configuração do arquivo hosts tem que ser feita em cada nó, e sempre que
    atualizada caso alguma mudança seja feita.

    Configurando o arquivo /etc/hosts, edite tal arquivo com um editor de texto, tal
    como:

    #vi /etc/hosts

    127.0.0.1      localhosts    localhosts.localdomain
    10.0.0.1       mestre       mestre.cluster.com
    10.0.1.1       escravo01    escravo01.cluster.com
    10.0.1.2       escravo02    escravo02.cluster.com
    10.0.1.3       escravo03    escravo03.cluster.com
    10.0.1.4       escravo04    escravo04.cluster.com
    10.0.1.5       escravo05    escravo05.cluster.com
    10.0.1.6       escravo06    escravo06.cluster.com
8                           Cluster Beowulf
                    Implementação e Configuração no Slackware
    Configuração do nó Mestre:

    3 – Este passo consiste em configurar o nó mestre de forma que ele tenha uma
    relação de confiança entre os nós escravos. Este serviço permite que os nós
    escravos executem comandos remotos através do rlogin, rexec, rsh, ou seja
    comando “r” sem senha. É necessário tomar muito cuidado com este arquivo já
    que ele prove uma falha de segurança necessária ao cluster que é a de executar
    comandos sem senhas, portanto, deve-se ter um bom firewall entre o cluster e a
    rede externa (Internet).

    Para fornecer tal confiança entre os nós escravos e o mestre basta editar o
    arquivo /etc/hosts.equiv. Tal como:

    #vi /etc/hosts.equiv
    localhost
    mestre
    escravo01
    escravo02
    escravo03
    escravo04
    escravo05
    escravo06
9                            Cluster Beowulf
                     Implementação e Configuração no Slackware
    Configuração do nó Mestre:

    Também, pode ser configurado o arquivo .rhosts para a conexão baseada em
    confiança. Este arquivo deve estar presente no diretório pessoal do usuário que
    quer permitir o acesso baseado em confiança. Ele segue a mesma sintaxe do
    arquivo hosts.equiv. Então apara configurar tal arquivo com o usuário cluster o
    comando seria:

    #vi /home/cluster/.rhosts
    localhost
    mestre
    escravo01
    escravo02
    escravo03
    escravo04
    escravo05
    escravo06

    É valido lembrar de que qualquer arquivo que inicie com um “.” é um arquivo
    oculto no Linux, assim em uma listagem normal este arquivo não irá aparecer.

    4 – Lembre-se de adicionar o usuário cluster para executar o comando anterior:

    #adduser cluster
10                           Cluster Beowulf
                   Implementação e Configuração no Slackware
 Configuração do nó Mestre:

 5 – É necessário para um fácil gerenciamento do cluster o uso de um servidor
 NFS para compartilhar o diretório, que ira ser utilizado para compartilhar os
 arquivos do usuário cluster no nó mestre para todos os nós escravos. Tornando
 então o diretório /home/cluster um diretório único para todos os usuários do
 cluster.

 Caso isto não fosse feito seria necessário, por exemplo, para executar um
 programa copiar o executável para todos os nós do cluster. O que iria demandar
 muito trabalho.

 Para configurar um servidor NFS basta editar o arquivo /etc/export e adicionar
 os compartilhamentos e as opções, tal como:

 #vi /etc/exports
 /home/cluster   escravo01   (rw,no_root_squash)
 /home/cluster   escravo02   (rw,no_root_squash)
 /home/cluster   escravo03   (rw,no_root_squash)
 /home/cluster   escravo04   (rw,no_root_squash)
 /home/cluster   escravo05   (rw,no_root_squash)
 /home/cluster   escravo06   (rw,no_root_squash)
 /home/cluster   escravo07   (rw,no_root_squash)
11                        Cluster Beowulf
                 Implementação e Configuração no Slackware
 Configuração do nó Mestre:

 Na configuração do servidor NFS anteriormente foi configurado um
 compartilhamento para cada nó do cluster, é possível fazer tudo isto em uma
 única linha, entretanto é mais seguro da forma apresentada. A opção rw diz que o
 compartilhamento pode ser usado com permissões de leitura e escrita, por fim, a
 opção no_root_squash, não dá permissões de root a quem estiver utilizando o
 compartilhamento.

 Então depois de alterar o arquivo /etc/exports faz-se necessário reiniciar o
 servidor NFS para que os compartilhamento tornem-se válido, então execute o
 comando:

 #/etc/rc.d/rc.nfsd restart


 Inicie também o serviço rcp para que seja feita o mapeamento de portas entre
 nós escravos e o nó mestre:

 #/etc/rc.d/rc.rpc restart
12                       Cluster Beowulf
                 Implementação e Configuração no Slackware
 Configuração do nó Mestre:

 5 – Instalando e configurando o LAM-MPI:

 O LAM-MPI é um conjunto de programas e bibliotecas que permitem que um
 conjunto de máquinas sejam utilizadas de forma paralela, ou seja, é este que
 realmente prove a computação paralela. Entretanto para isto os programas tem
 de utilizar as funções da biblioteca MPI. O MPI não faz o paralelismo de forma
 automática.

 Para instalar o MPI é possível baixar o código fonte e compilar o mesmo com o
 comando (make e make isntall). No Slackware é possível baixar um pacote pre-
 compilada em http://www.linuxpackages.net, o pacote chama-se lam-7.1.1-
 i486-1jac.tgz ou uma versão mais recente.

 A instalação da-se com o seguinte comando:

 #installpkg lam-7.1.1-i486-1jac.tgz
13                         Cluster Beowulf
                  Implementação e Configuração no Slackware
 Configuração do nó Mestre:

 Depois de instalado o LAM-MPI ira gerar um arquivo de configuração chamado
 /etc/lam-bhost.def, neste arquivo deve estar o nome de cada máquina que
 compõe o cluster, também é possível indicar quantos processadores cada nó
 possui, entre outras opções.

 Um exemplo de arquivo lam-bhost.def pode ser visto a seguir:

 #vi    /etc/lam-bhost.def
 mestre
 escravo01
 escravo02
 escravo03
 escravo04
 escravo05
 escravo06

 Assim, com a configuração anterior estamos adicionando os nós 1 ao 6.

 Para iniciar o cluster basta executar o comando:
 #lamboot

 E para verificar os nós ativos basta executar o comando:
 #lamnodes
14                         Cluster Beowulf
                  Implementação e Configuração no Slackware
 Configuração do nó Mestre:

 Atenção!!!

 O cluster deve ser executado com um usuário não root (o lam-mpi não
 deixará o usuário root iniciar o cluster) então utiliza, por exemplo, o usuário
 cluster para inciar o LAM-MPI.
15                     Cluster Beowulf
               Implementação e Configuração no Slackware
 Configuração do nó Mestre:
16          Cluster Beowulf
     Implementação e Configuração no Slackware
 a

Contenu connexe

Tendances

Category Theory for Programmers
Category Theory for ProgrammersCategory Theory for Programmers
Category Theory for ProgrammersSantosh Rajan
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractosFernando Solis
 
Graphs in data structures
Graphs in data structuresGraphs in data structures
Graphs in data structuresSavit Chandra
 
Caderno de Encargos FIFA®
Caderno de Encargos FIFA®Caderno de Encargos FIFA®
Caderno de Encargos FIFA®marcelogreuel
 

Tendances (6)

Category Theory for Programmers
Category Theory for ProgrammersCategory Theory for Programmers
Category Theory for Programmers
 
1. tipos de datos abstractos
1. tipos de datos abstractos1. tipos de datos abstractos
1. tipos de datos abstractos
 
Graphs in data structures
Graphs in data structuresGraphs in data structures
Graphs in data structures
 
Caderno de Encargos FIFA®
Caderno de Encargos FIFA®Caderno de Encargos FIFA®
Caderno de Encargos FIFA®
 
Graph coloring
Graph coloringGraph coloring
Graph coloring
 
Haskell aula3 listas
Haskell aula3 listasHaskell aula3 listas
Haskell aula3 listas
 

Similaire à Tópicos - Computacao Paralela Intalação Cluster Beowulf

O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiFrancisco Gonçalves
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaSoftD Abreu
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidadeMarcelo Garcia
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...Os Fantasmas !
 
Administracao de sistemas_com_puppet
Administracao de sistemas_com_puppetAdministracao de sistemas_com_puppet
Administracao de sistemas_com_puppetRamon Mota
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxFrederico Madeira
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação MonografiaLeon Homar
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Combo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxCombo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxVideo Aulas Linux e Mikrotik
 

Similaire à Tópicos - Computacao Paralela Intalação Cluster Beowulf (20)

O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
Guia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresaGuia de configuração de um servidor linux para utilização em uma pequena empresa
Guia de configuração de um servidor linux para utilização em uma pequena empresa
 
Cluster de Alta disponibilidade
Cluster de Alta disponibilidadeCluster de Alta disponibilidade
Cluster de Alta disponibilidade
 
Cluster
ClusterCluster
Cluster
 
Curso de CVS - Lab 2
Curso de CVS - Lab 2Curso de CVS - Lab 2
Curso de CVS - Lab 2
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 4º PERÍODO LABORATÓRIO DE R...
 
Administracao de sistemas_com_puppet
Administracao de sistemas_com_puppetAdministracao de sistemas_com_puppet
Administracao de sistemas_com_puppet
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Apache proxy
Apache proxyApache proxy
Apache proxy
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Iptables layer7
Iptables layer7Iptables layer7
Iptables layer7
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação Monografia
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Combo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linuxCombo video aulas servidor linux + comandos shell linux
Combo video aulas servidor linux + comandos shell linux
 

Plus de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 

Plus de Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 

Tópicos - Computacao Paralela Intalação Cluster Beowulf

  • 1. 1 Cluster Beowulf Implementação e Configuração no Slackware O potencial de expandir a força de processamento computacional utilizando computadores pessoais “comuns” ligados através de software e hardware ligando-os em paralelo, é uma ótima alternativa aos famosos supercomputadores. Vendo todo este potência a NASA decidiu implementar tal tecnologia para resolver suas aplicações de missão crítica. Surgia então o projeto de Clusters Beowulf, idealizado desta forma, com a finalidade de suprir a crescente e elevada capacidade de processamento em diversas áreas científicas com o objetivo de construir sistemas computacionais poderosos e economicamente viáveis. O projeto Beowulf da NASA na verdade não desenvolveu um software denominado Beowulf, o qual o usuário possa instalar tal programa e todos os PC's irão trabalhar de forma paralela. Mas, sim eles proporão entre outros uma filosofia, que consiste de: Uso de Hardware comum, disponíveis no mercado; Processamento dedicado (todo o hardware deve ser utilizado apenas para o cluster) Rede de interconexão privada e dedicada; Nenhum componente feito sob encomenda; Periféricos escaláveis; Uso de softwares livres e código fonte aberto; Uso de ferramentas de computação paralela livres Retorno à comunidade do projeto e melhorias.
  • 2. 2 Cluster Beowulf Implementação e Configuração no Slackware Então o cluster Beowulf não é um software que você baixa de Internet e simplesmente instala, mas sim, um conjunto de softwares de rede (servidores), serviços de rede e uma ferramenta para distribuição dos processos entre as máquinas que compõem o cluster. Então iremos configurar um cluster Beowulf utilizando Linux com a distribuição Slackware. Na verdade está instalação irá provavelmente ser a mesma em todas as outras distribuições (debian, ubuntu, gentoo,e etc), sendo diferente apenas alguns passos de instalação de alguns serviços. O Cluster será basicamente composto de uma máquina chamada de mestre (responsável pelo gerenciamento e acesso ao cluster), e outras máquinas chamadas de escravas sendo uma ou mais. Escravo1 Escravo2 Escravo3 Escravo4 Mestre Switch 100Mbs
  • 3. 3 Cluster Beowulf Implementação e Configuração no Slackware A configuração do Cluster Beowulf consiste de básicamente dois passos sendo o primeiro a configuração do nó meste e o segundo a configuração dos nós escravos. Sendo necessário no primeiro passo: 1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os demais nós do cluster executem serviços no nó mestre e assim executem programas/tarefas em paralelo. 2 - Configurar um serviço de nomes para facilitar a configuração do cluster, identificando os nós do cluster por nomes e não por IP's, isto é recomendável já que vários arquivos irão precisar conter os nós do cluster. 3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso baseado em confiança. Ou seja, os demais nós terão permissão de acessar o servidor mestre sem o uso de senha. 4 – Adicionar um usuário chamado cluster (ou outro nome). 5 – Configurar o servidor NFS de forma que este compartilhe com permissões de leitura e escrita o diretório pessoal do usuário cluster. 6 – Instalar e configurar o LAM-MPI para que este faça a troca de mensagens entre os nós.
  • 4. 4 Cluster Beowulf Implementação e Configuração no Slackware O segundo passo consiste na configuração dos nós escravos que compõem o cluster. São eles: 1 - Habilitar os serviços rlogin, rexec e rsh. Tais serviços permitem que os demais nós do cluster executem serviços no nó mestre e assim executem programas/tarefas em paralelo. 2 - Configurar um serviço de nomes para facilitar a configuração do cluster, identificando os nós do cluster por nomes e não por IP's, isto é recomendável já que vários arquivos irão precisar conter os nós do cluster. 3 – Dar permissão de livre acesso aos nós que compõem o cluster. Acesso baseado em confiança. Ou seja, os demais nós terão permissão de acessar o servidor mestre sem o uso de senha. 4 – Adicionar um usuário chamado cluster (ou o nome de sua escolha), este usuário deve estar presente em todos os nós que compõe o cluster. 5 – Configurar os nós escravos como cliente do servidor NFS do nó mestre, para que estes compartilhem o diretório pessoal do nó mestre. 6 – Apenas instalar a biblioteca LAN-MPI.
  • 5. 5 Cluster Beowulf Implementação e Configuração no Slackware Nesta configuração, iremos utilizar, uma rede classe A 10.0.0.0 e máscara padrão. Sendo que o nó mestre terá o IP 10.0.0.1 e o seu nome na rede será mestre. Já, os nós escravos terão o IP 10.0.1.X onde X é o número do nó exemplo o primeiro nó escravo será o IP 10.0.1.1 com o nome na rede escravo01, o segundo nó escravo é o 10.0.1.2 com o nome escravo02, assim por diante. Configuração do nó Mestre: 1 – Configuração dos serviços rlogin, rexec, rsh. Tais serviços no Slackware estão associados por padrão ao super servidor inetd. Sendo necessário para ativá-los apenas descomentar suas respectivas linhas no arquivo /etc/inetd.conf. vi /etc/inetd.conf # Shell, login, exec and talk are BSD protocols # shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L login stream tcp nowait root /usr/sbin/tcpd in.rlogind exec stream tcp nowait root /usr/sbin/tcpd in.rexecd # talk dgram udp wait root /usr/sbin/tcpd in.talkd
  • 6. 6 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Após, editar o arquivo inetd.conf basta apenas reiniciar o serviço para que a nova configuração seja ativada. Isso é possível com o comando: #/etc/rc.d/rc.inetd restart O serviço de rlogind é utilizado para prover um terminal remoto via comando rlogin. Muito parecido com o telnet. Exemplo: #rlogin 10.0.0.1 O rshd prove um servidor de shell remoto através do comando rsh. O rsh permite que um comando seja digitado em um nó local e a saída do mesmo é repassada para o nó remoto. O rexecd é um servidor remoto de execução, acessado pelo comando rexec quando um serviço é requisitado pelo rexec o rexecd inicia alguns protocolos para a execução remota do mesmo.
  • 7. 7 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 2 – Configurando nomes dos nós do cluster. Normalmente um cluster não tem muitos hosts, assim é melhor configurar o arquivo hosts ao invés de configurar um servidor DNS, entretanto se o cluster tiver muitos nós seria recomendado o uso de um servidor de nomes, já que a configuração do arquivo hosts tem que ser feita em cada nó, e sempre que atualizada caso alguma mudança seja feita. Configurando o arquivo /etc/hosts, edite tal arquivo com um editor de texto, tal como: #vi /etc/hosts 127.0.0.1 localhosts localhosts.localdomain 10.0.0.1 mestre mestre.cluster.com 10.0.1.1 escravo01 escravo01.cluster.com 10.0.1.2 escravo02 escravo02.cluster.com 10.0.1.3 escravo03 escravo03.cluster.com 10.0.1.4 escravo04 escravo04.cluster.com 10.0.1.5 escravo05 escravo05.cluster.com 10.0.1.6 escravo06 escravo06.cluster.com
  • 8. 8 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 3 – Este passo consiste em configurar o nó mestre de forma que ele tenha uma relação de confiança entre os nós escravos. Este serviço permite que os nós escravos executem comandos remotos através do rlogin, rexec, rsh, ou seja comando “r” sem senha. É necessário tomar muito cuidado com este arquivo já que ele prove uma falha de segurança necessária ao cluster que é a de executar comandos sem senhas, portanto, deve-se ter um bom firewall entre o cluster e a rede externa (Internet). Para fornecer tal confiança entre os nós escravos e o mestre basta editar o arquivo /etc/hosts.equiv. Tal como: #vi /etc/hosts.equiv localhost mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06
  • 9. 9 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Também, pode ser configurado o arquivo .rhosts para a conexão baseada em confiança. Este arquivo deve estar presente no diretório pessoal do usuário que quer permitir o acesso baseado em confiança. Ele segue a mesma sintaxe do arquivo hosts.equiv. Então apara configurar tal arquivo com o usuário cluster o comando seria: #vi /home/cluster/.rhosts localhost mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06 É valido lembrar de que qualquer arquivo que inicie com um “.” é um arquivo oculto no Linux, assim em uma listagem normal este arquivo não irá aparecer. 4 – Lembre-se de adicionar o usuário cluster para executar o comando anterior: #adduser cluster
  • 10. 10 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 5 – É necessário para um fácil gerenciamento do cluster o uso de um servidor NFS para compartilhar o diretório, que ira ser utilizado para compartilhar os arquivos do usuário cluster no nó mestre para todos os nós escravos. Tornando então o diretório /home/cluster um diretório único para todos os usuários do cluster. Caso isto não fosse feito seria necessário, por exemplo, para executar um programa copiar o executável para todos os nós do cluster. O que iria demandar muito trabalho. Para configurar um servidor NFS basta editar o arquivo /etc/export e adicionar os compartilhamentos e as opções, tal como: #vi /etc/exports /home/cluster escravo01 (rw,no_root_squash) /home/cluster escravo02 (rw,no_root_squash) /home/cluster escravo03 (rw,no_root_squash) /home/cluster escravo04 (rw,no_root_squash) /home/cluster escravo05 (rw,no_root_squash) /home/cluster escravo06 (rw,no_root_squash) /home/cluster escravo07 (rw,no_root_squash)
  • 11. 11 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Na configuração do servidor NFS anteriormente foi configurado um compartilhamento para cada nó do cluster, é possível fazer tudo isto em uma única linha, entretanto é mais seguro da forma apresentada. A opção rw diz que o compartilhamento pode ser usado com permissões de leitura e escrita, por fim, a opção no_root_squash, não dá permissões de root a quem estiver utilizando o compartilhamento. Então depois de alterar o arquivo /etc/exports faz-se necessário reiniciar o servidor NFS para que os compartilhamento tornem-se válido, então execute o comando: #/etc/rc.d/rc.nfsd restart Inicie também o serviço rcp para que seja feita o mapeamento de portas entre nós escravos e o nó mestre: #/etc/rc.d/rc.rpc restart
  • 12. 12 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: 5 – Instalando e configurando o LAM-MPI: O LAM-MPI é um conjunto de programas e bibliotecas que permitem que um conjunto de máquinas sejam utilizadas de forma paralela, ou seja, é este que realmente prove a computação paralela. Entretanto para isto os programas tem de utilizar as funções da biblioteca MPI. O MPI não faz o paralelismo de forma automática. Para instalar o MPI é possível baixar o código fonte e compilar o mesmo com o comando (make e make isntall). No Slackware é possível baixar um pacote pre- compilada em http://www.linuxpackages.net, o pacote chama-se lam-7.1.1- i486-1jac.tgz ou uma versão mais recente. A instalação da-se com o seguinte comando: #installpkg lam-7.1.1-i486-1jac.tgz
  • 13. 13 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Depois de instalado o LAM-MPI ira gerar um arquivo de configuração chamado /etc/lam-bhost.def, neste arquivo deve estar o nome de cada máquina que compõe o cluster, também é possível indicar quantos processadores cada nó possui, entre outras opções. Um exemplo de arquivo lam-bhost.def pode ser visto a seguir: #vi /etc/lam-bhost.def mestre escravo01 escravo02 escravo03 escravo04 escravo05 escravo06 Assim, com a configuração anterior estamos adicionando os nós 1 ao 6. Para iniciar o cluster basta executar o comando: #lamboot E para verificar os nós ativos basta executar o comando: #lamnodes
  • 14. 14 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre: Atenção!!! O cluster deve ser executado com um usuário não root (o lam-mpi não deixará o usuário root iniciar o cluster) então utiliza, por exemplo, o usuário cluster para inciar o LAM-MPI.
  • 15. 15 Cluster Beowulf Implementação e Configuração no Slackware Configuração do nó Mestre:
  • 16. 16 Cluster Beowulf Implementação e Configuração no Slackware a