4.1. ブリックとトランスレータ – GlusterFS Community ではじめる分散ファイルシステム

.

4.1. ブリックとトランスレータ

ブリックとその集合

GlusterFS はブリックを集めて一つの(仮想的な)ボリュームとして見せることで分散ファイルシステムを構築しています。

ボリュームはクライアントからはただのファイルシステム(ディレクトリ)のように見えます。これは NFS を使ってマウントした時と同じ状態です。あるいは Windows エクスプローラからネットワーク上のコンピュータにアクセスした時とも同じです(GlusterFS は CIFS をサポートしている為、これも可能)。

ブリックはサーバが共有(NFS ではエクスポートと呼びます)する一つのディレクトリを指します。ボリュームにブリックを指定する時は Host:ディレクトリ のように指定しこの情報はそのまま GlusterFS に保存されます(gluster volume info で確認できます)。

ボリュームにはファイルが置かれますが、このファイルは GlusterFS の内部でデフォルトで 128Kbyte のファイルに分けられてそれぞれのブリックに保存されます。

ストライプドボリュームの場合、各ブリックには 128Kbyte 単位のスパースと呼ばれる 0(ヌル)のデータが保存され実際のファイルシステムの容量を使わないような工夫がされています。

トランスレータ

GlusterFS はマスタレスな分散ファイルシステムです。マスタが存在しない為、どのノードが落ちてもファイルにアクセスできなくなるということはありません(ボリュームオプションによっては一部ファイルへのアクセスは不可能になります)。

この構成を実現する為に GlusterFS ではクライアント側でも多くの機能が実装されています。これらの機能は動的に変更可能なモジュールとして実装されており、トランスレータと呼ばれます。

トランスレータはノード(サーバ)側でもクライアント側でも使われており、各トランスレータが実現する機能への設定変更も動的に変更可能です。

GlusterFS で設定を行う場合はこのトランスレータに対して行います。例えば次のコマンドのように performance.read-ahread(先読み機能)を Off に設定したとします。

# gluster volume set test-vol performance.read-ahead off
Set volume successful

この場合、read-ahead トランスレータの機能が Off になります。GlusterFS で機能追加が行われる時はこのトランスレータ単位の追加となることも多くこの機能が中心的な役割をしています。