| 開発者 | オープンソースコミュニティ |
|---|---|
| フルネーム | 統合ファイルシステム |
| 特徴 | |
| ファイルシステムの権限 | POSIX |
| 透過的な圧縮 | いいえ |
| 透過的な暗号化 | いいえ(ただし、ブロックデバイスレベルで提供できます) |
| 他の | |
| サポートされているオペレーティングシステム | Linux、FreeBSD、NetBSD |
| Webサイト | unionfs.filesystems.org |
Unionfs は、 Linux、FreeBSD、NetBSD向けのファイルシステムサービスであり、他のファイルシステムへのユニオンマウントを実装しています。Unionfs は、ブランチと呼ばれる別々のファイルシステムのファイルとディレクトリを透過的にオーバーレイし、単一の一貫性のあるファイルシステムを形成します。マージされたブランチ内で同じパスを持つディレクトリの内容は、新しい仮想ファイルシステム内の単一のマージされたディレクトリにまとめて表示されます。
ブランチをマウントする際に、一方のブランチのもう一方のブランチに対する優先度を指定します。そのため、両方のブランチに同じ名前のファイルが含まれている場合、一方のブランチがもう一方のブランチよりも優先されます。
それぞれのブランチは、読み取り専用または読み書き可能なファイルシステムのいずれかであり、仮想的なマージされたコピーへの書き込みは、特定の実ファイルシステムに向けられます。これにより、ファイルシステムは書き込み可能であるように見えますが、実際には書き込みによってファイルシステムが変更されることはありません。これはコピーオンライトとも呼ばれます。これは、 Live CDのように、メディアが物理的に読み取り専用である場合に望ましい場合があります。
Unionfsはもともとストーニーブルック大学のエレズ・ザドックと彼のチームによって開発されました。[ 1 ] [ 2 ] [ 3 ]
用途
Knoppixでは、 CD-ROMまたはDVD上のファイルシステムと、書き込み可能なドライブ( USBメモリなど)上のknoppix.img (Knoppix 7の場合はknoppix-data.img)というイメージファイルに含まれるファイルシステムとの結合が可能であり、書き込み可能なドライブが読み取り専用ファイルシステムよりも優先されます。これにより、ユーザーはシステム上の任意のファイルを変更することができ、新しいファイルはイメージに保存され、CD上のファイルの代わりに透過的に使用されます。[ 4 ]
Unionfsは、複数のファイルシステムに共通のテンプレートを作成するためにも使用できます。また、セキュリティ上の理由から、アドホックなスナップショットシステムとして使用されることもあります。
Dockerは、Unionfsに着想を得たAufsなどのファイルシステムを用いてDockerイメージを階層化します。ベースイメージに対してアクションが実行されると、レイヤーが作成され、ドキュメント化されます。各レイヤーには、アクションの再現方法が完全に記述されています。この戦略により、レイヤーの更新のみが伝播されるため、Dockerの軽量イメージが可能になります(例えば、完全なVMと比較して)。[ 5 ]
UbuntuLTSPは、LinuxターミナルサーバープロジェクトのUbuntu実装であり、シンクライアントまたはシッククライアントをPXEブートするときにUnionfsを使用します。[ 6 ]
その他の実装
Linux版Unionfsには2つのバージョンがあります。バージョン1.xはモジュールとしてビルドできるスタンドアロンバージョンです。バージョン2.xは、より新しく、再設計され、再実装されたバージョンです。
Miklos Szerediによって書かれたoverlayfsはOpenWRTで使用され、Ubuntuでも検討され、長年の開発と議論[9]を経て、2014年10月26日にLinuxカーネルのバージョン3.18でメインラインに統合されました[ 8 ]。
unionfs-fuseは独立したプロジェクトであり、カーネルモジュールやパッチではなく、ユーザー空間ファイルシステムプログラムとして実装されています。Unionfsと同様に、コピーオンライトと読み取り専用または読み書き可能なブランチをサポートしています。[ 10 ]
Bell Labsオペレーティング システムのPlan 9 では、ユーザーまたはプロセスごとに カスタム名前空間を構築するために、ユニオン マウントを広範に使用します。
ユニオンマウントは少なくとも1995年からBSDでも利用可能となっている。 [ 11 ]
GNU HurdにはUnionfsの実装があります。[ 12 ] 2008年1月現在、これは動作しますが、マウントポイントは読み取り専用になります。
mhddfs はUnionfs と同様に動作しますが、空き容量が最も多いドライブ間でファイルを分散配置できます。ユーザー空間ファイルシステムとして実装されています。
mergerfsはFUSEベースのユニオンファイルシステムで、ファイルへのアクセスと書き込みのための複数のポリシーとその他の高度な機能(xattr、ROとRWの混在ドライブの管理、リンクCoWなど)を提供します。[ 13 ]
サン・マイクロシステムズは、 1986年頃にSunOS 3で、コピーオンライトやホワイトアウト(下位層のファイルを上位層から隠す)などの機能を備えた階層化ファイルシステムの最初の実装を透過ファイルサービスとして導入しました。 [ 14 ]
2011年7月にリリースされたiOSデバイスの脱獄ツールJailbreakMe 3.0は、 unionfs技術を使用してオペレーティングシステムの変更のインストールプロセスを高速化します。[ 15 ]
参照
参考文献
- ^ Wright, Charles P.; Zadok, Erez (2004年12月). 「カーネルコーナー:Unionfs:ファイルシステムの統合」 . Linux Journal . 2004 (128): 8. ISSN 1075-3583 .
- ^ 「ファイルシステムとストレージラボのGitサーバー」ストーニーブルック大学. 2016年6月17日時点のオリジナルよりアーカイブ。 2017年7月17日閲覧。
プロジェクト: unionfs-3.9.y.git; 所有者: Erez Zadok
- ^ 「ファイルシステムとストレージラボ:コンピュータサイエンス学科」ストーニーブルック大学。
ラボコーディネーター兼主任研究員:エレズ・ザドック
教授 - ^ Schulz, Werner P. (2016年12月15日). 「ハードドライブへのインストール:UNIONFS」 . Knoppix . 2017年7月17日閲覧。
- ^ 「Dockerの概要:ユニオンファイルシステム」 Docker , Inc. 2017年7月13日. 2017年7月17日閲覧。
- ^ Georgopoulos, Alkis (2010年12月24日). 「UbuntuLTSP/LTSPWithoutNFS」 . 2014年4月27日時点のオリジナルよりアーカイブ。2017年7月17日閲覧。
- ^ "aufsホームページ" . 2017年7月2日. 2017年7月17日閲覧。
- ^ Torvalds, Linus (2014年10月26日). 「overlayfsのマージとd_splice_alias()の失敗終了時のリーク修正」 . 2017年7月17日閲覧。
- ^ Corbet, Jonathan (2011年6月15日). 「Overlayfsの議論」 . 2017年7月17日閲覧。
- ^ Podgorny, Radek (2016年11月21日). 「unionfs-fuse – ユーザー空間unionfs実装」 . GitHub . 2017年7月17日閲覧。
- ^ペンドリー、ジャン=サイモン、マクキューシック、マーシャル・カーク(1995年1月)。「4.4BSD-LiteのUnionマウント」USENIX 1995技術会議議事録。2017年7月17日閲覧。
- ^ Schwinge, Thomas (2014年2月26日). 「unionfs」 . GNU Hurd . 2017年7月17日閲覧。
- ^ "trapexit/mergerfs" . GitHub . 2018年10月21日閲覧。
- ^ Sun/Release 3.0 . 第1巻. Interleaf Technical Publishing. 1988年. pp. 15‑1–18, 16‑1–19.
- ^ Imran, Awais (2011年6月19日). 「Comex、JailbreakMe 3.0の脱獄プロセスを高速化へ。iPad 2の脱獄も間もなく開始!」 Redmond Pie . 2017年7月17日閲覧。
外部リンク
- 公式サイト
- Charles P. Wright、Jay Dave、Puja Gupta、Harikesavan Krishnan、Erez Zadok、Mohammad Nayyer Zubair (2004). 「ファンアウト統合ファイルシステムにおける汎用性とUnixセマンティクス」(PDF) .技術報告書 FSL-04-01b .ストーニーブルック大学.
- GitHubのunionfs-fuse – Unionfs のFUSEベースの代替実装
- FunionFS 2018年1月3日アーカイブWayback Machine – Unionfsのもう一つのFUSEベースの実装
- FreeBSD 向けの新しい unionfs 実装とマージの状況(2007-10-23)
- 増分ファイルシステム開発について
- Linux用のLUFSベースのunionfs( 2006年8月28日Wayback Machineにアーカイブ)(LUFSベース)
- DENX U-Boot と Linux ガイド: オーバーレイ ファイル システム