在尝试 vMotion 迁移或配置更改时,VMware ESXi 5.x 主机变得无响应
search cancel

在尝试 vMotion 迁移或配置更改时,VMware ESXi 5.x 主机变得无响应

book

Article ID: 301243

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

免责声明:本文为 VMware ESXi 5.x host becomes unresponsive when attempting a vMotion migration or a configuration change (2040707) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


  • 在尝试从 VMware vCenter Server 迁移虚拟机后,VMware ESXi 5.x 主机变得无响应。
  • 对 ESXi 主机进行配置更改会导致主机无响应。
  • 迁移在完成 13% 时失败。
  • 清单中的一些虚拟机变得无效。
  • vpxa 无法启动。
  • 无法打开虚拟机的电源。
  • vpxa.log 文件中,您会看到类似以下内容的条目:

    YYYY-MM-DDT09:00:11.615Z [FF8AD6D0 warning 'Libs'] vmware-vpxa: CnxUnix_UseConfigFile lock of /var/run/vmware/f4a0dbedb2e0fd30b80f90123fbe40f8 failed: No space left on device.
    YYYY-MM-DDT09:00:11.615Z [FF8AD6D0 error 'provisioningvpxNfcServer'] Cnx_UseConfigFile(vmware-vpxa, vpxa-nfc) failed
    YYYY-MM-DDT09:00:11.615Z [FF8AD6D0 error 'provisioningvpxNfcServer'] Error setting up NFC server listener

  • 完成 vMotion 迁移或打开虚拟机电源等任务时,您会看到以下错误:

    出现了常规系统错误:等待 vpxa 启动时超时 (A general system error occurred: Timed out waiting for vpxa to start)

  • 主机的 vSphere HA 代理报告以下错误:

    无法从 vCenter Server 访问 vSphere HA 代理 (The vSphere HA agent is not reachable from vCenter Server)。

  • 部署 OVF 模板失败,并出现以下错误:

    出现常规系统错误。未能创建日志文件提供程序 (A general system error occurred. Failed to create journal file provider)

  • 在主机的 /var/log/vmkernel.log 文件中,您会看到类似以下内容的条目:

    WARNING: VisorFSObj: 1954: Cannot create file /var/spool/snmp/1351589546_6_3_6876.trp for process hostd-worker because the inode table of its ramdisk (root) is full.
    WARNING: VisorFSObj: 1954: Cannot create file /var/run/vmware/tickets/vmtck-520db3d3-3305-37 for process hostd-worker because the inode table of its ramdisk (root) is full.
    WARNING: VisorFSObj: 1954: Cannot create file /var/spool/snmp/1351589576_6_4_6876.trp for process hostd-worker because the inode table of its ramdisk (root) is full.

    ...

    WARNING: VisorFSRam: 233: Cannot extend visorfs file /var/spool/snmp/1381771804_6_401_6876.trp because its ramdisk (snmptraps) is full.
    WARNING: VisorFSRam: 233: Cannot extend visorfs file /var/spool/snmp/1381772106_6_401_6876.trp because its ramdisk (snmptraps) is full.

    ...

    User: 2742: wantCoreDump : snmpd-enabled : 0



  • 当通过 vSphere Client 直接连接到 ESXi 主机时,您会在“事件”选项卡中看到类似警告。
  • 从 vSphere Client 打开虚拟机控制台失败,并显示以下错误:

    无法联系 MKS (Unable to contact the MKS)

  • 当使用 SSH 连接到 ESXi 主机并运行 stat -f filesystem_name 命令时,您会看到主机 Inode 不足。
  • 在 vCenter Server 的事件查看器中,您会看到以下错误:

    Cannot install the vCenter agent service.Cannot upload agent.

  • 运行 stat -f filesystem_name 命令将显示类似以下内容的输出:

    Inodes: Total: 0 Free: 0

    注意:有关通过 SSH 连接到 ESXi 主机的详细信息,请参见 Using ESXi Shell in ESXi 5.0 and 5.1 (2004746)

  • Storage vMotion 失败,vCenter Server 报告一条指示 RAM 磁盘已满的错误。
  • /var/log/vmkernel.log 文件中,您会看到类似以下内容的错误:

    VisorFSRam: 233: Cannot extend visorfs file /var/log/hpHelper.log because its ramdisk (root) is full.


