ここにいくつかの考えがあります-私はまだこれを学んでおり、行くにつれてこれを更新します。
ユニオンファイルシステムの選択方法
これを見るには2つの方法があります。
- それぞれの機能をどのように比較しますか?
- いくつかの一般的な使用例について、どちらを選択すればよいですか?
unionfs / unionfs-fuse / overlayfs / aufs / mergerfsを比較します。後者はmhddfsの代わりです。
それぞれの特徴
開発状況
配布/カーネルのサポート
カーネルモードとユーザーシステムモードのファイルシステムがあり、後者はFUSEで実行されます。カーネルモードのものはオーバーヘッドが少ないですが(コードがユーザー空間とカーネル空間を切り替えるときにオーバーヘッドがあります)、現在 Linuxカーネルでサポートされているのはoverlayfsだけです。ユーザーモードのファイルシステムは、ディストリビューションがパッケージ化するのに簡単です。
- unionfsとaufsにはカーネルパッチが必要です
- unionfsはDebianによって配布されていません(残りは配布されています)
- unionfs-fuseおよびmergerfsはFUSEに基づいているため、カーネルに追加のモジュールを追加する必要はありません
- overlayfsは3.18(Debian Stretch)からカーネルの一部になっています
書き込み時にコピー
これは、以下のLive CDの使用例に関連しています。
- mergerfsには書き込み時にコピーがありません
- 他の人はする
ユースケース
読み取り専用ルート/ Live CDの使用例
アイデアは、Linuxシステムの読み取り専用のCD-ROM /パーティションを用意することです。ユニオンファイルシステムは、ユーザーが変更を行えるように読み取り/書き込みシステムのように見せます。ユーザーが行った変更の「デルタ」を保存するが、完全なスナップショットは保存しない読み取り/書き込みファイルシステム(たとえば、tmpfs RAMディスク)があります。
ここでは、任意のユニオンファイルシステムが行います。
Dockerの使用例
これが主な使用例であることは認識していますが、詳細はわかりません。誰かがこれについてガイダンスを提供できますか?
ハードディスクのマージ
たとえば、/home
異なるファイルシステムに2セットのディレクトリがあるとします。または、2台目のハードディスクを使用してホームコンピューターをアップグレードしていて、単一の論理ボリュームが必要な場合があります。
これは、実際にはコピーオンライトを必要としない場所なので、mergerfsが最良の選択です。
ディスクプーリングのためのユニオンファイルシステムとLVM
unionファイルシステムでは実現できるが、LVMでは実現できないユースケースをいくつか挙げます。
既存のシステムを2番目のディスクでアップグレードする場合、mergerfsのようなものが良いかもしれません。LVMは最初のハードディスクを再フォーマットする必要があり、それによってその上のデータを破棄する必要があるためです。ユニオンファイルシステムはこのステップを回避します。
LVMはファイルを2つの物理ハードディスクに分割する可能性があるため(RAID 0を想定)、1つのハードディスクに障害が発生するとファイルが失われます。
一部のユーザーは、たとえば、/home
持ち帰ることができるUSBスティックにディレクトリを保持したい場合があります。
2つの物理ディスク上の1つの仮想パーティションの使用例では、LVMを使用すると、ファイルがいずれかのディスクに保存されるかどうかを心配する必要はありません。mergefsを使用すると、使用可能な空き領域の量に応じて、システムが自動的に選択します。