Dell Unity: Sådan ændres LACP-trunk- eller bindingsbelastningsjusteringsalgoritmen (kan rettes af Dell)
Summary: LACP-trafik (Link Aggregation Control Protocol) afbalanceres for skrivninger til Unity SP'erne via en LACP-trunk eller -binding, men er ikke jævnt afbalanceret, når der sendes svar på læseanmodninger. ...
Symptoms
Under visse netværksforhold og miljøer bruger standardalgoritmen muligvis som standard en enkelt grænseflade.
Eksempler:
Når kildens MAC-adresse er den samme (aka når du bruger en router), vil MAC'en altid være den samme, og den port, der bruges til transmissioner, vil altid være den samme.
Under særlige omstændigheder kan forskellige MAC'er også resultere i den samme værdi.
Hvis MAC'er f.eks. altid ender på et lige tal (0,2,4,6,8,A,C eller E), og der er to porte i LACP-trunken eller -bindingen, vil beregning af hashen også dirigere trafik gennem den samme port hver gang.
LACP-trunks eller obligationer viser, at trafikken ikke er afbalanceret, ved hjælp af en enkelt grænseflade i stedet for alle grænseflader jævnt.
Dette kan bekræftes på produktionsnetværket (af Network Switch SysAdmins) eller ved at se på det grafiske netværksdisplay i Unisphere under SYSTEM >Performance.
netstat -i' output i serviceskallen.
Cause
LACP på Unity bruger lag2 som standard "xmit_hash_policy".
Brug af Layer2+3 som "xmit_hash_policy" er beregnet til at give en mere afbalanceret fordeling af trafik end Layer2 alene, især i miljøer, hvor der kræves en Layer3-gatewayenhed for at nå de fleste destinationer.
Reference: https://www.kernel.org/doc/Documentation/networking/bonding.txt
Layer2 bruger XOR af hardware-MAC-adresser og pakketype-id-felt til at generere hashen.
Formlen er
hash = source MAC XOR destination MAC XOR packet type ID slave number = hash modulo slave count.
Layer2+3 bruger en kombination af lag2- og lag3-protokoloplysninger til at generere hashen.
Hashen genereres ved hjælp af en kombination af XOR for hardware-MAC-adresserne og IP-adresserne.
Formlen er
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 Layer2 og Layer2+3 er 802.3ad-kompatible.
Resolution
For Unity OE-kode 4.3 og derover:
Skift xmit_hash_policy med svc_network_bond kommando.
Dell Unity-serien™ version 4.3: Servicekommandoer Tekniske bemærkninger - side 74.
Brug:
svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}
Syntaksen ligner nedenstående eksempel:
service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2
De acceptable værdier for xmit_hash_policy er:
0 eller layer2 Standardindstilling
Denne parameter bruger XOR for hardware-MAC-adresser til at generere hashen.
1 eller lag3+4 Bruger protokoloplysninger i øverste lag (hvis tilgængelige) til at generere hashen.
Dette gør det muligt for trafik til et bestemt netværk peer at spænde over flere slaver, selvom en enkelt forbindelse ikke spænder over flere slaver.
2 eller layer2+3 Bruger en kombination af layer2- og layer3-protokoloplysninger til at generere hash - Mode 2- eller Layer2+3-algoritmen er 802.3ad-kompatibel.
For Unity OE-kode 4.2.3.9670635 og ældre:
Kontakt Dells kundeservice, og angiv dette KBA-nummer.
Til Unity OE-kode 5.3.x eller nyere
At foretage ændringen kræver ikke serviceskallen, og der kræves ingen genstart.
Her er et eksempel på indstilling af Unity-systemet i vores laboratoriums xmit_hash_policy.
Dette Unity-system er konfigureret med en LACP-trunk kendt som bond22.
SSH ind på Unity-systemet ved hjælp af servicekontoen.
Kontroller først, hvad dens xmit_hash_policy er indstillet til.
# 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 #
Indstil derefter xmit_hash_policy til 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. #
# 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 og arp Kræve, at Service Shell er aktiveret.
Eksempel 'netstat -i' output, som viser medlemmerne af en obligation og kan bruges til at bestemme, om trafik hashes.
I dette eksempel består 'bond20' (LACP-bindingen) af grænsefladerne 'eth20' og 'eth21'.
Bemærk forskellen i kolonnen TX-OK, som repræsenterer udgående trafik fra 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
Eksempel på output af 'arp' på service shell, som viser MAC-adresserne (HWaddress) for hver IP-adresse.
Disse skal være forskellige, for at LACP nøjagtigt kan belastningsbalancere trafik på tværs af flere fysiske porte.
Der er flere grænseflader, der skal filtreres efter den grænseflade, du bruger.
Brug
'ip addr' for at finde "Iface", der er tildelt den IP-adresse, du vil undersøge.
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