ADC

負荷分散サービスの優先順位

サービスの優先順位機能を使用すると、負荷分散の選択プリファレンスに基づいて、サービスまたはサービスグループの順序に優先順位を付けることができます。次の操作を行うと、優先順位を設定できます。

  • サービスを負荷分散仮想サーバーにバインドします。
  • サービスグループを負荷分散仮想サーバにバインドします。
  • サービスグループメンバーを負荷分散サービスグループにバインドします。

現在、サービスの優先順位は次の方法で構成できます。ただし、これらのアプローチには次の制限があります。  

  • バックアップ仮想サーバーチェーンの構成:構成行の数が多いため、各仮想サーバーのすべての LB サービスの状態を確認するには、showコマンドを複数回実行する必要があります。

  • 優先ロケーションの設定:すべてのアプリケーションエンドポイントに対してロケーションエントリを作成する必要があります。

サービスの優先順位付け機能は、設定コマンドの数を減らして前述の制限に対処し、すべての負荷分散サービスの IP アドレスをロケーションで表現しなくても、優先ロケーションの設定を行うことができます。

負荷分散サービスの優先順位を設定する

負荷分散サービスの優先順位を設定するために、-order <number>パラメータが bind コマンドに追加されます。

注:

順序番号が小さいほど優先度が高くなります。

コマンド:

bind lb vserver <vservername> <servicename/servicegroupname> -order <number>

たとえば、負荷分散仮想サーバー (vs1) にバインドされた一連のサービスを考えてみます。 - order <number>パラメータを使用すると、次のように、サービスの選択順序に優先順位を付けることができます。

  • vs1 にバインドされたセット 1 (s1, s2) — オーダ 1
  • vs1 にバインドされたセット 2 (s3, s4) — オーダー 2
  • vs1 にバインドされた 3 (s5, s6) をセット — オーダ 3

サービスを vs1 にバインドし、vs1 がクライアントトラフィックを受信すると、サービスの選択順序は次のようになります。

  • 仮想サーバ (vs1) は、最初にセット 1 (s1 と s2) のサービスを選択します。これは、このセットには最小の順序番号が割り当てられているためです。既定では、最小の順序番号が優先されます。
  • セット 1 のすべてのサービスが DOWN の場合、vs1 は順序番号 2 のセット 2 (s3 と s4) を選択します。
  • セット 1 とセット 2 のすべてのサービスがダウンしている場合、vs1 は順序番号 3 のセット 3 (s5 と s6) を選択します。

CLI を使用して負荷分散サービスの優先順位を設定する

負荷分散サービスの優先順位を構成するには、コマンドプロンプトで次のコマンドを入力します。

  1. LB 仮想サーバを追加します。

    add lb vserver vs1 HTTP 1.1.1.1 80

  2. LB サービスを追加します。

    add service s[1-6] 2.2.2.[1-6] HTTP 80

  3. 注文番号を設定し、サービスを LB 仮想サーバーにバインドします。

    bind lb vserver vs1 s1 -order 1

    bind lb vserver vs1 s2 -order 1

    bind lb vserver vs1 s3 -order 2

    bind lb vserver vs1 s4 -order 2

    bind lb vserver vs1 s5 -order 3

    bind lb vserver vs1 s6 -order 3

GUI を使用した負荷分散サービスの優先順位の設定

前提条件:

  • これで、負荷分散仮想サーバーが作成されました。
  • サービスを作成しました。

負荷分散サービスの優先順位を設定し、仮想サーバにバインドするには、次の手順を実行します。

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、負荷分散仮想サーバーをダブルクリックします。

  2. [ 負荷分散仮想サーバー] の [ サービスとサービスグループ] セクションで、[ 負荷分散仮想サーバーサービスバインド] をクリックします。

  3. [負荷分散仮想サーバーサービスバインド] ダイアログボックスで、[バインドの追加] をクリックします。

  4. [サービスバインディング] ダイアログボックスで、サービスを選択します。

  5. [ 順序] フィールドに番号を入力して、サービスの優先順位を設定します。

  6. バインド」をクリックします。

  7. ステップ 1 ~ 6 を繰り返して、サービスごとに異なる優先順位番号を設定します。

LB policy コマンドを使用して、負荷分散サービスの優先順位を設定します

既定では、最小の順序番号が優先されます。ただし、新しい LB action コマンドと policy コマンドを使用すると、このデフォルトの動作を延期できます。着信クライアントトラフィックまたはクライアントデータに基づいて、サービスの選択順序を設定できます。

