GlusterFS(グラスタエフエス)とは | 意味や読み方など丁寧でわかりやすい用語解説
GlusterFS(グラスタエフエス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
グルスタエフエス (グルスタエフエス)
英語表記
GlusterFS (グラスタエフエス)
用語解説
GlusterFSは、オープンソースのスケールアウト型分散ファイルシステムである。汎用的なPCサーバと内蔵ディスクなどの安価なハードウェアを複数台束ねることで、単一の大きな共有ストレージ空間を構築する目的で利用される。Red Hat社が開発を主導しており、エンタープライズ環境での利用実績も豊富である。その最大の特徴は、ストレージの性能や容量が不足した際に、サーバを追加するだけで容易に拡張できるスケールアウトアーキテクチャと、特定のサーバに障害が発生してもサービスを継続できる高い可用性を持つ点にある。また、システム全体の管理を行う専用のメタデータサーバを必要としないアーキテクチャを採用しており、単一障害点(SPOF)を排除し、シンプルな構成で信頼性の高いシステムを実現できる。
GlusterFSのアーキテクチャを理解する上で重要な要素は「ブリック」「ボリューム」「トランスレータ」の三つである。ブリックとは、ストレージを構成する基本単位であり、実体は各サーバ上にある単なるディレクトリである。GlusterFSは、これらの各サーバに分散配置されたブリックを束ねて、一つの大きな論理的なストレージ空間を作り出す。この論理的なストレージ空間が「ボリューム」と呼ばれる。利用者は、個々のサーバやブリックを意識することなく、この単一のボリュームに対してファイルの読み書きを行う。そして、これらの機能を実現しているのが「トランスレータ」と呼ばれるモジュール群である。GlusterFSは、機能ごとに独立したトランスレータを積み重ねるスタック型の構造を持つ。例えば、データを複製する機能、分散配置する機能、アクセス制御を行う機能などがそれぞれ独立したトランスレータとして実装されており、これらを組み合わせることで、利用者の要件に応じた柔軟なボリューム構成が可能となる。
GlusterFSが他の多くの分散ファイルシステムと一線を画す点は、前述の通り、ファイル名やディレクトリ構造、属性情報といったメタデータを管理するための専用サーバが存在しないことである。通常、メタデータサーバはシステム全体のファイル配置を把握する重要な役割を担うが、同時に性能のボトルネックや単一障害点になりやすいという課題を抱える。GlusterFSは、この問題を解決するためにElastic Hashing Algorithm(EHA)という独自のアルゴリズムを採用している。クライアントは、アクセスしたいファイルパスに基づいてハッシュ値を計算し、その結果からデータが格納されているブリックを直接特定することができる。これにより、クライアントはメタデータサーバを介さずに目的のデータにアクセスできるため、システム全体の可用性とスケーラビリティが向上する。
ユーザーは要件に応じて、複数のボリュームタイプからデータ配置方式を選択できる。代表的なものとして、分散ボリューム、レプリケートボリューム、分散レプリケートボリュームがある。分散ボリュームは、データを複数のブリックに分散して格納する方式で、ストレージ容量を拡張することに主眼を置いている。ただし、いずれかのブリックに障害が発生すると、そのブリック上のデータは失われるため、耐障害性はない。一方、レプリケートボリュームは、同じデータを複数のブリックに複製して保存する方式である。これにより、一つのブリックが故障しても他のブリックからデータを提供できるため、高い可用性を実現する。ただし、複製する分だけ物理的なストレージ容量が必要となり、容量効率は低下する。そして、実運用で最も広く利用されるのが、これら二つを組み合わせた分散レプリケートボリュームである。これは、まず複数のブリックでデータの複製セット(レプリカセット)を作り、そのレプリカセットを複数用意して分散配置する方式である。これにより、ストレージ容量のスケールアウトと高い耐障害性を両立させることが可能となる。
クライアントからGlusterFSボリュームへのアクセス方法も複数提供されている。最も一般的なのは、FUSE(Filesystem in Userspace)を利用したネイティブクライアントによるマウントである。これにより、クライアントOS上ではGlusterFSボリュームが通常のローカルディレクトリと同じように見え、特別な操作を意識することなく利用できる。また、GlusterFSはNFS(Network File System)やSMB/CIFS(Server Message Block)といった標準的なプロトコルもサポートしており、専用クライアントをインストールできない環境や、様々なOSが混在する環境からでも容易にアクセスできる。このような柔軟性から、仮想化基盤における仮想マシンのディスクイメージ格納領域、コンテナ環境での永続的ストレージ、大量のメディアファイルの配信基盤、ビッグデータ分析用のデータストアなど、多岐にわたる用途で活用されている。