尝试为主机上的 vSphere Distributed Switch 添加或配置网络连接时,操作发生回滚并且主机断开与 vCenter Server 的连接。

问题

在 vSphere 5.1 或更高版本中,尝试对主机上的 vSphere Distributed Switch 执行网络连接配置操作时,如创建虚拟机适配器或端口组,会导致主机断开与 vCenter Server 的连接,并显示错误消息“主机上的事务已回滚 (Transaction has rolled back on the host)”。

原因

当主机处于压力状态时,即许多并发的网络连接操作争用有限的资源时,执行某些操作的时间可能会超过 Distributed Switch 上默认的网络配置操作回滚超时时间。结果导致这些操作回滚。

例如,在一个拥有大量交换机端口或虚拟适配器的主机上创建 VMkernel 适配器时,由于所有端口和适配器都消耗主机的系统资源,就可能出现这种情况。

默认的操作回滚超时时间为 30 秒。

解决方案

  • 使用 vSphere Web Client 增大 vCenter Server 上的回滚超时时间。
    如果再次遇到相同的问题,请逐步回滚值为 60 秒的超时,直至操作有足够的时间成功完成。
    1. vCenter Server 实例的配置选项卡上,展开设置
    2. 选择高级设置,然后单击编辑
    3. 如果属性不存在,向设置中添加 config.vpxd.network.rollbackTimeout 参数。
    4. config.vpxd.network.rollbackTimeout 参数键入新值(以秒为单位)。
    5. 单击确定
    6. 重新启动 vCenter Server 系统以应用更改。
  • 通过编辑 vpxd.cfg 配置文件,增大回滚超时值。
    如果再次遇到相同的问题,请逐步回滚值为 60 秒的超时,直至操作有足够的时间成功完成。
    1. vCenter Server 实例上,导航到包含 vpxd.cfg 配置文件的目录。
      • 在 Windows Server 操作系统中,导航到 vCenter Server home directory\Application Data\VMware\VMware VirtualCenter
      • vCenter Server Appliance 上,导航到 /etc/vmware-vpx
    2. 打开 vpxd.cfg 文件进行编辑。
    3. <network> 部分下的 <rollbackTimeout> 元素中,增加超时值。
      <config>
        <vpxd>
          <network>
            <rollbackTimeout>60</rollbackTimeout>
          </network>
        </vpxd>
      </config>
    4. 保存并关闭文件。
    5. 重新启动 vCenter Server 系统以应用更改。