このトピックでは、NSX Advanced Load Balancer Controller クラスタに関する基本的な質問に答えます。
NSX Advanced Load Balancer Controller クラスタでサポートされるノードの数はいくつですか。
NSX Advanced Load Balancer Controller クラスタには、1 台のクラスタに 1 台(スタンドアローン モード)または 3 台のコントローラ ノードを含めることができます。
NSX Advanced Load Balancer Controller クラスタの動作に必要なノードの数はいくつですか。
3 ノード クラスタでは、クラスタが動作するために、ノードのクォーラム(マジョリティ)があることが必要です。つまり、少なくとも 2 台のノードが稼動している必要があります。
通常の動作で、NSX Advanced Load Balancer Controller 内の 3 台のノードがどのように使用されるかを説明してください。
3 台のノードからリーダー ノードが選択され、クラスタのすべてのアクティブ メンバー間でプロセスの起動またはシャットダウンを調整します。構成データベースとメトリック データベースは、リーダー ノードでアクティブになり、フォロワー ノードでスタンバイ モードになるように構成されます。
ストリーミング レプリケーションは、アクティブ データベースをスタンバイ データベースに同期するように構成されます。分析機能は、クラスタのすべてのノード間で共有されます。特定の仮想サービスは、ログとメトリックをクラスタのノードの 1 つにストリーミングします。
フォロワー ノードが停止したらどうなりますか。
このノードはアクティブ メンバー リストから削除されます。このノードで実行された作業は、NSX Advanced Load Balancer Controller クラスタ内の残りのノード間で再分散されます。
リーダー ノードが停止したらどうなりますか。
フォロワー ノードの 1 つがリーダーとして昇格します。これにより、クラスタ内の残りのノード間でプロセスのウォーム リスタートがトリガされます。新しいリーダーでスタンバイの構成とメトリック データベースをスタンバイからアクティブに昇格するには、ウォーム スタンバイが必要です。
注:ウォーム リスタート中、Controller の REST API は 2 ~ 3 分間使用できません。
2 台のノードが停止するとどうなりますか。
少なくとも 1 台のノードが稼動するまで、クラスタ全体が動作しなくなります。クラスタを動作可能にするには、ノードのクォーラム(3 つのうち 2 つ)が稼動している必要があります。
クラスタ コンバージェンス(単一または複数のノードが停止して稼動状態に戻る)の間、トラフィックは中断されますか。
単一または複数のノードが停止し、再び稼動すると、クラスタは動作しなくなり、SE は構成済みの仮想サービスのためにトラフィックを転送し続けます。これはヘッドレス モードと呼ばれます。
分析(ログとメトリック)は SE でバッファされます。Controller クラスタが再び稼動状態になると、クラスタは SE と再同期し、メトリックとログの収集を開始します。この間、データ プレーンのトラフィックは正常に流れ続けます。
3 台のノードのうち 2 つが完全に停止して回復できない場合は、動作しないクラスタをリカバリします。
詳細については、「動作しない Controller クラスタのリカバリ」を参照してください。
3 台の NSX Advanced Load Balancer Controller ノードがすべて完全に停止し、回復できない場合は、システムをリカバリします。
詳細については、「NSX Advanced Load Balancer 構成のバックアップとリストア」を参照してください。
Controller クラスタのメンバーシップを再構成します。
詳細については、「NSX Advanced Load Balancer Controller クラスタ構成の変更」を参照してください。
リソース割り当て(メモリ、CPU、ドライブ容量)が異なる NSX Advanced Load Balancer Controller のノードをクラスタに含めることはできますか。
これらの同じリソースを、Controller クラスタ内の 3 台のノードそれぞれに割り当てることをお勧めします。時間の経過とともに、成長に合わせてクラスタ内の NSX Advanced Load Balancer Controller のサイズ変更(リソース割り当ての変更)が必要になったら、一度に 1 台の NSX Advanced Load Balancer Controller ノードでリソース割り当てを変更します。ただし、望ましいのは、クラスタ内のすべてのノードが最終的には同じ割り当てにサイズ変更されることです。
クラスタ内の NSX Advanced Load Balancer Controller を異なるサブネットに配置できますか。
はい。この構成はサポートされており、特定のトポロジでは、フォルト トレランス向上のために推奨される場合さえあります。ただし、Controller を別々のサブネットに配置する場合の制約は、クラスタ IP アドレスがサポートされていないことです。クラスタ IP アドレスを使用するには、すべてのコントローラ ノードが同じサブネット内にあることが必要です。
クラスタ リーダーは手動で変更できますか。
いいえ。現在、この操作はサポートされていません。リーダーは、クラスタの初期展開時、または完全に停止したクラスタを回復するときに選択できます。ただし、クラスタの動作中にリーダーを手動で変更することはできません。
NSX Advanced Load Balancer Controller のコントローラは、リーダーの選出に参加し、障害発生時には新しいリーダーを自動的に決定します。
クラスタのフェイルオーバー中にはどのタイマーが使用されますか。クラスタのフェイルオーバー タイマーは構成可能ですか。
- リーダーの障害
-
クラスタのリーダー Controller に障害が発生すると、Controller プロセスの内部ウォーム リスタートがトリガされます。通常、これには、リーダーに障害が発生したかどうかが検出されてから 2 ~ 3 分かかります。
- リーダーのグレースフル再起動
-
グレースフル再起動の場合、障害の検出はほぼ瞬時に行われます。
- リーダーのグレースフルでないパワーオフ
-
リーダーのグレースフルでないパワーオフの場合、リーダーに障害が発生したかを検出するのに最大 30 秒かかる場合があります。
これらのタイマーはテストに基づいて調整されていますが、構成することはできません。
構成変更をフォロワー コントローラで直接行うことはできますか。
はい。ほぼすべての構成変更は、どのコントローラ ノードでも行うことができます。
例外:
クラスタ自体の構成(ノードの IP アドレスとクラスタ アドレス)。
リーダー ノードでのみ実行されるアップグレード。
異なるリージョンにある複数のデータセンターで推奨されるクラスタ展開オプションは何ですか。
NSX Advanced Load Balancer は、Controller クラスタを単一のリージョン内にのみ展開することをお勧めします。ただし、メンバー ノードはリージョン内の複数のアベイラビリティ ゾーンに展開されます。リージョンが複数ある場合は、リージョンごとに 1 台の Controller クラスタを展開することをお勧めします(詳細については、「異なるネットワークの NSX Advanced Load Balancer Controller のクラスタリング」を参照してください)。
NSX Advanced Load Balancer メトリック データベースのインポート方法およびエクスポート方法を教えてください。
バージョン 22.1.2 にアップグレードする前に、メトリック データベースをエクスポートすることをお勧めします。メトリック データベースをエクスポートするには、/var/lib/postgresql/10/pg_metrics/ ディレクトリをコピーし、コントローラ仮想マシンの外部に保存します。以前のリリースにロールバックする必要がある場合は、エクスポートされたメトリックをインポートできます。これにより、データの損失を防ぐことができます。
メトリック データベースをインポートするには、次の手順を実行します。
最初にフォロワー ノードで次のコマンドを実行し、次にリーダーで次のコマンドを実行して、プロセス スーパーバイザーを停止します。
systemctl stop process-supervisor
コピーした pg_metrics ディレクトリをリーダーの /var/lib/postgresql/10/pg_metrics/ に移動します。
次を実行して、まずリーダーでプロセス スーパーバイザーを起動し、次にフォロワーで起動します。これにより、インポートされた pg_metrics データがリーダーからフォロワーにレプリケートされます。
python3 /opt/avi/scripts/pg_rec_fix_cluster.py --nodelist leader_ip follower_1_ip follower_2_ip
注:メトリック データベースのサイズに基づいて、クラスタが HA_ACTIVE になるまでには時間がかかります。