Дано:
2 сервера под управлением Debian Linux
В каждом сервере выделено 2 сетевые карты
2 одинаковых коммутатора с поддержкой IEEE 802.3ad\LACP (netgear GS748T)
Схема подключения:
------------ ----------------- ----------------- -------------------
| linux... | eth0------port1 | умный.......... | port3-----port1 | умный.........| port3 -------eth0 | второй linux |
| сервер | eth1------port2 | коммутатор | port4-----port2 | коммутатор | port4--------eth1 | сервер...........|
------------ ----------------- ----------------- -------------------
Сетевые настройки на серверах идентичны:
auto bond0
iface bond0 inet static
address 192.168.88.xx
netmask 255.255.255.0
slaves eth0 eth1
bond_miimon 100
bond_mode 802.3ad
bond_xmit_hash_policy layer3+4
Задача:
получить через коммутаторы соединение между Linux серверами 2 Гбит\с (многопоточное)
Мои действия:
Для проверки подключаю сервера напрямую друг к другу и запускаю тест в 2 потока:
root@node178:~# iperf -c 192.168.88.1 -P 2
------------------------------------------------------------
Client connecting to 192.168.88.1, TCP port 5001
TCP window size: 19.6 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.88.2 port 41924 connected with 192.168.88.1 port 5001
[ 3] local 192.168.88.2 port 41923 connected with 192.168.88.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
[ 3] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
[SUM] 0.0-10.0 sec 2.19 GBytes 1.88 Gbits/sec
root@node178:~#
Отключение любого одного кабеля не прерывает соединение, лишь падает скорость.
Изменение bond_xmit_hash_policy в значения layer2 или layer2+3 прироста скорости не даёт, только отказоустойчивость.
Далее включаю LACP на коммутаторах, перекидываю кабели и проверяю
root@node178:~# iperf -c 192.168.88.1 -P 2
------------------------------------------------------------
Client connecting to 192.168.88.1, TCP port 5001
TCP window size: 19.6 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.88.2 port 41926 connected with 192.168.88.1 port 5001
[ 3] local 192.168.88.2 port 41925 connected with 192.168.88.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 9.6 sec 536 MBytes 468 Mbits/sec
[ 4] 0.0-10.0 sec 587 MBytes 492 Mbits/sec
[SUM] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
Вновь проверяю: отключение любого одного кабеля не прерывает соединение, скорость прежняя 941 Mbits/sec
Получается LACP на коммутаторах работает, но только на половину - обеспечена только отказоустойчивость.
Возможности менять hash_policy на коммутаторах нет.
Вопросы:
1. Netgear меня обманул заявив полную поддержку IEEE 802.3ad(т.к. обеспечена только отказоустойчивость)?
2. В linux в модуле ядра стандарт IEEE 802.3ad реализован не полностью(т.к. увеличение скорости возможно только при прямом подключении)?
3) Как всё же получить через коммутаторы соединение между Linux серверами 2 Гбит\с (многопоточное).
P.S. Готов заказать другие коммутаторы
P.P.S. Cisco мне не по карману.
P.P.P.S Под много поточным подразумеваю передачу данных в двух потоках в одну и ту же сторону