Overlayfs
関連記事
最初のカーネルコミット より:
- Overlayfs を使用すると、読み書きできる通常のディレクトリツリーを、他の読み取り専用のディレクトリツリーの上に重ねることができます。変更は全て、上部の書き込み可能なレイヤーに行われます。このような仕組みは主としてライブ CD で使われていますが、他にも幅広い用途が考えられます。
- Overlayfs が他の"統合ファイルシステム"と違う点は、ファイルが開かれた後、全ての操作はあくまで、上層であれ下層であれ、ファイルシステムに直接行われるというところです。これによって実装がシンプルになり、ほとんどの場合で通常の操作と変わらないパフォーマンスを発揮します。
Overlayfs は Linux カーネル 3.18 から取り込まれました [1]。
インストール
Overlayfs はデフォルトのカーネルで有効になっています。使用するにはモジュールをロードする必要があるかもしれません:
$ modprobe overlay
使用方法
オーバーレイをマウントするには次の mount
オプションを使います:
# mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
下層ディレクトリは :
で区切って複数指定することができます。例:
# mount -t overlay overlay -o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work /merged
overlayfs のエントリを /etc/fstab
に追加するときは以下のような形式を使います:
/etc/fstab
overlay /merged overlay noauto,x-systemd.automount,lowerdir=/lower,upperdir=/upper,workdir=/work 0 0
noauto
と x-systemd.automount
マウントオプションは必須のオプションであり、これを設定しないとオーバーレイをマウントできなくなって systemd が起動時にフリーズします。オーバーレイに始めてアクセスしたとき、もしくはリクエストが(準備が整うまで)バッファされたときに、オーバーレイはマウントされます。Fstab#systemd で自動マウントを見て下さい。
読み取り専用のオーバーレイ
複数のディレクトリを組み合わせた読み取り専用のビューを作成したい場合、簡単に作成することができます。upper
と work
は必要なくなります:
# mount -t overlay overlay -o lowerdir=/lower1:/lower2 /merged
upperdir
を指定しなかった場合、オーバーレイは自動的に読み取り専用としてマウントされます [2]。