Dell Unity: Het LACP trunk of bond load-balancing algoritme wijzigen (op te lossen door Dell)

Summary: Het LACP-verkeer (Link Aggregation Control Protocol) wordt gebalanceerd voor schrijfbewerkingen naar de Unity SP's via een LACP-trunk of -binding, maar wordt niet gelijkmatig verdeeld wanneer antwoorden worden verzonden op leesverzoeken. ...

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

Onder bepaalde netwerkomstandigheden en -omgevingen kan het standaardalgoritme standaard één interface gebruiken.

Voorbeelden:

Wanneer het bron-MAC-adres hetzelfde is (ook wel bij gebruik van een router), zal de MAC altijd hetzelfde zijn en zal de poort die wordt gebruikt voor transmissies altijd hetzelfde zijn.

Onder bijzondere omstandigheden kunnen verschillende MAC's ook tot dezelfde waarde leiden.  
Als MAC's bijvoorbeeld altijd eindigen op een even getal (0, 2, 4, 6, 8, A, C of E) en er twee poorten in de LACP-trunk of -binding zijn, zal de berekening van de hash het verkeer ook elke keer door dezelfde poort leiden.

LACP-trunks of -bindingen laten zien dat het verkeer niet in balans is, waarbij een enkele interface wordt gebruikt in plaats van alle interfaces gelijkmatig.
Dit kan worden bevestigd in het productienetwerk (door de netwerkswitch SysAdmins) of door te kijken naar de grafische netwerkweergave in Unisphere onder SYSTEEMPRESTATIES>.


Ethernet-poortbandbreedte
 
OPMERKING: Dit is ook te zien in 'netstat -i' Uitvoer in de Service Shell.  

Cause

LACP op de Unity gebruikt layer2 als standaard-xmit_hash_policy.

Het gebruik van Layer2+3 als de "xmit_hash_policy" is bedoeld om een evenwichtigere verdeling van het verkeer te bieden dan Layer2 alleen, vooral in omgevingen waar een layer3-gatewayapparaat vereist is om de meeste bestemmingen te bereiken.

Referentie: https://www.kernel.org/doc/Documentation/networking/bonding.txtDeze hyperlink leidt u naar een website buiten Dell Technologies.

Layer2 gebruikt XOR van hardware-MAC-adressen en het ID-veld van het pakkettype om de hash te genereren.
De formule is

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


Layer2+3 gebruikt een combinatie van layer2- en layer3-protocolinformatie om de hash te genereren.
De hash wordt gegenereerd met behulp van een combinatie van de XOR van de hardware MAC-adressen en de IP-adressen.
De formule is

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.


Zowel Layer2 als Layer2+3 zijn 802.3ad-compatibel.

Resolution

Voor Unity OE-code 4.3 en hoger:

Wijzig de xmit_hash_policy met de svc_network_bond bevelen.
Dell Unity™ reeks versie 4.3: Technische opmerkingen voor serviceopdrachten - pagina 74.
Gebruik:

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


De syntaxis is vergelijkbaar met het onderstaande voorbeeld:

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


De aanvaardbare waarden voor xmit_hash_policy zijn:


0 of laag2 Standaardinstelling
: deze parameter gebruikt de XOR van hardware-MAC-adressen om de hash te genereren.

1 of laag3+4 Gebruikt protocolinformatie over de bovenste laag (indien beschikbaar) om de hash te genereren.
Hierdoor kan verkeer naar een bepaalde netwerkpeer meerdere slaves omvatten, hoewel een enkele verbinding niet meerdere slaves zal omvatten.

2 of laag2+3 Gebruikt een combinatie van laag2- en laag3-protocolinformatie om de hash te genereren - Mode 2 of Layer2+3-algoritme voldoet aan 802.3ad.



Voor Unity OE-code 4.2.3.9670635 en ouder:

Neem contact op met de klantenservice van Dell en vermeld dit KBA-nummer.

Voor Unity OE-code 5.3.x of hoger
Voor het aanbrengen van de wijziging is de serviceshell niet vereist en opnieuw opstarten is niet vereist.
Hier volgt een voorbeeld van het instellen van de Unity Array in de xmit_hash_policy van ons lab.
Deze Unity-array is geconfigureerd met een LACP-trunk die bekend staat als bond22.
Stuur SSH naar de Unity array met behulp van het serviceaccount.

Controleer eerst waarop de xmit_hash_policy is ingesteld.

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

Stel vervolgens de xmit_hash_policy in op 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.
#
Controleer of xmit_hash_policy is geconfigureerd op 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

OPMERKING: De opdrachtregelhulpprogramma's netstat als arp Vereisen dat de Service Shell is ingeschakeld.


Voorbeeld 'netstat -i' output, die de leden van een bond toont en kan worden gebruikt om te bepalen of verkeer wordt gehasht.  
In dit voorbeeld bestaat 'bond20' (de LACP-binding) uit de interfaces 'eth20' en 'eth21'.  
Let op het verschil in de kolom TX-OK, die het uitgaande verkeer van de Unity vertegenwoordigt.
 

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

Voorbeelduitvoer van arp op de serviceshell waarin de MAC-adressen (HWaddress) voor elk IP-adres worden weergegeven. 
Deze moeten verschillend zijn voor LACP om het verkeer nauwkeurig te verdelen over meerdere fysieke poorten.  
Er zijn verschillende interfaces die moeten filteren op de interface die u gebruikt.  
Gebruik 'ip addr' om de "Iface" die is toegewezen aan het IP-adres dat u wilt onderzoeken.
 
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.