成長中の Web サイトに推奨される GlusterFS 構成は何ですか?

成長中の Web サイトに推奨される GlusterFS 構成は何ですか?

私のウェブサイトは、1 日平均 5,000 万ヒットを目指しており、今後 3 か月以内に 1 日あたり 1 億ヒットを超える予定です。GlusterFS v 3.0.0 (2010 年 1 月 17 日時点の最新パッチ付き) を使用しようとしています。

現在、私たちは、Web ページのトラフィックを処理するために、6 つの Xen-Server 5.5u1 VM (各ホストに 2 つ) を備えた 3 つの物理ホストを持つロード バランサ環境にアップグレードしました。各マシンには、6 つの Raid-6 ローカル ストレージ ドライブ (7200RPM-SATA) があります。以前のマシンには、ミラー化された SAS 10k ドライブが 1 つありました。

また、現在、各ホストに 1 つずつ、合計 3 つのブリックで GlusterFS をセットアップし、6 つの VM をクライアントとして処理しています。テストでは、すべて問題ないように見えました。しかし、実稼働に移行したときに、1500 万ヒットを超えるトラフィックを処理するのに十分な I/O が利用できないようでした。数週間前、古いサーバーは最大でも 2000 万のトラフィックしか処理できませんでした。

このようなアプリケーションに推奨される構成はありますか? または、私たちの規模のサイトの場合、gluster.org のドキュメントには明記されていない注意事項はありますか?

答え1

書き込みキャッシュのない6x7.2krpmドライブのRAID-6は、ひどい書き込みパフォーマンスが非常に悪く、ディスクのパフォーマンスが低下して、アプリの混合率が良好であれば、読み取りパフォーマンスにも大きな影響が出る可能性があります。つまり、現実的には、そのアレイの読み取り/書き込みが 80/20 に分割され、ランダム IOPS が 250 程度になるということです。1 秒あたり数百の HTTP リクエストを実行している場合、Apache アクセス ログのような些細なことでも、DoS 攻撃のようにパフォーマンスが低下します。

可能であれば、これらを RAID 10 としてやり直してください。これにより、生のスペースがいくらか消費されますが、I/O パフォーマンスに大きな影響があります。また、RAID カードにバッテリ バックアップの書き込みキャッシュを搭載できる場合は、大きな違いが生まれます。

私は glusterfs に詳しくありませんが、すべての分散ファイルシステムには、ネットワーク遅延 + 複雑なロック = パフォーマンスの低下という同じ基本的な問題があり、特に小さなファイルや大量の書き込みワークロードではその傾向が顕著です。

ディスク I/O とファイルシステムが遅いため、このクラスタ設計はワークロードにはまったく適していません。サーバーまたは少なくともディスク サブシステムを返却するには遅すぎますか? これが高収益の会社の主要プラットフォームである場合は、専門家に依頼する必要があります。

答え2

GlusterFS トラフィックをどの媒体で移動していますか? イーサネットの場合、TCP/IP のオーバーヘッドにより構成が厳しく制限されます。GlusterFS は、その点ではあまり効率的ではありません。GlusterFS が真価を発揮するのは、RDMA 経由の場合です。これは、Infiniband または 10GigE のいずれかで実現できます。

また、すべての仮想ホストが同じ機能を果たすのに、各物理ホストに 2 つの仮想ホストを配置することにした理由も少しわかりません。ベアメタルで実行してオーバーヘッドを回避しないのはなぜでしょうか?

答え3

どのバージョンの GlusterFs を使用していますか? GlusterFS 3.0.0 はメジャー リリースであり、小さなファイルのパフォーマンスの向上など、多くの改善が加えられています。

GlusterFS には、さまざまなワークロードに合わせて調整できるパフォーマンス トランスレータが多数あります。たとえば、読み取りパフォーマンスを向上させるには先読みトランスレータを使用し、書き込みパフォーマンスを向上させるには後書きトランスレータを使用します。io-cache は、キャッシュに使用できる別のパフォーマンス トランスレータです。

どのようなタイプのセットアップですか? レプリケーション、分散、またはその両方を使用していますか? ネットワーク バックエンドは何ですか? ボトルネックを解消するために、古いサーバーと新しいサーバー間のネットワーク/ディスク IO のベンチマークを実施しましたか?

ボリューム ファイルを当社と共有していただければ、ワークロードのパフォーマンスが最適になるように構成ファイルを調整するお手伝いをいたします。

ご参考までに、当社では30日間の無料トライアルサポートサブスクリプション[1]を提供しており、お客様の質問に迅速かつ詳細に回答することができます。

乾杯、サチ

[1]http://www.gluster.com/products/trial.php

答え4

設定に関する詳しい情報はありませんが (たとえば、Web サイトは静的ですか、動的ですか? データベース トランザクションは同じストレージ サブシステムを使用するサーバーで実行されますか?)、RAID 6 は書き込みパフォーマンスの面で一般的には不適切な選択であり、Gluster によってさらに複雑化する場合はなおさらです。書き込みストライプ変換のセットが 2 つ (Gluster レベルとコントローラー レベル) 実行される可能性があります。次に、2 つのパリティ計算が実行され、書き込みキャッシュが大きく、I/O アクティビティが低い期間がない限り、処理速度が低下し、I/O ブロックが発生します。

RAID 10 に切り替えて、これをファイバー チャネルまたは複数の結合された GigE リンクでバックアップすることをお勧めします。

関連情報