Dell Unity:如何更改 LACP 中继或绑定负载平衡算法(戴尔可纠正)

摘要: 链路聚合控制协议 (LACP) 流量在通过 LACP 中继或绑定写入 Unity SP 时是均衡的,但在针对读取请求发送响应时不是均匀均衡的。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

在某些联网条件和环境中,默认算法可能默认使用单个接口。

例子:

当源MAC地址相同时(也就是使用路由器时),MAC将始终相同,并且用于传输的端口将始终相同。

此外,在特殊情况下,不同的 MAC 也可能产生相同的值。  
例如,如果 MAC 始终以偶数(0、2、4、6、8、A、C 或 E)结尾,并且 LACP 中继或绑定中有两个端口,则哈希的计算也会每次都通过同一端口引导流量。

LACP 中继或绑定显示流量未平衡,平均使用单个接口而不是所有接口。
这可以在生产网络上确认(由网络交换机系统管理员进行),也可以通过查看 Unisphere 中 “系统 >性能”下的图形网络显示来确认。


以太网端口带宽
 
提醒:这也可以在”netstat -i' Service Shell 中的输出。  

原因

Unity 上的 LACP 使用第 2 层作为其默认“xmit_hash_policy”。

使用 Layer2+3 作为“xmit_hash_policy”旨在提供比单独使用 Layer2 更平衡的流量分配,尤其是在需要第 3 层网关设备才能到达大多数目标的环境中。

参考:https://www.kernel.org/doc/Documentation/networking/bonding.txt本超链接将引导您访问非 Dell Technologies 运营的网站。

Layer2 使用硬件 MAC 地址和数据包类型 ID 字段的 XOR 来生成哈希。
公式为

hash = source MAC XOR destination MAC XOR packet type ID
slave number = hash modulo slave count.


Layer2+3 使用 layer2 和 layer3 协议信息的组合来生成哈希。
哈希是使用硬件 MAC 地址和 IP 地址的 XOR 组合生成的。
公式为

hash = source MAC XOR destination MAC XOR packet type ID
hash = hash XOR source IP XOR destination IP
hash = hash XOR (hash RSHIFT 16)
hash = hash XOR (hash RSHIFT 8)
And then hash is reduced modulo slave count.


第 2 层和第 2+3 层均符合 802.3ad 标准。

解决方案

对于 Unity OE 代码 4.3 及更高版本:

xmit_hash_policy 使用 svc_network_bond 命令。
Dell Unity™ 系列版本 4.3:服务命令技术说明 — 第 74 页。
用法:

 svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}


语法类似于以下示例:

service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2


可接受的值 xmit_hash_policy 是:


0 或第 2 层默认 设置
此参数使用硬件 MAC 地址的 XOR 来生成哈希。

1 或第 3 层+4 使用 上层协议信息(如果可用)生成哈希。
这允许到特定网络对等体的流量跨越多个从属节点,尽管单个连接不会跨越多个从节点。

2 或第 2+3 层 使用第 2 层和第 3 层协议信息的组合来生成哈希 - 模式 2 或第 2+3 层算法符合 802.3ad 标准。



对于 Unity OE 代码 4.2.3.9670635 及更低版本:

请联系 戴尔客户服务,并参考此 KBA 编号。

对于 Unity OE 代码 5.3.x 或更高版本
进行更改不需要服务 shell,也无需重新启动。
下面是在我们实验室的xmit_hash_policy中设置 Unity 阵列的示例。
此 Unity 阵列配置有称为 bond22 的 LACP 中继。
使用服务帐户通过 SSH 登录到 Unity 阵列。

首先,检查其xmit_hash_policy设置为什么。

# svc_network_bond --get --device bond22 -o xmit_hash_policy
INFO: Selected device: bond22
INFO: Option to show: xmit_hash_policy
INFO: Execution code: 0
xmit_hash_policy=0
#

