Balance files across multiple disks using MergerFS
MergerFS is a great filesystem for an expandable storage system in a homelab. Mostly since it allows you to add disks one at a time without having to, for example, resilver a ZFS pool. MergerFS won’t be as efficient as a filesystem that stripes your data across disks, but in the case of a disk failure the disks unaffected will still have the files assigned to them.
First install MergerFS,
sudo apt install mergerfs
The way I have my drives in my homelab setup is to have
N is the number of the drive.
This is mainly so that I can use wildcards to capture all the drives at once.
Temporary mounting solution:
sudo mergerfs -o defaults,allow_other,use_ino,fsname=data /mnt/data/\* $HOME/data
Permanent solution (Edit
/mnt/data/* /home/user/data fuse.mergerfs defaults,allow_other,use_ino,fsname=data 0 0
Quick summary of options passed
|Shortcut for atomic_o_trunc, auto_cache, big_writes, default_permissions, splice_move, splice_read, splice_write
|Allows users beside the mergerfs owner to view the filesystem.
|MergerFS supplies inodes instead of libfuse
|Name of the mount as shown in
df and other tools