Home pvfs2fuse: FUSE interface for PVFS

pvfs2fuse is a user-level filesystem client interface for PVFS. It performs a similar function to the Linux client interface included in the PVFS distribution except that it is portable to any system that FUSE has been ported to. At that present, that includes Linux, FreeBSD, and MacOSX. As of Linux 2.6.14, FUSE is included in the official kernel release.


To build pvfs2fuse, download the pvfs-2.6.3-pvfs2fuse-0.01.patch, download the pvfs-2.6.3 tarball from www.pvfs.org, and do the following commands.
> tar xvfz pvfs-2.6.3.tgz
> patch -p0 < pvfs-2.6.3-pvfs2fuse-0.01.patch

If you are using the latest PVFS code from the CVS tree, you can use this file instead: pvfs2-fuse.patch. If you are building PVFS on Darwin/MacOSX, you will also need this patch: pvfs2-macosx.patch

Make sure you have FUSE installed on your machine. FUSE can be downloaded from http://fuse.sourceforge.net. The MacOSX version of fuse can be downloaded from http://code.google.com/p/macfuse. Also, make sure that the PKG_CONFIG_PATH environment variable includes the location of fuse.pc. This will typically be /usr/local/lib/pkgconfig or /usr/lib/pkgconfig.

Now, you are ready to build pvfs2fuse. Go to the pvfs-2.6.3 directory and do the following:
> cd pvfs-2.6.3
> ./configure
> make

Now, you should have a working PVFS2 build as well as the pvfs2fuse build in pvfs-2.6.3/src/apps/fuse.


usage: pvfs2fuse [options] mountpoint

general options:
-o opt,[opt...] mount options
-h --help print help
-V --version print version

PVFS2FUSE options:
-o fs_spec=FS_SPEC PVFS2 fs_spec URI (eg. tcp://localhost:3334/pvfs2-fs)

In general, pvfs2fuse looks at the /etc/pvfs2tab file for the location of the config server for the PVFS filesystem that you are mounting. You can also specify the location using the "-o fs_spec=FS_SPEC" option.

The PVFS file system can be mounted by non-privileged users as well as root, but the mountpoint must be accessible to the user who is running pvfs2fuse. On MacOSX, when a PVFS file system is mounted by the main user, the file system will appear in the Finder and is accessible like any other Mac volume.

pvfs2fuse supports all FUSE options. The direct_io and fsname options are set by default and allow_other is set if the user is root.

pvfs2fuse has been tested with Linux 2.6.9/FUSE-2.65/PVFS-2.6.3 and MacOSX 10.4.9/MacFUSE-0.3.0/PVFS-2.6.3.


The patches allow compilation of the PVFS2 server on MacOSX, but server functionality is not completely working for writes.

Some statfs information may not be meaningful.

FUSE multithreaded support is disabled for now.


If you would like to use PVFS2FUSE with PVFS-2.7.1, you can download a copy of complete source code from here.


Research Projects

Department of Electrical & Computer Engineering, University of Connecticut, Storrs