本文提供了 VmSwitch 错误 113 事件的解决方案,该事件在启动或实时迁移虚拟机时发生。
原始 KB 数: 3001783
现象
假设出现了下面这种情景:
- 你有一台基于 Windows Server 2012 R2 的计算机,该计算机使用 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 任务类别:无 级别: 错误 关键字: 用户: 系统 计算机:
Server1.contoso.com说明: 无法为 NIC 分配 VMQ EDCED345-4C96-4C75-92A0-0C4FC5688F73--35BEB899-5BE9-4128-4128-交换机上的900A-6FE0BBFC7B22(友好名称:网络适配器)DE4F3664-68D9-4781-825B-882A540FAB08(友好名称:VM 交换机)。 原因 - OID 失败。 状态 = {操作失败} 请求的操作失败。
此外,Hyper-V VmSwitch 可能无法为虚拟机分配 VMQ 队列。
在事件说明中 ,原因 文本将始终为 OID 失败。 状态文本因正在使用的网络适配器驱动程序而异。 其他 一些状态 示例包括:
- Status = 传递给服务或函数的参数无效。
- 状态 = 系统资源不足,无法完成 API。
- 状态 = 未知
原因
出现此问题的原因是,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 数超过**。