Dell Unity: Så här ändrar du belastningsbalanseringsalgoritmen för LACP-trunk eller bindning (kan korrigeras av Dell)

Summary: LACP-trafik (Link Aggregation Control Protocol) balanseras för skrivningar till Unity SPs via en LACP-trunk eller bindning, men balanseras inte jämnt när svar skickas till läsbegäranden. ...

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

Under vissa nätverksförhållanden och miljöer kan standardalgoritmen som standard använda ett enda gränssnitt.

Exempel:

När källans MAC-adress är densamma (aka när du använder en router), kommer MAC alltid att vara densamma och porten som används för överföringar kommer alltid att vara densamma.

Under speciella omständigheter kan också olika MAC-datorer resultera i samma värde.  
Till exempel, om MAC:er alltid slutar med ett jämnt tal (0,2,4,6,8,A,C eller E) och det finns två portar i LACP-trunken eller bindningen, kommer beräkningen av hashen att dirigera trafik genom samma port varje gång också.

LACP-trunkar eller bindningar visar att trafiken inte är balanserad och använder ett enda gränssnitt i stället för alla gränssnitt jämnt.
Detta kan bekräftas i produktionsnätverket (av nätverksswitchen SysAdmins) eller genom att titta på den grafiska nätverksvisningen i Unisphere under SYSTEM >Performance.


Ethernet-portens bandbredd
 
Obs! Detta kan också ses i "netstat -i' Utdata i Service Shell.  

Cause

LACP på Unity använder layer2 som standard "xmit_hash_policy".

Att använda Layer2+3 som "xmit_hash_policy" är avsett att ge en mer balanserad fördelning av trafiken än enbart layer2, särskilt i miljöer där en layer3-gatewayenhet krävs för att nå de flesta mål.

Referens: https://www.kernel.org/doc/Documentation/networking/bonding.txtDen här hyperlänken tar dig till en webbplats utanför Dell Technologies.

Layer2 använder XOR för hårdvarans MAC-adresser och pakettyps-ID-fältet för att generera hashen.
Formeln är

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


Layer2+3 använder en kombination av layer2- och layer3-protokollinformation för att generera hashen.
Hashen genereras med hjälp av en kombination av XOR för hårdvarans MAC-adresser och IP-adresserna.
Formeln är

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.


Både lager 2 och lager 2+3 är 802.3ad-kompatibla.

Resolution

För Unity OE-kod 4.3 och senare:

Ändra xmit_hash_policy med hjälp av svc_network_bond befallning.
Dell Unity-serien™ version 4.3: Servicekommandon Teknisk information - sidan 74.
Användning:

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


Syntaxen skulle likna exemplet nedan:

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


De godtagbara värdena för xmit_hash_policy är:


0 eller layer2 Standardinställning
Den här parametern använder XOR för hårdvarans MAC-adresser för att generera hashen.

1 eller layer3+4 Använder protokollinformation för det övre lagret (när den är tillgänglig) för att generera hashen.
Detta gör det möjligt för trafik till en viss nätverks-peer att sträcka sig över flera slavnoder, även om en enda anslutning inte sträcker sig över flera slavnoder.

2 eller layer2+3 Använder en kombination av layer2- och layer3-protokollinformation för att generera hashen – Mode 2- eller Layer2+3-algoritmen är 802.3ad-kompatibel.



För Unity OE-kod 4.2.3.9670635 och äldre:

Kontakta Dells kundtjänst och hänvisa till KBA-numret.

För Unity OE-kod 5.3.x eller senare
Ändringen kräver inte tjänstgränssnittet och ingen omstart krävs.
Här är ett exempel på hur du ställer in Unity Array i labbets xmit_hash_policy.
Detta Unity-disksystem är konfigurerat med en LACP-trunk som kallas bond22.
SSH-ansluta till Unity-disksystemet med hjälp av tjänstkontot.

Kontrollera först vad dess xmit_hash_policy är inställd på.

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

Ställ sedan in xmit_hash_policy på 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.
#
Kontrollera om xmit_hash_policy har konfigurerats till 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

Obs! Kommandoradsverktygen netstat och arp Kräv att Service Shell är aktiverat.


Exempel 'netstat -i' output, som visar medlemmarna i en bindning och kan användas för att avgöra om trafiken hashas.  
I det här exemplet består "bond20" (LACP-bindningen) av gränssnitten "eth20" och "eth21".  
Observera skillnaden i kolumnen TX-OK, som representerar utgående trafik från 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

Exempel på utdata från "arp" på Service Shell som visar MAC-adresserna (HWaddress) för varje IP-adress. 
Dessa bör vara olika för att LACP ska kunna belastningsutjämna trafik över flera fysiska portar korrekt.  
Det finns flera gränssnitt som måste filtreras efter det gränssnitt du använder.  
Använd 'ip addr' för att hitta "Iface" som är tilldelad till den IP-adress som du vill undersöka.
 
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.