在 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 ops 代理:

      NSX 2.3 或更高版本上:

      /etc/init.d/nsx-opsagent stop

      NSX 2.1 或以前版本上:

      /etc/init.d/nsxa stop
    2. 编辑 /etc/vmware/nsx-opsagent/nsxa.json 文件并更改 vifOperationTimeout 值,例如,从 25 秒更改为 55 秒。
      "mp" : {
          /* timeout for VIF operation */
          "vifOperationTimeout" : 25,
      注: 此超时值必须小于您在步骤 2 中设置的 hostd 超时值。
    3. 使用以下命令启动 NSX ops 代理:
      /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