ADC

スピルオーバーを構成する

アプライアンスのスピルオーバー構成は、スピルオーバー方式、スピルオーバーしきい値、およびバックアップ仮想サーバーで構成されるプライマリ仮想サーバーで構成されます。バックアップ仮想サーバーをスピルオーバーするように構成して、バックアップ仮想サーバーのチェーンを作成することもできます。

スピルオーバー方式では、スピルオーバー設定の基礎となる動作条件 (確立された接続の数、帯域幅、またはサーバーファームの総合状態など) を指定します。新しい接続が確立されると、アプライアンスはプライマリ仮想サーバーが稼働していることを確認し、動作状態を設定されたスピルオーバーしきい値と比較します。しきい値に達すると、スピルオーバー機能によって新しい接続がバックアップチェーンで最初に使用可能な仮想サーバーに転送されます。バックアップ仮想サーバーは、プライマリの負荷がしきい値を下回るまで、受信した接続を管理します。

スピルオーバーパーシステンスを構成すると、プライマリの負荷がしきい値を下回った後でも、バックアップ仮想サーバーは受信した接続を処理し続けます。スピルオーバーパーシステンスとスピルオーバーパーシステンスタイムアウトを設定すると、バックアップ仮想サーバーは、プライマリの負荷がしきい値を下回った後、指定された期間のみ接続を処理します。

:通常、スピルオーバーメソッドに関連する値がしきい値(接続数など)を超えると、スピルオーバーがトリガーされます。ただし、サーバーヘルスのスピルオーバー方式では、サーバーファームの状態がしきい値を下回るとスピルオーバーがトリガーされます。

スピルオーバーは、次のいずれかの方法で設定できます。

  • 定義済みのスピルオーバーメソッドを指定します。あらかじめ定義された 4 つのメソッドが用意されており、これらは一般的なスピルオーバー要件を満たしています。
  • ポリシーベースのスピルオーバーを設定します。ポリシーベースのスピルオーバーでは、NetScalerルールを使用してスピルオーバーが発生する条件を指定します。NetScalerのルールにより、さまざまな運用条件に合わせてスピルオーバーを柔軟に設定できます。

定義済みのメソッドが要件を満たさない場合は、ポリシーベースのスピルオーバーを使用してください。プライマリ仮想サーバに両方を設定すると、ポリシーベースのスピルオーバー設定が定義済みの方法よりも優先されます。

まず、プライマリ仮想サーバーとバックアップチェーンに必要な仮想サーバーを作成します。バックアップチェーンを設定するには、1 台の仮想サーバーをプライマリのバックアップとして (つまり、セカンダリ仮想サーバーを作成します)、1 台の仮想サーバーをセカンダリのバックアップとして指定する (つまり、3 次仮想サーバーを作成します) というように指定します。次に、定義済みのスピルオーバー方法を指定するか、スピルオーバーポリシーを作成してバインドすることによって、スピルオーバーを構成します。

仮想サーバーを別の仮想サーバーのバックアップとして割り当てる手順については、「 バックアップ負荷分散仮想サーバーの構成」を参照してください。

定義済みのスピルオーバーメソッドの構成

定義済みのスピルオーバーメソッドは、一般的なスピルオーバー要件のいくつかを満たしています。定義済みのスピルオーバー方法のいずれかを使用するには、プライマリ仮想サーバーでスピルオーバーパラメータを設定します。バックアップ仮想サーバーのチェーンを作成するには、バックアップ仮想サーバーのスピルオーバーパラメーターも構成します。

バックアップ仮想サーバーが独自のしきい値に達し、サービスタイプがTCPの場合、NetScalerアプライアンスはクライアントにTCPリセットを送信します。サービスタイプが HTTP、SSL、RTSP の場合、新しい要求をプライマリ仮想サーバーに設定されたリダイレクト URL に転送します。リダイレクト URL は、HTTP、SSL、および RTSP 仮想サーバーにのみ指定できます。リダイレクトURLが設定されていない場合、NetScalerアプライアンスはクライアントにTCPリセット(仮想サーバーのタイプがTCPの場合)またはHTTP 503応答(仮想サーバーのタイプがHTTPまたはSSLの場合)を送信します。

:RTSP仮想サーバーでは、NetScalerアプライアンスはスピルオーバーにデータ接続のみを使用します。バックアップ RTSP 仮想サーバが使用できない場合、要求は RTSP URL にリダイレクトされ、RTSP リダイレクトメッセージがクライアントに送信されます。

コマンドラインインターフェイスを使用して仮想サーバーの事前定義済みのスピルオーバー方式を構成するには

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

set lb vserver <vServerName> -soMethod <spillOverType> -soThreshold <positiveInteger> -soPersistence ENABLED -soPersistenceTimeout <positiveInteger>
<!--NeedCopy-->

