Users Guide

11–Marvell 组合服务
执行概要
143 BC0054508-05 M
智能负载平衡根据第 3 层和第 4 IP 地址和 TCP/UDP 端口号同时实现发送和接
收负载平衡。换句话说,负载平衡不是在字节或帧级别上实现,而是以 TCP/UDP
会话为基础。要求此种方法维持属于同一套接字对话的帧的有序传输。负载平衡在
二至八个端口上受支持。这些端口可以包括添加式适配器和主板上局域网 (LOM)
设备的任何组合。
传输负载平衡通过使用源和目标 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 不是 Ipv6 的一个特性,所以通过 SLB 来负载平衡 IPv6 地址的流
量。