Merge pull request #1244 from trapexit/docs

Add some new questions to FAQ
This commit is contained in:
trapexit 2023-09-05 22:56:50 -05:00 committed by GitHub
commit dd7e9e2aa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 89 additions and 22 deletions

View File

@ -1294,10 +1294,11 @@ https://en.wikipedia.org/wiki/Page_cache
unchanged since previous open. unchanged since previous open.
* cache.files=libfuse: follow traditional libfuse `direct_io`, * cache.files=libfuse: follow traditional libfuse `direct_io`,
`kernel_cache`, and `auto_cache` arguments. `kernel_cache`, and `auto_cache` arguments.
* cache.files=per-process: Enable page caching (equivalent to `cache.files=partial`) * cache.files=per-process: Enable page caching (equivalent to
only for processes whose 'comm' name matches one of the values defined in `cache.files=partial`) only for processes whose 'comm' name matches
`cache.files.process-names`. If the name does not match the file open one of the values defined in `cache.files.process-names`. If the
is equivalent to `cache.files=off`. name does not match the file open is equivalent to
`cache.files=off`.
FUSE, which mergerfs uses, offers a number of page caching modes. mergerfs tries to simplify their use via the `cache.files` FUSE, which mergerfs uses, offers a number of page caching modes. mergerfs tries to simplify their use via the `cache.files`
option. It can and should replace usage of `direct_io`, option. It can and should replace usage of `direct_io`,
@ -1428,7 +1429,7 @@ placing of usually smaller, faster storage as a transparent cache to
larger, slower storage. NVMe, SSD, Optane in front of traditional HDDs larger, slower storage. NVMe, SSD, Optane in front of traditional HDDs
for instance. for instance.
MergerFS does not natively support any sort of tiered caching. Most mergerfs does not natively support any sort of tiered caching. Most
users have no use for such a feature and its inclusion would users have no use for such a feature and its inclusion would
complicate the code. However, there are a few situations where a cache complicate the code. However, there are a few situations where a cache
filesystem could help with a typical mergerfs setup. filesystem could help with a typical mergerfs setup.
@ -1901,18 +1902,51 @@ of which are fixed in stable releases.
#### Can mergerfs be used with filesystems which already have data / are in use? #### Can mergerfs be used with filesystems which already have data / are in use?
Yes. MergerFS is a proxy and does **NOT** interfere with the normal Yes. mergerfs is really just a proxy and does **NOT** interfere with
form or function of the filesystems / mounts / paths it manages. the normal form or function of the filesystems / mounts / paths it
manages. It is just another userland application that is acting as a
man-in-the-middle. It can't do anything that any other random piece of
software can't do.
MergerFS is **not** a traditional filesystem. MergerFS is **not** mergerfs is **not** a traditional filesystem that takes control over
RAID. It does **not** manipulate the data that passes through it. It the underlying block device. mergerfs is **not** RAID. It does **not**
does **not** shard data across filesystems. It merely shards some manipulate the data that passes through it. It does **not** shard data
**behavior** and aggregates others. across filesystems. It merely shards some **behavior** and aggregates
others.
#### Can drives/filesystems be removed from the pool at will?
Yes. See previous question's answer.
#### Can mergerfs be removed without affecting the data? #### Can mergerfs be removed without affecting the data?
See the previous question's answer. Yes. See the previous question's answer.
#### Can drives/filesystems be moved to another pool?
Yes. See the previous question's answer.
#### How do I migrate data into or out of the pool when adding/removing drives/filesystems?
You don't need to. See the previous question's answer.
#### How do I remove a drive/filesystem but keep the data in the pool?
Nothing special needs to be done. Remove the branch from mergerfs'
config and copy (rsync) the data from the removed filesystem into the
pool. Effectively the same as if it were you transfering data from one
filesystem to another.
If you wish to continue using the pool while performing the transfer
simply create another, temporary pool without the filesystem in
question and then copy the data. It would probably be a good idea to
set the branch to `RO` prior to doing this to ensure no new content is
written to the filesystem while performing the copy.
#### What policies should I use? #### What policies should I use?
@ -2132,7 +2166,7 @@ removed to simplify the codebase.
#### Why use mergerfs over mhddfs? #### Why use mergerfs over mhddfs?
mhddfs is no longer maintained and has some known stability and mhddfs is no longer maintained and has some known stability and
security issues (see below). MergerFS provides a superset of mhddfs' security issues (see below). mergerfs provides a superset of mhddfs'
features and should offer the same or maybe better performance. features and should offer the same or maybe better performance.
Below is an example of mhddfs and mergerfs setup to work similarly. Below is an example of mhddfs and mergerfs setup to work similarly.
@ -2181,7 +2215,7 @@ without the single point of failure.
#### Why use mergerfs over ZFS? #### Why use mergerfs over ZFS?
MergerFS is not intended to be a replacement for ZFS. MergerFS is mergerfs is not intended to be a replacement for ZFS. mergerfs is
intended to provide flexible pooling of arbitrary filesystems (local intended to provide flexible pooling of arbitrary filesystems (local
or remote), of arbitrary sizes, and arbitrary filesystems. For `write or remote), of arbitrary sizes, and arbitrary filesystems. For `write
once, read many` usecases such as bulk media storage. Where data once, read many` usecases such as bulk media storage. Where data

View File

@ -1899,7 +1899,7 @@ The placing of usually smaller, faster storage as a transparent cache to
larger, slower storage. larger, slower storage.
NVMe, SSD, Optane in front of traditional HDDs for instance. NVMe, SSD, Optane in front of traditional HDDs for instance.
.PP .PP
MergerFS does not natively support any sort of tiered caching. mergerfs does not natively support any sort of tiered caching.
Most users have no use for such a feature and its inclusion would Most users have no use for such a feature and its inclusion would
complicate the code. complicate the code.
However, there are a few situations where a cache filesystem could help However, there are a few situations where a cache filesystem could help
@ -2433,17 +2433,50 @@ All of which are fixed in stable releases.
.SS Can mergerfs be used with filesystems which already have data / are in use? .SS Can mergerfs be used with filesystems which already have data / are in use?
.PP .PP
Yes. Yes.
MergerFS is a proxy and does \f[B]NOT\f[R] interfere with the normal mergerfs is really just a proxy and does \f[B]NOT\f[R] interfere with
form or function of the filesystems / mounts / paths it manages. the normal form or function of the filesystems / mounts / paths it
manages.
It is just another userland application that is acting as a
man-in-the-middle.
It can\[cq]t do anything that any other random piece of software
can\[cq]t do.
.PP .PP
MergerFS is \f[B]not\f[R] a traditional filesystem. mergerfs is \f[B]not\f[R] a traditional filesystem that takes control
MergerFS is \f[B]not\f[R] RAID. over the underlying block device.
mergerfs is \f[B]not\f[R] RAID.
It does \f[B]not\f[R] manipulate the data that passes through it. It does \f[B]not\f[R] manipulate the data that passes through it.
It does \f[B]not\f[R] shard data across filesystems. It does \f[B]not\f[R] shard data across filesystems.
It merely shards some \f[B]behavior\f[R] and aggregates others. It merely shards some \f[B]behavior\f[R] and aggregates others.
.SS Can drives/filesystems be removed from the pool at will?
.PP
Yes.
See previous question\[cq]s answer.
.SS Can mergerfs be removed without affecting the data? .SS Can mergerfs be removed without affecting the data?
.PP .PP
Yes.
See the previous question\[cq]s answer. See the previous question\[cq]s answer.
.SS Can drives/filesystems be moved to another pool?
.PP
Yes.
See the previous question\[cq]s answer.
.SS How do I migrate data into or out of the pool when adding/removing drives/filesystems?
.PP
You don\[cq]t need to.
See the previous question\[cq]s answer.
.SS How do I remove a drive/filesystem but keep the data in the pool?
.PP
Nothing special needs to be done.
Remove the branch from mergerfs\[cq] config and copy (rsync) the data
from the removed filesystem into the pool.
Effectively the same as if it were you transfering data from one
filesystem to another.
.PP
If you wish to continue using the pool while performing the transfer
simply create another, temporary pool without the filesystem in question
and then copy the data.
It would probably be a good idea to set the branch to \f[C]RO\f[R] prior
to doing this to ensure no new content is written to the filesystem
while performing the copy.
.SS What policies should I use? .SS What policies should I use?
.PP .PP
Unless you\[cq]re doing something more niche the average user is Unless you\[cq]re doing something more niche the average user is
@ -2674,7 +2707,7 @@ The splice code was removed to simplify the codebase.
.PP .PP
mhddfs is no longer maintained and has some known stability and security mhddfs is no longer maintained and has some known stability and security
issues (see below). issues (see below).
MergerFS provides a superset of mhddfs\[cq] features and should offer mergerfs provides a superset of mhddfs\[cq] features and should offer
the same or maybe better performance. the same or maybe better performance.
.PP .PP
Below is an example of mhddfs and mergerfs setup to work similarly. Below is an example of mhddfs and mergerfs setup to work similarly.
@ -2713,8 +2746,8 @@ and/or an offsite backup solution you can have the flexibility of JBOD
without the single point of failure. without the single point of failure.
.SS Why use mergerfs over ZFS? .SS Why use mergerfs over ZFS?
.PP .PP
MergerFS is not intended to be a replacement for ZFS. mergerfs is not intended to be a replacement for ZFS.
MergerFS is intended to provide flexible pooling of arbitrary mergerfs is intended to provide flexible pooling of arbitrary
filesystems (local or remote), of arbitrary sizes, and arbitrary filesystems (local or remote), of arbitrary sizes, and arbitrary
filesystems. filesystems.
For \f[C]write once, read many\f[R] usecases such as bulk media storage. For \f[C]write once, read many\f[R] usecases such as bulk media storage.