Environment

VMware vSphere ESXi 5.1
VMware vSphere ESXi 5.5

Cause

当启用 SNMPD 且 /var/spool/snmp 文件夹装满简单网络管理协议 (SNMP) 陷阱文件时,会发生此问题。

还可能会在运行 ESXi 5.x 的 HP ProLiant Gen8 服务器上发生类似症状,该服务器上的 /var/log/hpHelper.log 文件填充了 ESXi 5.x RAMDisk。

备注:要帮助确定哪些文件正在占用空间,请参见 ESX error: No free space left on device (1007638)

免责声明:VMware 对第三方网站上数据、观点、建议或声明的可靠性不承担任何责任。包含此类链接不代表 VMware 认可、推荐此类站点的内容或接受相应的责任。

Resolution

此问题在 ESXi 5.1 Patch 04 中已得到解决。有关详细信息,请参见 VMware ESXi 5.1, Patch ESXi510-201404401-BG: Updates esx-base (2070667)
要解决此问题,请执行以下操作:
  1. 使用 SSH 连接到 ESXi 主机。有关详细信息,请参见 Using ESXi Shell in ESXi 5.0 and 5.1 (2004746)
  2. 通过运行以下命令检查 SNMP 是否正在 ESXi 主机上的 /var/spool/snmp 目录中创建太多的 .trp 文件:

    ls /var/spool/snmp | wc -l

    注意:如果输出指示值为 2000 或更多,这可能会导致出现全部 Inode。

  3. 通过运行以下命令删除 /var/spool/snmp/ 目录中的 .trp 文件:

    # cd /var/spool/snmp
    # for i in $(ls | grep trp); do rm -f $i;done


  4. 通过运行以下命令将目录切换到 /etc/vmware/ 并备份 snmp.xml 文件:

    # cd /etc/vmware
    # mv snmp.xml snmp.xml.bkup


  5. 创建一个名为 snmp.xml 的新文件,并使用文本编辑器将其打开。有关详细信息,请参见 Editing files on an ESX host using vi or nano (1020302)
  6. 将以下内容复制并粘贴到该文件中:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <config>
    <snmpSettings><enable>false</enable><port>161</port><syscontact></syscontact><syslocation></syslocation>
    <EnvEventSource>indications</EnvEventSource><communities></communities><loglevel>info</loglevel><authProtocol></authProtocol>
    <privProtocol></privProtocol></snmpSettings>
    </config>


  7. 保存并关闭该文件。
  8. 通过运行以下命令在受影响的主机上重新配置 SNMP:

    # esxcli system snmp set –-enable=true

  9. 要确认 SNMP 服务再次正常运行,请运行以下命令:

    # esxcli system snmp get

    下面是一个输出示例:
    /etc/vmware # esxcli system snmp get
    Authentication: Communities: Enable: true Engineid: 00000063000000a10a0121cf Hwsrc: indications Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: Users: V3targets:


要确保此问题不会重复发生,可暂时禁用 snmpd 以停止日志记录。要停止 snmpd 服务,请运行以下命令:

# /etc/init.d/snmpd stop


Additional Information

注意:如果主机 Inode 不足,请尝试在主机上停止 vpxa 以释放 Inode:
  1. 使用 vSphere Client 连接到相关主机。
  2. 单击配置 > 安全配置文件
  3. 在“服务”下,单击属性
  4. 单击 vpxa,然后单击选项
  5. 在“启动策略”下,单击停止
  6. 单击确定
  7. 单击确定
vpxa 停止后,将会释放一个 Inode,以便您可以启用 ESXi Shell,并获得命令行访问权限以移除 .trp 文件,如“解决办法”部分中所述。有关使用 ESXi Shell 的详细信息,请参见 Using ESXi Shell in ESXi 5.0 and 5.1 (2004746)

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