たとえば、仮想サーバ (vs1) にバインドされた一連のサービスを考えてみます。- order <number>パラメータを使用して、サービスの優先順位を次のように設定しました。

  • vs1 にバインドされたセット 1 (s1, s2) — オーダ 1

  • vs1 にバインドされたセット 2 (s3, s4) — オーダー 2

  • vs1 にバインドされた 3 (s5, s6) をセット — オーダ 3

既定では、最小の順序番号が優先されます。したがって、set 1、set2、set3 のサービスのデフォルトの優先順位は、それぞれ 1、2、3 です。ただし、特定のクライアントトラフィックについては、優先順位を 3、1、2 に変更する必要があります。これを実現するには、LB ポリシーを追加して vs1 にバインドします。

LB ポリシーコマンドは、ルールとアクションの 2 つの要素で構成されます。ルールはアクションに関連付けられ、リクエストがルールに一致した場合に実行されるアクションです。

注:

LBポリシーコマンドは、LBとGSLBの両方の構成に共通であり、NetScaler ADCアプライアンスによって処理される要求に適用されます。

LB アクション

**表現:**

add lb action <name> <type> <string>

**例:**

add lb action act1 -type SELECTIONORDER -value 3 2 1

パラメーター:

  • name: アクションの名前。

  • type: アクションのタイプ。

  • string: 指定したアクションの値。

LBポリシー

**表現:**

add lb policy <name> <rule> <action> <undefaction>

**例:**

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1

パラメーター:

  • name: ポリシーの名前。

  • rule: ルールは 1 つ以上の式で構成されます。ルールはアクションに関連付けられ、リクエストがルールに一致した場合に実行されるアクションです。

  • action:DROP、NOLBACTION、およびリセットがサポートされています。

  • undefaction:NetScaler ADCアプライアンスは、要求がポリシーと一致しない場合、未定義イベント(UNDEFイベント)を生成します。 set lb param -undefAction <action>コマンドを使用して、未定義のアクションを設定できます。これらのアクションは、DROP、NOLBACTION、RESET といった未定義のイベントに割り当てることができます。

次のように、LB アクション、LB ポリシーを追加し、そのポリシーを負荷分散仮想サーバー (vs1) にバインドする例を考えてみましょう。

add lb action act1 -type SELECTIONORDER -value 3 1 2

add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1

bind lb vserver vs1 -policyName pol1 -priority 10

ルールは IP アドレス、8.8.8.8と一致するクライアントトラフィックを選択し、そのトラフィックを vs1 に送信します。LB アクションタイプ (SELECTIONORDER) は、サービスの選択順序を定義します。LB ポリシーを vs1 にバインドした後、vs1 が IP アドレス8.8.8.8からクライアントトラフィックを受信すると、次の順序でサービスが選択されます。

  1. 仮想サーバ (vs1) は、セット 3 (s5 と s6) のサービスを優先順位 3 で選択します。

  2. セット 3 のすべてのサービスが DOWN の場合、vs1 は優先順位が 2 のセット 1 (s1 と s2) を選択します。

  3. セット 3 とセット 2 のすべてのサービスがダウンしている場合、vs1 は順序 1 のセット 1(s1 と s2)を選択します。

CLI を使用して LB policy コマンドを使用して負荷分散サービスの優先順位を設定する

LB policy コマンドを使用して負荷分散サービスの優先順位を構成するには、コマンドプロンプトで次のコマンドを入力します。

  1. LB アクションを追加します。

    add lb action act1 -type SELECTIONORDER -value 3 1 2

  2. LB ポリシーを追加します。

    add lb policy pol1 -rule CLIENT.IP.SRC.EQ(8.8.8.8) -action act1

  3. LB 仮想サーバを追加します。

    add lb vserver vs1 HTTP 1.1.1.1 80

  4. LB ポリシーを LB 仮想サーバーにバインドします。

    bind lb vs vs1 -policyName pol1 -priority 10

  5. LB サービスを追加します。

    add service s[1-6] 2.2.2.[1-6] HTTP 80

  6. 順序を設定し、サービスを LB 仮想サーバーにバインドします。

    bind lb vserver vs1 s1 -order 1

    bind lb vserver vs1 s2 -order 1

    bind lb vserver vs1 s3 -order 2

    bind lb vserver vs1 s4 -order 2

    bind lb vserver vs1 s5 -order 3

    bind lb vserver vs1 s6 -order 3

GUI を使用して LB policy コマンドを使用して、負荷分散サービスの優先順位を設定します

