昨日、NTT 武蔵野研究開発センタで開催されていた NTT R&D フォーラム 2007 を見学しました。いろいろと面白い展示がありましたが、ここに書くようなネタとしては NILFS に興味を惹かれました。

NILFS は NTT がオープンソース(GPLv2)で開発しているファイルシステムで、NILFS のサイトによると

NILFS は New Implementation of a Log-structured File System の略であり, Linux カーネル 2.6 向けに開発しているログ構造化ファイルシステムです.ログ構造化ファイルシステムには,メタデータを含むすべてのファイルシステムデータがログのような形式で記録され,上書きされることなく追記されます.このことにより, ディスクのシーク関連のオーバヘッドを軽減でき,書き込み性能が良いという特徴があります.

だそうです。こういうの大好き。

実際にデモを見せていただいたのですが、ファイルシステムに Subversion が組み込まれたようなもので、ファイルを更新するたびにスナップショットがとられていきます。個人のファイル管理に用いるなら、コミットやチェックアウトの作業が必要がない NILFS のほうが楽で良さそう。

デモでは Linux 上の NILFS ファイルシステムを Samba で共有し、Windows から使用していました。Windows 用に Flash で作られたスナップショット閲覧クライアントも開発されていて(残念ながらこちらは非公開)、時期 Mac OS X Leopard に搭載される Time Machine を先取りしたような感じで凄かったです。

NTT + GPL + ファイルシステムという、とても以外な組み合わせながら、機会があればぜひ使ってみたいと思いました。カーネルモジュールの形で配布されているので、久しぶりに vanilla カーネルと戯れてみようかな。