Search the VMware Knowledge Base (KB)
View by Article ID

启用虚拟闪存后,VMware vCenter Server 5.5 消耗大部分 CPU、内存或磁盘 I/O (2099867)

  • 0 Ratings

Symptoms

免责声明:本文为 After enabling Virtual Flash, VMware vCenter Server 5.5 consumes most of the CPU, memory, or disk I/O (2072392) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • vSphere Server 环境中启用了虚拟闪存 (vFlash)。
  • 大部分的 CPU 和内存由以下对象消耗:

    • vpxd.exe
    • java.exe

  • 由于 VMware vCenter Inventory Service 数据文件夹大小增加(位于 C:\Program Files\VMware\Infrastructure\Inventory Service),磁盘空间消耗迅速。
  • 登录 vSphere Web Client 失败并显示以下错误:

    未针对 VMware Inventory Service 对客户端进行身份验证 - https://<VC>:10433 (Client is not authenticated to VMware Inventory Service - https://<VC>:10433)

    注意:即使登录成功,在 vSphere Web Client 中也不提供完整清单。

  • 通过 vSphere Client 在 vCenter Server 中搜索对象失败并出现以下错误:

    无法连接到 Web 服务以执行查询。请验证 https://VC:10433 上是否正在运行“VMware VirtualCenter Management Webservices”服务 (Unable to connect to web services to execute query. Verify that the 'VMware VirtualCenter Management Webservices' service is running on https://VC:10433)

  • 文件 ds.log(位于 C:\ProgramData\VMware\Infrastructure\Inventory Service\Logs)包含类似以下内容的条目:
ERROR com.vmware.vim.query.server.provider.impl.ProviderManagerServiceImpl] Store eror processing atom feed:
com.vmware.vim.query.server.store.exception.StoreException: com.vmware.vim.query.server.store.exception.StoreException: org.w3c.dom.ls.LSException: XML docu
ment structures must start and end within the same entity.
at com.vmware.vim.query.server.store.impl.StoreImpl.updateVmomiPullAtomFeed(StoreImpl.java:2168)
at com.vmware.vim.query.server.store.impl.StoreImpl.update(StoreImpl.java:2008)
at com.vmware.vim.query.server.provider.AbstractAtomPullProviderBase.checkFeed(AbstractAtomPullProviderBase.java:144)
at com.vmware.vim.query.server.provider.impl.ProviderManagerServiceImpl$FeedPump.run(ProviderManagerServiceImpl.java:763)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.vmware.vim.query.server.store.exception.StoreException: org.w3c.dom.ls.LSException: XML document structures must start and end within the sam
e entity.
at com.vmware.vim.query.server.store.impl.AtomFeedProcessor$EntryProcessor.call(AtomFeedProcessor.java:129)
at com.vmware.vim.query.server.store.impl.AtomFeedProcessor$EntryProcessor.call(AtomFeedProcessor.java:46)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
... 3 more
Caused by: org.w3c.dom.ls.LSException: XML document structures must start and end within the same entity.
at xDB_9_0_11.qP.a(xdb:340)
at xDB_9_0_11.qP.a(xdb:354)
at xDB_9_0_11.qP.a(xdb:138)
at xDB_9_0_11.qP.c(xdb:133)
at xDB_9_0_11.qP.parse(xdb:46)
at com.vmware.vim.query.server.store.impl.AtomFeedProcessor$EntryUtil.create(AtomFeedProcessor.java:549)
at com.vmware.vim.query.server.store.impl.AtomFeedProcessor$PullEntryProcessor.processEntry(AtomFeedProcessor.java:308)
at com.vmware.vim.query.server.store.impl.AtomFeedProcessor$EntryProcessor.call(AtomFeedProcessor.java:101)
... 9 more
Caused by: xDB_9_0_11.Ex: XML document structures must start and end within the same entity.
::::1:900395:900394:XML document structures must start and end within the same entity.
at xDB_9_0_11.jD.a(xdb:333)
at xDB_9_0_11.jD.a(xdb:106)
at xDB_9_0_11.qP.a(xdb:352)
... 15 more
Caused by: ::::1:900395:900394:XML document structures must start and end within the same entity.
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanLiteral(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at xDB_9_0_11.jD.a(xdb:306)
... 17 more
  • 文件 vpxd.log(位于 C:\ProgramData\VMware\VMware VirtualCenter\Logs)包含类似以下内容的条目:

[06236 error 'commonvpxVmomi' opID=3C35744C-001F520A-a8] [VpxVmomi] Exception while sending result: Not initialized: vim.host.FileSystemVolume volume
YYYY-02-04T07:54:16.157+01:00 [06236 verbose 'commonvpxVmomi' opID=3C35744C-001F520A-a8] backtrace[00] rip 000000018018cd7a
backtrace[01] rip 0000000180106c48
backtrace[02] rip 000000018010803e
backtrace[03] rip 00000001800907f8
backtrace[04] rip 0000000000524103
backtrace[05] rip 000000000059c307
backtrace[06] rip 00000000005a572c
backtrace[07] rip 00000000005a5be5
backtrace[08] rip 00000000005a654d
backtrace[09] rip 00000000005a68e7
backtrace[10] rip 00000000005a6a04
backtrace[11] rip 0000000000582407
backtrace[12] rip 00000000005833d6
backtrace[13] rip 000000013fd446d9
backtrace[14] rip 000000000055a527
backtrace[15] rip 000000000055cf80
backtrace[16] rip 00000000005663c9
backtrace[17] rip 0000000180154112
backtrace[18] rip 0000000180159031
backtrace[19] rip 000000018015a8b7
backtrace[20] rip 000000018015add8
backtrace[21] rip 000000018015398a
backtrace[22] rip 0000000180156269
backtrace[23] rip 0000000180155853
backtrace[24] rip 0000000180156793
backtrace[25] rip 0000000180156ad3
backtrace[26] rip 000000018019ef4a
backtrace[27] rip 0000000074052fdf
backtrace[28] rip 0000000074053080
backtrace[29] rip 0000000076d0652d
backtrace[30] rip 0000000076e3c521

Resolution

这是一个影响 VMware vCenter Server 5.5 的已知问题。
 
该问题在 vCenter Server 5.5 Update 2(可从 VMware Downloads 获得)中已解决。有关详细信息,请参见 vCenter Server 5.5 Update 2 Release Notes 中的“已解决问题”部分。

注意:如果在应用 vCenter Server 5.5 Update 2 之前有受影响的主机,则可能需要应用这些解决步骤。

要验证环境中是否有受影响的主机,请查询数据库:
  1. 使用 SQL Management Studio 连接 vCenter Server 的数据库所在的 SQL Server。
  2. 使用以下命令查询 vCenter Server 数据库:
  • 在 vCenter Server 中:
select distinct fm.ID, h.DNS_NAME
from vpx_file_system_mount_info fm,
    
VPX_HOST h
where not exists
 
(select 1 from VPX_FS_MOUNT_VOLUME_INFO vi
 
where fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID) and fm.ID = h.ID
  • 在具有嵌入式数据的 VMware vCenter Server Appliance 中:
  1. 以 root 身份登录到 VCSA。
  2. 运行以下命令:

    cd /opt/vmware/vpostgres/9.0/bin

  3. 运行以下命令连接到 VCDB 数据库:

    ./psql -d VCDB -U vc

  4. 运行以下命令查询 vCenter Server 数据库:

    select distinct fm.ID, h.DNS_NAME from vpx_file_system_mount_info fm, VPX_HOST h where not exists (select 1 from VPX_FS_MOUNT_VOLUME_INFO vi where fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID) and fm.ID = h.ID;

  5. 要退出,键入:

    \q

要解决该问题,请对 vCenter Server 数据库执行提供的 SQL 命令,并修改 vmConfigInfo.xml 文件。然后重新启动 vCenter Server。
 
要更新 vCenter Server 数据库配置并修改 vmConfigInfo.xml,请执行以下操作:
  1. 使用上述查询列出 vCenter Server 中受影响的 ESXi 主机。
  2. 停止 VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)
  3. 转至:

    • 在 vCenter Server 中:C:\Program Files\VMware\Infrastructure\VirtualCenter Server\

    • VMware vCenter Server Appliance:/usr/lib/vmware-vpx/

  4. 创建 vmConfigInfo.xml 的备份。

    警告:不要跳过该步骤。

  5. 在文本编辑器中打开 vmConfigInfo.xml
  6. 在以 <Table name="VPX_VMFS_VOLUME"...开头的部分后,在 </Table> 之后和 <Table name="VPX_SCSI_DISK_PARTITION" 部分之前插入以下信息。

    <Table name="VPX_VMFS_VOLUME" vmodl_name="vim.host.VffsVolume" parentClass="vim.host.FileSystemVolume" parentAttr="fileSystemVolume.mountInfo.volume" >
            <Column name="VPX_FILE_SYSTEM_MOUNT_INFO_ID" isKey="1" type="int" option="NOT NULL" />
            <Column name="UUID" path="fileSystemVolume.mountInfo.volume.uuid" type="string" />
            <Column name="MAJOR_VERSION" path="fileSystemVolume.mountInfo.volume.majorVersion" type="int" />
            <Column name="VERSION" path="fileSystemVolume.mountInfo.volume.version" type="string" />
            <PrimaryKey name="PK_VPX_VMFS_VOLUME" key="VPX_FILE_SYSTEM_MOUNT_INFO_ID" />
            <ForeignKey name="FK_V_VM_VOL_REF_V_FI_SYS_MO_IN" key="VPX_FILE_SYSTEM_MOUNT_INFO_ID" ref="VPX_FILE_SYSTEM_MOUNT_INFO" refVal="VPX_FILE_SYSTEM_MOUNT_INFO_ID" />
    </Table>

    在以下示例中,添加的新数据以红色显示:

    <Table name="VPX_VMFS_VOLUME" vmodl_name="vim.host.VmfsVolume" parentClass="vim.host.FileSystemVolume" parentAttr="fileSystemVolume.mountInfo.volume" >
    ...
    </Table>
    <Table name="VPX_VMFS_VOLUME" vmodl_name="vim.host.VffsVolume" parentClass="vim.host.FileSystemVolume" parentAttr="fileSystemVolume.mountInfo.volume" >
    <Column name="VPX_FILE_SYSTEM_MOUNT_INFO_ID" isKey="1" type="int" option="NOT NULL" />
    <Column name="UUID" path="fileSystemVolume.mountInfo.volume.uuid" type="string" />
    <Column name="MAJOR_VERSION" path="fileSystemVolume.mountInfo.volume.majorVersion" type="int" />
    <Column name="VERSION" path="fileSystemVolume.mountInfo.volume.version" type="string" />
    <PrimaryKey name="PK_VPX_VMFS_VOLUME" key="VPX_FILE_SYSTEM_MOUNT_INFO_ID" />
    <ForeignKey name="FK_V_VM_VOL_REF_V_FI_SYS_MO_IN" key="VPX_FILE_SYSTEM_MOUNT_INFO_ID" ref="VPX_FILE_SYSTEM_MOUNT_INFO" refVal="VPX_FILE_SYSTEM_MOUNT_INFO_ID" />
    </Table>
    <Table name="VPX_SCSI_DISK_PARTITION" vmodl_name="vim.host.ScsiDisk.Partition" parentClass="vim.host.VmfsVolume" parentAttr="fileSystemVolume.mountInfo.volume.extent" isArray="1" isUnkeyed="1" >
    ...
    </Table>

  7. vmConfigInfo.xml 中保存更改然后关闭文件。
  8. 创建 vCenter Server SQL 数据库的备份。
  9. 执行此查询以更新 vCenter Server 数据库配置:
  • 在 vCenter Server 中:

    update VPX_HOST set MASTER_GEN=0, MASTER_SPEC_GEN=0
    where ID in
    (
    select distinct fm.ID
    from vpx_file_system_mount_info fm
    where not exists
    (select 1 from VPX_FS_MOUNT_VOLUME_INFO vi
    where fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID)
    )

  • 在具有嵌入式数据的 VMware vCenter Server Appliance 中:
  1. 以 root 身份登录到 VCSA。
  2. 运行以下命令:cd /opt/vmware/vpostgres/9.0/bin
  3. 运行以下命令连接到 VCDB 数据库:

    ./psql -d VCDB -U vc

  4. 运行以下命令更新 vCenter Server 数据库配置:

    update VPX_HOST set MASTER_GEN=0, MASTER_SPEC_GEN=0 where ID in (select distinct fm.ID from vpx_file_system_mount_info fm where not exists (select 1 from VPX_FS_MOUNT_VOLUME_INFO vi where fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID));
  1. 执行此查询以更新 vCenter Server 数据库配置:
    • 在 vCenter Server(运行在 Windows 中)中,连接到 SQL Server(运行 vCenter Server 数据库)并运行以下命令:

      delete from vpx_file_system_mount_info
      where VPX_FILE_SYSTEM_MOUNT_INFO_ID in
      (
      select fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID
      from vpx_file_system_mount_info fm left outer join VPX_FS_MOUNT_VOLUME_INFO vi
      on fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID
      where vi.FS_ID is NULL
      )


    • 在具有嵌入式数据的 VMware vCenter Server Appliance 中:
      1. 以 root 身份登录到 VCSA。
      2. 运行以下命令:cd /opt/vmware/vpostgres/9.0/bin
      3. 运行以下命令连接到 VCDB 数据库:

        ./psql -d VCDB -U vc

      4. 运行以下命令以更新 vCenter Server Appliance 数据库配置:

        delete from vpx_file_system_mount_info where VPX_FILE_SYSTEM_MOUNT_INFO_ID in (select fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID from vpx_file_system_mount_info fm left outer join VPX_FS_MOUNT_VOLUME_INFO vi on fm.VPX_FILE_SYSTEM_MOUNT_INFO_ID = vi.FS_ID where vi.FS_ID is NULL);
  1. 重新启动 vCenter Server 以反映出更改。
  2. vCenter Server 运行后,vCenter Server 对所有受影响的虚拟机强制执行 fill sync,以更新正确值。

    注意:
  • 如果问题依然存在,查询将返回 ESXi 主机的受管对象 ID (MOID) 以及 DNS 名称。要解决该问题,移除该主机然后再将其重新添加到 vCenter Server 中。

    警告:如果主机用于 vCloud Director 或 VMware Horizon View,则不要从清单中移除主机,否则会导致虚拟机无效。VMware 建议您联系支持人员进一步进行故障排除。

  • 如果这样做不解决问题,请创建一份 VMware 支持请求。有关详细信息,请参见 Filing a Support Request in My VMware (2006985)

Additional Information

要在更新本文时收到提醒,请在“Actions”框中单击 Subscribe to Document

Tags

简体中文 Simplified Chinese

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 0 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 0 Ratings
Actions
KB: