-
Notifications
You must be signed in to change notification settings - Fork 0
plfs/plfs-archive
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
############################################################################### PLFS: A Checkpoint Filesystem for Parallel Applications ############################################################################### PLFS is a parallel virtual file system that rearranges random, concurrent writes into sequential writes to unique files (i.e. N-1 into N-N). This rearrangment allows write access patterns to be optimized for the underlying file system. Additional info: http://institutes.lanl.gov/plfs. Available under LANL LA-CC-08-104. Email [email protected] with any user questions. Email [email protected] with any developer questions. *************************************************************************** Installing PLFS *************************************************************************** For building and installation instructions, please see README.install. *************************************************************************** Using PLFS *************************************************************************** There are three ways to use PLFS: through the FUSE system, through MPI/IO, and through the PLFS API. *** Mounting a PLFS file system using FUSE: *** 1) Build and install PLFS with FUSE support (please see README.install) 2) Make sure your plfsrc file is correct by using plfs_check_config. In order to quickly create the needed directories, use 'plfs_check_config -mkdir'. 3) Launch the PLFS daemon (which calls fusermount): plfs /path/to/mount 4) The PLFS daemon can be killed via fusermount: fusermount -u /path/to/mount /path/to/mount can now be used as any POSIX file system. To check FUSE stats and make sure everything is working, run the following: cat /path/to/mount/.plfsdebug NOTE: The plfs binary does not check the existence of backend directories; only the existence of the mount point directory is checked. Therefore it is possible to successfully run plfs even if plfs_check_config reports that there are missing backends. If plfs is started on a mount point that is missing backends, the mount point will not be usable. As soon as all of the backends are available, the plfs mount point will be usable (no restart is necessary). NOTE: Not checking for the existence of backend directories is done to make mounting plfs scalable on a large cluster. If plfs is configured to start at boot time and plfs checks backend directories when it is started, this could result in thousands or millions (or more) of stat calls to the underlying filesystem in a very short period of time. NOTE on the above NOTES: Not checking backend directories only applies to fuse's actual mount command; plfs will not check the existence of backend directories during that call. However, it is possible for fuse to issue additional calls on the mount point, such as statfs, when 'plfs <mount point>' is executed on the command line. These calls will fail and it may not be possible to mount plfs without the backend directories for those versions/implementations of fuse. It is possible to see what commands fuse makes when running 'plfs <mount point>' by using strace. Several options can be passed to the plfs binary that are passed on to the FUSE system. Use the plfs binary's -o command line parameter. Use 'plfs -h' to see all options that can be passed. Some useful ones are: allow_other : if mounting as root, this allows others to use plfs big_writes : newer versions of fuse can break writes into 128K chunks direct_io : older versions can too, but then mmap doesn't work Example: plfs -o big_writes,allow_other /path/to/mount *** Using PLFS as a ROMIO ADIO layer for MPI/IO *** Please see mpi_adio/README for information on using PLFS as a ROMIO ADIO layer. *** Using the PLFS API *** 1) Build and install the PLFS library. Verify your plfsrc file is correct by using plfs_check_config. 2) Look at plfs.h to become familar with the PLFS API. 3) Modify application source to use the PLFS API. Basically, you just change opens to plfs_opens, etc. 4) Link the PLFS library to your application at compile time. Please see the linking requirements in using PLFS as a ROMIO ADIO layer for what the linking command should look like. *************************************************************************** Other Info *************************************************************************** For information on PLFS's POSIX-compliance, please see README.POSIX. Information about the logging capabilities of PLFS is contained in README.mlog. Please see that file for more information about getting log information from PLFS. Information for developers, such as rules for coding and working with the source repository, is contained in README.developer. *************************************************************************** Testing *************************************************************************** Some functionality tests are provided in the 'tests' directory. Please see and use tests/Tester.tcsh. A regression suite is also available for PLFS, but is not included in the normal source tree for PLFS. It can be checked out from the PLFS repository: svn co https://plfs.svn.sourceforge.net/svnroot/plfs/regression regression The regression suite is kept up-to-date with PLFS's trunk. As working with PLFS changes, the regression suite changes. This means that the regression suite may not work with a particular release if there has been significant divergence in source tree layout and PLFS configuration capabilities between the release and trunk. Versions of the regression suite that are known to work with specific versions of PLFS are contained in https://plfs.svn.sourceforge.net/svnroot/plfs/versions/rs. To find out which versions are available, it is probably easiest to browse the repository's code on sourceforge.net. Checking out the whole repository will also get these versions of the regression suite. The regression suite has its own set of documentation, so please refer to its README for further information.
About
LANL no longer develops PLFS. Feel free to fork and develop as you wish.
Resources
Stars
Watchers
Forks
Packages 0
No packages published