diff --git a/README.md b/README.md index 252b1aa6..4744b333 100644 --- a/README.md +++ b/README.md @@ -19,19 +19,19 @@ mergerfs -o<options> <branches> <mountpoint> # FEATURES -* Runs in userspace (FUSE) * Configurable behaviors / file placement +* Ability to add or remove filesystems at will +* Resistance to individual filesystem failure * Support for extended attributes (xattrs) * Support for file attributes (chattr) * Runtime configurable (via xattrs) -* Safe to run as root -* Opportunistic credential caching * Works with heterogeneous filesystem types -* Handling of writes to full drives (transparently move file to drive with capacity) -* Handles pool of read-only and read/write drives -* Can turn read-only files into symlinks to underlying file +* Moving of file when filesystem runs out of space while writing +* Ignore read-only filesystems when creating files +* Turn read-only files into symlinks to underlying file * Hard link copy-on-write / CoW * Support for POSIX ACLs +* Misc other things # HOW IT WORKS diff --git a/man/mergerfs.1 b/man/mergerfs.1 index a29afe7e..229fa072 100644 --- a/man/mergerfs.1 +++ b/man/mergerfs.1 @@ -1,7 +1,7 @@ .\"t .\" Automatically generated by Pandoc 1.19.2.4 .\" -.TH "mergerfs" "1" "2021\-02\-08" "mergerfs user manual" "" +.TH "mergerfs" "1" "2021\-05\-29" "mergerfs user manual" "" .hy .SH NAME .PP @@ -17,32 +17,31 @@ devices. It is similar to \f[B]mhddfs\f[], \f[B]unionfs\f[], and \f[B]aufs\f[]. .SH FEATURES .IP \[bu] 2 -Runs in userspace (FUSE) -.IP \[bu] 2 Configurable behaviors / file placement .IP \[bu] 2 +Ability to add or remove filesystems at will +.IP \[bu] 2 +Resistance to individual filesystem failure +.IP \[bu] 2 Support for extended attributes (xattrs) .IP \[bu] 2 Support for file attributes (chattr) .IP \[bu] 2 Runtime configurable (via xattrs) .IP \[bu] 2 -Safe to run as root -.IP \[bu] 2 -Opportunistic credential caching -.IP \[bu] 2 Works with heterogeneous filesystem types .IP \[bu] 2 -Handling of writes to full drives (transparently move file to drive with -capacity) +Moving of file when filesystem runs out of space while writing .IP \[bu] 2 -Handles pool of read\-only and read/write drives +Ignore read\-only filesystems when creating files .IP \[bu] 2 -Can turn read\-only files into symlinks to underlying file +Turn read\-only files into symlinks to underlying file .IP \[bu] 2 Hard link copy\-on\-write / CoW .IP \[bu] 2 Support for POSIX ACLs +.IP \[bu] 2 +Misc other things .SH HOW IT WORKS .PP mergerfs logically merges multiple paths together. @@ -2425,6 +2424,28 @@ includes all the paths you need if you want links to work. .PP Yes. They are completely unreleated pieces of software. +.SS Can mergerfs run via Docker, Podman, Kubernetes, etc. +.PP +Yes. +With Docker you\[aq]ll need to include +\f[C]\-\-cap\-add=SYS_ADMIN\ \-\-device=/dev/fuse\ \-\-security\-opt=apparmor:unconfined\f[] +or similar with other container runtimes. +You should also be running it as root or given sufficient caps to change +user and group identity as well as have root like filesystem +permissions. +.PP +Keep in mind that you \f[B]MUST\f[] consider identity when using +containers. +For example: supplemental groups will be picked up from the container +unless you properly manage users and groups by sharing relevant /etc +files or by using some other means to share identity across containers. +Similarly if you use "rootless" containers and user namespaces to do +uid/gid translations you \f[B]MUST\f[] consider that while managing +shared files. +.PP +Also, as mentioned by hotio (https://hotio.dev/containers/mergerfs), +with Docker you should probably be mounting with +\f[C]bind\-propagation\f[] set to \f[C]slave\f[]. .SS Does mergerfs support CoW / copy\-on\-write / writes to read\-only filesystems? .PP @@ -2508,8 +2529,8 @@ Longer term the plan is to rewrite mergerfs to use the low level API. See above first. .PP If/when mergerfs is rewritten to use the low\-level API then it\[aq]ll -be plausible to support system libfuse but till then it's simply too much -work to manage the differences across the versions. +be plausible to support system libfuse but till then it\[aq]s simply too +much work to manage the differences across the versions. .SS Why use mergerfs over mhddfs? .PP mhddfs is no longer maintained and has some known stability and security @@ -2813,6 +2834,8 @@ PayPal: https://paypal.me/trapexit .IP \[bu] 2 Patreon: https://www.patreon.com/trapexit .IP \[bu] 2 +BuyMeACoffee: https://buymeacoff.ee/trapexit +.IP \[bu] 2 Ko\-Fi: https://ko\-fi.com/trapexit .IP \[bu] 2 Open Collective: https://opencollective.com/trapexit @@ -2832,18 +2855,12 @@ Dogecoin (DOGE): DLJNLVe28vZ4SMQSxDJLBQBv57rGtUoWFh .IP \[bu] 2 Ethereum (ETH): 0xB8d6d55c0319aacC327860d13f891427caEede7a .IP \[bu] 2 -Basic Attention Token (BAT): 0xB8d6d55c0319aacC327860d13f891427caEede7a -.IP \[bu] 2 -Chainlink (LINK): 0xB8d6d55c0319aacC327860d13f891427caEede7a -.IP \[bu] 2 -Reserve Rights (RSR): 0xB8d6d55c0319aacC327860d13f891427caEede7a -.IP \[bu] 2 -Reef Finance (REEF): 0xB8d6d55c0319aacC327860d13f891427caEede7a -.IP \[bu] 2 Any ERC20 Token: 0xB8d6d55c0319aacC327860d13f891427caEede7a .IP \[bu] 2 Ethereum Classic (ETC): 0x2B6054428e69a1201B6555f7a2aEc0Fba01EAD9F .IP \[bu] 2 +Harmony (ONE): one1hrtd2hqrrx4vcvncvrgnlzg5yl9wahn66lq6rw +.IP \[bu] 2 Dash (DASH): XvsFrohu8tbjA4E8p7xsc86E2ADxLHGXHL .IP \[bu] 2 Monero (XMR):