UnionFS

UnionFSとは



UnionFSは、LinuxやFreeBSD環境で使用されるファイルシステムサービスです。複数の異なるファイルシステム(ブランチ)を、透過的に重ね合わせる(マージする)ことで、仮想的な単一のファイルシステムとして扱えるようにします。これにより、複数のブランチに分散したディレクトリの内容を、あたかも一つのディレクトリのように同時に参照することが可能になります。

マージの仕組み



ブランチのマージ時には、各ブランチに対して優先度を指定できます。これにより、複数のブランチに同じ名前のファイルが存在する場合に、どのファイルを使用するかを決定します。また、各ブランチは読み込み専用または読み書き可能に設定でき、仮想ファイルシステムへの書き込みは、特定の物理ファイルシステムにリダイレクトされます。例えば、変更したくない雛形となるブランチを読み込み専用に設定し、書き込み可能な別のブランチとマージすることで、全体として書き込み可能なファイルシステムのように見せることができます。マージを解除すれば、雛形のブランチを元の状態に戻せるため、コピーオンライトの仕組みとしても利用されます。

利用例



UnionFSは、以下のような様々な用途で利用できます。

KNOPPIX: CD-ROMDVDなどの読み込み専用メディアにあるイメージファイルと、USBメモリなどの書き込み可能なファイルシステムを結合し、普段使用している環境をどのPCでも再現できるようにします。
ファイルシステムの共通テンプレート: 共通のファイルシステムテンプレートを作成し、複数の環境で共有することができます。
セキュリティ対策: セキュリティ対策のために、読み込み専用のブランチと書き込み可能なブランチを組み合わせることで、システムを保護できます。
一時的なスナップショット: ファイルシステムの変更を一時的に記録し、必要に応じて元の状態に戻せるようにします。
Live CD: メディアが物理的に読み込み専用の場合でも、UnionFSを使用することで書き込み可能な環境を実現します。

実装



Linux向けのUnionFSには、主に2つのバージョンがあります。バージョン1.xはスタンドアロンのモジュールとしてビルド可能ですが、バージョン2.xは再設計されたもので、Linuxカーネルへの統合が予定されています。また、Linuxには、aufsという別の実装も存在します。

その他の実装例として、Plan 9 from Bell Labsでは、ユーザーやプロセスごとに専用の名前空間を構築するためにunion mountを使用しています。このunion mountの考え方は、1995年からBSDで利用可能になっており、GNU HurdにもUnionFSが存在しますが、2008年1月時点では読み込み専用のマウントポイントとして動作します。

脚注



以下に、UnionFSに関する詳細な情報を提供する外部リンクを記載します。

C. P. Wright et al. (2004). "Versatility and Unix Semantics in a Fan-Out Unification File System (pdf)."
Linux Unionfs の公式サイト
Bugzilla バグデータベース Linux Unionfs 向け
AuFS は Linux 向けの代わりとなる unionfs である。
http://podgorny.cz/unionfs-fuse (FUSE ベースの UnionFS の実装)
FunionFS (ログや制御などのついたもう一つの高度な FUSE ベースの UnionFS の 実装)
Kernel Korner - Unionfs: Bringing Filesystems Together - LinuxJournal の記事
Union Filesystem macOS 上での使用
FreeBSD 向けの union fs の新しい実装
union fs の実装について
LUFS ベースの unionfs
* Linux Implementations - Linux 向けの union ファイルシステムについての優れた記事


UnionFSは、その柔軟性と多様な用途から、多くのシステムで重要な役割を果たしています。その仕組みを理解することで、より効率的なファイルシステム管理が可能になります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。