NIC 组合在 Hyper-V 主机上还是在每个 VM 内?

NIC 组合在 Hyper-V 主机上还是在每个 VM 内?

我在 Dell T620 上安装了 Windows Server 2016 Datacenter,然后安装了 Hyper-V 角色。接下来,我创建了一个由 2 个物理 1Gbps 网络适配器组成的 NIC 团队。团队称为 LANTeam。设置如下:团队模式 - 交换机独立、负载平衡模式 - 动态、待机适配器 - 无(所有适配器均处于活动状态)

在此服务器的网络连接控制面板中,我可以看到我的所有物理网卡,现在还可以看到一个名为“LANTeam”的连接。这是连接的名称,但设备名称是“Microsoft 网络适配器多路复用器驱动程序”

如果我双击此网络连接,它会显示 2.0 Gbps 的速度,这是有道理的,因为这是 2 x 1 Gbps 连接组合在一起的。

对我来说,事情有点混乱:

我打开 Hyper-V 管理器并单击虚拟交换机管理器。我创建一个新的虚拟交换机(外部),并从下拉列表中选择“Microsoft 网络适配器多路复用器驱动程序”。

我将此交换机命名为“LAN vSwitch”

接下来,我创建了我的第一个虚拟机。在其属性窗口中,我从下拉菜单中选择“LAN vSwitch”。

当我启动此虚拟机(我安装了 Windows 2016 Server)时,转到网络连接并双击一个(也是唯一的)网络适配器(简称为“以太网”),它显示速度仅为 1.0Gbps。

为什么不是 2.0Gbps?我的目标是创建几个虚拟机,所有虚拟机都具有 2.0Gbps 以太网连接。

答案1

您看到的差异仅在于 NIC 的报告速度。首先介绍一些背景知识:

当 Windows 告诉您组合的 NIC 以 2Gbps 的速度运行时,它有点撒谎,因为组合或绑定的工作原理并非如此。使用组合,您可以在两个 NIC 之间平衡离散连接的负载。单个连接只能使单个 NIC 饱和。组合仅在处理多个网络端点时才有效,因此它通常是在 VM 主机上建立的好选择。在 VM 内而不是在主机上建立绑定或组合可能会在各种平台上产生奇怪的后果,您应该尽可能避免这样做。通常,最好将绑定放在可以获得最大数量连接的位置,并且通常尽可能靠近网络主干。

回到虚拟机中的速度报告问题 - 它没有撒谎。您将 1Gbps NIC 插入主机并连接到为您的实例提供网络的 vswitch。这会将整个 vswitch 的速度降低到 1Gbps,这是 HyperV 已知的流量控制限制。vswitch 会忽略绑定的报告容量,因为这对流量控制无关紧要。您仍然可以从主机推送总共 2 Gbps,只是不能推送到任何一个虚拟机。

如果您仍希望虚拟机之间具有主机系统总线速度网络,则可以创建一个“空”虚拟交换机,它不连接到任何类型的物理网卡,而只连接到每个虚拟机和主机。如果您有大量虚拟机间东西向流量,这将非常有用。

基于上述示例,通过在虚拟机管理程序上终止第 2 层,您几乎可以完全解决这个问题。您可以将所有虚拟机连接到该空 vswitch,从而实现总线速度通信。建立该功能后,您可以使用 hyperv 主机作为网关,将第 3 层流量从完全虚拟的 vswitch 路由到主机上的第 3 层寻址组。这将引入一些网络复杂性,例如需要端口转发和使用 NAT。但是,hyperv 对此有非常友好的控制。

相关内容