Dell Unity: Slik endrer du LACP-stammen eller algoritmen for lastbalansering (korrigert Dell)
Summary: LACP-trafikk (Link Aggregation Control Protocol) er balansert for skriving til Unity SPS over en LACP-stamme eller -binding, men er ikke jevnt balansert når svar sendes for å lese forespørsler. ...
Symptoms
Under visse nettverksforhold og -miljøer kan standardalgoritmen bruke ett enkelt grensesnitt som standard.
Eksempler:
Når kildens MAC-adresse er den samme (aka når du bruker en ruter), vil MAC alltid være den samme, og porten som brukes til overføringer vil alltid være den samme.
Under spesielle omstendigheter kan forskjellige MAC-er også resultere i samme verdi.
For eksempel, hvis MAC-er alltid slutter på et partall (0,2,4,6,8,A,C eller E) og det er to porter i LACP-stammen eller -bindingen, vil beregning av hashen lede trafikk gjennom samme port hver gang også.
LACP trunker eller obligasjoner viser trafikken er ikke balansert, ved hjelp av et enkelt grensesnitt i stedet for alle grensesnitt jevnt.
Dette kan bekreftes på produksjonsnettverket (av Network Switch SysAdmins), eller ved å se på den grafiske nettverksvisningen i Unisphere under SYSTEM >Performance.
netstat -i' Utdata i serviceskallet.
Cause
LACP på Unity bruker layer2 som standard "xmit_hash_policy".
Bruk av Layer2+3 som "xmit_hash_policy" er ment å gi en mer balansert fordeling av trafikk enn lag 2 alene, spesielt i miljøer der en layer3-gatewayenhet kreves for å nå de fleste mål.
Referanse: https://www.kernel.org/doc/Documentation/networking/bonding.txt
Layer2 bruker XOR av maskinvare MAC-adresser og pakketype ID-felt for å generere hash.
Formelen er
hash = source MAC XOR destination MAC XOR packet type ID slave number = hash modulo slave count.
Layer2+3 bruker en kombinasjon av layer2- og layer3-protokollinformasjon til å generere hash-koden.
Hash-koden genereres ved hjelp av en kombinasjon av XOR for maskinvarens MAC-adresser og IP-adressene.
Formelen 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 lag 2 og lag 2 + 3 er 802.3ad-kompatible.
Resolution
For Unity OE-kode 4.3 og nyere:
Endre ikonet xmit_hash_policy med svc_network_bond kommando.
Dell Unity-serien™ versjon 4.3: Servicekommandoer Tekniske merknader - side 74.
Bruk:
svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}
Syntaksen vil ligne på eksemplet nedenfor:
service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2
De akseptable verdiene for xmit_hash_policy er:
0 eller lag2 Standardinnstilling
Denne parameteren bruker XOR for maskinvare-MAC-adresser til å generere hash-koden.
1 eller layer3+4 Bruker protokollinformasjon for øvre lag (når tilgjengelig) til å generere hash-koden.
Dette gjør det mulig for trafikk til en bestemt nettverksnode å spenne over flere slaver, selv om en enkelt forbindelse ikke vil spenne over flere slaver.
2 eller layer2+3 Bruker en kombinasjon av layer2- og layer3-protokollinformasjon til å generere hash-koden – Mode 2- eller Layer2+3-algoritmen er 802.3ad-kompatibel.
For Unity OE-kode 4.2.3.9670635 og eldre:
Kontakt Dell kundeservice, og referer til dette KBA-nummeret.
For Unity OE-kode 5.3.x eller høyere
Endringen krever ikke serviceskall, og omstart er ikke nødvendig.
Her er et eksempel på hvordan du angir Unity Array i laboratoriets xmit_hash_policy.
Dette Unity-arrayet er konfigurert med en LACP-stamme kjent som bond22.
SSH inn i Unity-arrayet ved hjelp av tjenestekontoen.
Sjekk først hva xmit_hash_policy er satt 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 #
Deretter setter du 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 Krev at serviceskallet er aktivert.
Eksempel 'netstat -i' utdata, som viser medlemmene av en obligasjon og kan brukes til å avgjøre om trafikken blir hashet.
I dette eksempelet består 'bond20' (LACP-obligasjonen) av grensesnittene 'eth20' og 'eth21'.
Legg merke til forskjellen i TX-OK-kolonnen, som representerer utgående trafikk 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å utdata av 'arp' på serviceskallet som viser MAC-adressene (HW-adresse) for hver IP-adresse.
Disse bør være forskjellige for LACP for å nøyaktig lastbalansere trafikk over flere fysiske porter.
Det er flere grensesnitt som må filtreres etter grensesnittet du bruker.
Bruk
'ip addr' for å finne "Iface" som er tildelt IP-adressen du vil undersøke.
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