Daniel Phillips氏がTux3, a Versioning Filesystemのタイトルのもとで新しいファイルシステム「Tux3」に関する発表をおこなっている。説明によればTux3はDaniel Phillips氏の考案しているストレージデータバージョニングの実現や効率のいいスナップショット/レプリケーション機能の実現を目指したファイルシステムということになる。最終的には同じく高性能スナップショット機能を提供しているZFSよりも優れたものに仕上げたいようだ。
Tux3の大まかな特徴は次のとおり。
- ファイルごと、ディレクトリごと、ファイルシステムごとのバージョン管理が可能
- ファイルごと、ディレクトリごと、ファイルシステムごとのリモートレプリケーションが可能
- すべてのバージョンが書き込み可能
- 最大ファイルサイズ: 2の60乗
- 最大ボリュームサイズ: 2の60乗
- 最大バージョン数: 2の48乗
- 最大inode数: 2の48乗
- 動的にさまざまなサイズをとれるinode
- ファイルやディレクトリデータに対するバージョン管理されたエクステント
- 標準属性に対するバージョン管理
- 拡張属性に対するバージョン管理
- 新しいアトミックアップデート機能
- 新しい物理ディレクトリインデックス
- 堅固なfsckを実現するためのBTreeバックポインタ
特に細かいバージョン管理機能がTux3の特徴だ。このバージョン管理機能を実現するためのデザインだが、基本的に従来のノード/ファイル/ディレクトリデザインを踏襲しつつ、巧みに工夫を加えて実現していく方向性を採用している。まずTux3 inodeテーブルがバージョン管理された属性を含むBTreeになる。ファイルはバージョン管理されたエクステントとともにBTreeのinode属性になり、ディレクトリインデックスはHTreeとともにディレクトリファイルブロックへマッピングされることになる。フリースペースもエクステントとともにBTreeへのマッピングだ。このTux3のアプローチはZFSのアプローチとはだいぶ異なっている。特徴としてはZFSと比較してメタデータのサイズを削減できるといったことをあげられる。
新しいファイルシステムの開発としてはDragonFly BSDがHAMMERファイルシステムの開発を進めていたり、FreeBSDがZFSを移植するなどホットなトピックだ。Tux3の成果物が登場するのはまだ先の話になりそうだが、興味深い取り組みであるようにみえる。今後の開発に注目しておきたい。