Users Guide
11–QLogic 组合服务
执行概要
125 BC0054508-05 J
传输负载平衡通过使用源和目标 IP 地址及 TCP/UDP 端口号创建散列表而得以实
现。源和目标 IP 地址及 TCP/UDP 端口号的相同组合通常生成相同的散列索引,
因此会指向组中的同一端口。当选择一个端口来传送特定套接字的所有帧时,包括
在帧中的是物理适配器的唯一 MAC 地址,而非组 MAC 地址。这样才符合 IEEE
802.3 标准。如果两个适配器使用同一 MAC 地址发送,将发生 MAC 地址重复的
情况,对此,交换机无法处理。
接收负载平衡通过中间驱动程序实现,方式是:在逐个客户端的基础上,使用每个
客户端的单播地址作为 ARP 请求的目标地址来发送无偿 ARP (也称为定向
ARP)。此种做法被视为客户端负载平衡,而非流量负载平衡。当中间驱动程序检
测到 SLB 组中物理适配器之间显著的负载不平衡时,它会生成 G-ARP,以便重新
分发传入帧。中间驱动程序 (QLASP) 不回答 ARP 请求;只有软件协议栈提供所
需的 ARP 应答。接收负载平衡是通过组接口连接至系统的客户端的数量的函数,
理解这一点十分重要。
SLB 接收负载平衡尝试对组中物理端口上客户端计算机的传入流量进行负载平衡。
它使用修改的无偿 ARP 对发送方物理和协议地址中的组 IP 地址,广告不同的
MAC 地址。 G-ARP 在目标物理和协议地址中,分别使用客户端的 MAC 和 IP 地
址进行单播。此动作导致目标客户端使用新 MAC 地址至组 IP 地址的映射来更新
其 ARP 缓存。G-ARP 不被广播,因为这样会导致所有客户端将其流量发送到同一
端口。其结果是,通过对客户端负载平衡所获得的好处被消除,并可能造成无序帧
传输。只要所有客户端和组合的系统位于相同的子网或广播域中,此接收负载平衡
方案即可行。
当客户端和系统处于不同的子网,并且传入流量必须遍历路由器时,收到的前往系
统的流量不会被负载平衡。中间驱动程序选择用来传送 IP 流的物理适配器将传送
所有流量。当路由器向组 IP 地址发送帧时,将广播 ARP 请求 (如果不在 ARP 缓
存中)。服务器软件堆栈生成具有组 MAC 地址的 ARP 应答,但中间驱动程序修
改 ARP 应答并通过特定物理适配器发送,从而为该会话建立流。
其原因是 ARP
不是可路由的协议。它没有 IP 标头,因此不被发送到路由器和默认
网关。 ARP 只是一个本地子网协议。此外,由于 G-ARP 不是广播数据包,路由器
不会对其进行处理,并且不更新自己的 ARP 缓存。
路由器会处理针对其他网络设备的 ARP 的唯一场合是如果其代理 ARP 被启用,
而且主机没有默认网关。这种情况罕见,对大多数应用程序不建议采用。
通过路由器的传输流量是负载平衡的,因为传输负载平衡基于源和目标 IP 地址以
及 TCP/UDP 端口号。由于路由器不改变源和目标 IP 地址,负载平衡算法仍可
行。
注
IPv6 寻址流量由 SLB 进行负载平衡,因为 ARP 不是 IPv6 的特性。