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==