Dell Unity: Як змінити алгоритм балансування навантаження стовбура LACP або бонда (Dell Correctable)
Summary: Трафік Link Aggregation Control Protocol (LACP) збалансований для запису в SP Unity по магістралі LACP або бонду, але нерівномірно збалансований, коли відповіді надсилаються на запити на зчитування. ...
Symptoms
За певних умов і середовищ мережі алгоритм за замовчуванням може використовувати один інтерфейс.
Приклади:
Коли вихідна MAC-адреса однакова (тобто при використанні маршрутизатора), MAC завжди буде однаковим, а порт, який використовується для передачі, завжди буде однаковим.
Крім того, за особливих обставин різні MAC також можуть призвести до однакового значення.
Наприклад, якщо MAC завжди закінчуються на парне число (0,2,4,6,8,A,C або E) і в магістралі LACP або бонді є два порти, розрахунок хешу буде направляти трафік через один і той же порт кожен раз
.Стовбури або облігації LACP показують, що трафік не збалансований, використовуючи один інтерфейс замість усіх інтерфейсів рівномірно.
Це можна підтвердити в робочій мережі (за допомогою системних адміністраторів мережевого комутатора) або подивившись на графічне відображення мережі в Unisphere в розділі SYSTEM >Performance.
netstat -i' вивід у сервісній оболонці.
Cause
LACP на Unity використовує layer2 як свій стандартний «xmit_hash_policy».
Використання Layer2+3 як «xmit_hash_policy» призначене для забезпечення більш збалансованого розподілу трафіку, ніж лише рівень 2, особливо в середовищах, де для досягнення більшості пунктів призначення потрібен пристрій шлюзу рівня 3.
Довідка: https://www.kernel.org/doc/Documentation/networking/bonding.txt
Layer2 використовує XOR апаратних MAC-адрес та поле ID типу пакета для генерації хешу.
Формула має вигляд
hash = source MAC XOR destination MAC XOR packet type ID slave number = hash modulo slave count.
Layer2+3 використовує комбінацію інформації протоколів layer2 і layer3 для генерації хешу.
Хеш генерується за допомогою комбінації XOR апаратних MAC-адрес та IP-адрес.
Формула має вигляд
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.
Обидва Layer2 і Layer2+3 відповідають стандарту 802.3ad.
Resolution
Для Unity OE Code 4.3 і вище:
Змініть xmit_hash_policy за допомогою кнопки svc_network_bond команда.
Dell Unity™ Family версії 4.3: Технічні примітки до службових команд - сторінка 74.
Використання:
svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}
Синтаксис буде схожий на наведений нижче приклад:
service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2
Допустимі значення для xmit_hash_policy бувають:
0 або layer2 Налаштування
за замовчуванням Цей параметр використовує XOR апаратних MAC-адрес для генерації хешу.
1 або layer3+4 використовує інформацію протоколу верхнього рівня (якщо доступно) для генерації хешу.
Це дозволяє трафіку до певного мережевого вузла охоплювати кілька підлеглих, хоча одне з'єднання не буде охоплювати кілька підлеглих.
2 або layer2+3 використовує комбінацію інформації протоколів layer2 і layer3 для генерації хешу - алгоритм Mode 2 або Layer2+3 сумісний з 802.3ad.
Для Unity OE Code 4.2.3.9670635 і старше:
Зверніться до служби підтримки клієнтів Dell і зверніться до цього номера KBA.
Для Unity Код OE 5.3.x або вище
Для внесення змін не потрібна сервісна оболонка, і перезавантаження не потрібне.
Ось приклад налаштування Unity Array у xmit_hash_policy нашої лабораторії.
Цей масив Unity налаштований за допомогою магістралі LACP, відомої як bond22.
SSH в масив Unity за допомогою сервісного облікового запису.
По-перше, перевірте, на що налаштований його xmit_hash_policy.
# 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 #
Далі встановіть xmit_hash_policy на 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 і arp Вимагають, щоб була ввімкнена сервісна оболонка.
Приклад 'netstat -i' output, який показує учасників зв'язку та може бути використаний для визначення, чи хешується трафік.
У цьому прикладі 'bond20' (зв'язок LACP) складається з інтерфейсів 'eth20' і 'eth21'.
Зверніть увагу на різницю в стовпці TX-OK, який представляє вихідний трафік з 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
Приклад виведення 'arp' на сервісну оболонку, який показує MAC-адреси (HWaddress) для кожної IP-адреси.
Вони повинні бути різними, щоб LACP точно розподіляв навантаження трафіку між кількома фізичними портами.
Існує кілька інтерфейсів, які потрібно фільтрувати за інтерфейсом, який ви використовуєте.
Використання
'ip addr' щоб знайти «Iface», яка призначена IP-адресі, яку ви хочете дослідити.
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