web-dev-qa-db-ja.com

レプリケーション用のDRBDとGlusterFS

Host gitリポジトリをホストするソリューションを構築する必要があります。数十万(またはそれ以上)のリポジトリをサポートする必要があります。

共有ストレージを備えた複数の「ダム」サーバーを使用する予定なので、基本的にクライアントがリポジトリにアクセスしようとすると、ロードバランサーによって利用可能なサーバーのいずれかにリダイレクトされます。リポジトリへの変更-すべてのノード間で複製されます。

私の最初の考えは、そのためにGlusterFSを使用することでしたが、小さなファイルではうまく処理されないことを読んだことがあります。 DRBDを使用して自分ですべてを複製することも考えていますが、これにはより多くの設定が必要であり、GlusterFSと比較するとより複雑に見えます。

2つのどちらがより良いパフォーマンスを提供しますか?基本的に私が解決しようとしている問題は、サーバーのいずれかがダウンしても、他のユーザーがデータを提供できるようにしたいということです。

7
Gilad Novik

これは古典的なスケールアウトのユースケースであり、IMO GlusterFSはその要件を満たすはずです。あなたはそれを試してみることができます-いくつかのVMを立ち上げ、リポジトリのストレージに使用するいくつかのブリックをセットアップし、ストレステストを実行するだけです。

とにかく、DRBDはここではオプションではありません-スケーリングしません。どちらかといえば、他のオブジェクトストレージプロジェクト(Swiftなど)を調べます。Glusterが十分に機能しない場合でも、非常にパフォーマンス指向ではありません。

5
dyasny

同様の設定をcyrusメールサーバーで行い、glusterがストレステスト中に負荷を処理できないことが判明しました。元々glusterを選択した理由は、それが単純だったためにdrbdに戻る必要があったからです。しかし、dyasnyが強調したように、drbd activs/active cfgはお勧めできません(痛みは言うまでもありません)。すべてのサーバーで共有ストレージを同時にマウントする必要がある場合、drbdはオプションではありません。あなたが見たいかもしれないもう一つは、ロックマネージャを備えたclvmdです。 lvm2はraidタイプlvをサポートし、そのためにmanコードを使用します。これは、適切なファイルシステム(必要に応じてクラスター対応のファイルシステム)と混合することもできます。ただし、PoCとしてのみ、実稼働環境で自分でテストしたことはありません。

4
alxgomz

Glusterで発生する問題は、主にノード間の遅延です。それを試してみて、それがあなたのワークロードを処理するかどうかを確認することをお勧めします。サーバーが十分に強力で、相互接続が高速である場合、かなり良いパフォーマンスが得られます。また、組み込みのNFSサーバーを試してみることもできます。これは、私の経験から言うと、小さいファイルを少し速く処理します。

しかし、もしあなたがソリューションを可能な限り速く必要とするなら、GlusterFSはおそらくあなたのためではありません。他のオプションは Git Clustering (ただし、まだテストしていません)のような商用製品です。または gitmirror のような無料のツールで独自のソリューションを構築することもできます。

3
Izzy

Gluster(私の経験ではYMMVのように多くの小さなファイルで使用できます)を検討している場合は、Cephも確認することをお勧めします http://ceph.com/

2
thanasisk

また、Glustet adを最も簡単に、最も速くセットアップ、構成することをお勧めします。また、非常によくスケールアウトします。問題は速度であり、私の2c iaは、簡単な構成と簡単なスケールアウトの間、および速度の向上を伴ういくつかの技術的な困難(いくつかの豪華なdrbd/ocfs2/Glancesブロックストレージ)の間で選択する必要があります。しかし、どれだけの速度が得られるでしょうか。 Yoiはいくつかのストレステストを行って選択する必要があります。

0
x86fantini