本文将从较高的层次介绍通道绑定的概念,如何设置测试环境和我们观察到的结果。在我们的实验中,通道绑定将带宽提高达 68%。
本文探讨 Red Hat Enterprise Linux 上的通道绑定对 IBM InfoSphere Streams 吞吐量和延迟的影响。将介绍如何使用 Red Hat Enterprise Linux 系统设置和配置通道绑定环境,可从在此环境中运行的 InfoSphere Streams 应用程序获得怎样的性能改进。目标读者为熟悉 InfoSphere Streams 和 Linux 网络接口配置并具备相应技能的人群。
通道绑定是什么?
通道绑定 (Channel bonding) 这个术词用于描述在两个网络接口之间拆分单个数据流,同时为应用程序层提供单个接口的过程。通过利用此技术,可实现更高的数据吞吐量,因为数据可同时在两个网络接口卡上流动。通道绑定可用于 InfoSphere Streams 支持的所有 Red Hat Enterprise Linux 内核。我们测试了一种通道绑定设置,并解释所观察到的结果。
设置通道绑定
硬件
要在 1Gbps 连接上通过通道绑定实现最佳的性能结果,请考虑以下硬件需求:
1Gbps 交换机或具有较高的过度订阅比率的更大交换机上的一个线路卡 具有两个 1Gbps Ethernet 连接的两个支持 Linux 的系统
备注:如果使用的是">刀片服务器,在机架中使用穿透 (pass-through) 模块。由于交换机中用于调解流量的算法的原因,交换机模块可能不具有最佳的性能。
在我们的测试环境中,Cisco 6509 交换机构成了私有集群网络的 1Gbps 主干网。为了实现各个系统的最大性能,我们使用了 WS-X6748-GE-TX 线路卡。这些线路卡是高性能卡(每槽 40Gbps ),为卡上的所有 48 个端口提供了接近 1Gbps 的速度。对于本测试,交换运行 Cisco 的 IOS 版本 12,线路卡具有最新的固件。如果您的 Cisco 交换机运行 NX-OS 或者使用另一家供应商的产品,这些命令可能需要修改或者可能完全不同。请向您的网络管理员咨询寻求帮助。
对于下面列出的性能数字,网络交换机中未使用任何特殊的配置。尽管一些供应商交换机支持链路聚合控制协议 (Link Aggregation Control Protocol, LACP),一种纯操作系统的绑定配置可获得更高的性能结果。因为现代的硬件可轻松处理一些问题(如重新排序乱序的包)而不会对性能造成任何显著的影响,所以没有必要依赖交换机硬件来执行此工作。
图 1. InfoSphere Streams 通道绑定测试配置
软件
从软件的角度讲,您需要的所有软件都已包含在 Red Hat Enterprise Linux 5 发行版中。要在您的环境为每台机器设置通道绑定,您需要调整网络配置并将链接聚合在交换机中。为了简化这些说明,我们将假设您将进行通道绑定的任何服务器配置了 Red Hat Enterprise Linux 5 并在构建时定义了两个网络接口中的一个。在我们的示例中,eth0 在最初设置,/etc/sysconfig/network-scripts/ifcfg-eth0 类似于清单 1。
清单 1. /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=E4:1F:13:78:FE:98
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.6.24.43
NETMASK=255.255.252.0
DNS1=10.6.24.11
设置通道绑定软件涉及到 4 步:
更改 /etc/sysconfig/network-scripts 中的 ifcfg-eth0 更改 /etc/sysconfig/network-scripts 中的 ifcfg-eth1 在 /etc/sysconfig/network-scripts 中创建一个新 ifcfg-bond0 描述系统的 “绑定”
备注:最好在关闭接口时执行此工作。如果在接口运行时执行,系统将发出警告,因为 eth0 现在是一个从属服务器,但您将获得正确的网络配置。您将发现重新启动将花更长时间。