企業で処理するデータ量が爆発的に増加している。かつて企業内の大量データというと、データウエアハウス(DWH)やビジネスインテリジェンス(BI)で取り扱う定型データの集まりのことだった。しかし現在では、それらに加えてオフィスソフトの文書データやWebサーバーで配信するテキスト、画像、音声などの非定型データも大量に扱うようになった。
こうした背景から、「ビッグデータ」と呼ばれる、データの急激な増大傾向に対処する方策が求められている。しかも、限られた予算の中で実現でき、かつ効率よく運用できる仕組みでなければならないケースがほとんどである。
このようなニーズに応えられる、スケーラビリティを備えた分散ファイルシステムが注目されている。そこで、そうした分散ファイルシステムの一つであるGlusterFSについて、「拡張性」「可用性」「性能」の検証を行った。
ネットワーク上のストレージを集約
GlusterFSは、オープンソースのソフトウエアとして開発されている分散ファイルシステムである。開発元だった米Gluster社が2011年10月に米Red Hatに買収されたことに伴い、現在はRed Hatがスポンサーを務める「Glusterコミュニティー」によって開発が進められている。なお、Red HatはGlusterFSの商用版に当たる「Red Hat Storage Server」を提供している。
GlusterFSは分散ファイルシステムであるとは言っても、搭載されている機能はデータをファイルレベルで分散処理する仕組みだけである。ディスクのブロックレベルを管理してデータを読み書きする仕組み、すなわちローカルファイルシステムについては、各サーバーのOSが持つ機能をそのまま利用する。
GlusterFSはTCP/IP(もしくはInfiniBand)を介して、ネットワークにつながった一般のUNIX/Linux系サーバーのストレージを集約する。集約したストレージは、クライアント側からFUSE(Filesystem in Userspace)などを用いてマウントすることによって、利用可能になる。なお、FUSEとは、ファイルシステムを一般のアプリケーションが利用する「ユーザー空間」で動くソフトウエアとして実装する仕組みのことである。
分かったこと・考察
今回の検証を通じて、次のことが分かった。
GlusterFSは導入や設定が容易で、拡張性および可用性が高い。Linuxサーバーを多数組み合わせることで、大規模な分散ストレージを容易に構築できる。また、システムを停止することなく、容量を自在に拡張可能である。レプリケーション構成にした場合は、たとえ故障によって一部のサーバーが停止したとしても運用を継続できる。そして正常なサーバーを動かしたまま、故障したサーバーを入れ替えられる。
多数のクライアントから同じサーバーにアクセスが集中すると、そのサーバーのディスク入出力がボトルネックになって性能が劣化するようだ。複数のサーバーにアクセスが分散するケースでは、性能劣化が起こりにくくなる。
こうした特性から、既に大量のファイル群を持ち、今後もデータ量の増大が見込まれる企業において、多数のクライアントがさまざまなファイルにアクセスする場合に向いているといえる。