CASとかVentiとか

SSDで遊んだりとストレージ周りの技術にいまさら注目し始めているところだが、この分野で最近ホットな話題というとdeduplication(重複排除)、thin provisioning、SSDの導入といったあたりなんだろうか。この辺りは@w_katsuraさんの「次世代ストレージシステムを語る」とかが参考になる*1。で、来週はファイル・ストレージシステムに関する国際会議USENIX FASTが開催される。プログラムを見る限りかなり楽しげだ。Twitterでも参加されるという方がちらほら。

@w_katsuraさんが関わっているシステムはHYDRAstorというCAS(Content Addressable Storage)ベースのストレージシステムらしいのだが、FASTにはその上に高性能なファイルシステムを構築する論文が採録されていたりする。CASは90年代前半頃から研究開発が進められてきたが、前述のHYDRAstor他、EMC Centeraといった商品でも採用されている。そもそもCASというは、ブロック(チャンク)の内容のユニークなハッシュ値MD5*2SHA-1などが使われる)を識別子に利用して、データを保存するストレージである。ブロックの内容が識別子になるということは、同じ内容のブロックの重複が保持されないということなので、バックアップやスナップショットと相性がよい。ただし、ちょっと考えれば分かることだがシーケンシャルな読み書きも、ランダムアクセスになってしまい性能があまり出なそうな懸念がある*3。これも高性能SSDの登場によって状況が変わるかもしれないが。

Plan 9のVentiはまさに長期的なデータ保存を目的にしたCASで、Ventiに関する論文「Venti: a new approach to archival storage」は一回目のUSENIX FASTのBest paperだったりする。ちなみに以降のBest paperは次の通り*4。2007年の「Disk Failures in the Real World」は結構話題になったよね。「ハードディスクに関する4つの都市伝説」とか。去年のCA-NFSは面白そうなので、読んでみよう。

蛇足ながら、Wikipediaによるとgitもユーザ空間で実装されたCASファイルシステムと言うのだそうな。

(補足:2010-02-24)感覚的にSHA-1値がコンフリクトしたら何が起きるのかと心配になるけど、理論的にその確率は非常に低いので無視するのが定説らしい。詳しくは@w_katsuraさんに教えてもらった記事「Hash Collisions: The Real Odds」を参照のこと。

*1:memo: 30年間でHDDのseek timeは12.5倍速くなったけど、GBあたりのIOPSは1/25。SSDはIOPSあたりの値段はかなり有利で、さらに大容量化すると2012年ごろには高速HDD(15Krpm)の需要がなくなるのでは。Erasure codingとはなんぞ。

*2:MD5は安全じゃないのでCASには使われないようだ。

*3:NetAppなど商用製品では、連続してアクセスされるブロックを近くに配置したり、ディスクアクセスを減らす工夫を実装しているとのこと。

*4:2006年は開催されなかったのね。