GlusterFS
GlusterFSは、スケーラブルなストレージのための汎用分散ファイルシステムの1つ。InfiniBandのRDMAやTCP/IPなどのインターコネクトを使用して複数のホストに分散した各種ストレージを集約し、大規模並列ネットワークファイルシステムを構築できる。GlusterFSはユーザー空間で構築されており、性能を低下させることがない。クラウドコンピューティング、生物医学、超大容量ストレージなど様々な応用がなされている。GlusterFSは、当初Gluster, Inc.によって開発された。2011年のレッドハットによるGluster買収の後はレッドハットにより開発されている。
開発元 | レッドハット |
---|---|
最新版 |
10.0
/ 2021年11月16日[1] |
リポジトリ | |
対応OS | Linux, macOS, FreeBSD, OpenSolaris |
種別 | 分散ファイルシステム |
ライセンス | GNU General Public License v3 |
公式サイト |
www |
デザイン
編集GlusterFSにはクライアント側コンポーネントとサーバ側コンポーネントがある。サーバは「ストレージブリック (storage brick)」と呼ばれ、その上で glusterfsd デーモンが動作し、ローカルファイルシステムを「ボリューム」としてエクスポートする。そしてクライアント側の glusterfs プロセスがTCP/IP(あるいはInfiniBandやSDP)上の独自プロトコルでサーバと接続し、リモートのボリューム群をtranslatorsを使ってより大きな1つのボリュームにまとめる。そしてまとめたボリュームをクライアント側でFUSE機構を使ってマウントする。大量のファイルI/Oを行うようなアプリケーションは、libglusterfs というクライアントライブラリを使ってサーバ群に直接アクセスし、その中でtranslatorsを実行でき、ファイルシステムやFUSEのオーバーヘッドを除去できる。
GlusterFSの機能の大部分はtranslatorsで実装されており、以下のような機能が含まれる。
GlusterFSサーバは可能な限り単純にしている。既存のファイルシステムをそのままエクスポートし、その構造解釈はクライアント側のtranslatorsに任せている。クライアント自体はステートレス(状態を持たない)であり、クライアント同士で通信しない。そのため、それぞれのtranslatorsのコンフィギュレーションの一貫性を保っておく必要がある。さもないとコヒーレンシ問題が発生するが、このような構成であるために一般的な分散ファイルシステムで発生しやすいボトルネックが解消されており、一般的なハードウェアだけでペタバイト以上のスケールのストレージを扱える。
より詳細は解説は Getting started with GlusterFS Architecture にある。
出典
編集- ^ “Release notes for Gluster 10.0”. 2021年12月6日閲覧。