ADC

仮想サーバー間のパーシステンスのためにハッシュアルゴリズムでカスタマイズする

NetScalerアプライアンスは、ハッシュベースのアルゴリズムを使用して仮想サーバー全体の永続性を維持します。デフォルトでは、ハッシュベースの負荷分散方式は、サービスの IP アドレスとポート番号のハッシュ値を使用します。同じサーバー上の異なるポートでサービスを利用できる場合、アルゴリズムは異なるハッシュ値を生成します。そのため、異なる負荷分散仮想サーバーが同じアプリケーションへのリクエストを異なるサービスに送信し、疑似永続性が損なわれる可能性があります。

ポート番号を使用してハッシュ値を生成する代わりに、サービスごとに一意のハッシュ識別子を指定できます。サービスの場合、すべての仮想サーバーで同じハッシュ識別子値を指定する必要があります。物理サーバーが複数のタイプのアプリケーションを提供する場合、各アプリケーションタイプには一意のハッシュ識別子が必要です。

サービスのハッシュ値を計算するアルゴリズムは、次のように機能します。

  • デフォルトでは、グローバル設定によりハッシュ計算でのポート番号の使用が指定されます。
  • サービスのハッシュ識別子を設定すると、グローバル設定に関係なく、そのハッシュ識別子が使用され、ポート番号は使用されません。
  • ハッシュ識別子を設定せずに、ポート番号の使用を指定しないようにグローバル設定のデフォルト値を変更した場合、ハッシュ値はサービスの IP アドレスのみに基づきます。
  • ハッシュ識別子を設定しない場合や、ポート番号を使用するようにグローバル設定のデフォルト値を変更した場合、ハッシュ値はサービスの IP アドレスとポート番号に基づきます。

CLI を使用してサービスをサービスグループにバインドするときに、ハッシュ識別子を指定することもできます。構成ユーティリティでは、サービスグループを開き、「メンバー」タブでハッシュ識別子を追加できます。

CLI を使用して use-port-number グローバル設定を変更するには

コマンドプロンプトで入力します。

lb パラメータを設定-HashLB のポートを使用 (はい) いいえ)

例:

> set lb parameter -usePortForHashLb NO
 Done
>show lb parameter
Global LB parameters:
        Persistence Cookie HttpOnly Flag: DISABLED
        Use port for hash LB: NO
 Done
<!--NeedCopy-->

GUI を使用して use-port-number のグローバル設定を変更するには

  1. [トラフィック管理] > [負荷分散] > [負荷分散パラメータの設定] に移動します。
  2. 「ハッシュベースの LB メソッドにポートを使用」を選択または選択解除します。

CLI を使用して新しいサービスを作成し、サービスのハッシュ識別子を指定するには

コマンドプロンプトで次のコマンドを入力してハッシュ ID を設定し、設定を確認します。

add service < name > (< ip > < serverName >) < serviceType > < port > -hashId < positive_integer >
show service <name>
<!--NeedCopy-->

例:

> add service flbkng 10.101.10.1 http 80 -hashId 12345
 Done
>show service flbkng
        flbkng (10.101.10.1:80) - HTTP
        State: DOWN
        Last state change was at Thu Nov  4 10:14:52 2010
        Time since last state change: 0 days, 00:00:15.990
        Server Name: 10.101.10.1
        Server ID : 0   Monitor Threshold : 0

        Down state flush: ENABLED
        Hash Id: 12345

1)      Monitor Name: tcp-default
                State: DOWN     Weight: 1

 Done
<!--NeedCopy-->

CLI を使用して既存のサービスのハッシュ識別子を指定するには

set service コマンド、サービスの名前、 -HashiD の後に ID 値を入力します。

サービスグループメンバーを追加するときにハッシュ識別子を指定するには

グループに追加する各メンバーのハッシュ識別子を指定して設定を確認するには、コマンドプロンプトで次のコマンドを入力します (メンバーごとに一意の HashID を指定してください)。):

bind servicegroup <serviceGroupName> <memberName> <port> -hashId <positive_integer>

show servicegroup <serviceGroupName>
<!--NeedCopy-->

例:

 bind servicegroup http_svc_group 10.102.27.153 80 -hashId 2222222

>show servicegroup SRV
        SRV - HTTP
        State: ENABLED  Monitor Threshold : 0
        …

        1)         1.1.1.1:80   State: DOWN     Server Name: 1.1.1.1    Server ID: 123  Weight: 1
        Hash Id: 32211

                Monitor Name: tcp-default       State: DOWN
        …

        2)         2.2.2.2:80   State: DOWN     Server Name: 2.2.2.2    Server ID: 123  Weight: 1
        Hash Id: 12345

                Monitor Name: tcp-default       State: DOWN
        …
Done

<!--NeedCopy-->

GUI を使用してサービスのハッシュ識別子を指定するには

  1. [Traffic Management] > [Load Balancing] > [Services] の順に移動します。
  2. 新しいサービスを作成するか、既存のサービスを開いてハッシュ ID を指定します。

GUI を使用して設定済みのサービスグループメンバーのハッシュ識別子を指定するには

  1. [ トラフィック管理] > [負荷分散] > [サービスグループ] に移動します。
  2. メンバーを開き、固有のハッシュIDを入力します。