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


12

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

サーバー間でレプリケートされたブリックを設定します(3のみを使用しているため、レプリケートされた方が安全です)。各サーバーは、他のすべてのサーバーのファイルを「ローカル」として認識します他のサーバー。

または

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

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

これは、基本的には説明に含まれていないものです。サーバーノードに障害が発生した場合、一体型またはrsyncのようにコンテンツを実際に複製できるかどうかはどうなりますか。

回答:


8

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

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

具体的に質問しているのは、自動ファイル複製トランスレータ(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マークがあり、ソースコードの変更を除いて現在構成可能ではないようです。ソースコードの変更は、収束時間が重要な場合に懸念事項となる可能性があります。


私は自分でAFRについて知っていましたが、それを使用するとき、サーバー上でしかクライアントに書き込むことができませんでした。これはその背後にあるロジックの結果なのでしょうか、それとも私が検討する必要があるのでしょうか?
-cbaltatescu

2
これはおそらく構成上の問題です(設計上の問題ではありません)。
多項式

3

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

ストレージブリックが利用できなくなった後、クライアントマシンがIOを試行すると、一時的な中断(おそらく30秒程度)が発生しました。ただし、一時的な中断の後、ボリュームデータの完全なセットを保持しているサーバーがオンラインである限り、IOは通常どおり続行されます。


slideshare.net/Gluster/…GlusterのCTOによる仕組みについてのプレゼンテーション。
多項式

1
問題は、rsyncが行うことを行っていないことです。Rsyncは、他のマシン上のデータのコピーを提供します。Gluster、マスター(2ノードサーバーとクライアントのセットアップで)が失敗すると、何も残らないか、私が理解できなかったため、質問です。
-cbaltatescu

2
ノードが2つだけで、ノードの1つがクライアント(ローカルにデータを保存しない)である場合、データを含む「マスター」が失われると、クライアントで使用不可になりIOがブロックされます。レプリケーション用に構成されたボリュームを持つ少なくとも2つのサーバーとクライアントが必要です。
-techieb0y


0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.