GlusterFSとWindowsでSPOFSを回避する


10

処理機能に使用するGlusterFSクラスターがあります。Windowsを統合したいのですが、GlusterFSボリュームを提供するSambaサーバーである単一障害点を回避する方法を理解するのに問題があります。

ファイルフローは次のように機能します。

GlusterFSドキュメントフロー

  1. ファイルはLinux処理ノードによって読み取られます。
  2. ファイルが処理されます。
  3. 結果(小さくすることもかなり大きくなることもあります)は、完了時にGlusterFSボリュームに書き戻されます。
    • 結果をデータベースに書き込むことも、さまざまなサイズのファイルをいくつか含めることもできます。
  4. 処理ノードは、キューおよびGOTO 1から別のジョブをピックアップします。

Glusterは分散ボリュームとインスタントレプリケーションを提供するので素晴らしいです。耐災害性がいいです!私たちはそれが好き。

ただし、WindowsにはネイティブのGlusterFSクライアントがないため、Windowsベースの処理ノードが同様に復元力のある方法でファイルストアと対話するための何らかの方法が必要です。GlusterFSドキュメント状態のWindowsへのアクセスを提供する方法がマウントされGlusterFSのボリュームの上にSambaサーバを設定することであること。これは、次のようなファイルフローになります。

Windersを介したGlusterFS doc-flow

それは私にとって単一障害点のように見えます。

1つのオプションはSambaクラスター化することですが、現在は不安定なコードに基づいているため、実行されていません。

だから私は別の方法を探しています。

使用するデータの種類に関するいくつかの重要な詳細:

  • 元のファイルサイズは、数KBから数十GBまでの範囲です。
  • 処理されるファイルサイズは、数KBから1〜2 GBです。
  • .zipや.tarなどのアーカイブファイルを掘り下げるなどの特定のプロセスでは、含まれているファイルがファイルストアにインポートされるときに、さらに多くの書き込みが発生する可能性があります。
  • ファイル数は数千万に達する可能性があります。

このワークロードは、「静的ワークユニットサイズ」のHadoopセットアップでは機能しません。同様に、S3スタイルのオブジェクトストアを評価しましたが、不足していることがわかりました。

私たちのアプリケーションはRubyでカスタム作成されており、WindowsノードにCygwin環境があります。これは私たちを助けるかもしれません。

私が検討している1つのオプションは、GlusterFSボリュームがマウントされているサーバーのクラスター上の単純なHTTPサービスです。Glusterで実行しているのは基本的にGET / PUT操作だけなので、HTTPベースのファイル転送メソッドに簡単に転送できるようです。それらをロードバランサーペアの背後に配置すると、WindowsノードはHTTPでそれらの小さな青いハートのコンテンツにPUTできます。

私が知らないのは、GlusterFSの一貫性どのように維持されるかです。HTTPプロキシレイヤーは、書き込みが完了したことを処理ノードが報告してから、実際にGlusterFSボリュームに表示されるまでの間に十分な待機時間を導入します。それを見つける。direct-io-mode=enablemount-option を使用すると効果があると確信していますが、それで十分かどうかはわかりません。一貫性を向上させるために他に何をすべきですか?

または、私は完全に別の方法を追求すべきですか?


トムが下で指摘したように、NFSは別のオプションです。だから私はテストを実行しました。上記のファイルには、保持する必要があるクライアント提供の名前があり、どの言語でも使用できるため、ファイル名を保持する必要があります。だから私はこれらのファイルでディレクトリを構築しました:

サーバー上の適切な名前のNFSディレクトリ

NFSクライアントがインストールされているServer 2008 R2システムからマウントすると、次のようなディレクトリリストが表示されます。

クライアント上の不正な名前のNFSディレクトリ

明らかに、Unicodeは保持されていません。したがって、NFSは私にとってうまくいきません。


Sambaチームはctdb安定していて本番環境での使用準備が整っていると考えており、リンクの最初の文で2番目の文が無効になる場合は、更新されていないためです。私はこれを確立することを計画していましたが、これに取り掛かる前に、仕事をほぼ窓なしの環境に切り替えました。
スヴェン

どのバージョンのウィンドウを使用していますか?
Tom O'Connor

@ TomO'Connorタグが示すように、Windows7。ただし、Server 2008 R2はいつかそこに登場します。
sysadmin1138

Cygwinは問題外だと思いますか?
トム・オコナー

回答:


5

GlusterFSが好きです。実際、私はGlusterFSが大好きです。専用の帯域幅を提供できる限り、問題はありません。

GlusterFSの最も優れた点の1つは、NFSで使用することです。私が最近取り組んできた驚くべきことの1つは、Windows 7および2k8R2でのNFSです

これが私がすることです。

  1. NFSをエクスポートできる2つのGlusterFSサーバーをセットアップします。
  2. それらの間にハートビートリンクを設定します。
  3. おそらくハートビート/ペースメーカーのようなものを配備しますか?
  4. Glusterノード間に仮想IP(VIP)をセットアップします。
  5. VIPのIPアドレスを使用して、Windows boxenのマップされたネットワークドライブを接続します。
  6. 想像できるすべてのものをテストしてください。

Sambaのクラスタリングは恐ろしいように聞こえますが、それを行ったとしても、Sambaは一部のWindowsネットワークで確実に動作する機能をまだ備えていません(NT4ドメインの互換性はすべて、それを超えることができないようです)。

私が考える各glusterノードが分散し、複製されたモードになっているので、あなたは理論的に接続することができなければならないことのいずれかと周りにあなたのデータの移動を心配することを可能にします。その結果、ハートビートはリダイレクトを実行し、話しているものを制御するものでなければなりません。

あなたの

  • ファイル数は数千万に達する可能性があります。

XFSを基礎となるファイルシステムとして使用することを検討することをお勧めします。これは、大きなファイルシステムでかなり良好であり、GlusterFSサポートされているためです。


私は現在XFSを使用しています!初期の取り込み機能を処理するためにしばらく前にNFS3を調べましたが、Unicodeサポートが不足しているために機能しないことが判明しました。これは、WindowsのNFSサーバーで発生しました。「会計2012.xls」は正しくレンダリングされません。これは非常に重要です。しかし...私は7 / R2についてそれを知りませんでした、そして調査する価値があります!
sysadmin1138

だから私はテストを実行しました。残念ながら、それは良い結果を返しませんでした(質問の更新を参照)。Unicodeの問題は双方向のようです。
sysadmin1138

バガー。それで私はアイデアがなくなった。SambaをVIPの後ろに置くことはできるのでしょうか。
トムO'Connor

ワークグループはい、ドメイン(私たちが使用しています)いいえ。したがって、私の問題。
sysadmin1138

一方、開発者と会話した後、ファイル名を維持することは、私が期待したほど重要ではありません。どうやら、最初の段階(取り込み)で取得できる限り、データベースは名前を追跡し続けます。したがって、NFSはここで有効なオプションです(適切なWindowsバージョンを取得したら)。
sysadmin1138

1

たぶん、HAソリューションで考えることができます...認証にLDAPを使用し(必要な数のLDAPサーバーを複製できます)、IPを配置してSMBサービスをリッスンします。

このIPはメインサーバーにフロートします。これがダウンすると、ハートビートは2番目のサーバーでサービスを開始できます。

このサーバーにはglusterfsへのマウントポイントがあり、すべてのデータがそこにあります。

それは可能な解決策であり、管理がとても簡単です...

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