Merge tag 'for-linus-4.17-ofs' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux

Pull orangefs updates from Mike Marshall:
 "Fixes and cleanups:

   - Documentation cleanups

   - removal of unused code

   - make some structs static

   - implement Orangefs vm_operations fault callout

   - eliminate two single-use functions and put their cleaned up code in
     line.

   - replace a vmalloc/memset instance with vzalloc

   - fix a race condition bug in wait code"

* tag 'for-linus-4.17-ofs' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
  Orangefs: documentation updates
  orangefs: document package install and xfstests procedure
  orangefs: remove unused code
  orangefs: make several *_operations structs static
  orangefs: implement vm_ops->fault
  orangefs: open code short single-use functions
  orangefs: replace vmalloc and memset with vzalloc
  orangefs: bug fix for a race condition when getting a slot
This commit is contained in:
Linus Torvalds
2018-04-09 12:45:47 -07:00
8 changed files with 190 additions and 266 deletions

View File

@@ -21,10 +21,16 @@ Orangefs features include:
* Stateless
MAILING LIST
============
MAILING LIST ARCHIVES
=====================
http://beowulf-underground.org/mailman/listinfo/pvfs2-users
http://lists.orangefs.org/pipermail/devel_lists.orangefs.org/
MAILING LIST SUBMISSIONS
========================
devel@lists.orangefs.org
DOCUMENTATION
@@ -42,12 +48,59 @@ Orangefs versions prior to 2.9.3 would not be compatible with the
upstream version of the kernel client.
BUILDING THE USERSPACE FILESYSTEM ON A SINGLE SERVER
====================================================
RUNNING ORANGEFS ON A SINGLE SERVER
===================================
You can omit --prefix if you don't care that things are sprinkled around in
/usr/local. As of version 2.9.6, Orangefs uses Berkeley DB by default, we
will probably be changing the default to lmdb soon.
OrangeFS is usually run in large installations with multiple servers and
clients, but a complete filesystem can be run on a single machine for
development and testing.
On Fedora, install orangefs and orangefs-server.
dnf -y install orangefs orangefs-server
There is an example server configuration file in
/etc/orangefs/orangefs.conf. Change localhost to your hostname if
necessary.
To generate a filesystem to run xfstests against, see below.
There is an example client configuration file in /etc/pvfs2tab. It is a
single line. Uncomment it and change the hostname if necessary. This
controls clients which use libpvfs2. This does not control the
pvfs2-client-core.
Create the filesystem.
pvfs2-server -f /etc/orangefs/orangefs.conf
Start the server.
systemctl start orangefs-server
Test the server.
pvfs2-ping -m /pvfsmnt
Start the client. The module must be compiled in or loaded before this
point.
systemctl start orangefs-client
Mount the filesystem.
mount -t pvfs2 tcp://localhost:3334/orangefs /pvfsmnt
BUILDING ORANGEFS ON A SINGLE SERVER
====================================
Where OrangeFS cannot be installed from distribution packages, it may be
built from source.
You can omit --prefix if you don't care that things are sprinkled around
in /usr/local. As of version 2.9.6, OrangeFS uses Berkeley DB by
default, we will probably be changing the default to LMDB soon.
./configure --prefix=/opt/ofs --with-db-backend=lmdb
@@ -55,35 +108,69 @@ make
make install
Create an orangefs config file:
Create an orangefs config file.
/opt/ofs/bin/pvfs2-genconfig /etc/pvfs2.conf
for "Enter hostnames", use the hostname, don't let it default to
localhost.
Create an /etc/pvfs2tab file.
create a pvfs2tab file in /etc:
cat /etc/pvfs2tab
tcp://myhostname:3334/orangefs /mymountpoint pvfs2 defaults,noauto 0 0
echo tcp://localhost:3334/orangefs /pvfsmnt pvfs2 defaults,noauto 0 0 > \
/etc/pvfs2tab
create the mount point you specified in the tab file if needed:
mkdir /mymountpoint
Create the mount point you specified in the tab file if needed.
bootstrap the server:
/opt/ofs/sbin/pvfs2-server /etc/pvfs2.conf -f
mkdir /pvfsmnt
Bootstrap the server.
/opt/ofs/sbin/pvfs2-server -f /etc/pvfs2.conf
Start the server.
start the server:
/opt/osf/sbin/pvfs2-server /etc/pvfs2.conf
Now the server is running. At this point you might like to
prove things are working with:
Now the server should be running. Pvfs2-ls is a simple
test to verify that the server is running.
/opt/osf/bin/pvfs2-ls /mymountpoint
/opt/ofs/bin/pvfs2-ls /pvfsmnt
If stuff seems to be working, turn on the client core:
/opt/osf/sbin/pvfs2-client -p /opt/osf/sbin/pvfs2-client-core
If stuff seems to be working, load the kernel module and
turn on the client core.
/opt/ofs/sbin/pvfs2-client -p /opt/osf/sbin/pvfs2-client-core
Mount your filesystem.
mount -t pvfs2 tcp://myhostname:3334/orangefs /mymountpoint
mount -t pvfs2 tcp://localhost:3334/orangefs /pvfsmnt
RUNNING XFSTESTS
================
It is useful to use a scratch filesystem with xfstests. This can be
done with only one server.
Make a second copy of the FileSystem section in the server configuration
file, which is /etc/orangefs/orangefs.conf. Change the Name to scratch.
Change the ID to something other than the ID of the first FileSystem
section (2 is usually a good choice).
Then there are two FileSystem sections: orangefs and scratch.
This change should be made before creating the filesystem.
pvfs2-server -f /etc/orangefs/orangefs.conf
To run xfstests, create /etc/xfsqa.config.
TEST_DIR=/orangefs
TEST_DEV=tcp://localhost:3334/orangefs
SCRATCH_MNT=/scratch
SCRATCH_DEV=tcp://localhost:3334/scratch
Then xfstests can be run
./check -pvfs2
OPTIONS