在 ESXi 主机上具有许多传输节点和虚拟机的大型环境中,运行在 ESXi 主机上的 NSX 代理在与 NSX Manager 通信时可能会超时。

问题

某些操作失败,例如当虚拟机 vnic 尝试连接到逻辑交换机时。/var/run/log/nsx-opsagent.log 具有如下消息:

level="ERROR" errorCode="MPA41542"] [MP_AddVnicAttachment] RPC call [0e316296-13-14] to NSX management plane timout
2017-05-15T05:32:13Z nsxa: [nsx@6876 comp="nsx-esx" subcomp="NSXA[VifHandlerThread:-2282640]" tid="1000017079" level="ERROR" errorCode="MPA42003"] [DoMpVifAttachRpc] MP_AddVnicAttachment() failed: RPC call to NSX management plane timout

原因

在大型环境中,某些操作可能会比平常花费更长的时间,并且可能会因超出默认超时值而失败。

解决方案

  1. 增加 NSX 代理超时值。
    1. 在 ESXi 主机上,使用以下命令停止 NSX opsAgent:
      /etc/init.d/nsx-opsagent stop
    2. 编辑文件 /etc/vmware/nsx-opsagent/nsxa.json,并更改 vifOperationTimeout 的值,例如,从 25 更改为 55。
      "mp" : {
          /* timeout for VIF operation */
          "vifOperationTimeout" : 25,
      注:

      此超时值必须小于您在步骤 2 中设置的 hostd 超时值。

    3. 使用以下命令启动 NSX opsAgent:

      /etc/init.d/nsx-opsagent start

  2. 增加 hostd 超时值。
    1. 在 ESXi 主机上,使用以下命令停止 hostd 代理:
      /etc/init.d/hostd stop
    2. 编辑文件 /etc/vmware/hostd/config.xml。在 <opaqueNetwork> 下,取消注释 <taskTimeout> 对应的条目,然后将值从 30 更改为 60(示例)。
      <opaqueNetwork>
          <!-- maximum message size allowed in opaque network manager IPC, in bytes. -->
          <!-- <maxMsgSize> 65536 </maxMsgSize> -->
          <!-- maximum wait time for opaque network response -->
          <!-- <taskTimeout> 30 </taskTimeout> -->
    3. 使用以下命令启动 hostd 代理:

      /etc/init.d/hostd start