set lb vserver Vserver-LB-1 -soMethod Connection -soThreshold 1000 -soPersistence enabled -soPersistenceTimeout 2
<!--NeedCopy-->

構成ユーティリティを使用して仮想サーバーの事前定義済みのスピルオーバー方式を構成するには

  1. [ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動し、仮想サーバーを開きます。
  2. [詳細設定] で [ 保護] をクリックし、スピルオーバーパラメータを設定します。

ポリシーベースのスピルオーバーの設定

ルール(式)に基づくスピルオーバーポリシーを使用すると、より広範なスピルオーバーシナリオに合わせてアプライアンスを設定できます。たとえば、仮想サーバーの応答時間に基づいて、または仮想サーバーのサージキュー内の接続数に基づいてスピルオーバーを構成できます。

ポリシーベースのスピルオーバーを設定するには、まずスピルオーバーアクションを作成します。次に、スピルオーバーポリシーで使用する表現を選択し、ポリシーを設定して、アクションをそれに関連付けます。最後に、スピルオーバーポリシーを負荷分散、コンテンツスイッチング、またはグローバルサーバー負荷分散仮想サーバーにバインドします。優先度番号を使用して、複数のスピルオーバーポリシーを仮想サーバーにバインドできます。アプライアンスは、スピルオーバーポリシーを優先度番号の昇順で評価し、最後のポリシーに関連するアクションを実行して TRUE と評価します。

仮想サーバーにはバックアップアクションを実行することもできます。バックアップアクションは、仮想サーバーに1つ以上のバックアップ仮想サーバーがない場合、またはすべてのバックアップ仮想サーバーがダウンしているか、無効になっているか、独自のスピルオーバー制限に達した場合に実行されます。

スピルオーバー・ポリシーによってUNDEF条件(ポリシー評価の結果が未定義の場合に発生する例外)が発生すると、UNDEFアクションが実行されます。UNDEF アクションは常に「承認」です。任意の UNDEF アクションは指定できません。

スピルオーバーアクションの設定

スピルオーバーアクションは、関連するスピルオーバーポリシーが TRUE と評価されたときに実行されます。現在、サポートされているスピルオーバーアクションはSPILLOVERのみです。

コマンドラインインターフェイスを使用してポリシーベースのスピルオーバーを構成するには

コマンドプロンプトで次のコマンドを入力してスピルオーバーポリシーを構成し、構成を確認します。

add spillover action <name> -action SPILLOVER

show spillover action <name>
<!--NeedCopy-->
add spillover action mySoAction -action SPILLOVER
Done
<!--NeedCopy-->
show spillover action mySoAction
1) Name: mySoAction Action: SPILLOVER
Done
<!--NeedCopy-->

スピルオーバーポリシーの表現の選択

ポリシー表現には、Boolean 値を返す任意の仮想サーバーベースの式を使用できます。たとえば、次のいずれかの式を使用できます。

SYS.VSERVER("vserver").RESPTIME.GT(<int>)
SYS.VSERVER("vserver").STATE.EQ(“<string>”), and
SYS.VSERVER("vserver").THROUGHPUT.LT    (<int>)
<!--NeedCopy-->

RESPTIME、STATE、THROUGHPUT などの既存の機能に加えて、この機能で導入された次の仮想サーバベースの機能を使用できます。

Averagesurgecount

アクティブなサービスのサージキューにあるリクエストの平均数を返します。アクティブなサービスがない場合は 0 (ゼロ) を返します。コンテンツスイッチングまたはグローバルサーバーの負荷分散仮想サーバーで使用すると、UNDEF 条件が発生します。

Activeservices

アクティブなサービスの数を返します。コンテンツスイッチングまたはグローバルサーバーの負荷分散仮想サーバーで使用すると、UNDEF 条件が発生します。

Activetransactions

現在のアクティブなトランザクションの仮想サーバーレベルのカウンタの値を返します。

is_dynamic_limit_reached

仮想サーバーが管理する接続の数が動的に計算されたしきい値と等しい場合は、ブール値 TRUE を返します。動的しきい値は、稼働しているバウンドサービスの最大クライアント (最大クライアント) 設定の合計です。

ポリシー表現を使用して、定義済みの任意のスピルオーバーメソッドを実装できます。次の表は、定義済みのスピルオーバーメソッドを、その実装に使用できる式にまとめたものです。

表1. 定義済みのスピルオーバーメソッドをポリシー表現に変換

