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.

60 lines
2.3 KiB

  1. # Compatibility and Integration
  2. ## Can I use mergerfs without SnapRAID? SnapRAID without mergerfs?
  3. Yes. They are completely unrelated pieces of software that just happen
  4. to work well together.
  5. ## Does mergerfs support CoW / copy-on-write / writes to read-only filesystems?
  6. Not in the sense of a filesystem like BTRFS or ZFS nor in the
  7. overlayfs or aufs sense. It does offer a
  8. [cow-shell](http://manpages.ubuntu.com/manpages/bionic/man1/cow-shell.1.html)
  9. like hard link breaking (copy to temp file then rename over original)
  10. which can be useful when wanting to save space by hardlinking
  11. duplicate files but wish to treat each name as if it were a unique and
  12. separate file.
  13. If you want to write to a read-only filesystem you should look at
  14. overlayfs. You can always include the overlayfs mount into a mergerfs
  15. pool.
  16. ## Can mergerfs run via Docker, Podman, Kubernetes, etc.
  17. Yes. With Docker you'll need to include `--cap-add=SYS_ADMIN
  18. --device=/dev/fuse --security-opt=apparmor:unconfined` or similar with
  19. other container runtimes. You should also be running it as root or
  20. given sufficient caps to allow mergerfs to change user and group
  21. identity as well as have root like filesystem permissions. This
  22. ability is critical to how mergerfs works.
  23. Also, as mentioned by [hotio](https://hotio.dev/containers/mergerfs),
  24. with Docker you should probably be mounting with `bind-propagation`
  25. set to `slave`.
  26. ## How does mergerfs interact with user namespaces?
  27. FUSE does not have any special integration with Linux user namespaces
  28. used by container runtime platforms like Docker, Podman, etc. The
  29. uid/gid values passed to mergerfs will be the host level values rather
  30. than that seen inside the container. Meaning `root` in a container
  31. with user namespaces configured will not be `root` to mergerfs. Same
  32. with any other uid/gid. Meaning your permissions on your branches must
  33. work with the translated values from the id mapping.
  34. It is generally recommended to not use user namespacing / id mapping
  35. given the complication it introduces.
  36. ## Can mergerfs be used with NFS root squash?
  37. If mergerfs is pooling a NFS mount then root squash should be disabled
  38. as mergerfs needs to be able to have elevated privilages to do what it
  39. does.
  40. If you are exporting mergerfs over NFS then it is not really necessary.
  41. See the [section on remote filesystems.](../remote_filesystems.md)