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.

79 lines
2.6 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](config/functions_categories_and_policies.md).
  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. ```