Citrix ADC

GSLB サービスの優先順位

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

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

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

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

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

サービスの優先順位付け機能は、設定コマンドの数を減らして前述の制限に対処し、すべての GSLB サービスの IP アドレスのロケーション表現を必要とせずに、優先ロケーション設定を実現するのに役立ちます。

GSLB サービスの優先順位を設定する

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

注:

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

コマンド:

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

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

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

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

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

CLI を使用して GSLB サービスの優先順位を設定する

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

  1. GSLB サイトを追加します。

    add gslb site site1 1.1.1.1

    add gslb site site2 1.1.1.2

  2. GSLB 仮想サーバーを追加します。

    add gslb vserver gv1 HTTP

  3. GSLB サービスを追加します。

    add gslb service gsvc1 1.1.1.3 http 80 -sitename site1

    add gslb service gsvc2 1.1.1.4 http 80 -sitename site2

    add gslb service gsvc3 1.1.1.5 http 80 -sitename site1

    add gslb service gsvc4 1.1.1.6 http 80 -sitename site2

    add gslb service gsvc5 1.1.1.7 http 80 -sitename site1

    add gslb service gsvc6 1.1.1.8 http 80 -sitename site2

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

    bind gslb vserver gv1 gsvc1 -order 1

    bind gslb vserver gv1 gsvc2 -order 1

    bind gslb vserver gv1 gsvc3 -order 2

    bind gslb vserver gv1 gsvc4 -order 2

    bind gslb vserver gv1 gsvc5 -order 3

    bind gslb vserver gv1 gsvc6 -order 3

GUI を使用した GSLB サービスの優先順位の設定

前提条件:

  • GSLB サイトが作成されました。
  • GSLB 仮想サーバーが作成されました。
  • GSLB サービスを作成していること。

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

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

  2. [ GSLB 仮想サーバー] の [GSLB サービスと GSLB サービスグループバインディング ] セクションで、[ GSLB 仮想サーバーから GSLB サービスへのバインディング] をクリックします。

  3. [GSLB サービスと GSLB サービスグループバインディング] ダイアログで、[バインドの追加**] をクリックします。

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

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

    優先順位の設定と GSLB サービスのバインド

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

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

LB ポリシーコマンドを使用して GSLB サービスの優先順位を設定する

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

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

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

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

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

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

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

注:

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

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

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 gslb vserver gv1 -policyName pol1 -priority 20 - gotoPriorityExpression END -type REQUEST

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

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

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

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

CLI を使用して LB ポリシーコマンドを使用して GSLB サービスの優先順位を設定する

LB ポリシーコマンドを使用して GSLB サービスの優先順位を構成するには、コマンドプロンプトで次のコマンドを入力します。

  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. GSLB サイトを追加します。

    add gslb site site1 1.1.1.1

    add gslb site site2 1.1.1.2

  4. GSLB 仮想サーバーを追加します。

    add gslb vserver gv1 HTTP

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

    bind gslb vserver gv1 -policyName pol1 -priority 20 - gotoPriorityExpression END -type REQUEST

  6. GSLB サービスを追加します。

    add gslb service gsvc1 1.1.1.3 http 80 -sitename site1

    add gslb service gsvc2 1.1.1.4 http 80 -sitename site2

    add gslb service gsvc3 1.1.1.5 http 80 -sitename site1

    add gslb service gsvc4 1.1.1.6 http 80 -sitename site2

    add gslb service gsvc5 1.1.1.7 http 80 -sitename site1

    add gslb service gsvc6 1.1.1.8 http 80 -sitename site2

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

    bind gslb vserver gv1 gsvc1 -order 1

    bind gslb vserver gv1 gsvc2 -order 1

    bind gslb vserver gv1 gsvc3 -order 2

    bind gslb vserver gv1 gsvc4 -order 2

    bind gslb vserver gv1 gsvc5 -order 3

    bind gslb vserver gv1 gsvc6 -order 3

GUI を使用して LB ポリシーコマンドを使用して GSLB サービスの優先順位を設定する

前提条件:

  • GSLB サイトが作成されました。
  • GSLB 仮想サーバーが作成されました。
  • サービスを作成しました。

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

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

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

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

    • アクション名:act1
    • タイプ:SELECTIONORDER
    • :3 1 2

      注:

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

    LB アクションを追加

  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 ポリシーを GSLB 仮想サーバーにバインドします。

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

  2. GSLB 仮想サーバーの[ 詳細設定 ] セクションで、[ポリシー] をクリックします。

  3. [ポリシー] セクションで、[ GSLB 仮想サーバー LB ポリシーバインド] をクリックします。

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

    • ポリシーを選択:pol 1
    • 優先度:10
    • Goto Expression: END

    LB ポリシーのバインド

  5. [バインド] をクリックします。

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

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

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

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

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

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

set gslb param -overridePersistencyforOrder<YES/NO>

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

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

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

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

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

set gslb parameter -overridePersistencyforOrder YES

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

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

優先度切り替え

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

  • set gslb vserver –toggleorder <Ascending/Descending>

  • set gslb vserver v1 -orderthreshold 80

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

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

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

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

set gslb vserver –toggleorder Descending

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