2011/03/28

分散ファイルシステム

データベースを動作させる上で、安くて、速くて、信頼できる足回りはないものか?



安い : 基本的にはタダで、できないか? 当然ですが、基本的なハードウェア費用はタダじゃない前提です。
速い : シーケンシャルリードで5GB/sくらい。欲しいです。
信頼性 : 特別なハードウェアなしで、RAID6相当の信頼性が欲しいです。
拡張性 : ディスク追加だと、スケールアップしかないので、ノード追加といったスケールアウト可能なもの。


相当、無理な要求のようですが、最近の分散ファイルシステムを使えば、かなり良い線が行くのではないか?と検討中です。きっと、分散ファイルシステムでなくてもやり方や考え方を変えれば、近いものも可能かと思いますが。。。

ただ、ファイルシステムレベルで、上記が要件が満たせるようであれば、データベースはもちろん、様々な用途に使える(いや、使いやすい)んじゃないかと思うわけです。

最近、個人的によく目にする分散ファイルシステムとしてGluster File Systemがあります。

カーネルをいじらず、お手軽に分散ファイルシステムを構築可能なのですが、カーネルをいじらないのでFUSEベースなので、パフォーマンスに難がありそうです。

ただし、他の分散ファイルシステムと、Glusterを比較したパフォーマンス結果も見当たりませんので、今後の検証ネタとしたいと思っています。

FUSEベースではなく、カーネルにパッチを当てたり、一部カーネルに取り込まれたりするものも存在します。

カーネルに取り込まれた(2.6.34にて)Cephがありますが、まだまだ不安定との情報もあります(これはあくまでも現時点で。という意味です)

また、カーネルパッチとして提供されているものとして、Lustre File Systemがあります。

Lustreとして面白いものとして、ZFSonLinuxに紹介されています。

Lustre自体Cephに比べ、かなり実績があるように思われます。が、あまり安いと呼べるアーキテクチャではないようです。

それは、上記の要件の信頼性がLustre自体では実装されていないからです。(要はストライプのみ実装されている)ですので、Lustreは信頼性担保のためにH/W or S/WでのRAIDを推奨しています。なので、エンタープライズでの使用を前提とすると、速度は良いのだけれど、信頼性担保のために高コストとなる。ようです。

そこで、ZFSonLinuxに紹介されている方式(きっと、まだ、実装中なのでしょうね)は、よりストレージに近い部分をLustreにまかせ、その上にZFSでRAIDを組むような構成になっています。

ZFSonLinuxの方式は、ちょっと魅力的なのですが、現状、正式にリリースされていないものですから、一旦、GlusterとLustreおよびCephに注目して検証してみたいと思います。

1 コメント:

Masaya Ishikawa さんのコメント...

Lustre Filesystemは Infinibandの世界ではかなり実績があるらしい。東工大のスパコン TSUBAMEでも使われてて 40GB/secを出しているとのこと。http://ja.wikipedia.org/wiki/TSUBAME

コメントを投稿