PUFS is a user-space distributed file system that operates on top of FUSE, making it easy to use for those on a limited budget.
PUFS is designed to run on local area networks, where multicast is readily available, allowing for seamless peer auto-discovery and notification. When run in unicast mode, all contributing peers must be enumerated in advance. The peers constitute a topological mesh, where any peer is virtually connected to every other one, ensuring that the unified file hierarchy is the same across all nodes.
Since there's no central authority enforcing membership, peers are loosely bound to the "union" and can join or leave at any time. Changes in the file system are reflected on a best effort basis, with metadata being typically cached and valid for a configurable period.
PUFS is almost POSIX compliant, with the exception of symbolic and hard links. File locking, both mandatory and advisory, is also missing due to a limitation in FUSE.
PUFS is easy to set up and suited for applications that focus on distributing and sharing data, where temporary outages on a peer have little impact. It can be used for transparent file sharing, as a poor man's scalable storage system, as a file-based distributed shared memory system, and as a sysadmin management tool.
To use PUFS, you'll need FUSE installed on your system. In the latest release, a bug that could cause a user buffer to be written past the end during a read operation has been fixed. Additionally, a command line option to enable the use of direct io explicitly has been added. Disabling direct io allows for files to be mmaped and execve'd.
Version 0.0.2c: N/A