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は面白そうなので、読んでみよう。
- Using MEMS-Based Storage in Disk Arrays (2003)
- Row-Diagonal Parity for Double Disk Failure Correction (2004)
- On multidimensional data and modern disks (2005)
- Disk Failures in the Real World: What Does an MTTF of 1,000,000 Hours Mean to You? (2007)
- TFS: A Transparent File System for Contributory Storage (2007)
- Portably Solving File TOCTTOU Races with Hardness Amplification (2008)
- CA-NFS: A Congestion-Aware Network File System (2009)
- Generating Realistic Impressions for File-System Benchmarking (2009)
蛇足ながら、Wikipediaによるとgitもユーザ空間で実装されたCASファイルシステムと言うのだそうな。
(補足:2010-02-24)感覚的にSHA-1値がコンフリクトしたら何が起きるのかと心配になるけど、理論的にその確率は非常に低いので無視するのが定説らしい。詳しくは@w_katsuraさんに教えてもらった記事「Hash Collisions: The Real Odds」を参照のこと。