Unionfsは、 Linux、FreeBSD、NetBSD向けのファイルシステムサービスで、他のファイルシステムとの統合マウントを実現します。これにより、ブランチと呼ばれる別々のファイルシステムのファイルやディレクトリを透過的に重ね合わせ、単一の整合性のあるファイルシステムを形成できます。統合されたブランチ内で同じパスを持つディレクトリの内容は、新しい仮想ファイルシステム内の単一の統合ディレクトリにまとめて表示されます。
ブランチをマウントする際、どちらのブランチが優先されるかが指定されます。そのため、両方のブランチに同じ名前のファイルが含まれている場合、一方のブランチが優先されます。
異なるブランチは、読み取り専用ファイルシステムまたは読み書き可能なファイルシステムのいずれかであり、仮想的に統合されたコピーへの書き込みは、特定の実際のファイルシステムに向けられます。これにより、ファイルシステムは書き込み可能であるかのように見せかけながら、実際には書き込みによってファイルシステムが変更されないようにすることができます。これはコピーオンライトとも呼ばれます。これは、ライブCDのようにメディアが物理的に読み取り専用の場合に望ましい場合があります。
Unionfsは元々、ストーニーブルック大学のErez Zadok氏とそのチームによって開発されました。[ 1 ] [ 2 ] [ 3 ]
Knoppixでは、 CD-ROMまたはDVDのファイルシステムと、書き込み可能なドライブ ( USB メモリ スティックなど) 上のknoppix.img (Knoppix 7 の場合は knoppix-data.img)というイメージ ファイルに含まれるファイルシステムとの間で統合を行うことができます。この場合、書き込み可能なドライブが読み取り専用ファイルシステムよりも優先されます。これにより、ユーザーはシステム上の任意のファイルを変更でき、新しいファイルはイメージに保存され、CD 上のファイルの代わりに透過的に使用されます。[ 4 ]
Unionfsは、複数のファイルシステムに共通のテンプレートを作成するため、あるいはセキュリティ上の理由から利用することもできます。また、アドホックなスナップショットシステムとして使用されることもあります。
Docker は、Unionfs にヒントを得たAufsなどのファイルシステムを使用して、Docker イメージを階層化します。ベースイメージに対して操作が行われると、レイヤーが作成され、ドキュメント化されます。各レイヤーは、操作を再現する方法を完全に記述します。この戦略により、レイヤーの更新のみを伝播する必要があるため (たとえば、完全な VM と比較して)、Docker の軽量イメージが実現します。[ 5 ]
Ubuntu 用の Linux Terminal Server Project 実装であるUbuntuLTSP は、シンクライアントまたはシッククライアントの PXE ブート時に Unionfs を使用します。[ 6 ]
Linux 用の Unionfs には 2 つのバージョンがあります。バージョン 1.x はスタンドアロン版で、モジュールとしてビルドできます。バージョン 2.x は、より新しく、再設計され、再実装されたバージョンです。
Miklos Szeredi によって書かれたoverlayfsは OpenWRT で使用され、Ubuntu で検討され、長年の開発と議論を経て[ 9 ] 2014 年 10 月 26 日にカーネル バージョン 3.18 のメインライン Linux カーネルに統合されました[ 8 ] 。
unionfs-fuseは独立したプロジェクトであり、カーネルモジュールやパッチではなく、ユーザー空間ファイルシステムプログラムとして実装されています。Unionfsと同様に、コピーオンライトと読み取り専用または読み書き可能なブランチをサポートしています。[ 10 ]
ベル研究所のオペレーティングシステムであるPlan 9は、ユーザーまたはプロセスごとにカスタム名前空間を構築するために、ユニオンマウントを多用しています。
ユニオンマウントは、少なくとも1995年からBSDでも入手可能である。 [ 11 ]
GNU Hurd には Unionfs の実装があります。[ 12 ] 2008 年 1 月の時点では動作しますが、読み取り専用のマウント ポイントになります。
mhddfsはUnionfsと同様の動作をしますが、空き容量が最も多いドライブにファイルを分散させることができます。ユーザー空間ファイルシステムとして実装されています。
mergerfsはFUSEベースのユニオンファイルシステムで、ファイルのアクセスと書き込みに関する複数のポリシーと、その他の高度な機能(拡張属性、ROとRWが混在するドライブの管理、リンクCoWなど)を提供します。[ 13 ]
サン・マイクロシステムズは、 1986年頃のSunOS 3で、コピーオンライト、ホワイトアウト(下位レイヤーのファイルを上位レイヤーから隠す)などを備えたスタック型レイヤードファイルシステムの最初の実装であるTranslucent File Serviceを導入しました。 [ 14 ]
2011年7月にリリースされたiOSデバイスの脱獄ツールであるJailbreakMe 3.0は、 unionfs技術を使用してオペレーティングシステムの変更のインストールプロセスを高速化しています。[ 15 ]
プロジェクト: unionfs-3.9.y.git; 所有者: Erez Zadok
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)研究室コーディネーター兼主任研究員:エレズ・ザドク教授