オープンソースの分散化ファイルシステムで代表例というとMogileFSが挙げられると思う。HTTPでアクセスでき、簡単に信頼性の高い分散化ファイルシステムが構築できる。ただし、基本はPerlからの扱いになっており、Ruby向けのライブラリも存在するが全ての機能を活用できる訳ではない。

ピクチャ 21.png
クライアント側

もっと手軽に利用できる分散化ファイルシステムが必要だ。それがこれだ。

今回紹介するオープンソース・ソフトウェアはcagra、C++製の分散ストレージシステムだ。

cagraは日本製のソフトウェアで、memcachedのような手軽さで分散ストレージシステムを構築できる。memcachedとの大きな違いは複数ノードを利用できる点にある。各データに対して指定したノード数でのレプリケーションが可能になっているので信頼性を高めることができる。

ピクチャ 22.png
サーバ側

現時点ではオンメモリストレージのみだが、ファイルシステムやTokyo Cabinetを使ったバックエンドも利用できるようになる予定だ。これが実現すればまさに分散化ファイルシステムとして利用できる。各サーバはIPアドレスを指定して立ち上げれば後は自動でマルチキャストを使って自動で認識してくれるので設定らしい設定もせずに、手軽にスケールできてしまう。

DHT(Distributed Hash Tables)実装により、高速に目的のデータを探し出せるようになっているとのこと。これもまたcagraを使う上で便利な点だ。ファイルシステムはスケールがきくと非常に便利に扱えるようになるので、今後の更なる機能追加、性能向上に期待したいソフトウェアだ。

cagraについてはRubyIZUMIの開発者であるtakuma104氏からの情報提供でした。Thnx!

修正(C++→Ruby)失礼しました。

さらに修正↑。Ruby→C++。逆でした…。

2008-04-22 - nyaxtのPC作業ログ
http://d.hatena.ne.jp/nyaxt/20080422