分散ストレージについて再び(6)
LustreでもAFSでもないと思って探した結果、見つけたのがGfarmだった。これはかなりすてきな分散ファイルシステムで、なぜこれがこんなに知られていないのかさっぱりわからない。どこかのメジャーな技術系ブロガーが記事一本書けばブレイクするんじゃないかと思う。ぼくのブログじゃ無理だ。
- メタデータサーバとストレージノードが分かれたアーキテクチャ
- メタデータサーバはPostgreSQLで動く
- メタデータキャッシュサーバを立てることができ、メタデータサーバの負荷が高まらないようにできる(!)
- レプリケーション可能。しかもファイル単位で設定できる(!!!)
- 巨大なファイルを複数ノードに分散させることも可能
- 分散処理コマンドが豊富。gfgrepなんてもうシビれる
- 並列分散処理のための基盤としても使うことができる
- などなど、すてきな機能が盛りだくさん
詳しくはGfarm Workshopのページに資料がいっぱいあるので、興味のある人はぜひ見てみてほしい。
Google File Systemについては論文程度のことしか知らないが、Gfarmは、現在無償で手に入る分散ストレージの中で、最もGoogleFSに近いんじゃないかと思う。いくつか難点を言えば、ファイルシステムにアクセスするためには、改変したlibc使うか、fuseによるマウントが必用になるため、ちょっとクセがある。あとは、実績という点では、KEKとNTTネオメイト以外の、広く知られた使用例を見つけることができなかった。また、userland上でファイルシステムを実装しているわけだが、パフォーマンスがどうなるのかは若干気になるところではある。KEKのリリースを見ると大丈夫そうだけど。
でも、そんなのは難点のうちに入らない(実績重視じゃなかったのかよ!)。今現在における、大規模ストレージがほしい場合の選択肢としては、悪くないと思う。