Hadoop HDFS に代わるバックエンドとしても利用可能な分散ファイルシステム GlusterFS の紹介とメリット・デメリットについて考えてみます。
GlusterFS は Gluster,Inc が開発した分散ファイルシステムで Redhat が買収して現在に至ります。Redhat は「Red Hat Storage Server」という GlusterFS の商用版の位置づけの製品もリリースしており今後もクラウド事業の一貫として後押ししていくと予想されます。
なお、GlusterFS はこの商用版と区別する為、無償で利用できる方は GlusterFS Community と呼びます。
GlusterFS Community 公式ページ
Red Hat Storage Server
http://jp.redhat.com/products/storage-server/
ミラー・ストライプ等のボリュームオプションがたくさんある
GlusterFS では複数のディスクをつなげる時のオプションが多数選択可能です。GlusterFS 3.3.1 で用意されているオプションは例えば以下のものがあります。
- ディストリビューテッド:サーバにまたがってファイルを分散
- レプリケーテッド:全てのサーバでファイルをミラーリング
- ストライプド:1つのファイルを各サーバに分散して保存
- ディストリビューテッドストライプド:一部のサーバ内でファイルを分散
- ディストリビューテッドレプリケーテッド:一部のサーバ間でファイルをミラーリング
- ディストリビューテッドストライプドレプリケーテッド:RAID 1+0 の上にディストリビューテッド
- ストライプドレプリケーテッド:RAID 1+0 と同様
性能はさほどよくない
GlusterFS はメディア等の1つの大きなファイルを扱うのに適していてストライプド系の構成でボリュームを作ることで性能向上が見込めます。ただ、小さい大量のファイルを扱う場合かなり性能が遅くなります(NFS より遅くなる可能性もあります)。
NFS や CIFS(Windows)からもマウントできる
GlusterFS が共有するファイルシステムには GlusterFS のクライアントだけでなく [NFS] や [CIFS] からも接続可能です。CIFS は Samba で利用されているプロトコルで Windows エクスプローラから参照することができます。
Amazon S3 ライクな HTTP 経由のアクセスも可能
GlusterFS では Unified File and Object Storage(UFO)という機能があり、HTTP REST API を使って Amazon S3 に接続するような方法でファイルへのアクセス・修正・削除を行うことが可能です。
マスタレス構成な為、どのノードが落ちても大丈夫
GlusterFS ではマスタが存在しません。[HDFS]、[Lustre]、[Ceph] のような他の分散ファイルシステムでは例えば、ネームノードと呼ばれるサーバが存在しこのサーバが落ちた場合、サービス継続に影響してしまいます。
GlusterFS の場合はこのマスタに該当するサーバが存在せず、どのノードが落ちたとしても他にノードが生きている限り継続可能です。