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