今回はLinuxのトピックではないが、Linuxユーザにとっても関心の高い“重複排除(deduplication)”を利用できるファイルシステム「HAMMER」について紹介したい。
HAMMERはFreeBSDのフォークOSのひとつ「DragonFly BSD」に実装されているファイルシステムだ。1ファイルシステムあたりの最大サイズは1エクサバイトで、最大256ボリューム、1ファイルあたり最大4ペタバイトまで扱うことが可能だ。また、クラッシュしても即時回復が可能で、その際、fsckを必要としない点も大きな特徴となっている。ブロック単位の重複排除機能も備えており、限られたリソースでもバックアップ環境を構築しやすい。
このHAMMERはしばしば、Solarisなどでおなじみの「ZFS」と比較されることがある。とくに重複排除機能においてどちらがすぐれているかは議論になりやすいのだが、要求されるメモリサイズはHAMMERのほうが少ないといわれる。FreeBSDやLinuxへの移植を望む声も少なくない。
そのHAMMERだが、2011年に次世代バージョン「HAMMER2」の設計仕様が公開されたものの、まだバージョンアップには至っていない。しかし2015年に入ってからDragonFly BSD開発者のマシュー・ディロン(Matthew Dillon)氏による情報公開が頻繁に行われるようになり、新バージョンの概要が徐々に明らかになっている。そして8月30日(米国時間)、ディロン氏はHAMMER2における新しい機能強化を発表した。リアルタイムにデータの重複排除を行う"live dedup"だ。
- hammer2 - live dedup, cleanup
live dedupではデバイスレベルでのブロックエンコーディングのあと、さらにキャッシュ内のチェックを行う。キャッシュでのヒットがあれば書き込みデータの比較を行い、マッチしている場合はデータを再利用する。cpコマンドやcpdupコマンドでコピーされたファイルをキャッシュからバルクで処理することで重複排除の削減効果を高めることを狙ったものだ。ディロン氏によれば、live dedupによって872Mバイトのデータを含むディレクトリのコピーに必要なディスク容量を160Mバイトまでに抑えることができたという。
HAMMER2を実装したDragonFly BSDのリリースがいつになるかはまだ明らかではないが、Linuxユーザにとっても期待の次世代ファイルシステムとして覚えておきたい。