Dell Unity: LACP trunk veya bond yük dengeleme algoritmasını değiştirme (Dell Tarafından Düzeltilebilir)
Summary: Link Aggregation Control Protocol (LACP) trafiği, Unity SP'lere bir LACP hattı veya bağı üzerinden yazma işlemleri için dengelenir ancak yanıtlar okuma isteklerine gönderildiğinde eşit şekilde dengelenmez. ...
Symptoms
Belirli ağ oluşturma koşullarında ve ortamlarında, varsayılan algoritma varsayılan olarak tek bir arayüz kullanabilir.
Örnekler:
Kaynak MAC adresi aynı olduğunda (diğer bir deyişle bir yönlendirici kullanırken), MAC her zaman aynı olacaktır ve iletimler için kullanılan bağlantı noktası her zaman aynı olacaktır.
Ayrıca, özel koşullar altında, farklı MAC'ler de aynı değerle sonuçlanabilir.
Örneğin, MAC'ler her zaman çift sayı (0,2,4,6,8, A, C veya E) ile bitiyorsa ve LACP trunk veya bond'da iki bağlantı noktası varsa, hash'in hesaplanması trafiği her seferinde aynı bağlantı noktası üzerinden yönlendirecektir.
LACP gövdeleri veya bağları, tüm arayüzleri eşit şekilde kullanmak yerine tek bir arayüzü kullanarak trafiğin dengeli olmadığını gösteriyor.
Bu, üretim ağında (Ağ Anahtarı Sistem Yöneticileri tarafından) veya Unisphere'de SYSTEM >Performance altındaki grafik ağ ekranına bakılarak doğrulanabilir.
netstat -i' Hizmet kabuğunda çıktı.
Cause
Unity'deki LACP, varsayılan "xmit_hash_policy" olarak katman2'yi kullanır.
Layer2+3'ün "xmit_hash_policy" olarak kullanılması, özellikle çoğu hedefe ulaşmak için layer3 ağ geçidi cihazının gerekli olduğu ortamlarda, tek başına layer2'den daha dengeli bir trafik dağılımı sağlamayı amaçlamaktadır.
Referans: https://www.kernel.org/doc/Documentation/networking/bonding.txt
Layer2, karmayı oluşturmak için donanım MAC adreslerinin XOR'unu ve paket türü kimliği alanını kullanır.
Formül şu şekildedir
hash = source MAC XOR destination MAC XOR packet type ID slave number = hash modulo slave count.
Layer2+3 , hash'i oluşturmak için layer2 ve layer3 protokol bilgilerinin bir kombinasyonunu kullanır.
Karma, donanım MAC adreslerinin XOR'unun ve IP adreslerinin bir kombinasyonu kullanılarak oluşturulur.
Formül şu şekildedir
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.
Hem Layer2 hem de Layer2+3, 802.3ad uyumludur.
Resolution
Unity OE Kodu 4.3 ve üzeri için:
Değiştir xmit_hash_policy ile svc_network_bond komut.
Dell Unity Ailesi™ Sürüm 4.3: Servis Komutları Teknik Notlar - sayfa 74.
Kullanım:
svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}
Söz dizimi aşağıdaki örneğe benzer olacaktır:
service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2
Aşağıdakiler için kabul edilebilir değerler xmit_hash_policy ar:
0 veya layer2 Varsayılan ayar
Bu parametre, karmayı oluşturmak için donanım MAC adreslerinin XOR'unu kullanır.
1 veya layer3+4 Hash'i oluşturmak için üst katman protokol bilgilerini (varsa) kullanır.
Bu, belirli bir ağ eşine giden trafiğin birden çok bağımlıya yayılmasına izin verir, ancak tek bir bağlantı birden çok bağımlıya yayılmaz.
2 veya katman2+3 Karmayı oluşturmak için layer2 ve layer3 protokol bilgilerinin bir kombinasyonunu kullanır - Mod 2 veya Layer2+3 algoritması 802.3ad uyumludur.
Unity OE Kodu 4.2.3.9670635 ve daha eskileri için:
Dell Müşteri Hizmetleri ile iletişime geçin ve bu KBA numarasını referans alın.
Unity OE Kodu 5.3.x veya üzeri
içinDeğişikliği yapmak için hizmet kabuğu gerekmez ve yeniden başlatma gerekmez.
Laboratuvarımızın xmit_hash_policy Unity Dizisini ayarlamaya yönelik bir örnek aşağıda verilmiştir.
Bu Unity Dizisi, bond22 olarak bilinen bir LACP hattı ile yapılandırılır.
Hizmet hesabını kullanarak Unity dizisinde SSH oturumu açın.
İlk olarak, xmit_hash_policy neye ayarlandığını kontrol edin.
# 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 #
Ardından, xmit_hash_policy 2 olarak ayarlayın
# 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 ve arp Hizmet kabuğunun etkinleştirilmesini gerektirir.
Örnek 'netstat -i' Çıktı, bir bağın üyelerini gösterir ve trafiğin karma hale getirilip getirilmediğini belirlemek için kullanılabilir.
Bu örnekte, 'bond20' (LACP bağı), 'eth20' ve 'eth21' arayüzlerinden oluşur.
Unity'den giden trafiği temsil eden TX-OK sütunundaki farka dikkat edin.
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
Her IP adresi için MAC adreslerini (HWaddress) gösteren hizmet kabuğundaki 'arp' örnek çıktısı.
LACP'nin birden çok fiziksel bağlantı noktasında trafiğin yükünü doğru şekilde dengelemesi için bunlar farklı olmalıdır.
Kullanmakta olduğunuz arabirime göre filtrelenmesi gereken birkaç arabirim vardır.
Kullanım
'ip addr' bulmak için "Iface" araştırmak istediğiniz IP adresine atanmıştır.
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