このセクションでは、NSX Advanced Load Balancer OpenStack AZ 認識の動作について説明します。

NSX Advanced Load Balancer OpenStack 展開では、OpenStack アベイラビリティ ゾーンを認識します。仮想サービスの冗長リソース(サービス エンジン、プール メンバーなど)を OpenStack AZ 間で展開すると、アプリケーションが停止する可能性が低くなります。

注:

OpenStack AZ はサブネットを分離しません。逆に、サブネットは OpenStack AZ にまたがります。デフォルトでは、すべてのホストはすべてのサブネットにアクセスできます。したがって、この機能を使用しても、ネットワークの停止からアプリが免除されることはありません。

OpenStack AZ の展開

NSX Advanced Load Balancer の OpenStack AZ 認識により、SE グループ内の SE が複数の OpenStack AZ に展開されます。



上記のフローは次のとおりです。

  • AZ-1 と AZ-2 の 2 つの AZ が定義されています。時間 t0 に開始し、SE グループが合計 4 つの SE に展開されて表示されます。

  • t1 では、SE1 は AZ-1 に展開されます。それ以上にグループを拡張する場合、NSX Advanced Load Balancer の目標は、グループが各 AZ に少なくとも 1 つの SE を確実に持つようにすることです。

  • SE2 を展開する必要がある場合、NSX Advanced Load Balancer は AZ-2 に配置しようとします。この配置は t2 で成功しています。

  • 以降の SE 展開では、NSX Advanced Load Balancer は定義されたすべての AZ の中からランダムに選択します。

  • NSX Advanced Load Balancer は SE3 を展開するときに、AZ-2 をランダムに選択します。しばらくすると、SE4 が展開されます。AZ-1 はランダムに選択されます。

  • ただし、AZ-2 が選択された可能性があります。NSX Advanced Load Balancer は、ランダム アルゴリズムに依存して、SE を時間の経過とともに AZ 間で均等に分布します。AZ を選択する際、AZ の既存の SE 占有率は考慮されません。

  • AZ に障害が発生した場合、NSX Advanced Load Balancer は影響を受けた SE を残りの状態が良好な AZ に再展開し、常に少なくとも 1 つの SE がそれぞれで実行されるようにします。

NSX Advanced Load Balancer ユーザー インターフェイスを介した OpenStack AZ の構成

SE グループのリストについては、[インフラストラクチャ] > [サービス エンジン グループ] の順に移動します。[編集] アイコンをクリックします。

[SE グループ エディタ] が表示されたら、[詳細] タブをクリックして、SE 配置オプションを表示します。NSX Advanced Load Balancer OpenStack AZ 認識をオフのままにするには、[任意][サービス エンジンの範囲] のデフォルト)を選択します。または、[アベイラビリティ ゾーン] を選択し、ドロップダウン メニューから 1 つ以上の AZ を選択します。

NSX Advanced Load Balancer CLI を介した OpenStack AZ の構成

ServiceEngineGroup オブジェクト内の繰り返しグループである openstack_availability_zones に値を割り当てることで、1 つ以上の OpenStack アベイラビリティ ゾーンを指定します。NSX Advanced Load Balancer は、1 つ以上のゾーンが定義されている場合に、SE グループ メンバーをアベイラビリティ ゾーンに展開します。openstack_availability_zones 値を指定しない場合、デフォルト(AZ 認識なし)が優先されます。

NSX Advanced Load Balancer シェルの configure コマンドは、ServiceEngineGroup オブジェクト内のパラメータの値を示し、パラメータの変更を許可します。以下は省略された出力例であり、ほとんどのパラメータは説明を明確にするために削除されています。

admin:jenkins-func-placement-controller]: > configure serviceenginegroup Default-Group
Updating an existing object. Currently, the object is:
+---------------------------------------+---------------------------------------------------------+
| Field                                 | Value                                                   |
+---------------------------------------+---------------------------------------------------------+
| uuid                                  | serviceenginegroup-5c82725c-8932-4f8a-88f7-f8063546c293 |
| name                                  | Default-Group                                           |
| max_vs_per_se                         | 4                                                       |
| min_scaleout_per_vs                   | 1                                                       |
| max_scaleout_per_vs                   | 2                                                       |
| max_se                                | 4                                                       |
.                                       .                                                         .
.                                       .                                                         .
.                                       .                                                         .
| openstack_availability_zones[1]       | testAZ                                                  |
| openstack_availability_zones[2]       | nova                                                    |
.                                       .                                                         .
.                                       .                                                         .
.                                       .                                                         .
+---------------------------------------+---------------------------------------------------------+