启动或实时迁移虚拟机时记录 VmSwitch 错误 113 事件

本文提供了启动或实时迁移虚拟机时发生的 VmSwitch 错误 113 事件的解决方案。

适用于: Windows Server 2012 R2
原始 KB 编号: 3001783

症状

请考虑以下情况:

  • 你有一台基于 R2 Windows Server 2012的计算机,它通过使用 Windows NIC 组合 (LBFO) 为一个或多个 NIC 团队配置。
  • 你已使用 Hyper-V 端口或动态负载均衡模式在“独立于交换机”组合模式下实现了 Windows NIC 组合 (LBFO) 。 此外,你已正确配置 NIC 以使用非重叠处理器。 (有关详细信息,请参阅 KB2974384) 。
  • Hyper-V 虚拟交换机绑定到 LBFO 团队之一。
  • 在 Hyper-V 服务器上启动虚拟机,或者实时将虚拟机从一台服务器迁移到另一台服务器。

在这种情况下,以下错误 113 事件间歇性地记录在事件日志中:

日志名称:系统
来源:Microsoft-Windows-Hyper-V-VmSwitch
日期: <DateTime>
事件 ID:113
任务类别:无
级别:错误
关键 字:
用户:SYSTEM
计算机: Server1.contoso.com
说明:
无法为 NIC 分配 VMQ EDCED345-4C96-4C75-92A0-0C4FC5688F73--35BEB899-5BE9-4128-900A-6FE0BBFC7B22 (友好名称:网络适配器) DE4F3664-68D9-4781-825B-882A540FAB08 (友好名称:VM 交换机) 。 原因 - OID 失败。 状态 = {操作失败} 请求的操作未成功。

此外,Hyper-V VmSwitch 可能无法为虚拟机分配 VMQ 队列。

在事件说明中, “原因 ”文本将始终为 “OID 失败”。 状态文本将根据所使用的网络适配器驱动程序而有所不同。 其他 一些 Status 示例包括:

  • 状态 = 传递给服务或函数的参数无效。
  • 状态 = 系统资源不足,无法完成 API。
  • Status = Unknown

原因

出现此问题是因为 VmSwitch 假定 VMQ 的默认处理器在执行 VMQ 分配时为零 (0) 。 这会导致某些网络适配器驱动程序拒绝分配并生成错误 113。

解决方案

若要解决此问题,请 安装修补程序3031598

更多信息

Hyper-V VmSwitch 错误 113 的另一个源与症状部分中提到的问题无关。 当 Hyper-V 服务器运行的虚拟机数超过物理网络适配器上可用的 VMQ 队列数时,会发生此错误。 在这种情况下,错误 113 描述文本如下所示:

说明:
未能为 NIC 分配 VMQ
EDCED345-4C96-4C75-92A0-0C4FC5688F73--35BEB899-5BE9-4128-900A-6FE0BBFC7B22
(友好名称:网络适配器) 交换机 DE4F3664-68D9-4781-825B-882A540FAB08 (友好名称:VM 交换机) 。
原因 - 超出了协议 NIC 上支持的最大 VMQ 数。 状态 = 系统不足
存在用于完成 API 的资源。

注意

在此事件说明中, “原因” 文本明确指出 超出了协议 NIC 上支持的最大 VMQ 数