前提条件:

  • これで、負荷分散仮想サーバーが作成されました。
  • サービスを作成しました。

ステップ 1-LB アクションを作成します。

  1. AppExpert > LB > アクションに移動します

  2. [LB アクション] で、[追加] をクリックします。

  3. [Create LB Actions ] ダイアログボックスで、次のパラメータの値を指定します。

    • [アクション名]
    • 種類
    • 注:

      Valueフィールドの数字はスペースで区切られます。

  4. [作成]をクリックします。

ステップ 2-LB ポリシーを作成します。

  1. AppExpert > LB > ポリシーに移動します

  2. [LB ポリシー] で [追加] をクリックします。

  3. [Create LB Policies ] ダイアログボックスで、次のパラメータの値を指定します。

    • 名前:pol1
    • アクション:act1
    • 未定義の結果アクション:NOLBACTION
    • :CLIENT.IP.SRC.EQ(8.8.8.8)

    LB ポリシーを追加する

  4. 作成」をクリックします。

ステップ 3-LB ポリシーを LB 仮想サーバーにバインドします。

  1. [トラフィック管理] > [LB] > [仮想サーバー] に移動し、仮想サーバーをダブルクリックします。

  2. [詳細設定]で [ポリシー] をクリックします。

  3. [Policies] セクションで、プラス (+) アイコンをクリックします。

  4. 「タイプを選択」 (Choose Type) ダイアログボックスで、次のパラメータの値を指定します。

    • ポリシーを選択:LB
    • タイプを選択:リクエスト
  5. [バインドを追加]をクリックします。

  6. [ ポリシーバインド ] ダイアログボックスで、次のパラメータの値を指定します。

    • ポリシーを選択
    • 優先度
    • Goto 式
    • ラベルタイプを呼び出す
  7. [Bind] をクリックします。

ステップ 4-負荷分散サービスの優先順位を設定します。

負荷分散サービスの優先順位を設定するには、「 GUI を使用した負荷分散サービスの優先順位の設定」の手順を参照してください

サービスのパーシスタンス設定

サービスに永続性が設定されている場合、デフォルトでは常に永続性が優先されます。

たとえば、パーシステンスが設定され、優先順位が 1 のサービスを考えてみます。優先順位が 0 のサービスが UP の場合、優先順位が 1 のサービスが常に優先されます。

ただし、次の CLI コマンドを使用すると、このデフォルトの動作を上書きできます。

set lb param –overridePersistencyforOrder <YES/NO>

次の例を考えてみましょう。

一連のサービスは、次の優先順位で仮想サーバ (vs1) にバインドされます。

  • vs1 にバインドされたセット 1 (s1, s2) — オーダ 1

  • vs1 にバインドされたセット 2 (s3, s4) — オーダー 2

永続性を上書きするには、コマンドプロンプトで次のコマンドを入力します。

set lb parameter -overridePersistencyforOrder YES

set 1 (永続性を持つサービスが構成されている) が DOWN の場合、set 2 のサービスが set 1 のサービスが UP になるまで、すべての要求を処理します。優先度 2 の持続性エントリが作成されます。

しばらくすると、set 1 のサービスが起動したと仮定します。これで、set 1 と set 2 の両方のサービスがリクエストを処理するために UP になりました。このシナリオでは、高次のサービスが稼働すると、新しい負荷分散の決定が下されます。パーシステンスエントリは、新しい負荷分散エントリで上書きされます。

優先度切り替え

優先度切り替え機能を使用すると、優先順位の高いサービスのバージョンアップグレード中に、すべてのトラフィックを優先度の低いサービスに切り替えることができます。以下のコマンドを使用して、優先度を切り替えることができます。

  • set lb vserver -toggleorder<Ascending/Descending>

  • set lb vserver v1 -orderthreshold 80

たとえば、次の優先順位を持つ 2 つのサービスがあるとします。

  • Service 1- order 0 
  • サービス 2 — 注文 1

デフォルトでは、サービス 1 がすべてのトラフィックを処理します。サービス 1 をアップグレードする必要がある場合は、トラフィックをサービス 2 に再ルーティングする必要があります。

コマンドプロンプトで次のコマンドを入力して、優先度を切り替えます。

set lb vserver –toggleorder Descending

既定では、0 の方が優先度が高くなります。ただし、優先度を切り替えた後は、1 の方が優先度が高いと見なされます。サービスにパーシステンスエントリが存在する場合、パーシステンスプリファレンスの動作は、「 サービスのパーシスタンス設定 」セクションで説明されているとおりになります。