NSX Advanced Load Balancer サービス エンジン (SE) グループには、仮想サービスごとに最小および最大スケール アウトの設定があります。これらの設定は、仮想サービスをスケーリングできる SE の数を制御します。このトピックでは、これらの 2 つの設定を仮想サービスで変更した場合の影響について説明します。

スケール アウト設定の詳細については、「サービス エンジン グループ」を参照してください。

仮想サービスは、次のシナリオで影響を受ける可能性があります。

  1. SE グループの最小および最大設定が動的に変更された場合。SE グループに配置されたすべての仮想サービスが影響を受けます。

  2. 設定が異なる別の SE グループに移動された場合。

変更の影響

SE グループの min_scaleout_per_vs または max_scaleout_per_vs 設定を変更すると上記と同じ動作が発生しますが、次の例外があります。

  • SE グループの min_scaleout_per_vs を増やすと、新しい最小値が現在の仮想サービス配置数よりも大きい場合にのみ、仮想サービス配置の数が増えます。

  • 仮想サービスを無効にして再度有効にすると、配置の数の上限は max_scaleout_per_vs に制限されます。

  • ある SE グループから別の SE グループに仮想サービスを移行すると、NSX Advanced Load Balancer はグループ内で行われた配置の数を無視します。仮想サービスは、宛先グループの min_scaleout_per_vs 値に従って配置されます。

シナリオ

SE グループの仮想サービスごとの最小および最大スケールアウト設定を変更した場合の仮想サービスへの影響を次のセクションで示します。

この例を理解するには、内部的に、仮想サービスに要求される SE の数が次の 2 つの数値の合計であることに注意する必要があります。

  1. SE グループの VS ごとの最小スケールアウト (min_scaleout_per_vs)。

  2. すべての仮想サービスで 0 から始まる内部変数であるユーザー スケールアウト係数。この数は、ユーザーがスケール アウトすると 1 増加し、ユーザーがスケール インすると 1 減少します。

一般的な動作

仮想サービスごとの最小スケールと最大スケールのすべての変更を制御するルールは次のとおりです。

  • 仮想サービスごとの最小スケールを減らしても、グループ内の既存の仮想サービスのスケールには影響しません。

    • この場合、ユーザーのスケールアウトは、仮想サービスごとの最小スケールが減少した量だけ増加します。

    • 既存の仮想サービスを SE グループの最小レベルでスケーリングするには、ユーザーが明示的にスケール インする必要があります。

  • 仮想サービスごとの最小スケールを増やすと、新しい最小値が仮想サービスの現在のスケールよりも大きい場合にのみ、既存の仮想サービスのスケールが増加します。

  • SE グループの仮想サービスごとの最大スケールが増減しても、グループ内の既存の仮想サービスのスケールには影響しません。

    • 新しい最大スケールよりも多くの SE を持つ仮想サービスの場合、ユーザーは引き続き手動でスケール インできます。

  • 無効にして再度有効にした仮想サービスは、SE グループの VS ごとの現在の最大スケールを上限として、既存のスケールを保持します。

  • 別の SE グループに移動された仮想サービスは、新しい SE グループの VS ごとの最小スケールに配置されます。

SE グループ設定の変更

仮想サービスごとの最小スケールまたは最大スケールが変更された場合の SE グループ内の仮想サービスへの影響は、次のセクションに示されています。

  • VS ごとの最小スケールの増加

ユーザーのスケールアウトがない仮想サービスの場合、SE グループの最小スケールを増やすと、仮想サービスの SE の数が新しい最小値まで増えます。

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

初期状態

1

0

1

VS ごとの最小スケール:1 → 2

2

0

2

ユーザーのスケールアウトを使用する仮想サービスの場合、最小スケールを増やすと、新しい最小値が仮想サービスの現在のスケールよりも大きい場合にのみ、SE の数が増加します。

例 1

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

初期状態

1

0

1

ユーザーのスケールアウト

2

1

1

VS ごとの最小スケール:1 → 2

2

0

2

例 2

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

初期状態

2

1

1

VS ごとの最小スケール:1 → 3

3

0

3

  • VS ごとの最小スケールの減少

SE グループの VS ごとの最小スケールを減らしても、既存の仮想サービスのスケールには影響しません。同じ数の SE を維持するために、ユーザーのスケールアウトは最小スケールの減少量だけ増加します。

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

初期状態

2

0

2

VS ごとの最小スケール:2 → 1

2

1

1

ユーザーのスケールアウト

1

0

1

この動作の目的は、仮想サービスごとの最小スケールが減少したときに、SE グループ内にあるすべての仮想サービスの現在の状態を保持することです。 Min_scaleout_per_vs の減少量だけユーザーのスケールアウトを増やすことで、要求された SE の数を同じ数に維持します。

上記の例での望ましい結果が、SE グループ内のすべての仮想サービスを 1 SE にスケール ダウンすることである場合、次の 3 つのオプションが利用可能です。

  1. SE グループの設定を変更したら、すべての仮想サービスを手動でスケール ダウンして、ユーザーのスケールアウトを 0 に減らします。

  2. SE グループの VS ごとの最大スケールを 1 に設定します。すべての仮想サービスを無効にして有効にします(無効化後に最大スケールを減らすこともできます)。

  3. SE グループ内のすべての仮想サービスを、min_scaleout_per_vs が 1 の別の SE グループに移動します。

  • VS ごとの最大スケールの変更

VS ごとの最大スケールを変更しても、他の変数には影響しません。

SE グループの VS ごとの最大スケールが減少した場合でも、SE グループ内のすべての仮想サービスは同じ数の SE を保持します。そのため、この状況で仮想サービスに要求される SE の数は、VS ごとの新しい最大スケールよりも大きくなる可能性があります。ユーザーには、この数を新しい最大値に減らすために手動でスケール インするオプションがあります。

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト数

初期状態

3

2

1

4

VS ごとの最大スケール:4 → 2

3

2

1

2

ユーザーのスケールアウト

2

1

1

2

  • VS の無効化と有効化

仮想サービスを無効にしてから有効にすると、(VS ごとの現在の最小スケール + ユーザーのスケールアウトの数)に配置されます。これは、SE グループの VS ごとの現在の最大スケールを上限とします。

仮想サービスを無効にして、SE グループのスケール設定を変更せずに有効にすると、仮想サービスは同じスケールのままになります。

例 1

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト数

初期状態

3

2

1

4

VS が無効

0

2

1

4

VS が有効

3

2

1

4

例 2

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト数

初期状態

2

0

2

4

VS が無効

0

0

2

4

VS ごとの最小スケール:2 → 1

0

1

1

4

VS が有効

2

1

1

4

Example 3

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト

初期状態

4

3

1

4

VS ごとの最大スケール:4 → 1

4

3

1

1

VS が無効

0

3

1

1

VS が有効

1

0

1

1

  • 設定が異なる別の SE グループへの VS の移動

    仮想サービスを別の SE グループに移動すると、仮想サービスは常に新しい SE グループの min_scaleout_per_vs に配置されます。

例 1

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト

初期状態

2

0

2

4

ユーザーのスケールアウト

3

1

2

4

VS を(最小:1、最大:2)で新しい SE グループに移動

1

0

1

2

仮想サービスが新しい SE グループに移動されたため、 NSX Advanced Load Balancer はその状態を保持しようとせず、新しい SE グループの設定に従います。

例 2

アクション

要求された SE の数

ユーザーのスケールアウト

VS ごとの最小スケールアウト

VS ごとの最大スケールアウト数

初期状態

1

0

1

4

VS を(最小:2、最大:2)で新しい SE グループに移動

2

0

2

2

レガシー アクティブ/スタンバイ SE グループは、実質的に VS ごとの最小スケールが 2、VS ごとの最大スケールが 2 になります。

サマリ

次の表に、さまざまなシナリオで予想される変更の概要を示します。

アクション

VS:SE の数

↑ min_scaleout_per_vs

SE の現在の数が min_scaleout_per_vs 未満の場合にのみ増加

↓ min_scaleout_per_vs

同じまま

↑ max_scaleout_per_vs

同じまま

↓ max_scaleout_per_vs

同じまま

VS の無効化/有効化

max_scaleout_per_vs が上限

VS を別の SE グループに移動

新しい SE グループの min_scaleout_per_vs