我目前正在使用 Intel PRO/1000 PT LP 四端口服务器 NIC 和 Ubuntu 12.04 LTS Server 64 位。我安装了 Gnome,因此我有一个 GUI。
我下载了 bmon 2.0.1 来监控网络,目前根据 /proc/net/bonding/bond0,bond 已启动并正常工作。我还认为交换机配置正确。
网络设置有两个从 Ubuntu 主机到交换机的链接 - 这些链接是成组的。到交换机的两个单独链接连接到两台主机,它们从 Ubuntu 成组的 NIC 主机复制一个文件。
当我复制两个文件(每个单链路主机一个)时,绑定对中只有一个接近线速,另一个什么也不做!尽管交换机正在进行 MAC 哈希处理,文件将发送到不同的地方,但情况仍然如此。我将文件从 SSD 复制到两个 RAM 磁盘,所以我知道这些不是瓶颈。我应该能够轻松使一条 1G 线路饱和。
我正在使用英特尔最新的 (2.0.0) e1000e 驱动程序,虽然我知道 Ubuntu 并未得到英特尔的官方支持,但我希望它在 Ubuntu 中能够运行。
谢谢!
答案1
正在使用哈希算法来确定性地在通道中的两个链路之间分配流量。此算法可能使用源/目标 MAC 地址或 L2/L3/L4 信息的各种排列。为了便于讨论,我们假设它是基于 MAC 的,并且为了实现 50/50 的分割,我们可以简单地取目标 MAC 地址的最后一位数字,如果它是偶数(0、2、4、6、8、A、C、E),则它进入链路 1,如果它是奇数(1、3、5、7、9、B、D、F),则它进入链路 2。如果所讨论的目标主机的 MAC 地址以 00 和 02 结尾,那么它们都将(正确地)放置在第一个链路上。
实际使用的算法与上面的 pidgin 版本并不完全相同,但效果是一样的 - 在足够多的地址群体中,分布将接近 50/50。然而,在小得多的样本中,也有 50% 的机会您的所有流量都会被引导到单个链接中。
我最好的建议是尝试不同的哈希算法。实际上,如果将更多信息纳入哈希中,您的成功率会更高 - 因此 L3 地址、L4 端口号等都可以提高您的流量更均匀分布的可能性。
作为临时故障排除步骤,您还可以尝试更改其中一个接收主机的 MAC 地址,以观察是否可以适当地影响哈希。