クライアントから送られた要求を LoadMaster の背後にあるサーバーファームに分散するために使用される方法は、負荷分散アルゴリズムまたは負荷分散タイプと呼ばれます。LoadMaster は、単純なラウンドロビン方式から、サーバーファームから取得したステータス情報に対応する適応型負荷分散まで、豊富な手法をサポートしています。
LoadMaster サービスで使用するアルゴリズムは、ホストされているサービスまたはアプリケーションのタイプと、ホストしている LoadMaster の背後にあるサーバーのパフォーマンスと容量のプロファイルによって異なります。
LoadMaster の負荷分散方式の概要とガイダンスを以下に示します。
ラウンドロビン負荷分散は、最も単純で一般的に使用される負荷分散アルゴリズムです。クライアントからの要求は、単純なローテーションでアプリケーションサーバーに配布されます。例えば、3台のアプリケーションサーバーがある場合、最初のクライアント要求はリスト内の最初のサーバーに送信され、2番目のクライアント要求は2番目のサーバーに、3番目のクライアント要求は3番目のサーバーに送信され、4番目の要求は最初に戻ってリスト内の最初のサーバーに送信されます。
ラウンドロビン負荷分散は、それぞれが比較的同等の処理能力と使用可能なリソース (ネットワーク帯域幅やストレージなど) を持つサーバーファーム全体に分散している予測可能なクライアント要求ストリームに最も適しています。
重み付けラウンドロビン方式は、ラウンドロビン負荷分散アルゴリズムに、クライアントからの要求を各サーバーの相対的な容量に応じてサーバーファーム全体に分散する機能が追加されたものです。これは、多様なトラフィック処理能力を有するサーバーに、処理能力に応じてクライアント要求を分散させるのに最も適しています。管理者は、サーバーファーム内の各サーバーの相対的なトラフィック処理能力を示す基準に基づいて、各アプリケーションサーバーに重みを割り当てます。
例えば、最初のアプリケーションサーバーが第2、第3のアプリケーションサーバーの2倍強力である場合、最初のサーバーがより高い重みでプロビジョニングされ、第2と第3のサーバーは半分の重みになります。5つの連続したクライアント要求がある場合、最初の2つが最初のサーバーに送信され、3番目は第2のサーバー に、4番目は第3のサーバーに送信されます。5番目の要求は最初のサーバーに送られ、以下同様に続きます。
最少接続負荷分散は、クライアントからの要求が受信された時点でアクティブな接続数が最も少ないアプリケーションサーバーにクライアント要求が分散される、動的ロードバランシング・アルゴリズムです。アプリケーションサーバーの処理能力が類似している場合、接続時間が長いサーバーが過負荷になる可能性があります。このアルゴリズムでは、アクティブな接続負荷が考慮されます。この手法は、接続時間が異なる受信要求と、処理能力と使用可能なリソースの点で比較的類似したサーバーのセットに最も適しています。
重み付け最少接続負荷分散は、最少接続ロードバランシング・アルゴリズムに、多様なトラフィック処理能力を有するサーバーの特性を考慮したものです。管理者は、ファーム内の各サーバーの相対的な処理能力と使用可能なリソースに基づいて、各アプリケーションサーバーに重みを割り当てます。LoadMasterは、アクティブな接続と割り当てられたサーバーの重みに基づいて負荷分散の決定を行います (例えば、接続数が最も少ないサーバーが2つある場合は、重みが最も高いサーバーが選択されます)。
エージェントベースアダプティブ負荷分散は、バックエンドサーバーから取得したステータスインジケータに基づいて決定を下します。ステータスインジケータは、各サーバー上で実行されるカスタムプログラム ("エージェント") によって決定されます。LoadMaster は、このステータス情報について各サーバーを定期的に照会し、実際のサーバーの動的重みを適切に設定します。
このロードバランシング方式は基本的に、実サーバー上で詳細な「ヘルスチェック」を行うことになり、各サーバーからの詳細なヘルスチェック情報に応じた負荷分散の判断が必要な場合に適しています。
ソフトウェア定義ネットワーク (SDN) アダプティブは、レイヤ 2、3、4、7からの知識とSDN (ソフトウェア定義ネットワーク) コントローラーからの入力を組み合わせて、より最適化されたトラフィック分散の決定を行う負荷分散アルゴリズムです。サーバーの状態、サーバー上で実行されているアプリケーションの状態、サーバーを接続するネットワークインフラストラクチャの状況、ネットワークの混雑レベルに関する情報を負荷分散の割り当て決定時に使用します。この方法は、SDN コントローラーを含む展開に適しています。
固定重み付けは、チェーン内のサーバーの順序を管理者が選択した基準に基づいて事前に決定し設定しておきます。すべてのリクエストはチェーンの最初の最も重みが高いサーバーに送信されます。最初のサーバーがそれ以上リクエストを受け付けることができなくなると、チェーン内の次に重みの高いサーバーに、それ以上処理できなくなるまですべての新しいリクエストが送信されます。この方法は、1台のサーバーで予想されるすべての要求を処理でき、現在アクティブなサーバーに障害が発生した場合に1つ以上の「ホットスペア」サーバーが負荷を引き受けることができるワークロードに適しています。
アプリケーションサーバーの応答時間を使用してサーバーの重みを計算する重み付け応答時間ロードバランシング・アルゴリズムでは、最も速く応答するアプリケーションサーバーが、次のクライアント要求を受け取ります。このアルゴリズムは、アプリケーションの応答時間が最重要事項であるシナリオに適しています。
ソース IP ハッシュ負荷分散は、クライアントとサーバーの IP アドレスを取得して一意のハッシュキーを生成するアルゴリズムを使用します。このキーは、クライアントを特定のサーバーに割り当てるために使用されます。この負荷分散手法では、セッションが中断されてもキーを再生成できるので、クライアントを以前使用していた同じサーバーに再接続できます。この方法は、クライアントが後続する接続でも常に同じサーバーに戻ることが重要な場合に最適です。
URL ハッシュ負荷分散アルゴリズムは、ソース IP ハッシュと似ていますが、作成されるハッシュがクライアント要求にある URL に基づいている点が異なります。特定の URL に対するクライアント要求は、常に同じバックエンドサーバーに送信されます。