LoginSignup
22
21

More than 5 years have passed since last update.

OverlayFSについて

Last updated at Posted at 2015-01-26

CoreOSが最近btrfsをやめてoverlayfsに移行するという発表をしたのでoverlayfsについて簡単に調べてみた。

そもそもFileSystemとは

Wikipedia 英語版 の説明がわかりやすい。

In computing, a file system (or filesystem) is used to control how data is stored and retrieved. Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins. By separating the data into individual pieces, and giving each piece a name, the information is easily separated and identified. Taking its name from the way paper-based information systems are named, each group of data is called a "file". The structure and logic rules used to manage the groups of information and their names is called a "file system".
http://en.wikipedia.org/wiki/File_system

簡単にポイントを抽出すると、

  • ファイルシステムとは、どうやってデータを格納し探しだすかを制御する仕組み
  • ファイルシステムが無いと、ストレージに入れられた情報が、ただのデータの塊になってしまい、どこからどこまでが1つの情報で次はどこから始まるかがわからなくなってしまう
  • データを情報のピースに分けて、そのピースに名前を与える
  • これら情報のピースの集合と名前をどう管理するかという仕組みがファイルシステムと呼ばれる

OverlayFSとは

UnionFSと言われる、分離したファイルシステムのファイルやディレクトリを透過的に重ねることができる仕組みの実装の1つ

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/overlayfs.txt
(日本語訳)

以下メモ

  • overlayfsは上の層と下の層をマージして1つのファイルシステムに見せる仕組み
  • ディレクトリだけマージするが、その他のファイルは単純に上だけが見える。上がない場合は下が見える
  • このマージは、statやreaddirなどのシステムコールの値を何と報告するかを適切に調整することにより行われる
  • 下の層はReadonly、上の層はReadonly/Writableどちらでも良い
  • Readonlyの層はNFSや別のoverlayfsでも良い
  • Wratableの時は、trusted.*拡張属性と、readdirのd_typeを返す必要があり、NFSではいけない
  • Readonlyな削除を実現するため、そのディレクトリ以下のファイルを見せなくするwhiteoutという機能がある
  • 上だけを見せて下を見せないという不透明というモードもある
  • 下の層に対して書き込みをする際、copy_upと言い、上の層に内容がディレクトリ階層/メタ情報ごとコピーされる

OverlayFSに関するニュース

追記

OverlayFSの挙動を簡単に実験してみました!
http://qiita.com/awakia/items/af9b46c322905cdce1d7

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21