You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.5 KiB

  1. # mergerfs - a featureful union filesystem
  2. **mergerfs** is a
  3. [FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) based
  4. [union filesystem](https://en.wikipedia.org/wiki/Union_mount) geared
  5. towards simplifying storage and management of files across numerous
  6. commodity storage devices. It is similar to **mhddfs**, **unionfs**,
  7. and **aufs**.
  8. ## Features
  9. * Logically combine numerous filesystems/paths into a single
  10. mount point
  11. * Combine paths of the same or different filesystems
  12. * Ability to add or remove filesystems/paths without impacting the
  13. rest of the data
  14. * Unaffected by individual filesystem failure
  15. * Configurable file selection and creation placement
  16. * Works with filesystems of any size
  17. * Works with filesystems of almost any type
  18. * Ignore read-only filesystems when creating files
  19. * Hard link copy-on-write / CoW
  20. * Runtime configurable
  21. * Support for extended attributes (xattrs)
  22. * Support for file attributes (chattr)
  23. * Support for POSIX ACLs
  24. ## Non-features
  25. * Read/write overlay on top of read-only filesystem like OverlayFS
  26. * File whiteout
  27. * RAID like parity calculation
  28. * Redundancy
  29. * Splitting of files across branches
  30. ## How it works
  31. mergerfs logically merges multiple filesystem paths together. It acts
  32. as a proxy to the underlying filesystem paths. Combining the behaviors
  33. of some functions and being a selector for others.
  34. When the contents of a directory are requested mergerfs combines the
  35. list of files from each directory, deduplicating entries, and returns
  36. that list.
  37. When a file or directory is created a policy is first run to determine
  38. which branch will be selected for the creation.
  39. For functions which change attributes or remove the file the behavior
  40. may be applied to all instances found.
  41. Read more about [policies here](config/functions_categories_and_policies.md).
  42. ### Visualization
  43. ```
  44. A + B = C
  45. /disk1 /disk2 /merged
  46. | | |
  47. +-- /dir1 +-- /dir1 +-- /dir1
  48. | | | | | |
  49. | +-- file1 | +-- file2 | +-- file1
  50. | | +-- file3 | +-- file2
  51. +-- /dir2 | | +-- file3
  52. | | +-- /dir3 |
  53. | +-- file4 | +-- /dir2
  54. | +-- file5 | |
  55. +-- file6 | +-- file4
  56. |
  57. +-- /dir3
  58. | |
  59. | +-- file5
  60. |
  61. +-- file6
  62. ```