Dell Unity: Ändern des LACP-Trunk- oder Bond-Lastenausgleichsalgorithmus (von Dell korrigierbar)

Summary: Der LACP-Datenverkehr (Link Aggregation Control Protocol) wird für Schreibvorgänge auf die Unity-SPs über einen LACP-Trunk oder eine Bündelung ausgeglichen, aber nicht gleichmäßig, wenn Antworten auf Leseanforderungen gesendet werden. ...

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

Unter bestimmten Netzwerkbedingungen und -umgebungen verwendet der Standardalgorithmus möglicherweise standardmäßig eine einzige Schnittstelle.

Beispiele:

Wenn die Quell-MAC-Adresse identisch ist (d. h. bei Verwendung eines Routers), ist die MAC immer identisch und der Port, der für Übertragungen verwendet wird, ist immer derselbe.

Unter besonderen Umständen können auch unterschiedliche MACs zum gleichen Wert führen.  
Wenn MACs beispielsweise immer mit einer geraden Zahl enden (0, 2, 4, 6, 8, A, C oder E) und es zwei Ports im LACP-Trunk oder -Bond gibt, wird der Datenverkehr bei der Berechnung des Hash auch jedes Mal über denselben Port geleitet.

LACP-Trunks oder -Bonds zeigen an, dass der Datenverkehr nicht ausgeglichen ist und nur eine einzige Schnittstelle statt gleichmäßig alle Schnittstellen verwendet.
Dies kann im Produktionsnetzwerk (durch die Netzwerkswitch-Systemadministratoren) oder durch einen Blick auf die grafische Netzwerkanzeige in Unisphere unter SYSTEM >Performance bestätigt werden.


Bandbreite des Ethernetports
 
HINWEIS: Dies zeigt sich auch in 'netstat -i' Ausgabe in der Service-Shell.  

Cause

LACP auf Unity verwendet layer2 als standardmäßigen "xmit_hash_policy".

Die Verwendung von Layer2+3 als "xmit_hash_policy" soll eine ausgewogenere Verteilung des Datenverkehrs als Layer2 allein bieten, insbesondere in Umgebungen, in denen ein Layer3-Gateway-Gerät erforderlich ist, um die meisten Ziele zu erreichen.

Referenz: https://www.kernel.org/doc/Documentation/networking/bonding.txtDieser Hyperlink führt Sie zu einer Website außerhalb von Dell Technologies.

Layer2 verwendet XOR der Hardware-MAC-Adressen und das Pakettyp-ID-Feld, um den Hash zu erzeugen.
Die Formel lautet:

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


Layer2+3 verwendet eine Kombination aus Layer2- und Layer3-Protokollinformationen, um den Hash zu erzeugen.
Der Hash wird mit einer Kombination aus dem XOR der Hardware-MAC-Adressen und den IP-Adressen erzeugt.
Die Formel lautet:

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.


Sowohl Layer2 als auch Layer2+3 sind 802.3ad-konform.

Resolution

Für Unity OE-Code 4.3 und höher:

Ändern Sie die xmit_hash_policy mit dem svc_network_bond Befehl.
Dell Unity-Produktreihe™ Version 4.3: Servicebefehle – Technische Hinweise – Seite 74.
Verwendung:

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


Die Syntax ähnelt dem folgenden Beispiel:

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


Die zulässigen Werte für xmit_hash_policy sind:


0 oder layer2 Standardeinstellung
: Dieser Parameter verwendet das XOR der Hardware-MAC-Adressen, um den Hash zu erzeugen.

1 oder layer3+4 Verwendet Protokollinformationen der oberen Schicht (falls verfügbar), um den Hash zu erzeugen.
Auf diese Weise kann der Datenverkehr zu einem bestimmten Netzwerk-Peer mehrere Slaves umfassen, obwohl eine einzelne Verbindung nicht mehrere Slaves umfasst.

2 oder layer2+3: Verwendet eine Kombination aus Layer2- und Layer3-Protokollinformationen, um den Hash zu erzeugen. Modus 2 oder Layer2+3-Algorithmus ist 802.3ad-konform.



Für Unity OE-Code 4.2.3.9670635 und älter:

Wenden Sie sich an den Dell Customer Service und geben Sie diese KBA-Nummer an.

Für Unity OE Code 5.3.x oder höher
Für die Änderung ist keine Service-Shell erforderlich und es ist kein Neustart erforderlich.
Hier ist ein Beispiel für das Einstellen des Unity-Arrays in der xmit_hash_policy unseres Labors.
Dieses Unity-Array ist mit einem LACP-Trunk namens bond22 konfiguriert.
Stellen Sie über das Servicekonto eine SSH-Verbindung zum Unity-Array her.

Überprüfen Sie zunächst, worauf der xmit_hash_policy eingestellt ist.

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

Legen Sie als Nächstes den xmit_hash_policy auf 2 fest
# 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.
#
Überprüfen Sie, ob xmit_hash_policy auf 2 konfiguriert wurde.
# 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

HINWEIS: Die Befehlszeilendienstprogramme netstat und arp Die Service-Shell muss aktiviert sein.


Beispiel 'netstat -i' output, die die Mitglieder einer Bündelung anzeigt und verwendet werden kann, um festzustellen, ob Datenverkehr gehasht wird.  
In diesem Beispiel besteht "bond20" (die LACP-Bindung) aus den Schnittstellen "eth20" und "eth21".  
Beachten Sie den Unterschied in der Spalte TX-OK, die den ausgehenden Datenverkehr von Unity darstellt.
 

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

Beispielausgabe von "arp" in der Service-Shell, in der die MAC-Adressen (HW-Adressen) für jede IP-Adresse angezeigt werden. 
Diese sollten unterschiedlich sein, damit LACP einen präzisen Lastenausgleich des Datenverkehrs über mehrere physische Ports hinweg durchführen kann.  
Es gibt mehrere Schnittstellen, die nach der verwendeten Schnittstelle filtern müssen.  
Verwenden Sie 'ip addr' So finden Sie die "Iface", die der IP-Adresse zugewiesen ist, die Sie untersuchen möchten.
 
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.