blog

テクノロジー|mergefsで仮想ストレージを増やす

メディアプロジェクトに複数のディスクやパーティションを使い、既存のデータを失いたくないが、すべてのファイルを1つのドライブに保存したい場合はどうしますか?そんな時に便利なのが mergefs です!...

Oct 30, 2025 · 4 min. read
シェア

メディアプロジェクトに複数のディスクやパーティションを使用し、既存のデータを失いたくないが、すべてのファイルを1つのドライブに保存したい場合はどうしますか?そこでmergefsが役に立ちます!

は、多数の商用ストレージデバイス上のファイルの保存と管理を簡素化するために設計された統合ファイルシステムです。

Fedoraはバージョン名に "fc "とバージョン番号を付けています。 例えば、これは Fedora 31 のバージョンです: .

mergefs のインストールと設定

ダウンロードしたmergefsパッケージをインストールするにはsudoを使用します:

  1. $ sudo dnf install mergerfs-2..fc31.x86_64.rpm

複数のディスクを1つのドライブとしてマウントできるようになりました。これは、メディアサーバーがあり、すべてのメディアファイルを1つの場所に表示したい場合に便利です。新しいファイルをシステムにアップロードした場合、mergefs ディレクトリにコピーすると、mergefs が自動的に十分な空き容量のあるディスクにコピーします。

分かりやすくするための例です:

  1. $ df -hT | grep disk
  2. /dev/sdb1 ext4 K 21M 2% /disk1
  3. /dev/sdc1 ext4 M 40M 3% /disk2
  4. $ ls -l /disk1/Videos/
  5. total 1
  6. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv
  7. $ ls -l /disk2/Videos/
  8. total 2
  9. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
  10. -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv

この例では、disk1とdisk2の2つのディスクがマウントされています。両方のドライブには、ファイルを含むVideosディレクトリがあります。

これでドライブはmergefsを使ってマウントされ、1つの大きなドライブに見えるようになります。

  1. $ sudo mergerfs -o defaults,allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=1M /disk1:/disk2 /media

mergefsのマニュアルページは非常にかさばるので、上記のオプションについて説明します。

  • defaults1)デフォルト設定:特に指定がない限り、デフォルト設定が使用されます。
  • allow_other: sudoまたはroot以外のユーザーがファイルシステムを閲覧できるようにします。
  • use_ino: mergefs が libfuse の代わりにファイル/ディレクトリの inode を提供するようにします。デフォルトではありませんが、リンクされたファイルが同じ inode 値を共有するように、有効にすることをお勧めします。
  • category.create=mfs利用可能なスペースに基づいて、ドライブ間でファイルを拡散します。
  • 有効な場合、書き込みに失敗した場合、スキャンが実行され、最も空き容量の多いドライブが検索さmoveonenospc=true
  • minfreespace=1M使用スペースの最小値。
  • disk1最初のハードディスク。
  • disk22枚目のハードディスク。
  • ドライブがマウントされているディレクトリ/media

そのように見えます:

  1. $ df -hT | grep disk
  2. /dev/sdb1 ext4 K 21M 2% /disk1
  3. /dev/sdc1 ext4 M 40M 3% /disk2
  4. $ df -hT | grep media
  5. 1:2 fuse.mergerfs M 60M 3% /media

mergefsマウントでは、2つのドライブの合計容量である66Mが表示されていることがわかります。

継続例:

  1. $ ls -lh "Baby's second Xmas.mkv"
  2. -rw-rw-r--. 1 curt curt 30M Apr Baby's second Xmas.mkv
  3. $ cp "Baby's second Xmas.mkv" /media/Videos/

これが最終的な結果です:

  1. $ df -hT | grep disk
  2. /dev/sdb1 ext4 K 21M 2% /disk1
  3. /dev/sdc1 ext4 .8M 76% /disk2
  4. $ df -hT | grep media
  5. 1:2 fuse.mergerfs M 51% /media

ディスク領域の使用状況からわかるように、mergefs は自動的にファイルを disk2 にコピーします。

これがすべてのファイルの詳細です:

  1. $ ls -l /disk1/Videos/
  2. total 1
  3. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv
  4. $ ls -l /disk2/Videos/
  5. total 00303
  6. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
  7. -rw-rw-r--. 1 curt curt Apr Baby's second Xmas.mkv
  8. -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
  9. $ ls -l /media/Videos/
  10. total 00304
  11. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
  12. -rw-rw-r--. 1 curt curt Apr Baby's second Xmas.mkv
  13. -rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
  14. -rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv

mergefs マウントポイントにファイルをコピーすると、常に十分な空き容量があるドライブにファイルがコピーされます。プール内のすべてのドライブに十分な空き領域がない場合、ファイルをコピーすることはできません。

経由:

Read next