Citrix ADC

ハッシュ方式

特定の接続情報またはヘッダー情報のハッシュに基づく負荷分散方法は,Citrix ADCアプライアンスの負荷分散方式のほとんどを構成します。ハッシュは,基づいている情報よりも短く使いやすく,2つの異なる情報が同じハッシュを生成しないため,互いに混乱しないように十分な情報を保持しています。

ハッシュ負荷分散方法は,キャッシュがインターネットまたは指定したオリジンサーバーからの幅広いコンテンツを提供する環境で使用できます。リクエストをキャッシュすると,リクエストとレスポンスのレイテンシーが削減され,リソース(CPU)の使用率が向上し,頻繁に使用されるWebサイトやアプリケーションサーバーでキャッシュが普及します。これらのサesc escトは負荷分散の恩恵を受けるため,ハッシュ負荷分散方式は広く有用です。

Citrix ADCアプラaapl . exeアンスには,次のハッシュ方式が用意されています。

  • urlハッシュ方式
  • ハッシュ関数
  • 宛先IP地址ハッシュ方式
  • 送信元IP地址ハッシュ方式
  • 送信元IP宛先IPハッシュ方式
  • 送信元IP送信元ポ,トのハッシュ方式
  • コルidハッシュ方式
  • ト,クン方式

ほとんどのハッシュアルゴリズムは,次の2のハッシュ値を計算します。

  • サビスのIPアドレスとポトのハッシュ。
  • 着信URL,ドメイン名,送信元IPアドレス,宛先IPアドレス,または送信元と宛先IPアドレスのハッシュ。設定されたハッシュ方式によって異なります。

次に,Citrix ADCアプライアンスは,これらのハッシュ値の両方を使用して新しいハッシュ値を生成します。最後に,ハッシュ値が最も高いサ,ビスにリクエストを転送します。アプライアンスは各リクエストのハッシュ値を計算し,要求を処理するサービスを選択すると,キャッシュが生成されます。同じハッシュ値を持後続の要求は,同じサビスに送信されます。次のフロ,チャ,トは,このプロセスを示しています。

Citrix ADCリリース13.0ビルド79. xから,プライム再シャッフルアシスト鲤鱼(进行)とジャンプテーブルアシストリングハッシュ(JAR)の一貫性のあるハッシュアルゴリズムがサポートされています。一貫性のあるハッシュアルゴリズムにより、ロードバランシングセットアップにサービスが追加または削除されたとき、またはロードバランシングセットアップでサービスフラップイベント中にサービスが中断される最小限に抑えられます。詳細については、「一貫性のあるハッシュアルゴリズムを参照してください。

図1:ハッシュメソッドによるリクエストの配布

ハッシュメソッドがリクエストを分散する方法

ハッシュ方法は,IPv4アドレスとIPv6アドレスに適用できます。

3つのサービス(Service-HTTP-1、Service-HTTP-2およびService-HTTP-3)が仮想サーバーにバインドされ,任意のハッシュ方式が構成され,ハッシュ値がHash1であるシナリオを考えてみましょう。設定されたサ,ビスがUPになると,要求はService-HTTP-1に送信されます。Service-HTTP-1がダウンしている場合,Citrix ADCアプライアンスはサービス数の最後のログのハッシュ値を計算します。アプラeconeconpアンスは,Service-HTTP-2など,ハッシュ値が最も大きいサeconeconpビスを選択します。次の図は,このプロセスを示しています。

図2:ハッシュメソッドのエンティティモデル

ハッシュモデル

Citrix ADCアプライアンスがハッシュ方式を使用してサービスを選択できない場合,デフォルトでは,着信要求のサービスを選択するための最小接続方法が使用されます。負荷分散設定のパフォーマンスに影響を与えずにキャッシュを再入力できるように,トラフィックが少ない時間帯にサービスを削除してサーバープールを調整します。

一貫性のあるハッシュアルゴリズム

一貫性のあるハッシュアルゴリズムは,ステ,トレスな永続性を実現するために使用されます。ハッシュベースの磅メソッドは,次の3つの一貫性のあるハッシュアルゴリズムのいずれかを使用します。

  • キャッシュアレ▪ル▪ティングプロトコル(cap)

    鲤鱼アルゴリズムは,複数のプロキシキャッシュサーバ間のHTTP要求のロードバランシングに使用されます。このアルゴリズムはデフォルトで有効になっています。

  • プラ▪ム再シャッフルアシストカ▪プ(prac)

    Citrix ADCアプライアンスは,独自の进行アルゴリズムを使用して,均一なトラフィック分散を提供します。

  • ジャンプテ,ブルアシストリングハッシュ(jarh)

    Citrix ADCアプライアンスは,独自のJARHアルゴリズムを使用して,トラフィックの一貫性と均一な分散を提供します。このアルゴリズムはハッシュフィンガ,を使用します。指の数が多いほど,トラフィックの分布が向上します。ただし,指の数を増やすと,メモリ使用量も増加します。

