De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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:
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
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.
É 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:
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:
root@lrac:~# /usr/local/bin/pvfs2-genconfig /etc/pvfs2-fs.conf /etc/pvfs2-server.confAs 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]? yse 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-lracAgora 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-serverO 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 starte 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 0Esta 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/pvfs2tabAgora é 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.aOutra 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/pvfs2Após isso é possível acessar o diretório normalmente, como se fosse um diretório local. ==Referências==
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários