各 NSX Advanced Load Balancer サービス エンジン (SE) グループには、仮想サービスごとに最小および最大スケール アウトの設定があります。これらの設定は、仮想サービスをスケーリングできる SE の数を制御します。このトピックでは、これらの 2 つの設定を仮想サービスで変更した場合の影響について説明します。
スケール アウト設定の詳細については、「サービス エンジン グループ」を参照してください。
仮想サービスは、次のシナリオで影響を受ける可能性があります。
SE グループの最小および最大設定が動的に変更された場合。SE グループに配置されたすべての仮想サービスが影響を受けます。
設定が異なる別の 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 つの数値の合計であることに注意する必要があります。
SE グループの VS ごとの最小スケールアウト (min_scaleout_per_vs)。
すべての仮想サービスで 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 |
アクション |
要求された 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 グループ内のすべての仮想サービスを 1 SE にスケール ダウンすることである場合、次の 3 つのオプションが利用可能です。
SE グループの設定を変更したら、すべての仮想サービスを手動でスケール ダウンして、ユーザーのスケールアウトを 0 に減らします。
SE グループの VS ごとの最大スケールを 1 に設定します。すべての仮想サービスを無効にして有効にします(無効化後に最大スケールを減らすこともできます)。
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 |
アクション |
要求された 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 |
例 2
アクション |
要求された SE の数 |
ユーザーのスケールアウト |
VS ごとの最小スケールアウト |
VS ごとの最大スケールアウト数 |
---|---|---|---|---|
初期状態 |
1 |
0 |
1 |
4 |
VS を(最小:2、最大:2)で新しい SE グループに移動 |
2 |
0 |
2 |
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 の無効化/有効化 |
|
VS を別の SE グループに移動 |
新しい SE グループの |