Users Guide

11–Marvell 组合服务
组合机制
153 BC0054508-05 M
出站通信流
Marvell 中间驱动程序管理所有组合模式的出站通信流。对于出站流量,每个数据
包首先被分类到某个流,然后分发到所选的物理适配器进行传输。流分类涉及对已
知的协议字段进行高效散列计算。生成的散列值用于索引到出站流散列表。所选的
出站流散列条目包含所选的负责传输此流的物理适配器索引。数据包的源 MAC
址将被修改为选定的物理适配器 MAC 地址。然后,修改的数据包被传递到选定
的物理适配器以进行传输。
出站 TCP UDP 数据包使用第 3 层和第 4 层标头信息进行分类。对于使用著名
端口 (如 HTTP FTP)的流行互联网协议服务,此方案可改进负载分配。因
此, QLASP TCP 会话基础上执行负载平衡,而不是逐个数据包进行。
在出站流散列条目中,完成分类后还会更新统计计数器。负载平衡引擎使用这些计
数器定期在组合的端口之间分发流。出站代码路径设计为能够实现最佳并发处理,
此时允许对出站流散列表的多个并发访问。
对于 TCP/IP 以外的协议,第一个物理适配器总是被选为用于出站数据包。地址解
析协议 (ARP) 是一个例外,它以不同方式实现入站负载平衡。
入站通信流 (仅限 SLB
Marvell 中间驱动程序管理 SLB 组合模式的入站通信流。与出站负载平衡不同,入
站负载平衡只能应用于与负载平衡服务器位于同一子网的 IP 地址。入站负载平衡
使用地址解析协议 (RFC0826) 的一个特性,即每个 IP 主机使用本身的 ARP 缓存
IP 数据报封装到以太网帧中。 QLASP 仔细操纵 ARP 响应,指令每个 IP 主机
将入站 IP 数据包发送至要求的物理适配器中。因此,入站负载平衡是一个基于入
站流统计历史的提前计划方案。客户端到服务器的新连接始终在主物理适配器上发
(因为操作系统协议堆栈生成的 ARP 应答始终将逻辑 IP 地址与主物理适配器
MAC 地址关联)
与出站情况一样,有一张入站流头散列表。此表中的每个条目都有一个单独链接的
列表,而每个链路 (入站流条目)代表一个位于相同子网上 IP 主机。
当一个入站 IP 数据报到达时,通过求 IP 数据报的源 IP 地址的散列,定位相应的
入站流头条目。存储在选定条目中的两个统计计数器同时被更新。负载平衡引擎以
使用出站计数器的同样方式使用这些计数器,定期将流分配到物理适配器。
在入站代码路径上,入站流头散列表还被设计为允许并发访问。入站流条目的链路
列表仅在处理 ARP 数据包和定期负载平衡的情况下被引用。并非逐个数据包引用
入站流条目。即使链路列表不被绑定;处理每个非 ARP 数据包的开销总是一个常
量。但是, ARP 数据包 (入站和出站)的处理取决于相应链路列表中的链路数。
在入站处理路径上,还使用过滤来防止广播数据包通过系统从其他物理适配器回
环。