#author("2026-07-19T19:33:09+00:00","default:sysosa","sysosa") #author("2026-07-20T06:57:45+00:00","default:sysosa","sysosa") 本家様 [[https://github.com/trapexit/mergerfs>+https://github.com/trapexit/mergerfs]] wiki [[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 がお手軽なのかもしれません。 ***rockylinux9の上で MergerFS + SnapRAID を作ってみる [#b6f1c123] ***rockylinux9の上で MergerFS を作ってみる [#v6c18850] #code(nonumber){{ [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>+https://github.com/trapexit/mergerfs/releases]]から最新版は「mergerfs v2.42.0」なのでこれのrockylinux9版を取得 #code(nonumber){{ [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.rpm }} MergerFS は異なるサイズ、ファイルシステムを繋げるので、「/dev/sdb」をxfs、「/dev/sdc」をext4にして繋ぎ合わせてみる #code(nonumber){{ [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 ~]# }}