ファントム コントローラは存在しない仮想マシン (VM) とは限りません。実行中のコントローラ仮想マシンがファントム コントローラになることもあります。また、クラスタに参加している場合も、参加していない場合もあります。NSX Manager は、vCenter Server インベントリ内のすべての仮想マシンのリストを同期します。vCenter Server またはホストが NSX Manager からの要求以外でコントローラ仮想マシンを削除したり、vCenter Server インベントリがコントローラ仮想マシンのリファレンス MOID (管理対象オブジェクト ID) を変更すると、ファントム コントローラが作成されます。

コントローラが NSX から作成されると、設定情報は NSX Manager 内に保存されます。NSX Manager は、vCenter Server を介して新しいコントローラ仮想マシンをデプロイします。

NSX の管理者は、コントローラを作成するときに、IP アドレス プールなどの設定情報を NSX Manager に提供します。vCenter Server に仮想マシンの作成要求が送信されると、NSX Manager は、プールから IP アドレスを削除し、この IP アドレスを残りのコントローラの設定情報といっしょにプッシュします。NSX Manager は、vCenter Server が要求のステータスを確認するまで待機します。

  • The controller creation process was successful: コントローラ仮想マシンが正常に作成されると、vCenter Server がコントローラ仮想マシンを起動します。NSX Manager は、仮想マシンの管理対象オブジェクト ID (MOID) と残りのコントローラの設定情報を保存します。MOID(または MO-REF)は、vCenter Server がインベントリ内のオブジェクトに割り当てる一意の識別子です。vCenter Server インベントリに残っている場合、vCenter Server は、この MOID を使用して仮想マシンを追跡します。
  • The controller creation process was not successful: IP アドレスとネットワーク接続の設定に誤りがあると、NSX ManagervCenter Server に接続できません。NSX Manager は、1 つのノード コントローラ クラスタ(最初のクラスタ)の作成または実行中のクラスタに参加する新しいコントローラの作成を、事前に設定された期間待機します。タイマーが切れると、NSX Manager は仮想マシンの削除を vCenter Server に要求します。IP アドレスがプールに戻され、NSX がコントローラの作成失敗を宣言します。

ファントム コントローラが作成される仕組み

NSX Manager がコントローラの削除を要求すると、vCenter Server は MOID を使用して、削除対象のコントローラ仮想マシンを検索します。

ただし、vCenter Server のアクティビティで vCenter Server インベントリからコントローラ仮想マシンが削除されると、vCenter Server はこの MOID をデータベースから削除します。vCenter Server のインベントリから削除された後も、NSX Manager ではコントローラ仮想マシンが稼動しています。ただし、vCenter Server には、コントローラ仮想マシンは表示されません。vCenter Server がインベントリから仮想マシンを削除しても、仮想マシン自体は削除されていない可能性があります。仮想マシンが実行中の場合、NSX コントローラ クラスタに参加しているか、参加しようとしている場合があります。

ファントム コントローラが作成される典型的な例は次のとおりです。

  • vCenter Server の管理者がインベントリからコントローラ仮想マシンのホスト削除します。このホストは後に再度追加します。ホストが削除されると、vCenter Server がホストとその仮想マシンに関連付けられているすべての MOID を削除します。同じホストを再度追加すると、vCenter Server は、ホストと仮想マシンに新しい MOID を割り当てます。NSX のユーザーから見ると、ホストと仮想マシンは以前と変わりませんが、vCenter Server から見ると、このホストと仮想マシンは新しいオブジェクトとなります。実際には、ホストも仮想マシンも削除前と変わりません。ホストと仮想マシンで実行されるアプリケーションも変わりません。
  • vCenter Server の管理者が、vCenter Server またはホストの管理を使用して、コントローラ仮想マシンを削除します。この削除は、NSX Manager が開始したものではありません。
  • このような削除には、ホストやストレージの障害で仮想マシンが消失するケースも含まれます。この場合、仮想マシンが vCenter Server から切断され、クラスタと NSX Manager に対する接続も失われます。この削除は NSX Manager が開始したものでないため、NSX Manager とコントローラ クラスタは、コントローラがまだ有効な状態だと認識します。NSX Manager には、コントローラ ノードが停止し、クラスタの一部ではなくなり、ユーザー インターフェイスに表示されないことを示すステータスが返されます。また、NSX Manager のログには、コントローラが到達不能であることが記録されます。

ファントム コントローラが表示された場合の対処方法

  1. NSX Controller が切断されたの説明に従って、コントローラを同期します。
  2. ログ エントリを確認します。コントローラ仮想マシンが誤って削除された場合または破損している場合は、[強制的に削除 (Forcefully Delete)] オプションを使用して NSX Manager データベースからエントリをクリアする必要があります。詳細については、NSX Controller の削除を参照してください。
  3. コントローラを削除したら、次のことを確認します。
  • コントローラ仮想マシンが実際に削除されている。
  • show control-cluster startup-nodes コマンドを使用して、有効なコントローラのみを表示する。
  • NSX Managerの Syslog エントリに、不要なコントローラが含まれていない。

NSX 6.2.7 以降では、NSX Managerが元の MOID に基づいて、vCenter Server のインベントリにコントローラ仮想マシンが残っているかどうか確認します。NSX Manager がインベントリでコントローラ仮想マシンを検出できない場合、NSX Manager は仮想マシンのインスタンス UUID を使用して仮想マシンを検索します。インスタンス UUID は仮想マシン内に保存されているため、vCenter Server のインベントリに仮想マシンが追加されても変更されません。NSX Manager が該当のインスタンス UUID を持つ仮想マシンを検出すると、NSX Manager は新しい MOID でデータベースを更新します。

ただし、コントローラ仮想マシンのクローンを作成する場合、クローン作成された仮想マシンは新しいインスタンス UUID を持ち、元の仮想マシンと同じプロパティが設定されます。NSX Manager は、クローン作成された仮想マシンの MOID を検出できません。

ファントム コントローラのログ エントリ

ファントム コントローラを検出すると、ログに次のエラー レベルのエントリが記録されます。

  • 2017-07-31 22:15:05.844 UTC ERROR NVPStatusCheck ControllerServiceImpl:2146 - Controller <#> does not exist, might be deleted already. Skip saving its connectivity info.
  • 2017-07-31 22:15:05.769 UTC ERROR NVPStatusCheck ControllerServiceImpl:2580 - the node is created by this NSX Manager <#>, but database has no record and delete might be in progress.