Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Cursos in Company

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Instalando PVFS no CentOS

Colaboração: Elton Luís Minetto

Data de Publicação: 16 de Outubro de 2006

O Parallel Virtual File System é um sistema de arquivos distribuído desenvolvido para prover alta performance e escalabilidade paralela para clusters de PCs linux.

Em geral, o PVFS promete 4 características:

  • Um espaço de nomes consistente para todo o cluster
  • Acesso transparente para programas e aplicações já existentes, sem ter que recompilá-los
  • Distribuição física de dados em múltiplos discos e múltiplos nós
  • Alta performance de acesso em modo usuário

Download

Pode-se fazer download do arquivo de instalação no site:

http://www.pvfs.org/pvfs2/download.html

O arquivo de instalação foi copiado para o diretório /usr/src e descompactado:

  cp pvfs2-1.5.1.tar.gz /usr/src
  cd /usr/src
  tar xfvz pvfs2-1.5.1.tar.gz
  cd pvfs2-1.5.1

Construindo e instalando os pacotes

O ambiente usado para estes testes foi um laboratório com 4 computadores com o CentOS 4.4, kernel 2.6.9-34.ELsmp. Para instalar é necessário os pacotes de compiladores e dos fontes do kernel, disponíveis em RPM no CD da distribuição.

Os passos padrão para compilar e instalar o PVFS2 são os seguintes:

  ./configure  with-kernel=/usr/src/kernels/2.6.9-34.EL-smp-i686
  make
  make install
  make kmod
  make kmod_install

Para executar os comandos make install e make kmod_install é necessário acesso a conta root. Para carregar o módulo do kernel:

  /sbin/insmod /lib/modules/2.6.9-34.ELsmp/kernel/fs/pvfs2/pvfs2.ko

Estes passos devem ser executados em todas as máquinas que vão compartilhar seu espaço de disco para o PVFS2.

Configurando o ambiente de testes

É importante ter em mente os papéis que cada máquina (ou nó) vai exercer no sistema PVFS2. Existem três papéis que uma máquina pode exercer:

  • servidor de metadados: nó que mantém metadados (como permissões e data de criação) para o sistema de arquivos.
  • servidor de I/O: nó que realmente armazena uma porção dos dados do PVFS2
  • cliente: é um nó que lê e grava arquivos PVFS2

Uma máquina pode exercer um, dois ou os três papéis simultaneamente. Além disto, podem haver vários servidores de metadados, de I/O e clientes.

