我有两个HPBL685c G6 刀片服务器运行 Ubuntu 15.04
- 每台服务器有4X10GB NIC
- 2 个 10GB NIC 连接到单个VirtualConnect 10/10G 以太网模块
- 另外 2 个 10GB 网卡连接到第二个VirtualConnect 10/10G 以太网模块
- 虚拟连接模块配置为水平堆叠,位于互连托架 1 和 2
- 所引用的 NIC 全部是嵌入式 Flex-10 适配器
当我分别配置 4 个 10GB NIC 时,我可以使用 iperf 进行测试,并且我在每个 NIC 之间获得了 ~10Gbit/sec 的带宽。这按预期工作。
- 服务器 1:http://d.pr/n/15dA5
- 服务器2:http://d.pr/n/10pqJ
- iperf 结果:http://d.pr/i/pscU和http://d.pr/i/zh2E
现在,我尝试使用绑定模式“balance-rr”绑定每台服务器上的所有 10GB NIC。这些结果各不相同,但介于 2.5Gbits/sec 和 5Gbits/sec 之间
- 服务器 1:http://d.pr/n/1aTei
- 服务器2:http://d.pr/n/12Mqy
- iperf 结果:http://d.pr/i/1cvh0和http://d.pr/i/1eOgU
我使用相同的配置在这些服务器上绑定 2X1GB NIC,使用 iperf 测试时,绑定 2X1GB NIC 可实现约 2Gbit/秒的带宽。这两个 NIC 未连接到 Virtual Connect 域,而是分别连接到不同的思科 Catalyst 刀片交换机 3120
- 服务器 1:http://d.pr/n/1kk4f
- 服务器2:http://d.pr/n/fbVJ
- iperf 结果:http://d.pr/i/10N4q和http://d.pr/i/1a0z3
因此,我的问题是:为什么使用 balance-rr 绑定 4X10GB NIC 会导致性能低于使用单个 NIC。我原本预计带宽减去 TCP/Bonding 开销约为 40Gbit/秒,这与我绑定 2X1GB 并在测试时获得约 2GB 的结果一致。
我尝试了不同的绑定模式,其他模式在绑定后可实现约 10Gbit/sec 的带宽。虽然仍不理想,但比 balance-rr 的结果要好。
答案1
看来虚拟连接模块在 Linux 部署中不支持绑定模式 0(balance-rr)。
来自 HP 支持:http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c02957870
信息 HP Virtual Connect 环境中不受支持的绑定模式可能会产生数据包丢失和/或性能问题。
细节 HP Virtual Connect 支持绑定模式 1、5 或 6。VC 不支持模式 0(循环)或 7(交换机辅助负载平衡)。
模式 1:主动/备份。主动-备份策略:绑定中只有一个从属设备处于活动状态。当且仅当活动从属设备发生故障时,另一个从属设备才会变为活动状态。绑定的 MAC 地址仅在一个端口(网络适配器)上可见,以避免交换机混淆。
模式 5:自适应传输负载平衡:无需任何特殊交换机支持的通道绑定。根据每个从属设备上的当前负载(相对于速度计算)分配传出流量。传入流量由当前从属设备接收。如果接收从属设备发生故障,则另一个从属设备接管发生故障的接收从属设备的 MAC 地址。
模式六:自适应负载平衡:包括 balance-tlb 以及针对 IPV4 流量的接收负载平衡 (rlb),不需要任何特殊的交换机支持。接收负载平衡通过 ARP 协商实现。