在我的 XenServer 7.3 中,我有 4 个 Intel 1G 网络适配器。我将 Nic1 配置为管理,将 Nic0 和 Nic2 配置为基于 IP 和端口的 LACP Bond(在我的 Cisco L3 交换机上,我对这两个连接执行了相同的操作)。XenCenter 显示 Bond 的速度为 2G。
我将绑定的网络适配器分配给我的 Windows 2016 Server 客户操作系统。在 Windwos 中,网络适配器(XenServer PV 网络)仅显示 1G 的速度。这是真的,我用另一台 PC(带有 2 个 Intel 网络适配器,配置为 LACP Bond)对其进行了测试。文件传输速率为 110 MB/s。
有没有什么办法可以让客户操作系统达到 2G 的速度?
答案1
LACP 不是这样工作的。任何一个连接都会获得一个从属设备的最大速度。当多个连接通过绑定进行负载平衡时,您可以达到所有从属设备的总速度。
这个问题已经在这里被问过一百万次了,应该是重复的,比如链路聚合(LACP/802.3ad)最大吞吐量可能是个不错的候选人。
答案2
虽然@suprjami 的回答是正确的,但还有另一个方面导致了这种情况的发生。
XenServer 中的 vswitch 将会从主机总线的速度(超快,取决于主机的速度)降低到 vswitch 或网桥中最慢的连接 NIC 的速度。
您正在使用 LACP 这一事实与问题的这一特定部分无关,因为连接到网桥的最慢的单个接口是 1Gbps,因此网桥上最快的虚拟接口也必须以 1Gbps 运行。
您可以通过仅使用空桥为虚拟机提供网络连接来解决此问题,同时将第 3 层流量从该空桥路由到仅连接到主机的 LACP 绑定。这样,内部虚拟机到虚拟机的流量将以主机总线速度传输,同时仍能够在具有单个接口的每个虚拟机上使用有效的 2Gbps。这种方法可能有一个更花哨的名字,但它通常被称为“在主机上终止第 2 层”。
这种虚拟机管理程序网络连接方法带来了一些复杂性,例如必须管理路由和/或 NAT 以使外部流量进出虚拟机。但是,如果您希望每个虚拟机能够充分利用主机 LACP 绑定的全部容量,这是一种可靠的方法。