接下来,将xmit_hash_policy设置为 2
# svc_network_bond --set --device bond22 -o xmit_hash_policy -v 2
INFO: Selected device: bond22
INFO: Option to modify: xmit_hash_policy
INFO: Requested value: 2
WARNING: Do you want to proceed? [yes/no]: yes   <<<<<< sometimes y works and sometimes it fails on the first attempts. Retry then.
INFO: Execution code: 0
INFO: Option 'xmit_hash_policy' has been successfully changed.
#
检查 xmit_hash_policy 是否配置为 2
# svc_network_bond --get --device bond22 -o xmit_hash_policy
INFO: Selected device: bond22
INFO: Option to show: xmit_hash_policy
INFO: Execution code: 0
xmit_hash_policy=2
#

其他信息

提醒:命令行实用程序 netstat arp 要求启用服务 shell。


示例 'netstat -i' 输出,其中显示绑定的成员,并可用于确定流量是否正在哈希处理。  
在此示例中,“bond20”(LACP 绑定)由接口“eth20”和“eth21”组成。  
请注意 TX-OK 列中的差异,该列表示来自 Unity 的出站流量。
 

21:12:03 service@(none) spb:~> netstat -i
Kernel Interface table
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
bond20     9000   0 101724658      0     11      0 126087418      0      0      0 BMmRU
cmin0      9000   0 14341258      0      0      0 11301712      0      0      0 BMRU
eth2       1500   0        0      0      0      0        0      0      0      0 BMU
eth3       1500   0        0      0      0      0        0      0      0      0 BMU
eth10      1500   0        0      0      0      0        0      0      0      0 BMU
eth11      1500   0        0      0      0      0        0      0      0      0 BMU
eth12      1500   0        0      0      0      0        0      0      0      0 BMU
eth13      1500   0        0      0      0      0        0      0      0      0 BMU
eth20      9000   0 52249885      0      1      0    38317      0      0      0 BMsRU
eth21      9000   0 49474773      0     10      0 126049101      0      0      0 BMsRU
eth22      1500   0        0      0      0      0        0      0      0      0 BMU
eth23      1500   0        0      0      0      0        0      0      0      0 BMU
eth_int    9000   0 14341055      0      0      0 11301598      0      0      0 BMRU
eve_br0    1500   0       16      0      0      0     3656      0      0      0 BMRU
lo        65536   0 963282566      0      0      0 963282566      0      0      0 LRU
mgmt       1500   0  1405994      0     64      0   360538      0      0      0 BMRU
mgmt_vdev  1500   0   356150      0     64      0   326216      0      0      0 BMRU
srm        1500   0   135650      0     64      0        5      0      0      0 BMRU
vetheve1   1500   0       16      0      0      0     3647      0      0      0 BMRU

服务 shell 上“arp”的输出示例,显示每个 IP 地址的 MAC 地址(硬件地址)。
这些应该不同,才能使 LACP 在多个物理端口之间准确地对流量进行负载平衡。  
有多个接口必须按您使用的接口进行筛选。  
使用 'ip addr' 要找到”Iface“,分配给要调查的 IP 地址。
 
19:23:33 service@(none) spa:~> arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.98.25.61              ether   00:25:b5:02:01:fc   C                     bond20
10.98.25.60              ether   00:25:b5:02:00:1c   C                     bond20
10.98.25.70              ether   00:25:b5:02:00:dc   C                     bond20
10.98.25.63              ether   00:25:b5:02:01:8c   C                     bond20
10.98.25.65              ether   00:25:b5:02:01:6c   C                     bond20
10.98.25.62              ether   00:25:b5:02:01:dc   C                     bond20
10.98.25.64              ether   00:25:b5:02:01:9c   C                     bond20
10.98.25.67              ether   00:25:b5:02:01:0c   C                     bond20
10.98.25.66              ether   00:25:b5:02:01:7c   C                     bond20
10.98.25.59              ether   00:25:b5:02:00:0c   C                     bond20
peer                     ether   8e:92:80:4d:2d:02   C                     eth_int
10.98.25.69              ether   00:25:b5:02:00:fc   C                     bond20
10.98.25.1               ether   00:08:e3:ff:fd:90   C                     bond20
10.98.25.68              ether   00:25:b5:02:01:1c   C                     bond20

受影响的产品

Dell EMC Unity Family

产品

Dell EMC Unity Family, VNXe2 Series
文章属性
文章编号: 000034481
文章类型: Solution
上次修改时间: 04 7月 2025
版本:  6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。