Browse Source

Merge pull request #1434 from trapexit/change-defaults

Change misc defaults
pull/1435/head
trapexit 3 weeks ago
committed by GitHub
parent
commit
764bd8f7be
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      mkdocs/docs/config/options.md
  2. 12
      mkdocs/docs/faq/configuration_and_policies.md
  3. 10
      mkdocs/docs/quickstart.md
  4. 6
      src/config.cpp
  5. 6
      src/config_moveonenospc.cpp
  6. 2
      src/config_moveonenospc.hpp
  7. 2
      src/func.hpp

8
mkdocs/docs/config/options.md

@ -35,7 +35,7 @@ These options are the same regardless of whether you use them with the
exceeded) the policy selected will run to find a new location for exceeded) the policy selected will run to find a new location for
the file. An attempt to move the file to that branch will occur the file. An attempt to move the file to that branch will occur
(keeping all metadata possible) and if successful the original is (keeping all metadata possible) and if successful the original is
unlinked and the write retried. (default: false, true = mfs)
unlinked and the write retried. (default: pfrd)
- **[inodecalc](inodecalc.md)=passthrough|path-hash|devino-hash|hybrid-hash**: - **[inodecalc](inodecalc.md)=passthrough|path-hash|devino-hash|hybrid-hash**:
Selects the inode calculation algorithm. (default: hybrid-hash) Selects the inode calculation algorithm. (default: hybrid-hash)
- **dropcacheonclose=BOOL**: When a file is requested to be closed - **dropcacheonclose=BOOL**: When a file is requested to be closed
@ -160,7 +160,7 @@ These options are the same regardless of whether you use them with the
epall) epall)
- **[category.create](functions_categories_policies.md)=POLICY**: Sets - **[category.create](functions_categories_policies.md)=POLICY**: Sets
policy of all FUSE functions in the create category. (default: policy of all FUSE functions in the create category. (default:
epmfs)
pfrd)
- **[category.search](functions_categories_policies.md)=POLICY**: Sets - **[category.search](functions_categories_policies.md)=POLICY**: Sets
policy of all FUSE functions in the search category. (default: ff) policy of all FUSE functions in the search category. (default: ff)
- **[cache.statfs](cache.md#cachestatfs)=UINT**: 'statfs' cache - **[cache.statfs](cache.md#cachestatfs)=UINT**: 'statfs' cache
@ -171,8 +171,8 @@ These options are the same regardless of whether you use them with the
timeout in seconds. (default: 1) timeout in seconds. (default: 1)
- **[cache.negative_entry](cache.md#cachenegative_entry)=UINT**: - **[cache.negative_entry](cache.md#cachenegative_entry)=UINT**:
Negative file name lookup cache timeout in seconds. (default: 0) Negative file name lookup cache timeout in seconds. (default: 0)
- **[cache.files](cache.md#cachefiles)=libfuse|off|partial|full|auto-full|per-process**:
File page caching mode (default: libfuse)
- **[cache.files](cache.md#cachefiles)=off|partial|full|auto-full|per-process**:
File page caching mode (default: off)
- **cache.files.process-names=LIST**: A pipe | delimited list of - **cache.files.process-names=LIST**: A pipe | delimited list of
process [comm](https://man7.org/linux/man-pages/man5/proc.5.html) process [comm](https://man7.org/linux/man-pages/man5/proc.5.html)
names to enable page caching for when names to enable page caching for when

12
mkdocs/docs/faq/configuration_and_policies.md

@ -19,12 +19,12 @@ filesystems and can be added or removed without any impact it is
extremely easy to test and experiment with different settings. extremely easy to test and experiment with different settings.
## Why is epmfs the default create policy?
## Why is pfrd the default create policy?
Because it is a strict policy and therefore does not increase entropy
of the filesystem layout. If you don't explicitly choose a policy then
the layout stays the same. It is far easier to stop being strict than
fix the layout after having a loose policy.
Originally the default was `epmfs` however it was found to cause
significant confusion among new users who expected mergerfs to always
choose a branch with available space. For mergerfs v2.41.0 it was
decided to change the default to the less restrictive policy `pfrd`.
## How can I ensure files are collocated on the same branch? ## How can I ensure files are collocated on the same branch?
@ -88,5 +88,5 @@ If you wish to move files around or balance the pool you can:
in mind that this tool is really just an example of how to in mind that this tool is really just an example of how to
accomplish such a task. The tool does not keep track of links so accomplish such a task. The tool does not keep track of links so
you may encounter an increase in used space if you rely on links to you may encounter an increase in used space if you rely on links to
reduce redundency. However, you can run a file dedup program like
reduce redundancy. However, you can run a file dedup program like
[rdfind](https://github.com/pauldreik/rdfind) to restore the links. [rdfind](https://github.com/pauldreik/rdfind) to restore the links.

10
mkdocs/docs/quickstart.md

@ -22,6 +22,7 @@ cases.
* cache.files=off * cache.files=off
* category.create=pfrd * category.create=pfrd
* func.getattr=newest
* dropcacheonclose=false * dropcacheonclose=false
In previous versions of Linux it was unable to support `mmap` if [page In previous versions of Linux it was unable to support `mmap` if [page
@ -44,6 +45,7 @@ IO.)
* cache.files=auto-full * cache.files=auto-full
* category.create=pfrd * category.create=pfrd
* func.getattr=newest
* dropcacheonclose=true * dropcacheonclose=true
@ -51,6 +53,7 @@ IO.)
* cache.files=off * cache.files=off
* category.create=pfrd * category.create=pfrd
* func.getattr=newest
* dropcacheonclose=false * dropcacheonclose=false
@ -59,14 +62,14 @@ IO.)
### Command Line ### Command Line
``` ```
mergerfs -o cache.files=off,dropcacheonclose=false,category.create=pfrd /mnt/hdd0:/mnt/hdd1 /media
mergerfs -o cache.files=off,category.create=pfrd,func.getattr=newest,dropcacheonclose=false /mnt/hdd0:/mnt/hdd1 /media
``` ```
### /etc/fstab ### /etc/fstab
``` ```
/mnt/hdd0:/mnt/hdd1 /media mergerfs cache.files=off,dropcacheonclose=false,category.create=pfrd 0 0
/mnt/hdd0:/mnt/hdd1 /media mergerfs cache.files=off,category.create=pfrd,func.getattr=newest,dropcacheonclose=false 0 0
``` ```
### /etc/fstab w/ config file ### /etc/fstab w/ config file
@ -86,6 +89,7 @@ For more complex setups it can be useful to separate out the config.
```ini title="media.ini" linenums="1" ```ini title="media.ini" linenums="1"
cache.files=off cache.files=off
category.create=pfrd category.create=pfrd
func.getattr=newest
dropcacheonclose=false dropcacheonclose=false
``` ```
@ -119,6 +123,7 @@ ExecStart=/usr/bin/mergerfs \
-f \ -f \
-o cache.files=off \ -o cache.files=off \
-o category.create=pfrd \ -o category.create=pfrd \
-o func.getattr=newest \
-o dropcacheonclose=false \ -o dropcacheonclose=false \
/mnt/hdd0:/mnt/hdd1 \ /mnt/hdd0:/mnt/hdd1 \
/media /media
@ -182,6 +187,7 @@ ExecStart=/usr/bin/mergerfs \
-f \ -f \
-o cache.files=off \ -o cache.files=off \
-o category.create=pfrd \ -o category.create=pfrd \
-o func.getattr=newest \
-o dropcacheonclose=false \ -o dropcacheonclose=false \
/mnt/hdd0:/mnt/hdd1 \ /mnt/hdd0:/mnt/hdd1 \
/media /media

6
src/config.cpp

@ -87,7 +87,7 @@ Config::Config()
branches_mount_timeout(0), branches_mount_timeout(0),
cache_attr(1), cache_attr(1),
cache_entry(1), cache_entry(1),
cache_files(CacheFiles::ENUM::LIBFUSE),
cache_files(CacheFiles::ENUM::OFF),
cache_files_process_names(CACHE_FILES_PROCESS_NAMES_DEFAULT), cache_files_process_names(CACHE_FILES_PROCESS_NAMES_DEFAULT),
cache_negative_entry(0), cache_negative_entry(0),
cache_readdir(false), cache_readdir(false),
@ -110,10 +110,10 @@ Config::Config()
link_exdev(LinkEXDEV::ENUM::PASSTHROUGH), link_exdev(LinkEXDEV::ENUM::PASSTHROUGH),
log_metrics(false), log_metrics(false),
mountpoint(), mountpoint(),
moveonenospc(false),
moveonenospc(true),
nfsopenhack(NFSOpenHack::ENUM::OFF), nfsopenhack(NFSOpenHack::ENUM::OFF),
nullrw(false), nullrw(false),
parallel_direct_writes(false),
parallel_direct_writes(true),
posix_acl(false), posix_acl(false),
readahead(0), readahead(0),
readdir("seq"), readdir("seq"),

6
src/config_moveonenospc.cpp

@ -31,11 +31,13 @@ MoveOnENOSPC::from_string(const std::string &s_)
rv = str::from(s_,&enabled); rv = str::from(s_,&enabled);
if((rv == 0) && (enabled == true)) if((rv == 0) && (enabled == true))
s = "mfs";
s = "pfrd";
ef((rv == 0) && (enabled == false))
return (enabled = false,0);
ef(rv != 0) ef(rv != 0)
s = s_; s = s_;
else else
return 0;
return -EINVAL;
tmp = Policies::Create::find(s); tmp = Policies::Create::find(s);
if(tmp == NULL) if(tmp == NULL)

2
src/config_moveonenospc.hpp

@ -30,7 +30,7 @@ class MoveOnENOSPC : public ToFromString
public: public:
MoveOnENOSPC(const bool enabled_) MoveOnENOSPC(const bool enabled_)
: enabled(enabled_), : enabled(enabled_),
policy(&Policies::Create::mfs)
policy(&Policies::Create::pfrd)
{ {
} }

2
src/func.hpp

@ -87,7 +87,7 @@ namespace Func
{ {
public: public:
CreateDefault() CreateDefault()
: Func::Base::Create(&Policies::Create::epmfs)
: Func::Base::Create(&Policies::Create::pfrd)
{ {
} }
}; };

Loading…
Cancel
Save