OverlayFS
Overlayfs (Overlay Filesystem) は、Linux 上でユニオンファイルシステムの機能を提供する、カーネル内の試みです。OverlayFS は、ファイルが開かれるとすべての操作が直接背後にある上層または下層のファイルシステムに行くという点で、他のユニオンファイルシステムとは異なります。これにより実装が単純化されていて、こうした場合にネイティブと同等のパフォーマンスが得られます。[1]
OverlayFS を有効化するためのオプションは Linux カーネル 3.18 以降に存在します。[2]
インストール
カーネル
File systems --->
[*] Overlay filesystem support
使い方
カーネルで有効化されたら、OverlayFS は mount コマンドを使って制御することができます。
root #
mount -t overlay overlay -o lowerdir=lowerdir,upperdir=upperdir,workdir=workdir mountpoint
例
ベースとなる ext4 ファイルシステム上に、以下の構造の例を使用して、オーバーレイファイルシステムをマウントするには。
以下のフォルダ構造を作成してください:
user $
tree test_folder
test_folder ├── low ├── my_overlay └── up
low フォルダ上に、明確に分かる名前を持つファイルを作成してください。フォルダ up 上でも同じ手順を繰り返して、次のような構造にしてください:
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay └── up └── up_file
このツリーがある状態で、以下のコマンドによって、low フォルダ上に up フォルダが重なるオーバーレイ構造が作成され、その構造は my_overlay フォルダ上に作成されるでしょう。
root #
mount -t overlay overlay -o lowerdir=/test_folder/low,upperdir=/test_folder/up,workdir=/test_folder/my_overlay /test_folder/my_overlay/
test_folder の構造を確認すると、以下が表示されるでしょう:
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay │ ├── low_file │ └── up_file └── up └── up_file
次のように、通常のファイルシステム構造を使用してファイルを作成することができます
root #
touch my_overlay/my_overlay_file
その結果、以下のツリーが生成されるでしょう
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay │ ├── low_file │ ├── my_overlay_file │ └── up_file └── up ├── my_overlay_file └── up_file
オーバーレイの作業ディレクトリは umount コマンドでアンマウントすることができます
root #
umount /test_folder/my_overlay/
オーバーレイフォルダをアンマウントした後、操作が行われたディレクトリ上に新しいサブフォルダが現れるでしょう
user $
tree test_folder
| test_folder ├── low │ └── low_file ├── my_overlay │ └── work └── up ├── my_overlay_file └── up_file
このフォルダは以下の属性を持つでしょう
d--------- 2 root root 4,0K sep 6 09:54 work
コロン (:) 区切りで複数の lowerdir エントリを使用できます。この場合 upperdir と workdir を省略することができ、そうすると読み込み専用としてマウントされます。
upperdir と workdir を含める場合は、両ディレクトリは同一のファイルシステム内にある必要があります。
関連項目
- Aufs — an advanced multi-layered unification filesystem.
- SquashFS — オープンソースの、読み込み専用の圧縮されたファイルシステムです。
- Wikipedia:ja:UnionFS — オリジナルのユニオンファイルシステム。
外部資料
- 2011 年 6 月に Jonathan Corbet によって書かれた、OverlayFS のメリットとデメリットについての LWN の記事
- 有益な AskUbuntu.com のスレッド。
- Linux git リポジトリ内の Overlay fs