Single Host PVFS2
From BCCD 2.2
For the most part, setting up a PVFS2 server on the BCCD is very straight forward and closely follows the quickstart guide. The only exception that you will need to watch out for is the fact the /mnt on the BCCD is not writeable, but rather /mnt/rw is used for this purpose.
So, in a nutshell, here are the steps:
1. Boot up the BCCD
See Booting up the CD for help.
2. Log in as root
The root password should be letmein or listed on the login screen.
3. Generate the server configuration files
[root@host130:~]# pvfs2-genconfig /etc/pvfs2-fs.conf /etc/pvfs2-server.conf
**********************************************************************
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", "gm", and "ib".
* Enter protocol type [Default is 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]:
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]: host130
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]: host130
Configured a total of 1 servers:
1 of them are I/O servers.
1 of them are Metadata servers.
* Would you like to verify server list (y/n) [Default is n]?
Choose a file for each server to write log messages to.
* Enter log file location [Default is /tmp/pvfs2-server.log]:
Choose a directory for each server to store data in.
* Enter directory name: [Default is /pvfs2-storage-space]: /mnt/rw/pvfs2-metastorage
Writing fs config file... Done.
Writing 1 server config file(s)... Done.
[root@host130:~]#
Notice that default directories above needed to be changed to reflect the rw portion of the BCCD environment.
4. Generate a /etc/pvfs2tab to reflect the current configuration
[root@host130:~]# cat > /etc/pvfs2tab tcp://host130:3334/pvfs2-fs /mnt/rw/pvfs2 pvfs2 defaults 0 0 [root@host130:~]#
5. Initialize the storage and server configuration
[root@host130:~]# pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 -f PVFS2 Server version 1.2.0 starting.
And then, actually start the pvfs2 server:
[root@host130:~]# pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 PVFS2 Server version 0.6.0 starting. [root@host130:~]# ps aux | grep server root 1227 0.0 0.9 12404 1532 ? Rs 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 root 1228 0.0 0.9 12404 1532 ? S 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 root 1229 0.2 0.9 12404 1532 ? S 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 root 1230 0.0 0.9 12404 1532 ? S 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 root 1231 0.0 0.9 12404 1532 ? R 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 root 1232 0.0 0.9 12404 1532 ? R 13:16 0:00 pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf-host130 [root@host130:~]#
6. Test out the configuration with pvfs2-ping
[root@host130:~]# pvfs2-ping -m /mnt/rw/pvfs2 (1) Parsing tab file... (2) Initializing system interface... (3) Initializing each file system found in tab file: pvfs2tab... /mnt/rw/pvfs2: Ok (4) Searching for /mnt/rw/pvfs2 in pvfstab... PVFS2 server: tcp://host130:3334 Storage name: pvfs2-fs Local mount point: /mnt/rw/pvfs2 meta servers: tcp://host130:3334 data servers: tcp://host130:3334 (5) Verifying that all servers are responding... meta servers: tcp://host130:3334 Ok data servers: tcp://host130:3334 Ok (6) Verifying that fsid 1540970919 is acceptable to all servers... Ok; all servers understand fs_id 1540970919 (7) Verifying that root handle is owned by one server... Root handle: 1048576 Ok; root handle is owned by exactly one server. ============================================================= The PVFS filesystem at /mnt/rw/pvfs2 appears to be correctly configured. [root@host130:~]#
7. Next, (optionally) configure the client services
- Load the pvfs2 module:
[root@host130:~]# modprobe -a pvfs2
[root@host130:~]# lsmod
Module Size Used by Not tainted
pvfs2 50308 0 (unused)
ide-floppy 12956 0 (autoclean)
af_packet 10120 1 (autoclean)
pcnet32 14304 1
mii 2176 0 [pcnet32]
crc32 2880 0 [pcnet32]
pcmcia_core 45472 0
nls_iso8859-1 2780 1 (autoclean)
nls_cp437 4284 1 (autoclean)
loop 9208 3 (autoclean)
unix 14312 22 (autoclean)
cloop 5616 1
[root@host130:~]#
- Prepare the mount point:
[root@host130:~]# mkdir /mnt/rw/pvfs2
- Start the client processes:
[root@host130:~]# pvfs2-client pvfs2-client-core
[root@host130:~]# ps aux | grep pvfs2-client
root 1255 0.2 0.2 2072 428 ? Ss 13:18 0:00 pvfs2-client pvfs2-client-core
root 1256 2.6 14.6 27572 23816 ? S 13:18 0:00 [pvfs2-client-co]
root 1259 0.0 14.6 27572 23816 ? S 13:18 0:00 [pvfs2-client-co]
[root@host130:~]#
- Finally, mount the pvfs2 filesystem:
[root@host130:~]# mount -t pvfs2 pvfs2 /mnt/rw/pvfs2 -o tcp://host130:3334/pvfs2-fs
[root@host130:~]# mount | grep pvfs2
pvfs2 on /mnt/rw/pvfs2 type pvfs2 (rw)
[root@host130:~]#
8. Test out the system with pvfs2-ls and pvfs2-cp
- Test to see if the server target space is initialized (mainly just for the curiosity side of things):
[root@host130:~]# ls /mnt/rw/pvfs2-metastorage
5bd959a7 collections.db storage_attributes.db
- See what's there:
[root@host130:~]# pvfs2-ls /mnt/rw/pvfs2
(Yes, there's nothing there...we didn't populate it!)
- Populate the target filesystem and check to see that it shows up where it should:
[root@host130:~]# pvfs2-cp -t /lib/libc.so.6 /mnt/rw/pvfs2
Wrote 1070180 bytes in 0.040103 seconds. 25.449556 MB/seconds
[root@host130:~]# pvfs2-ls /mnt/rw/pvfs2
libc.so.6
[root@host130:~]# ls /mnt/rw/pvfs2
libc.so.6
[root@host130:~]#
