Browse Source

Merge pull request #945 from trapexit/readme

Update 'features' section of readme
pull/951/head
trapexit 3 years ago
committed by GitHub
parent
commit
6e53f3b698
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      README.md
  2. 59
      man/mergerfs.1

12
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

59
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):

Loading…
Cancel
Save