メディアプロジェクトに複数のディスクやパーティションを使用し、既存のデータを失いたくないが、すべてのファイルを1つのドライブに保存したい場合はどうしますか?そこでmergefsが役に立ちます!
は、多数の商用ストレージデバイス上のファイルの保存と管理を簡素化するために設計された統合ファイルシステムです。
Fedoraはバージョン名に "fc "とバージョン番号を付けています。 例えば、これは Fedora 31 のバージョンです: .
mergefs のインストールと設定
ダウンロードしたmergefsパッケージをインストールするにはsudoを使用します:
$ sudo dnf install mergerfs-2..fc31.x86_64.rpm
複数のディスクを1つのドライブとしてマウントできるようになりました。これは、メディアサーバーがあり、すべてのメディアファイルを1つの場所に表示したい場合に便利です。新しいファイルをシステムにアップロードした場合、mergefs ディレクトリにコピーすると、mergefs が自動的に十分な空き容量のあるディスクにコピーします。
分かりやすくするための例です:
$ df -hT | grep disk
/dev/sdb1 ext4 K 21M 2% /disk1
/dev/sdc1 ext4 M 40M 3% /disk2
$ ls -l /disk1/Videos/
total 1
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv
$ ls -l /disk2/Videos/
total 2
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
この例では、disk1とdisk2の2つのディスクがマウントされています。両方のドライブには、ファイルを含むVideosディレクトリがあります。
これでドライブはmergefsを使ってマウントされ、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
そのように見えます:
$ df -hT | grep disk
/dev/sdb1 ext4 K 21M 2% /disk1
/dev/sdc1 ext4 M 40M 3% /disk2
$ df -hT | grep media
1:2 fuse.mergerfs M 60M 3% /media
mergefsマウントでは、2つのドライブの合計容量である66Mが表示されていることがわかります。
継続例:
$ ls -lh "Baby's second Xmas.mkv"
-rw-rw-r--. 1 curt curt 30M Apr Baby's second Xmas.mkv
$ cp "Baby's second Xmas.mkv" /media/Videos/
これが最終的な結果です:
$ df -hT | grep disk
/dev/sdb1 ext4 K 21M 2% /disk1
/dev/sdc1 ext4 .8M 76% /disk2
$ df -hT | grep media
1:2 fuse.mergerfs M 51% /media
ディスク領域の使用状況からわかるように、mergefs は自動的にファイルを disk2 にコピーします。
これがすべてのファイルの詳細です:
$ ls -l /disk1/Videos/
total 1
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv
$ ls -l /disk2/Videos/
total 00303
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt Apr Baby's second Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
$ ls -l /media/Videos/
total 00304
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Baby's first Xmas.mkv
-rw-rw-r--. 1 curt curt Apr Baby's second Xmas.mkv
-rw-rw-r--. 1 curt curt 0 Mar 8 17:21 Halloween hijinks.mkv
-rw-r--r--. 1 curt curt 0 Mar 8 17:17 Our Wedding.mkv
mergefs マウントポイントにファイルをコピーすると、常に十分な空き容量があるドライブにファイルがコピーされます。プール内のすべてのドライブに十分な空き領域がない場合、ファイルをコピーすることはできません。
経由:





