虚拟机在主机的清单中显示为未知并在 vCenter Server 中显示为无效
search cancel

虚拟机在主机的清单中显示为未知并在 vCenter Server 中显示为无效

book

Article ID: 343390

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 Virtual machines appear as unknown in inventory on host and invalid in vCenter Server (1031605) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • 直接指向到主机的 vSphere Client 将虚拟机显示为未知。
  • 连接到 vCenter Server 的 vSphere Client 将虚拟机显示为无效。
  • 未出现与存储或 vmkwarning 相关的错误。
  • 主机上的所有虚拟机本身运行和响应正常。


Environment

VMware ESXi 4.0.x Embedded
VMware ESXi 3.5.x Embedded
VMware vCenter Server 4.1.x
VMware vSphere ESXi 5.1
VMware ESX 4.1.x
VMware ESXi 4.1.x Embedded
VMware ESX 4.0.x
VMware ESXi 3.5.x Installable
VMware ESXi 4.1.x Installable
VMware vCenter Server 5.0.x
VMware ESXi 4.0.x Installable
VMware vCenter Server 5.1.x
VMware vCenter Server 4.0.x
VMware vSphere ESXi 5.0

Resolution

要解决此问题,请执行以下操作:

对于 ESX 3.5 和 4.x

  1. 从 vCenter Server 清单中移除该主机。
  2. 使用 SSH 直接连接到主机。有关详细信息,请参见使用 SSH 客户端连接到 ESX 主机 (1019852)
  3. 运行下述命令集之一:

    注意:此操作将在主机中取消注册所有虚拟机。

    • #vmware-cmd -l
      #cd /etc/vmware/hostd/
      #cpvmInventory.xml vmInventory.xml.bak
      (为 vmInventory.xml 创建一个副本)

    • #mvvmInventory.xml vmInventory_xml.bak(重命名 vmInventory.xml)
      #service vmware-vpxa stop
      #service mgmt-vmware restart
      #service xinetd restart
      #service vmware-vmkauthd restart

  4. 登录到 vSphere Client 并验证虚拟机清单现在显示为空。
  5. 使用以下命令将每个虚拟机重新注册到主机上的清单:

    vmware-cmd -s register(VMX 的完整路径)

    注意:也可以将空主机重新添加到 vCenter Server,然后使用 vSphere Client 将所有虚拟机重新注册到清单。

  6. 向主机注册所有所有虚拟机后,将主机重新添加到 vCenter Server。


对于 ESXi 3.5、4 .x 和 5.x

  1. 以 root 用户身份登录到 VMware ESX/ESXi 主机。有关 VMware ESXi 4.1 和 ESXi 5.x 技术支持模式的详细信息,请参见 Using Tech Support Mode in ESXi 4.1 and ESXi 5.x (1017910)
  2. 要列出所有正在运行的虚拟机及其对应的 VMID,请运行以下命令:

    #vim-cmd vmsvc/getallvms
    #cd to /etc/vmware/hostd/


  3. 通过运行以下命令创建 vmInventory.xml 的副本:

    #cp vmInventory.xml vmInventory.xml.bak


  4. 通过运行以下命令停止 vpxa 和 hostd 服务:

    #/etc/init.d/vpxa stop
    #/etc/init.d/hostd stop

  5. 通过运行以下命令重命名 vmInventory.xml:

    注意:此操作将从主机取消注册所有虚拟机。

    #mv vmInventory.xml vmInventory_xml.bak

  6. 通过运行以下命令启动 vpxa 和 hostd 服务:

    #/etc/init.d/vpxa start
    #/etc/init.d/hostd start

  7. 登录到 vSphere Client 并验证虚拟机清单现在显示为空。
  8. 使用以下命令将每个虚拟机重新注册到主机上的清单中:

    #vim-cmd solo/register full_path_of_VMX

    例如:# vim-cmd solo/registervm /vmfs/volumes/datastore_name/VM_directory/VM_name.vmx


Additional Information

Virtual machines appear as unknown in Inventory on host and invalid in vCenter Server