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.

112 lines
3.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
  42. here](https://trapexit.github.io/mergerfs/config/functions_categories_and_policies).
  43. ### Visualization
  44. ```
  45. A + B = C
  46. /disk1 /disk2 /merged
  47. | | |
  48. +-- /dir1 +-- /dir1 +-- /dir1
  49. | | | | | |
  50. | +-- file1 | +-- file2 | +-- file1
  51. | | +-- file3 | +-- file2
  52. +-- /dir2 | | +-- file3
  53. | | +-- /dir3 |
  54. | +-- file4 | +-- /dir2
  55. | +-- file5 | |
  56. +-- file6 | +-- file4
  57. |
  58. +-- /dir3
  59. | |
  60. | +-- file5
  61. |
  62. +-- file6
  63. ```
  64. ## QuickStart
  65. https://trapexit.github.io/mergerfs/quickstart/
  66. ## Documentation
  67. https://trapexit.github.io/mergerfs
  68. ## Support
  69. https://trapexit.github.io/mergerfs/support/
  70. ## Sponsorship and Donations
  71. [https://github.com/trapexit/support](https://github.com/trapexit/support)
  72. Development and support of a project like mergerfs requires a
  73. significant amount of time and effort. The software is released under
  74. the very liberal [ISC](https://opensource.org/license/isc-license-txt)
  75. license and is therefore free to use for personal or commercial uses.
  76. If you are a non-commercial user and find mergerfs and its support valuable
  77. and would like to support the project financially it would be very
  78. much appreciated.
  79. If you are using mergerfs commercially please consider sponsoring the
  80. project to ensure it continues to be maintained and receive
  81. updates. If custom features are needed feel free to [contact me
  82. directly](mailto:support@spawn.link).