本家様 https://github.com/trapexit/mergerfs
wiki https://github.com/trapexit/mergerfs/wiki
容量が互いに異なるHDDを合わせて一つの大きなボリュームが作れます。そしてデータは各HDDに分散されず、ファイル単位でHDDに収まります。
なので特定のHDDに障害があってアクセスできなくなると、そのHDDにあるファイルだけが見れなくなりますが、それ以外のHDDのファイルは無傷です。
それでは困る。。となると各HDDのサイズが同じである必要がありますが、SnapRAID を合わせることでRAID様式な補完ができます。
このSnapRAID はunRAID(有償品)っぽい代物です。
どちらもオープンソースです。
MergerFS の読み書き速度は担当するHDD単体に依存します。一方RAIDはデータをブロックベースで複数のHDDに分散しますので球が多ければ早いです。
なので用途としてはアーカイブとかでしょうかね。
HDDの障害を考慮すればHDDのサイズを揃えてSnapRAID がお手軽なのかもしれません。
[root@mergerfs ~]# cat /etc/redhat-release
Rocky Linux release 9.8 (Blue Onyx)
[root@mergerfs ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 32G 0 disk
tqsda1 8:1 0 1M 0 part
tqsda2 8:2 0 1G 0 part /boot
tqsda3 8:3 0 128M 0 part [SWAP]
tqsda4 8:4 0 1K 0 part
mqsda5 8:5 0 30.9G 0 part /
sdb 8:16 0 1T 0 disk
sdc 8:32 0 2T 0 disk
[root@mergerfs ~]#「sdb(1TB)」と「sdc(2TB)」が存在している。これをMergerFSで1つにしてみる。
https://github.com/trapexit/mergerfs/releases
から最新版は「mergerfs v2.42.0」なのでこれのrockylinux9版を取得
[root@mergerfs ~]# wget https://github.com/trapexit/mergerfs/releases/download/2.42.0/mergerfs-2.42.0-1.el9.x86_64.rpm
[root@mergerfs ~]# rpm -qpli ./mergerfs-2.42.0-1.el9.x86_64.rpm
Name : mergerfs
Version : 2.42.0
Release : 1.el9
Architecture: x86_64
Install Date: (not installed)
Group : Applications/System
Size : 1604614
License : ISC
Signature : (none)
Source RPM : mergerfs-2.42.0-1.el9.src.rpm
Build Date : Fri 08 May 2026 12:55:36 PM JST
Build Host : b570179acaea
URL : https://github.com/trapexit/mergerfs
Summary : A featureful FUSE based union filesystem
Description :
mergerfs is a union filesystem geared towards simplifying storage and
management of files across numerous commodity storage devices. It is
similar to mhddfs, unionfs, and aufs.
/sbin/mount.mergerfs
/usr/bin/fsck.mergerfs
/usr/bin/mergerfs
/usr/bin/mergerfs-fusermount
/usr/bin/mergerfs.collect-info
/usr/lib/.build-id
/usr/lib/.build-id/36
/usr/lib/.build-id/36/0751c352ee1818af0308b6cb7326dabd3bfef2
/usr/lib/.build-id/cc
/usr/lib/.build-id/cc/0a2ece94722c2ad5128474f6c6afcecd29ffb6
/usr/lib/.build-id/e6
/usr/lib/.build-id/e6/0aa290540f15fb0c70d23891c8d706e7399678
/usr/lib/mergerfs/preload.so
/usr/share/man/man1
/usr/share/man/man1/mergerfs.1.gz
[root@mergerfs ~]#
[root@mergerfs ~]# dnf localinstall ./mergerfs-2.42.0-1.el9.x86_64.rpmMergerFS は異なるサイズ、ファイルシステムを繋げるので、「/dev/sdb」をxfs、「/dev/sdc」をext4にして繋ぎ合わせてみる
[root@mergerfs ~]# parted /dev/sdb mklabel gpt
[root@mergerfs ~]# parted /dev/sdb mkpart primary 0% 100%
[root@mergerfs ~]# mkfs.xfs /dev/sdb1
[root@mergerfs ~]# parted /dev/sdc mklabel gpt
[root@mergerfs ~]# parted /dev/sdc mkpart primary 0% 100%
[root@mergerfs ~]# mkfs.ext4 /dev/sdc1
(確認)
[root@mergerfs ~]# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
NAME SIZE TYPE FSTYPE MOUNTPOINTS
sda 32G disk
├sda1 1M part
├sda2 1G part xfs /boot
├sda3 128M part swap [SWAP]
├sda4 1K part
└sda5 30.9G part xfs /
sdb 1T disk
└sdb1 1024G part xfs
sdc 2T disk
└sdc1 2T part ext4
[root@mergerfs ~]#