From 71ddae8713fe5f66f71f8af7aafd9a00307319ab Mon Sep 17 00:00:00 2001 From: trapexit Date: Sun, 29 Jun 2025 19:08:57 -0500 Subject: [PATCH] Misc documentation changes (#1489) --- mkdocs/README.md | 7 +++++++ mkdocs/docs/benchmarking.md | 27 +++++++++++++++++++++++++-- mkdocs/docs/media_and_publicity.md | 2 ++ mkdocs/docs/project_comparisons.md | 13 +++++++++++++ mkdocs/docs/remote_filesystems.md | 13 +++++++++++++ 5 files changed, 60 insertions(+), 2 deletions(-) diff --git a/mkdocs/README.md b/mkdocs/README.md index 43116f7b..19a44602 100644 --- a/mkdocs/README.md +++ b/mkdocs/README.md @@ -9,6 +9,13 @@ pip3 install --no-cache-dir mkdocs mkdocs-material pymdown-extensions mike mike serve ``` +## Deploy + +```bash +mike deploy --push --allow-empty +``` + + ## References * https://www.mkdocs.org/ diff --git a/mkdocs/docs/benchmarking.md b/mkdocs/docs/benchmarking.md index ecbf4c29..18141669 100644 --- a/mkdocs/docs/benchmarking.md +++ b/mkdocs/docs/benchmarking.md @@ -61,15 +61,38 @@ author so it may be investigated further. ### write benchmark ``` -$ dd if=/dev/zero of=/mnt/mergerfs/1GB.file bs=1M count=1024 oflag=nocache conv=fdatasync status=progress +$ dd if=/dev/zero of=/mnt/mergerfs/16GB.file bs=1M count=16384 oflag=nocache conv=fdatasync status=progress ``` ### read benchmark ``` -$ dd if=/mnt/mergerfs/1GB.file of=/dev/null bs=1M count=1024 iflag=nocache conv=fdatasync status=progress +$ dd if=/mnt/mergerfs/16GB.file of=/dev/null bs=1M iflag=nocache conv=fdatasync status=progress ``` + +### fio + +`fio` is a popular and flexible benchmarking tool. + +Below are some basic tests but also try setting `--direct=0`, changing +the `ioengine`, or playing with other options. + + +#### write + +``` +$ fio --name=writetest --filename=/mnt/mergerfs/16GB.file --size=16Gb --rw=write --bs=1M --direct=1 --numjobs=1 --iodepth=8 --group_reporting --runtime=60 --startdelay=0 --ioengine=psync +``` + + +#### read + +``` +$ fio --name=readtest --filename=/mnt/mergerfs/16GB.file --size=16Gb --rw=read --bs=1M --direct=1 --numjobs=1 --iodepth=8 --group_reporting --runtime=60 --startdelay=0 --ioengine=psync +``` + + ### other benchmarks If you are attempting to benchmark other behaviors you must ensure you diff --git a/mkdocs/docs/media_and_publicity.md b/mkdocs/docs/media_and_publicity.md index f14c0c8d..98939275 100644 --- a/mkdocs/docs/media_and_publicity.md +++ b/mkdocs/docs/media_and_publicity.md @@ -64,6 +64,8 @@ * 2024-02-22 - [Setup and Install MergerFS and SnapRAID (Part 2)](https://noted.lol/mergerfs-and-snapraid-setup-part-2/) * 2024-11-15 - [Meu servidor NAS - Parte 18: Recuperando um HD, recuperando o MergerFS e os próximos passos do NAS!](https://www.youtube.com/watch?v=5fy98kPzE3s) * 2025-04-23 - [How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.](https://www.youtube.com/watch?v=Yt67zz9p0FU) +* 2025-06-12 - [DIY Unraid-like functionality ](https://www.youtube.com/watch?v=fR0XhaWvR1E) + ## Podcasts diff --git a/mkdocs/docs/project_comparisons.md b/mkdocs/docs/project_comparisons.md index 9d865628..02a22c24 100644 --- a/mkdocs/docs/project_comparisons.md +++ b/mkdocs/docs/project_comparisons.md @@ -156,6 +156,19 @@ can introduce a number of costs and limitations as described [here](https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSWhyNoRealReshaping). +## ZFS AnyRAID + +[ZFS +AnyRAID](https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek) +is a feature being developed for ZFS which is intended to provide more +flexibility in ZFS pools. Allowing a mix of capacity disks to have +greater capacity than traditional RAID and would allow for partial +upgrades while keeping live redundency. + +This ZFS feature, as of mid-2025, is extremely early in its development +and there are no timelines or estimates for when it may be released. + + ## StableBit's DrivePool * [https://stablebit.com](https://stablebit.com) diff --git a/mkdocs/docs/remote_filesystems.md b/mkdocs/docs/remote_filesystems.md index 3ac128bf..b0ac63fc 100644 --- a/mkdocs/docs/remote_filesystems.md +++ b/mkdocs/docs/remote_filesystems.md @@ -61,6 +61,7 @@ but if you run into problems it may be worth trying Samba/SMB. * `noforget` * `inodecalc=path-hash` +* `lazy-umount-mountpoint=false` `noforget` is needed because NFS uses the `name_to_handle_at` and `open_by_handle_at` functions which allow a program to keep a @@ -81,6 +82,12 @@ branch and therefore the inode would change. This isn't an ideal solution and others are being considered but it works for most situations. +`lazy-umount-mountpoint=false` is needed (or left unset) as lazy +umount can cause problems with NFS. It won't impact the NFS export at +first but followup mounts of mergerfs to the same mount point will +lead to new remote mounts hanging till `exportfs` is run again. + + **NFS export settings:** * `fsid=UUID` @@ -128,6 +135,12 @@ not been extensively tested. If you use mergerfs with CIFSD or other SMB servers please submit your experiences so these docs can be updated. +NOTE: Some users have reported that when deleting files from certain +Android file managers they get errors from the app and Samba but the +file gets removed. This is due to a bug in Samba which has been fixed +in more recent releases such as 4.21. If using Debian you can enable +[backports repo](https://backports.debian.org/Instructions). + ## SSHFS