diff --git a/README.md b/README.md index 0827271d..e59b89d8 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,30 @@ [FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) based [union filesystem](https://en.wikipedia.org/wiki/Union_mount) geared towards simplifying storage and management of files across numerous -commodity storage devices. It is similar to **mhddfs**, **unionfs**, -and **aufs**. +commodity storage devices. It is similar to [**mhddfs**, **unionfs**, +**aufs**, **DrivePool**, +etc.](https://trapexit.github.io/mergerfs/latest/project_comparisons/) + ## Features * Logically combine numerous filesystems/paths into a single - mount point + mount point (JBOFS: Just a Bunch of FileSystems) * Combine paths of the same or different filesystems * Ability to add or remove filesystems/paths without impacting the rest of the data * Unaffected by individual filesystem failure * Configurable file selection and creation placement +* File IO + [passthrough](https://trapexit.github.io/mergerfs/latest/config/passthrough/) + for near native IO performance (where supported) * Works with filesystems of any size -* Works with filesystems of almost any type +* Works with filesystems of [almost any + type](https://trapexit.github.io/mergerfs/latest/faq/compatibility_and_integration/#what-filesystems-can-be-used-as-branches) * Ignore read-only filesystems when creating files -* Hard link copy-on-write / CoW -* Runtime configurable +* Hard link [copy-on-write / + CoW](https://trapexit.github.io/mergerfs/latest/config/link_cow/) +* [Runtime configurable](https://trapexit.github.io/mergerfs/latest/runtime_interface/) * Support for extended attributes (xattrs) * Support for file attributes (chattr) * Support for POSIX ACLs @@ -30,16 +37,17 @@ and **aufs**. * Read/write overlay on top of read-only filesystem like OverlayFS * File whiteout -* RAID like parity calculation +* RAID like parity calculation (see [SnapRAID](https://www.snapraid.it)) * Redundancy * Splitting of files across branches ## How it works -mergerfs logically merges multiple filesystem paths together. It acts -as a proxy to the underlying filesystem paths. Combining the behaviors -of some functions and being a selector for others. +mergerfs logically merges multiple filesystem paths together. Not +block devices, not filesystem mounts, just paths. It acts as a proxy +to the underlying filesystem paths. Combining the behaviors of some +functions and being a selector for others. When the contents of a directory are requested mergerfs combines the list of files from each directory, deduplicating entries, and returns @@ -52,7 +60,7 @@ For functions which change attributes or remove the file the behavior may be applied to all instances found. Read more about [policies -here](https://trapexit.github.io/mergerfs/config/functions_categories_policies/). +here](https://trapexit.github.io/mergerfs/latest/config/functions_categories_policies/). ### Visualization @@ -63,24 +71,26 @@ A + B = C | | | +-- /dir1 +-- /dir1 +-- /dir1 | | | | | | -| +-- file1 | +-- file2 | +-- file1 -| | +-- file3 | +-- file2 -+-- /dir2 | | +-- file3 -| | +-- /dir3 | -| +-- file4 | +-- /dir2 -| +-- file5 | | -+-- file6 | +-- file4 - | - +-- /dir3 - | | - | +-- file5 - | - +-- file6 +| +-- file1 | | | +-- file1 +| | +-- file2 | +-- file2 +| | +-- file3 | +-- file3 +| | | ++-- /dir2 | +-- /dir2 +| | | | | +| *-- file4 | | +-- file4 +| | | +| +-- /dir3 +-- /dir3 +| | | | | +| | +-- file5 | +-- file5 +| | | ++-- file6 | +-- file6 ++-- file7 +-- file7 +-- file7 ``` + ## QuickStart -https://trapexit.github.io/mergerfs/quickstart/ +https://trapexit.github.io/mergerfs/latest/quickstart/ ## Documentation @@ -90,7 +100,7 @@ https://trapexit.github.io/mergerfs ## Support -https://trapexit.github.io/mergerfs/support/ +https://trapexit.github.io/mergerfs/latest/support/ ## Sponsorship and Donations