定義済みのスピルオーバー方式 対応する表現
CONNECTION SYS.VSERVER(“<vserver-name>”).CONNECTIONS, used with the GT(int) arithmetic function.
BANDWIDTH SYS.VSERVER(“<vserver-name>”).THROUGHPUT, used with the GT(int) arithmetic function.
HEALTH SYS.VSERVER(“<vserver-name>”).HEALTH, used with the LT(int) arithmetic function.
DYNAMICCONNECTION SYS.VSERVER(“<vserver-name>”).IS_DYNAMIC_LIMIT_REACHED :IS_DYNAMIC_LIMIT_REACHED関数を使用してポリシーベースのスプルオーバーを実装する場合は、スピルオーバーに必要な統計が機能するように、仮想サーバーに対して事前定義された DYNAMICCONNECTION メソッドも構成する必要があります。が収集されます。

スピルオーバーポリシーの設定

スピルオーバーポリシーでは、ルールとしてブール式を使用して、スピルオーバーが発生するために満たす必要がある条件を指定します。

コマンドラインインターフェイスを使用してスピルオーバーポリシーを設定するには

コマンドプロンプトで次のコマンドを入力してスピルオーバーポリシーを構成し、構成を確認します。

add spillover policy <name> -rule <expression> -action <string> [-comment <string>]

show spillover policy <name>
<!--NeedCopy-->
> add spillover policy mySoPolicy -rule SYS.VSERVER("v1").RESPTIME.GT(50) -action mySoAction -comment "Triggers spillover when the vserver's response time is greater than 50 ms."
Done

> show spillover policy mySoPolicy

1)  Name: mySoPolicy Rule: "SYS.VSERVER("v1").RESPTIME.GT(50)" Action: mySoAction Hits: 0 ActivePolicy: 0
Comment: "Triggers spillover when the vserver's response time is greater than 50 ms."
Done
>
<!--NeedCopy-->

スピルオーバーポリシーを仮想サーバーにバインドする

スピルオーバーポリシーを負荷分散、コンテンツスイッチング、またはグローバルサーバー負荷分散(仮想サーバー)にバインドできます。Goto 式で評価の流れを制御することで、複数のポリシーを仮想サーバーにバインドできます。

コマンドラインインターフェイスを使用してスピルオーバーポリシーを仮想サーバーにバインドするには

コマンドプロンプトで次のコマンドを入力して、スピルオーバーポリシーを負荷分散、コンテンツスイッチング、またはグローバルサーバー負荷分散仮想サーバーにバインドし、構成を確認します。

bind (lb | cs | gslb) vserver <name> -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>]

show (lb | cs | gslb) vserver <name>
<!--NeedCopy-->
> bind lb vserver vserver1 -policyName mySoPolicy -priority 5
Done
> show lb vserver vserver1
vserver1 (2.2.2.12:80) - HTTP Type: ADDRESS
. . .

1)  Spillover Policy Name: mySoPolicy Priority: 5
GotoPriority Expression: END
Flowtype: REQUEST
Done
>
<!--NeedCopy-->

スピルオーバーイベントのバックアップアクションの設定

バックアップアクションでは、スピルオーバーのしきい値に達したのに、1 つ以上のバックアップ仮想サーバーが設定されていない、ダウンしている、無効になっている、または独自のしきい値に達した場合に何をすべきかを指定します。

注:仮想サーバー上で (Spilover Method パラメーターの値として) 直接設定されている定義済みのスピルオーバーメソッドの場合、バックアップアクションは設定できません。デフォルトでは、アプライアンスはクライアントにTCPリセット(仮想サーバーのタイプがTCPの場合)またはHTTP 503応答(仮想サーバーのタイプがHTTPまたはSSLの場合)を送信します。

バックアップアクションは仮想サーバーで設定されます。(ポリシーで指定されたしきい値に達した後に)リクエストを受け付けたり、クライアントをURLにリダイレクトしたり、TCPまたはSSL接続を確立する前でもリクエストの数がしきい値を下回るまでリクエストをドロップするように仮想サーバーを構成できます。そのため、データ構造を割り当てる前でも接続がリセットされるため、使用されるメモリリソースは少なくなります。

CLI を使用してスピルオーバー用のバックアップアクションを設定するには

コマンドプロンプトで次のコマンドを入力して、バックアップアクションを構成し、構成を確認します。

set lb vserver <name> -soBackupAction <soBackupAction>

show lb vserver <name>
<!--NeedCopy-->

例:

set lb vserver vs1 -soBackupAction REDIRECT -redirectURL `http://www.mysite.com/maintenance`
Done
> show lb vserver vs1
vs1 (10.102.29.76:80) - HTTP Type: ADDRESS
State: UP
. . .
Redirect URL: `http://www.mysite.com/maintenance`
. . .
Done
<!--NeedCopy-->

GUI を使用してスピルオーバーのバックアップアクションを構成するには

  1. [ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動し、仮想サーバーを開きます。
  2. [詳細設定] で [ 保護] をクリックし、スピルオーバーバックアップアクションを指定します。
スピルオーバーを構成する