About this project

mergerfs is a FUSE-based union filesystem designed to simplify storage and management of files spread across numerous commodity storage devices. It is comparable in purpose to mhddfs, unionfs, aufs and DrivePool. How it works: mergerfs logically merges multiple filesystem paths — not block devices or mounts, just paths — into one mount point. It acts as a proxy to the underlying paths, combining the behavior of some operations and acting as a selector for others. Directory listings are merged and deduplicated across branches. When a file or directory is created, a policy determines which branch is selected. Operations that change attributes or remove files may be applied to all instances found. Key features: - Combine many filesystems or paths into a single mount point ("Just a Bunch of FileSystems"). - Paths may come from the same or different filesystems. - Add or remove filesystems/paths without impacting the rest of the data. - Unaffected by individual filesystem failure. - Configurable file selection and creation placement via policies. - File IO passthrough for near-native IO performance where supported. - Works with filesystems of any size and almost any type. - Read-only filesystems can be ignored when creating files. - Hard links, plus hard link copy-on-write (link_cow). - Runtime configurable. - Support for extended attributes (xattrs), file attributes (chattr) and POSIX ACLs. Explicit non-features: it is not a read/write overlay on a read-only filesystem like OverlayFS, does not provide file whiteout, RAID-like parity (see SnapRAID), redundancy, or splitting of files across branches. Configuration is controlled through options and policies documented on the project site, and a quickstart guide and full documentation are available at trapexit.github.io/mergerfs. The project is released under the ISC license and accepts sponsorship and donations.