web-dev-qa-db-ja.com

Glusterは正確には何をしますか?

私は過去2日間、glusterで遊んでいて、こことその質問システムで質問をしています。私はいくつかのことを本当に理解していません。私は人々が次のようなことを言っているのを見ます

サーバー間にレプリケートされたブリックをセットアップします(3つしか使用していないため、レプリケートされた方が安全です)。各サーバーは、他のすべてのサーバーのファイルを「ローカル」であると認識します-1つのサーバーに障害が発生しても、ファイルはレプリケートされます他のサーバー。

または

Glusterはボリューム(ブリック)間でファイルの同期を維持し、1つのサーバーがオフラインになっているために発生する不整合に対処する「自己修復」機能を備えています。

私はmountサーバーからクライアントへのリモートボリュームなので、glusterはサーバーノードの障害をどのように処理しますか?ボリュームがマウントされたクライアントのフォルダーを試したことから、umountを使用してブロックを解除する必要があります。その後、サーバーからのコンテンツはありません。

これは基本的に、私が説明で取り上げていないものです:サーバーノードに障害が発生した場合、およびunisonまたはrsyncのようにコンテンツを実際に複製できるかどうか

12
cbaltatescu

私たちは最近、独自の用途のためにGlusterFSの調査を開始したので、この質問は私にとって興味深いものでした。 GlusterはFuseクライアントで「トランスレーター」と呼ばれるものを使用して、データの保存方法を処理します。ここで概説されているいくつかのタイプのトランスレータがあります。

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.

具体的に質問しているものは、自動ファイルレプリケーショントランスレーターまたはAFRと呼ばれ、ここで詳しく説明します。

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

ソースコードを見ると、データは実際には同時にノードに書き込まれているように見えます。rsyncよりもはるかに優れています。

障害状況からの回復に関して、私が見つけた興味深いメモが1つあります。 GlusterシステムはCephとは異なり、レプリケーションの状態変化を積極的に認識せず、「トリガー」する必要があります。したがって、クラスター内のノードを失った場合、Glusterが確実に複製されるように、各ファイルを検索する必要があります。

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

クライアントが何かが壊れていることを検出する方法など、内部で障害シナリオのメカニズムを説明する適切なページを見つけることができませんでした。ただし、ソースコードをダウンロードしてクライアントを見ると、コマンドや、クラスター内の他のシステムに対して頻繁に実行するプローブに使用されるさまざまなタイムアウトがあるようです。これらのほとんどにはTODOマークが付いているようで、ソースコードの変更を除いて現在は構成できません。収束時間が重要な場合は問題になる可能性があります。

8
polynomial

複製するノードが2つだけの場合、glusterは自動rsyncスクリプトと大差ありません。ストレージノードが4つ以上ある場合にのみ、物事は本当に興味深いものになります。クライアントマシンにはスペースのプールが表示されますが、構成ファイルはすべてのストレージノード(ブリック)に分散しています。つまり、4台のサーバーに10TBのローカルスペースがある場合、クライアントマシンは20TBの単一のネームスペース(複製された、または40TBの保護されていないストレージ)を見ることができます。

IOですが、IOは、ボリュームデータの完全なセットをまだ保持しているオンラインのサーバーがある限り、正常に続行します。

3
techieb0y

予期しない動作について説明している-私はirc.freenode.netまたは[email protected]または http://community.gluster.org/ の#glusterに相談します

-John Mark Gluster Community Guy

1
John Mark

クライアント側のサーバーに障害が発生すると(つまり、クライアントがファイルシステムのマウントにIP/DNSを使用したサーバー)、ボリューム全体がそのクライアントに対してオフラインになります。つまり、ボリュームの読み取り/書き込みができなくなります。

ただし、クライアントが他のサーバーのIP/DNSを使用してマウントした場合、そのクライアントのボリュームはオンラインのままです。ただし、読み取り/書き込みは、失敗/クラッシュしたインスタンスには送信されません。

0