O ambiente onde foram realizados estes testes é formado de quatro máquinas:

  • lrac.unochapeco.edu.br (servidor de metadados e de I/O)
  • et-015.unochapeco.edu.br (servidor de I/O e cliente)
  • et-016.unochapeco.edu.br (servidor de I/O)
  • et-017.unochapeco.edu.br(servidor de I/O)

    ==Configuração do servidor==

    Neste passo é considerado que a instalação do PVFS2 já foi realizada em todas as quatro máquinas, conforme descrito anteriormente.

    Agora será gerado um arquivo de configuração principal e 3 arquivos com as configurações de cada uma das máquinas restantes. É importante lembrar de informar corretamente os nomes dos computadores e que eles possam ser acessados pelos seus nomes. Recomenda-se que sejam criadas entradas no arquivo /etc/hosts de cada computador para facilitar.

    Para gerar os arquivos de configuração:

      root@lrac:~# /usr/local/bin/pvfs2-genconfig /etc/pvfs2-fs.conf /etc/pvfs2-server.conf
    

    As perguntas abaixo são apresentadas. Os comentários abaixo foram adicionados na criação deste documento para facilitar a compreenção.

      Welcome to the PVFS2 Configuration Generator:
      
      This interactive script will generate configuration files suitable
      for use with a new PVFS2 file system. Please see the PVFS2 quickstart
      guide for details.
      
      **********************************************************************
      You must first select the network protocol that your file system will use.
      The only currently supported options are  tcp  and  gm .
      * Enter protocol type [Default is tcp]:
      
      deixar tcp
      
      Choose a TCP/IP port for the servers to listen on. Note that this
      script assumes that all servers will use the same port number.
      
      * Enter port number [Default is 3334]:
      
      usar a porta padrão
      
      Next you must list the hostnames of the machines that will act as
      I/O servers. Acceptable syntax is  node1, node2,   or  node{#-#,#,#} .
      
      * Enter hostnames [Default is localhost]: lrac, et-015, et-016, et-017
      
      neste passo é necessário indicar as máquinas que irão atuar como servidores de I/O.
      
      Now list the hostnames of the machines that will act as Metadata
      servers. This list may or may not overlap with the I/O server list.
      
      * Enter hostnames [Default is localhost]: lrac
      
      indicar a máquina que irá atuar como o servidor de metadados: lrac
      
      Configured a total of 4 servers:
      4 of them are I/O servers.
      1 of them are Metadata servers.
      
      * Would you like to verify server list (y/n) [Default is n]? y
    
    se digitar a opção y os servidores serão testados. Pode-se colocar n e deixar este passo para mais tarde
      ****** I/O servers:
      tcp://lrac:3334
      tcp://et-015:3334
      tcp://et-016:3334
      tcp://et-017:3334
      
      ****** Metadata servers:
      
      tcp://lrac:3334
      
      * Does this look ok (y/n) [Default is y]? y
      
      Confirmar se tudo está ok
      
      Choose a file for each server to write log messages to.
      
      * Enter log file location [Default is /tmp/pvfs2-server.log]:
      
      Escolher um arquivo de log.
      
      Choose a directory for each server to store data in.
      
      * Enter directory name: [Default is /pvfs2-storage-space]:
      
      Diretório onde será armazenado os arquivos pertencentes ao PVFS2. Este diretório será criado automaticamente mais tarde em todas as máquinas
      
      Writing fs config file  Done.
      Writing 4 server config file(s)  Done.
      
      Configuration complete!
    
    Agora temos todos os arquivos de configuração criados:
      root@cluster1:~# ls /etc/pvfs2*
      /etc/pvfs2-fs.conf
      /etc/pvfs2-server.conf-et-015
      /etc/pvfs2-server.conf-et-016
      /etc/pvfs2-server.conf-et-017
      /etc/pvfs2-server.conf-lrac
    
    Agora os arquivos devem ser copiados para as máquinas. Podemos fazer isso usando o ssh ou outra forma de cópia remota (ou copiando em disquete mesmo e gravando em cada uma das máquinas)
      root@lrac:~# scp /etc/pvfs2-server.conf-et-015 root@et-015:/etc/
      root@lrac:~# scp /etc/pvfs2-fs.conf root@et-015:/etc/
      root@lrac:~# scp /usr/src/pvfs2-1.5.1/examples/pvfs2-server.rc \
                         root@et-015:/etc/rc.d/init.d/pvfs2-server
    
    O mesmo deve ser feito para as outras máquinas (et-016 e et-017). Também pode ser copiado para o servidor original o arquivo de inicialização:

      root@lrac:~# cp /usr/src/pvfs2-1.5.1/examples/pvfs2-server.rc \
    
    /etc/rc.d/init.d/pvfs2-server

    Este arquivo será usado para iniciar e parar o servidor do PVFS2.

    ==Iniciando os servidores==

    Em cada uma das máquinas deve ser executado o comando:

      /usr/local/sbin/pvfs2-server \
    
    /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-(nome_da_maquina) -f

    Exemplo:

      /usr/local/sbin/pvfs2-server \
    
    /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-et-015 -f

    Desta forma será criado o espaço onde será armazenado os arquivos (/pvfs2-storage- space) e o servidor será inicializado. Este comando é necessário ser executado somente na primeira inicialização. Das próximas vezes pode ser usado o serviço:

      /etc/init.d/pvfs2-server start
    

    e para interromper:

      /etc/init.d/pvfs2-server stop
    

    ==Configuração do cliente==

    Na máquina, ou máquinas, que irá atuar como cliente é preciso adicionar a seguinte linha no arquivo /etc/fstab

      tcp://localhost:3334/pvfs2-fs /mnt/pvfs2 pvfs2 default,noauto 0 0
    

    Esta entrada será usada pelo Linux para poder montar e desmontar o sistema de arquivos PVFS2. Além disto é necessário criar um arquivo chamado /etc/pvfs2tab que irá conter a mesma entrada e será usado pelos aplicativos próprios do PVFS2. Os passos abaixo mostram como criar o diretório onde será montado a partição e a criação do arquivo:
      [root@et-015 /root]# mkdir /mnt/pvfs2
      [root@et-015 /root]# touch /etc/pvfs2tab
      [root@et-015 /root]# chmod a+r /etc/pvfs2tab
    
    Agora é preciso adicionar no arquivo criado a mesma entrada que foi adicionada no /etc/fstab.

    ==Testando a instalação==

    Existe duas maneiras de testar a instalação. A primeira é usar as ferramentas que são fornecidas com o PVFS2: pvfs2-ping, pvfs2-cp, e pvfs2-ls. Estas ferramentas testam, a saúde do sistema de arquivos, permitem copiar arquivos e listam o conteúdo dos diretórios.
      bash-2.05b# /usr/local/bin/pvfs2-ping -m /mnt/pvfs2
      
      (1) Parsing tab file
      
      (2) Initializing system interface
      
      (3) Initializing each file system found in tab file: /etc/fstab
      
      PVFS2 servers: tcp://localhost:3334
      
      Storage name: pvfs2-fs
      
      Local mount point: /mnt/pvfs2
      
      /mnt/pvfs2: Ok
      
      (4) Searching for /mnt/pvfs2/ in pvfstab
      
      PVFS2 servers: tcp://localhost:3334
      
      Storage name: pvfs2-fs
      
      Local mount point: /mnt/pvfs2
      
      meta servers:
      
      tcp://lrac:3334
      
      data servers:
      
      tcp://lrac:3334
      tcp://et-015:3334
      
      (5) Verifying that all servers are responding
      
      meta servers:
      
      tcp://lrac:3334 Ok
      
      data servers:
      
      tcp://lrac:3334 Ok
      
      tcp://et-015:3334 Ok
      
      (6) Verifying that fsid 1224940272 is acceptable to all servers
      
      Ok; all servers understand fs_id 1224940272
      
      (7) Verifying that root handle is owned by one server
      
      Root handle: 1048576
      
      Ok; root handle is owned by exactly one server.
      
      The PVFS2 filesystem at /mnt/pvfs2/ appears to be correctly configured.
    
    Para listar:
      bash-2.05b# /usr/local/bin/pvfs2-ls /mnt/pvfs2/
      bash-2.05b# /usr/local/bin/pvfs2-cp -t /usr/lib/libc.a /mnt/pvfs2/testfile
      Wrote 2310808 bytes in 0.264689 seconds. 8.325842 MB/seconds
      bash-2.05b# /usr/local/bin/pvfs2-ls /mnt/pvfs2/
      testfile
      bash-2.05b# /usr/local/bin/pvfs2-ls -alh /mnt/pvfs2/
      drwxrwxrwx 1 pcarns users 0 2003-08-14 22:45 .
      drwxrwxrwx 1 pcarns users 0 2003-08-14 22:45 .. (faked)
      -rw - 1 root root 2M 2003-08-14 22:47 testfile
    
    ==Copiando arquivos:==
      bash-2.05b# /usr/local/bin/pvfs2-cp -t /mnt/pvfs2/testfile /tmp/testfile-out
      Wrote 2310808 bytes in 0.180621 seconds. 12.201016 MB/seconds
      bash-2.05b# diff /tmp/testfile-out /usr/lib/libc.a
    
    Outra forma de utilizar o PVFS2 é montando o diretório da mesma maneira que faríamos com o NFS ou outro sistema de arquivos.

    No cliente, após ter carregado na memória o módulo do kernel como foi explicado anteriormente, pode-se executar os seguintes comandos:
      [root@et-015 linux]# /usr/local/sbin/pvfs2-client
      [root@et-015 linux]# mount -t pvfs2 tcp://localhost:3334/pvfs2-fs /mnt/pvfs2
    
    Após isso é possível acessar o diretório normalmente, como se fosse um diretório local.

    ==Referências==

  • http://www.ime.usp.br/~carvalho/monografia-sad/
  • http://www.pvfs.org/pvfs2/pvfs2-quickstart.html

Veja a relação completa dos artigos de Elton Luís Minetto

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (729 votos)

Opinião dos Leitores

Rodrigo
04 Set 2007, 17:08
vou textar hein
José Messias Alves da Silva
16 Out 2006, 09:28
Olá Elton,

Muito boa a dica. Gostei pela clareza e pelo resumo do tópico, que normalmente é muito abrangente..

Valeus.. um abraço..
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Faça o download gratuito da 10ª Edição da Broffice.ORG Zine
Submarino.com.br

Aprenda inglês em casa
Curso estruturado com o que existe de melhor e mais rápido em estratégias e técnicas de aprendizado para adultos.
Conheça as aulas experimentais.