Cliを使用して一貫性のあるハッシュアルゴリズムを選択するには

set lb parameter [-lbHashAlgorithm [DEFAULT|JARH|PRAC] [-lbHashFingers ] 

例:

设置lb参数-lbHashAlgorithm JARH -lbHashFingers 10 

引数:

  • lbHashAlgorithm—次のハッシュベスのロドバランシング方法に使用するハッシュアルゴリズムを指定します。

    • urlハッシュ方式
    • ハッシュ関数
    • 宛先IP地址ハッシュ方式
    • 送信元IP地址ハッシュ方式
    • 送信元IP宛先IPハッシュ方式
    • 送信元IP送信元ポ,トのハッシュ方式
    • コルidハッシュ方式
    • ト,クン方式

    指定可能な値:default, prac, jarhデフォルト値:default

  • lbHashFingers-ハッシュベ,スのLbメソッドのpracおよびjarhアルゴリズムで使用する指の数を指定します。指の数を増やすと,余分なメモリを犠牲にしてトラフィックの分散が向上します。

    デフォルト値:256最小値:1最大値:1024

GUIを使用して一貫性のあるハッシュアルゴリズムを選択するには

  1. [トラフィック管理]>[負荷分散]>[負荷分散パラメ,タの変更]に移動します。
  2. 負荷分散パラメ,タの構成]ペ@ンで,要件に基づいて次のフィ@ルドに適切な値を入力します。

    • Lbハッシュフィンガ
    • LB哈希算法]フィ,ルドで,ドロップダウンメニュ,から一貫性のあるハッシュアルゴリズムを選択します。

    Lbハッシュアルゴリズム

urlハッシュメソッド

サービスの負荷分散にURLハッシュ方式を使用するようにCitrix ADCアプライアンスを構成すると,アプライアンスは受信要求に存在するHTTP URLのハッシュ値を生成します。ハッシュ値によって選択されたサービスが下来の場合,アルゴリズムには,アクティブなサービスのリストから別のサービスを選択する方法があります。アプライアンスはURLのハッシュ値をキャッシュし,同じURLを使用する後続のリクエストを受信すると,同じサービスに転送します。アプライアンスが着信要求を解析できない場合,URLハッシュ方式ではなく,ロードバランシングにラウンドロビン方式を使用します。

ハッシュ値を生成するために,アプラaapl . exeアンスは特定のアルゴリズムを使用し,urlの一部を考慮します。デフォルトでは,アプラaapl . exeアンスはurlの最初の80バaapl . exeトを考慮します。Urlが80バUrlト未満の場合は,完全なUrlが使用されます。別の長さを指定できます。ハッシュの長さは1バ▪▪トから4096バ▪▪トまでです。一般に,数文字しか異なる長いURLを使用する場合は,より均一な負荷分散を確保するために,ハッシュ長をできるだけ長くすることをお勧めします。

Service-HTTP-1、Service-HTTP-2 Service-HTTP-3という3つのサービスが仮想サーバーにバインドされ,仮想サーバーで構成される負荷分散方式がURLハッシュ方式であるシナリオを考えてみます。仮想サ,バ,が要求を受信し,urlのハッシュ値はu1です。アプラ@ @アンスはサ@ @ビスhttp-1を選択します。Service-HTTP-1が下来の場合,アプライアンスはService-HTTP-2を選択します。

次の図は,このプロセスを示しています。

図3:urlハッシュの動作

网址ハッシュ

Service-HTTP-1とService-HTTP-2の両方がダウンしている場合,アプライアンスはハッシュ値U1の要求をサービスHTTP-3に送信します。

Service-HTTP-1およびService-HTTP-2がダウンしている場合,ハッシュURL1を生成する要求はService-HTTP-3に送信されます。これらのサビスがupの場合,ハッシュurl1を生成する要求は次の方法で配布されます。

  • Service-HTTP-2が起動している場合,要求はService-HTTP-2に送信されます。
  • Service-HTTP-1が起動している場合,要求はService-HTTP-1に送信されます。
  • Service-HTTP-1とService-HTTP-2が同時にアップしている場合,要求はService-HTTP-1に送信されます。

网址ハッシュ方式を設定するには,ポリシ,を含まないロ,ドバランシング方式の設定を参照してください。[URL Hash] としてロードバランシング方式を選択し、ハッシュ長をハッシュ値の生成に使用するバイト数に設定します。

ドメ@ @ンハッシュメソッド

ドメインハッシュ方式を使用するように設定されたロードバランシング仮想サーバは,HTTP要求内のドメイン名のハッシュ値を使用してサービスを選択します。ドメ主机ヘッダ,HTTP要求の着信URLまたは主机ヘッダ,のいずれかから取得されます。ドメイン名がURLと主机ヘッダーの両方に表示される場合,アプライアンスはそのURLを優先します。

