NSX ホストの準備が次の EAM エラーで失敗する:「ホストが vCenter Server のインベントリに存在しなくなりました(Host is no longer in vCenter inventory)」
search cancel

NSX ホストの準備が次の EAM エラーで失敗する:「ホストが vCenter Server のインベントリに存在しなくなりました(Host is no longer in vCenter inventory)」

book

Article ID: 322981

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
免責事項: これは英文の記事「NSX Host Preparation fails with an EAM error: "Host is no longer in vCenter inventory" (52550)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
  • NSX ホストの準備に失敗します。
    • VXLAN/FDW
    • Guest Introspection
    • サードパーティの統合
  • EAM は NSX クラスタに新規に追加されたホストを準備していません。
  • EAM MOB は空白のページをロードしている可能性があります。
  • EAM ログに、次のようなエントリが表示されます。

    | ERROR | vc-callback | AgencyImpl.java | 1295 | Failed to add agent to agency (AgencyImpl(ID:'Agency:XXXXX')): java.lang.RuntimeException: Host is no longer in vCenter inventory.


Environment

VMware vCenter Server Appliance 5.0
VMware vCenter Server Appliance 5.1.x
VMware vCenter Server 4.1.x
VMware vCenter Server 5.x - View
VMware vCenter Server 5.1 Extended Support
VMware vCenter Server 6.5.x
VMware vCenter Server 6.0.x
VMware vCenter Server 5.1.x
VMware vCenter Server 5.0 Beta
VMware vCenter Server Appliance 6.0.x
VMware vCenter Server 4.0.x
VMware vCenter Server 5.0.x
VMware vCenter Server 5.5.x
VMware vCenter Server Appliance 5.0.x
VMware vCenter Server Appliance 5.5.x

Cause

このシナリオは、クラスタ間での ESXi ホストの移行に使用される方法によって発生します。たとえば、ESXi ホストをスタンドアローン(クラスタに不参加)から NSX 準備済みクラスタに移行する、などです。  

ホストの親の関係は、次の 2 つのプロパティに格納されています。
  • (Cluster) ComputeResource のホスト(ホストの ID のリスト)
  • HostSystem の親((Cluster)ComputeResource の ID)
これら 2 つのプロパティは、同時に更新されません。

ネットワーク遅延、同時ロックなどの条件がいくつかあるため殆ど起こりませんが、ESXi ホストをスタンドアローンから移動する(またはクラスタに直接追加する)と、cluster.hosts のプロパティは変更されても、host.parent は前の(存在しなくなった)オブジェクトを指したままとなります。

この状態になった場合に、EAM がホストの親を経由してホストの内部表現を作成すると、エラー「Host is no longer in vCenter inventory」が発生して、このホストのエージェント(準備)が作成されません。

vCenter Server のバージョンに応じて、この問題には 2 つの異なるバージョンがあります。

原因 1 - 「Host is no longer in vCenter inventory」 - U3c より前の vCenter Server 6.0
  1. ESXi ホストを、スタンドアローンから NSX 準備済みクラスタに移動しました。
  2. 最初に EAM/NSX 設定を削除せずに、ESXi ホストを vCenter Server から削除しました。
  3. 後で、ESXi ホストを vCenter Server に追加し直して、さらに NSX 準備済みクラスタに追加しました。
  4. EAM はエージェントを作成して準備しますが、VPXD 内の HostSystemMo が古いまたは正しくない、VPXD インベントリ内に存在しなくなった親 ID を指しているため、最終的に失敗します。

    :これは、スタンドアローン ホストがクラスタに参加した後にこのホストの親が強制終了されたために、スタンドアローン ホストをクラスタに移動する際の短い時間枠で発生します。
     
  5. EAM は「RuntimeException: Host is no longer in vCenter inventory」という例外が発生して失敗し、ホスト MOID が EAM のランタイム内で引き続き保持されます。
原因 2 - 「Host is no longer in vCenter inventory」 - vCenter Server 6.0 U3c および U3d
  1. 原因 1 と同様に、ESXi ホストをスタンドアローンから NSX 準備済みクラスタに移動しました。
  2. vCenter 6.0 U3c および 6.0 U3d には、メカニズムに伴う別の問題があります。このメカニズムでは、作成されたエージェントのレコードのうち、ホストの追加に関するすべてのものが、エージェンシー内のこのエージェントのマッピング レコードを除いて、クリーン アップされます。
  3. ソフトウェアの不具合は、EAM により、EAM ランタイム内のエージェンシーから既存のすべてのエージェントがアンロードされることです。
  4. EAM ログに、次のようなエントリが表示されます。

    | ERROR | vc-callback | AgencyImpl.java | 1295 | Failed to add agent to agency (AgencyImpl(ID:'Agency:XXXXX')): java.lang.RuntimeException: Host is no longer in vCenter inventory
    | WARN | eam-0 | AgencyImpl.java | 1954 | Disposing agency: AgencyImpl(ID:'Agency:XXXXXXX') due to failed load up.
    | ERROR | eam-0 | AgencyImpl.java | 1895 | Failed to load agent: ManagedObjectReference: type = Agent, value = f18cd000-dcd5-4d30-8d6b-5f12b04e46fa, serverGuid = b0827a9b-fccd-41dd-8b27-caf8418da719.Error: null java.lang.NullPointerException

EAM MOB が「Host not covered by scope anymore」のロードに失敗する
  • 原因 1 または原因 2 に対して発生する可能性のある副作用です。
  • 上記の問題のために良好な状態でない EAM サービスを再起動すると、発生します。
  • EAM ログに、次のようなエントリが表示されます。

    | ERROR | eam-0 | VcListener.java | 116 | An unexpected error in the changes polling loop
    | ERROR | eam-0 | AgencyImpl.java | 1895 | Failed to load agent: ManagedObjectReference: type = Agent, value = d6429441-6953-4795-81ff-efc455232e9a, serverGuid = b0827a9b-fccd-41dd-8b27-caf8418da719.Error: Host not covered by scope anymore

Resolution

この問題が解決されている VMware vCenter Server 6.5 を VMware Downloads で入手できます。

:この対策を実行しない場合は、データベースのメンテナンスが必要になります。VMware サポートにサポート リクエストを発行して、問題の説明にこのナレッジベースの記事 ID (KB52550) を引用してください。詳細については、「How to Submit a Support Request」を参照してください。

Workaround:
この問題を回避するには、次の手順を実行します。
  1. 状況の重要度に応じて、EAM を再起動すると、EAM ランタイムにエージェントが見つからない問題を解決できることがあります。
  2. 予防的な回避策として、NSX 以外の準備済みクラスタにホストを追加してから、NSX クラスタに移動します。(NSX 準備済みクラスタにスタンドアローン ホストを移動しないでください)
    • スタンドアローン ホストに割り当てられている VPXD の親 ID があります。ホストがクラスタに含まれている場合は、この ID は割り当てられません。ソフトウェアの不具合は、VPXD の親 ID、および NSX 準備済みクラスタに移行する場合の削除メカニズムに関連しています。