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

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

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

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

例子:

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

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

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


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

Cause

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 标准。

Resolution

对于 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
#

Additional Information

提醒:命令行实用程序 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

Affected Products

Dell EMC Unity Family

Products

Dell EMC Unity Family, VNXe2 Series
Article Properties
Article Number: 000034481
Article Type: Solution
Last Modified: 04 Jul 2025
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.