NSX Managerの冗長化設定についてまとめます。検証環境や自宅環境ではリソース節約のためにNSX Managerを1台構成にすることもできますが、NSX Managerは3台の冗長化構成を採用することもできます。このページではGUIを用いた構築方法とCLIを用いた構築方法をまとめます。
自宅環境などのrequirementを満たさない低スペック環境では、NSX Managerを冗長構成にすると動作が非常に遅くなることもあります。充分なスペックが確保できないサポート対象外の環境ならば、NSX Managerを敢えて1台構成にするのも良いでしょう
GUIを用いたNSX Managerの冗長化設定
前提条件
GUIを用いたNSX Managerの構築は、内部的に1台目のNSX ManagerがvCenterに命令を出して2台目以降のNSX Managerを構築します。そのため、GUIを用いた構築をするには、NSX Managerを構築する対象となるESXiを管理するvCenterが「コンピュートマネージャ」として登録されているのが前提になります。
2台目以降のNSX Managerの構築
「システム」「アプライアンス」「NSX Manager」の順に押下して表示されるNSX Managerの一覧画面にて、「NSX アプライアンスの追加」を押下します。
NSX Managerのパラメタを入力します。見た目は異なりますが、入力すべき情報はOVAテンプレートをデプロイする時と全く同じです。
デプロイ先の情報を入力したら、「ネットワークの選択」を押下します。
NSX Managerのeth0が接続されるポートグループを選びます。画面上部に「分散仮想ポートグループ」と書かれていますが、VDS(分散仮想スイッチ)は必須ではなくVSS(標準仮想スイッチ)でも問題なく動作します。
認証情報を入力し「アプライアンスのインストール」を押下します。
しばらく待ってから画面をリロードすると、NSX Managerインストールの進捗が見られます。
同様の操作を繰り返し、3台目のNSX Managerを構築します。
3台目の構築後、しばらくの間は「劣化」と表示されることもあります。
場合によってはエラーが出力されることもあります。
サーバのスペックにも依存しますが、自宅サーバのような貧弱な環境ならば、設定が完了するまで2時間程度の待ち時間を要することもあります。完全い同期されると、「クラスタ」欄に「安定」と表示されます。
動作確認
NSX Managerは3台構成で、どのNSX Managerに命令を出しても全台のNSX Managerに設定が反映されるようになっています。例えば、以下スクリーンショットのように1台目に構築されたNSX Manager(192.168.1.121)へ命令を出すことができます。
以下スクリーンショットのように2台目に構築されたNSX Manager(192.168.1.122)へ命令を出すこともできます。
仮想IPアドレス
どのNSX Managerを操作しても差し支えないですが、おそらく、手順化する場合や自動化する場合はNSX ManagerのIPアドレスを指定することになるでしょう。「1台目のNSX Managerに障害が発生した場合は、2台目のNSX Managerを操作する」のような条件分岐を入れることは、手順化でも自動化でも、可能ならば避けたい事態です。
このような事態を避けるために、NSX Managerのうち1台を代表するIPアドレスを設定することができます。この設定はNSX-Tの製品機能を使って実現しても差し支えないし、NSX-T以外のロードバランサ製品などを使用して実現しても差し支えございません。以下、NSX-Tを使用したNSX Managerのうち1台を代表するIPアドレスを設定する方法を説明します。
3台のNSX Managerが同一セグメントに所属する場合のみNSX-Tの製品機能でIPアドレスを設定できます。NSX Managerが別セグメントに所属する場合は、ロードバランサを使用してください。
「システム」「アプライアンス」「NSX Manager」の順に押下して表示される画面で、「仮想IPの設定」を押下します。
「仮想IPアドレス」にIPアドレスを入力し、「保存」を押下します。
設定が完了するまで待ちます。
設定が完了すると、以下のように表示されます。
以降は仮想IPアドレス経由の操作が可能になることを確認します。
APIリクエストも仮想IPアドレスを用いた操作が可能です。
[root@ansible012 ~]# curl --request GET \ > -u admin:P@ssw0rdP@ssw0rd \ > --header "Content-Type:application/json" \ > -k https://192.168.1.120/policy/api/v1/infra/tier-0s/t0-router/locale-services/default/bgp { "local_as_num" : "65000", "enabled" : true, "ecmp" : true, "graceful_restart" : false, "multipath_relax" : true, "inter_sr_ibgp" : true, "graceful_restart_config" : { "mode" : "HELPER_ONLY", "timer" : { "restart_timer" : 180, "stale_route_timer" : 600 } }, "resource_type" : "BgpRoutingConfig", "id" : "bgp", "display_name" : "bgp", "path" : "/infra/tier-0s/t0-router/locale-services/default/bgp", "relative_path" : "bgp", "parent_path" : "/infra/tier-0s/t0-router/locale-services/default", "unique_id" : "82a22402-b1b1-444e-b7e7-30edd1b148ea", "marked_for_delete" : false, "overridden" : false, "_create_user" : "admin", "_create_time" : 1620024913606, "_last_modified_user" : "admin", "_last_modified_time" : 1620024913606, "_system_owned" : false, "_protection" : "NOT_PROTECTED", "_revision" : 0 }[root@ansible012 ~]#
NSX Managerの削除
NSX Managerの冗長構成が不要となった場合は、「アクション」「削除」の順に押下することでNSX Managerの削除が可能です。
CLIを用いたNSX Managerの冗長化設定
前提条件
あらかじめ3台のNSX Managerが構築されているものとします。この3台は互いをクラスタとする設定はまだ投入されておらず、互いが独立して動作している状態です。
NSX Managerクラスタへの参加
NSX Manager クラスタへ参加するには「join」コマンドを使用します。このコマンドのヘルプは以下の通りで、クラスタIDや認証情報を指定して参加します。
nsx-manager122> join 192.168.1.121 cluster-id <cluster-id> Cluster ID of existing cluster to join nsx-manager122> join 192.168.1.121 cluster-id 7824f57e-4e07-43b5-b178-b950adf6a0f9 password Password for the user thumbprint Certificate thumbprint token Authentication token username Username
まずはクラスタに参加するのに必要な情報「クラスタID」を調べます。1台目に構築したNSX Managerへadminユーザでログインし、「get cluster status」コマンドを実行します。「Cluster Id」と表示されている部分がjoinコマンドに指定する値です。
nsxt-manager121> get cluster status Fri May 07 2021 UTC 11:53:49.817 Cluster Id: 7824f57e-4e07-43b5-b178-b950adf6a0f9 Overall Status: STABLE Group Type: DATASTORE Group Status: STABLE Members: UUID FQDN IP STATUS d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CLUSTER_BOOT_MANAGER Group Status: STABLE Members: UUID FQDN IP STATUS d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CONTROLLER Group Status: STABLE <omitted>
サムプリントは「get certificate api thumbprint」コマンドで調べます。
nsx-manager122> get certificate api thumbprint Fri May 07 2021 UTC 11:54:32.227 69a8b9b316edea0ffad72c3ed385c72094e109d083f4b5d8e9c94bc2b74a351c
以上の情報を用いてNSX Managerへ参加するjoinコマンドを実行します。2台目以降に構築されたNSX Managerへadminユーザでログインし、以下のようなjoinコマンドを実行します。
この時、joinコマンドを実行したNSX Managerのデータが全て消える事に注意してください。データが残るのはjoinされる側のNSX Managerです。この旨を警告する「Data on this node will be lost. Are you sure?」に対して、「yes」と応答するとNSX Managerクラスタに参加できます。
nsx-manager123> join 192.168.1.121 cluster-id 7824f57e-4e07-43b5-b178-b950adf6a0f9 username admin thumbprint 84769df3a360e95df7e97d24a3aa165d1d4d6466c4b37ceb1f9056c5d26e2c36 Data on this node will be lost. Are you sure? (yes/no): yes Password for API user: Join operation successful. Services are being restarted. Cluster may take some time to stabilize. nsx-manager123>
動作確認
「get cluster status」コマンドを実行し、クラスタメンバが3台になっていることを確認します。
nsxt-manager121> get cluster status Fri May 07 2021 UTC 12:27:11.223 Cluster Id: 7824f57e-4e07-43b5-b178-b950adf6a0f9 Overall Status: STABLE Group Type: DATASTORE Group Status: STABLE Members: UUID FQDN IP STATUS e65a2342-adeb-6bca-e0bf-ec730079780d nsx-manager122.gokatei.go 192.168.1.122 UP fac22342-de51-af74-0b3c-ff90f0386390 nsx-manager123.gokatei.go 192.168.1.123 UP d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CLUSTER_BOOT_MANAGER Group Status: STABLE Members: UUID FQDN IP STATUS e65a2342-adeb-6bca-e0bf-ec730079780d nsx-manager122.gokatei.go 192.168.1.122 UP fac22342-de51-af74-0b3c-ff90f0386390 nsx-manager123.gokatei.go 192.168.1.123 UP d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CONTROLLER Group Status: STABLE <omitted>
仮想IPアドレス
クラスタのVIPを設定するには、以下のようなsetコマンドを使用します。
nsxt-manager121> set cluster vip 192.168.1.120 nsxt-manager121>
設定確認は以下getコマンドを使用します。
nsxt-manager121> get cluster vip Fri May 07 2021 UTC 12:30:05.503 Virtual IP address: 192.168.1.120 Assigned to: 192.168.1.122 nsxt-manager121>
NSX Managerの削除
NSX Managerをクラスタから削除するにはdetachコマンドに「ノードID」を指定して実行します。まずは「get nodes」で「ノードID」を調べます。
nsxt-manager121> get nodes Fri May 07 2021 UTC 12:31:34.345 UUID Type Display Name 8192a140-aa6d-11eb-a85d-005056a3afbb edg nsx-edge131.gokatei.go aa122a70-aa61-11eb-b96f-005056a3ebe3 edg nsx-edge132.gokatei.go fc678df8-ae42-11eb-a66d-005056a383b5 edg nsx-edge133.gokatei.go a346f3f7-8d75-4acc-9aeb-e12f3dd0d478 esx 192.168.1.141 4e4bd4b3-2a03-47e3-842a-eed41a98adc6 esx 192.168.1.142 1f3b9e57-f2ab-4dcf-9795-33fcc589dfa2 esx esxi143 d48b2342-628f-1d15-8202-41ebb06d90d3 mgr nsxt-manager121 fac22342-de51-af74-0b3c-ff90f0386390 mgr nsx-manager123 e65a2342-adeb-6bca-e0bf-ec730079780d mgr nsx-manager122 nsxt-manager121>
以下のようにdetach nodeコマンドを実行すると、NSX Managerをクラスタから削除できます。
nsxt-manager121> detach node fac22342-de51-af74-0b3c-ff90f0386390 Node has been detached. Detached node must be deleted permanently. nsxt-manager121>
確かに削除されたことを確認します。
設定反映には1分ほどの時間を要します。detachコマンド実行直後に設定確認をしても、設定未反映の場合もあります。
nsxt-manager121> get nodes Fri May 07 2021 UTC 12:32:44.587 UUID Type Display Name 8192a140-aa6d-11eb-a85d-005056a3afbb edg nsx-edge131.gokatei.go aa122a70-aa61-11eb-b96f-005056a3ebe3 edg nsx-edge132.gokatei.go fc678df8-ae42-11eb-a66d-005056a383b5 edg nsx-edge133.gokatei.go a346f3f7-8d75-4acc-9aeb-e12f3dd0d478 esx 192.168.1.141 4e4bd4b3-2a03-47e3-842a-eed41a98adc6 esx 192.168.1.142 1f3b9e57-f2ab-4dcf-9795-33fcc589dfa2 esx esxi143 d48b2342-628f-1d15-8202-41ebb06d90d3 mgr nsxt-manager121 e65a2342-adeb-6bca-e0bf-ec730079780d mgr nsx-manager122
「get cluster status」の出力も、クラスタメンバが2台に変わったことを確認できます。
nsxt-manager121> get cluster status Fri May 07 2021 UTC 12:43:28.327 Cluster Id: 7824f57e-4e07-43b5-b178-b950adf6a0f9 Overall Status: STABLE Group Type: DATASTORE Group Status: STABLE Members: UUID FQDN IP STATUS e65a2342-adeb-6bca-e0bf-ec730079780d nsx-manager122.gokatei.go 192.168.1.122 UP d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CLUSTER_BOOT_MANAGER Group Status: STABLE Members: UUID FQDN IP STATUS e65a2342-adeb-6bca-e0bf-ec730079780d nsx-manager122.gokatei.go 192.168.1.122 UP d48b2342-628f-1d15-8202-41ebb06d90d3 nsxt-manager121 192.168.1.121 UP Group Type: CONTROLLER Group Status: STABLE <omitted>
GUI操作の場合は仮想マシンそのものも削除されましたが、CLIはクラスタに参加してない状態にするだけです。もし仮想マシンを削除するならば、vCenterなどを用いて仮想マシンを削除しましょう。まずは、電源を停止します。
次に、仮想マシンを削除します。