ドメイン名のハッシュを構成し,着信HTTPリクエストにドメイン名が含まれていない場合,Citrix ADCアプライアンスはデフォルトでそのリクエストのラウンドロビン方式になります。

ハッシュ値の計算では,名前の長さまたはハッシュ長の値のいずれか小さい方が使用されます。デフォルトでは,Citrix ADCアプライアンスはドメイン名の最初の80バイトからハッシュ値を計算します。ハッシュ値を計算するときにドメイン名に異なるバイト数を指定するには,hashLengthパラメータ(設定ユーティリティの散列长度)を1 ~ 4096(バイト)の値に設定します。

ドメ电子邮箱ンハッシュ方式を設定するには,ポリシ,を含まない負荷分散方式の構成を参照してください

宛先IP地址ハッシュ方式

宛先IPハッシュ方式を使用するように設定されたロードバランシング仮想サーバは,宛先IPアドレスのハッシュ値を使用してサーバを選択します。宛先IPアドレスをマスクして,ハッシュ値の計算で使用する部分を指定できます。これにより,異なるネットワークからの要求が同じサブネット宛ての要求はすべて同じサーバーに送信されます。この方法は,IPv4およびIPv6ベスの宛先サバをサポトします。

このロドバランシング方法は,キャッシュリダレクト機能での使用に適しています。

IPv4宛先サーバの宛先IPハッシュ方式を設定するには,子网掩码パラメータを設定します。この方法をIPv6宛先サーバー用に構成するには,v6NetMaskLenパラメーターを使用します。構成ユ,ティリティで,[宛先IP地址ハッシュ方式]を選択すると,これらのパラメ,タを設定するためのテキストボックスが表示されます。

宛先IPハッシュ方式を設定するには,ポリシ,を含まないロ,ドバランシング方式の構成を参照してください

送信元IP地址ハッシュ方式

送信元IPハッシュ方式を使用するように構成された負荷分散仮想サーバーは,クライアントのIPv4アドレスまたはIPv6アドレスのハッシュ値を使用してサービスを選択します。特定のネットワークに属する送信元IPアドレスからのすべての要求を特定の宛先サーバーに転送するには,送信元IPアドレスをマスクする必要があります。IPv4アドレスの場合は,netMaskパラメ,タ,を使用します。IPv6アドレスの場合は,v6NetMaskLengthパラメ,タ,を使用します。

送信元IPハッシュ方式を設定するには,ポリシ,を含まないロ,ドバランシング方式の設定を参照してください

送信元IP宛先IPハッシュ方式

送信元IP宛先IPハッシュ方式を使用するように設定されたロードバランシング仮想サーバは,送信元と宛先IPアドレス(IPv4またはIPv6)のハッシュ値を使用してサービスを選択します。ハッシュは対称です。ハッシュ値は,送信元と宛先IPの順序に関係なく,同じです。これにより,特定のクラ。

特定のネットワークに属するすべての要求を特定の宛先サーバーに送信するには,送信元IPアドレスをマスクする必要があります。IPv4アドレスの場合は,netMaskパラメ,タ,を使用します。IPv6アドレスの場合は,v6NetMaskLengthパラメ,タ,を使用します。

送信元IP宛先IPハッシュ方式を設定するには,ポリシ,を含まないロ,ドバランシング方式の設定を参照してください

送信元IP送信元ポ,トのハッシュ方式

ソースIPソースポートハッシュ方式を使用するように構成された負荷分散仮想サーバーは,送信元IP (IPv4またはIPv6)のハッシュ値および送信元ポートのハッシュ値を使用してサービスを選択します。これにより,特定の接続上のすべてのパケットが同じサ,ビスに送信されます。

この方法は、接続ミラ、リングとファ、アウォ、ルの負荷分散で使用されます。接続ミラリングの詳細にいては,”接続のフェルオバを参照してください。

特定のネットワークに属するすべての要求を特定の宛先サーバーに送信するには,送信元IPアドレスをマスクする必要があります。IPv4アドレスの場合は,netMaskパラメ,タ,を使用します。IPv6アドレスの場合は,v6NetMaskLengthパラメ,タ,を使用します。

送信元IP送信元ポ,トのハッシュ方式を設定するには,ポリシ,を含まないロ,ドバランシング方式の設定を参照してください

コルidハッシュメソッド

コールIDハッシュ方式を使用するように設定されたロードバランシング仮想サーバは,SIPヘッダーのコールIDのハッシュ値を使用してサービスを選択します。したがって,特定のsipセッションのパケットは,常に同じプロキシサ,バに送信されます。

この方法は,sipロ,ドバランシングに適用できます。Sipロ,ドバランシングの詳細に,いては,”Sipサ,ビスのモニタリングを参照してください。

コルidハッシュメソッドを設定するには,ポリシ,を含まないロ,ドバランシングメソッドの設定を参照してください

ハッシュ方式