LINUX.ORG.RU
ФорумAdmin

Скорость при bonding

 , , ,


1

2

Есть debian 8 и ubuntu desktop 14.04. Планируемая схема подключения:

+---+   +---+   +---+
|pc1|---|   |---|   |
|   |---|swt|---|pc1|
+---+   +---+   +---+

Режим работы bonding: 802.3ad. В debian все завелось без вопросов с такими настройками (на стороне свича всё настроено):

$ lspci
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
04:01.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller
$ cat /etc/modules
bonding
$ cat /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto bond0
iface bond0 inet static
	address 192.168.42.55
	netmask 255.255.255.0
	gateway 192.168.42.254
	dns-nameservers 192.168.42.9 192.168.42.7
	dns-search domain.local
	bond_mode 802.3ad
	bond_miimon 100
	bond_downdelay 200
	bond_updelay 200
	bond_slaves eth0 eth1
$ cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
	Aggregator ID: 1
	Number of ports: 2
	Actor Key: 17
	Partner Key: 1000
	Partner Mac Address: b0:00:b4:1b:e6:42

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 5
Permanent HW addr: 00:27:0e:2b:43:d5
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 4
Permanent HW addr: 00:0e:04:b7:09:11
Aggregator ID: 1
Slave queue ID: 0

В Ubuntu пришлось долго бить в бубен и на данный момент все работает, если прописывать ручками

$ lspci
02:00.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 06)
03:00.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 06)

$ sudo modprobe bonding mode=4
$ sudo ifconfig bond0 up
$ sudo ifenslave bond0 eth5 eth6
$ sudo ifconfig bond0 192.168.42.54 netmask 255.255.255.0

$ cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
	Aggregator ID: 1
	Number of ports: 2
	Actor Key: 17
	Partner Key: 1002
	Partner Mac Address: b0:00:b4:1b:e6:42

Slave Interface: eth5
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: c8:d3:a3:ad:23:ae
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth6
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: c8:d3:a3:ad:23:51
Aggregator ID: 1
Slave queue ID: 0

Результаты теста. Первый результат когда оба компа в режиме bonding.

$ sudo iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.42.55, port 34571
[  5] local 192.168.42.54 port 5201 connected to 192.168.42.55 port 34572
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   108 MBytes   905 Mbits/sec                  
[  5]   1.00-2.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   2.00-3.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   3.00-4.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   5.00-6.00   sec   112 MBytes   939 Mbits/sec                  
[  5]   6.00-7.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec                  
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec                  
[  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec                  
[  5]  10.00-10.04  sec  4.44 MBytes   940 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.04  sec  1.10 GBytes   939 Mbits/sec    0             sender
[  5]   0.00-10.04  sec  1.10 GBytes   937 Mbits/sec                  receiver

Второй результат когда на стороне ubuntu я использовал один интерфейс:

$ sudo iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.42.55, port 42878
[  5] local 10.10.3.70 port 5201 connected to 192.168.42.55 port 42879
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  90.7 MBytes   761 Mbits/sec                  
[  5]   1.00-2.00   sec  94.3 MBytes   791 Mbits/sec                  
[  5]   2.00-3.00   sec  93.2 MBytes   782 Mbits/sec                  
[  5]   3.00-4.00   sec  93.4 MBytes   783 Mbits/sec                  
[  5]   4.00-5.00   sec  93.6 MBytes   785 Mbits/sec                  
[  5]   5.00-6.00   sec  94.3 MBytes   791 Mbits/sec                  
[  5]   6.00-7.00   sec  94.6 MBytes   794 Mbits/sec                  
[  5]   7.00-8.00   sec  94.6 MBytes   794 Mbits/sec                  
[  5]   8.00-9.00   sec  94.7 MBytes   795 Mbits/sec                  
[  5]   9.00-10.00  sec  94.6 MBytes   794 Mbits/sec                  
[  5]  10.00-10.04  sec  3.66 MBytes   793 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.04  sec   943 MBytes   788 Mbits/sec  202             sender
[  5]   0.00-10.04  sec   942 MBytes   787 Mbits/sec                  receiver

Вопрос в том реально ли так должно работать, в плане скорости? В теории должно быть рядом с 2000 Mbits/sec


Ответ на: комментарий от zolden
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.42.55, port 34581
[  5] local 192.168.42.54 port 5201 connected to 192.168.42.55 port 34582
[  7] local 192.168.42.54 port 5201 connected to 192.168.42.55 port 34583
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec  52.2 MBytes   438 Mbits/sec                  
[  7]   0.00-1.00   sec  56.3 MBytes   472 Mbits/sec                  
[SUM]   0.00-1.00   sec   108 MBytes   910 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   1.00-2.00   sec  58.3 MBytes   489 Mbits/sec                  
[  7]   1.00-2.00   sec  53.5 MBytes   448 Mbits/sec                  
[SUM]   1.00-2.00   sec   112 MBytes   937 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   2.00-3.00   sec  60.6 MBytes   508 Mbits/sec                  
[  7]   2.00-3.00   sec  51.7 MBytes   433 Mbits/sec                  
[SUM]   2.00-3.00   sec   112 MBytes   942 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   3.00-4.00   sec  57.4 MBytes   481 Mbits/sec                  
[  7]   3.00-4.00   sec  54.9 MBytes   460 Mbits/sec                  
[SUM]   3.00-4.00   sec   112 MBytes   941 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   4.00-5.00   sec  55.4 MBytes   465 Mbits/sec                  
[  7]   4.00-5.00   sec  56.8 MBytes   477 Mbits/sec                  
[SUM]   4.00-5.00   sec   112 MBytes   941 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   5.00-6.00   sec  54.7 MBytes   459 Mbits/sec                  
[  7]   5.00-6.00   sec  57.6 MBytes   483 Mbits/sec                  
[SUM]   5.00-6.00   sec   112 MBytes   942 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   6.00-7.00   sec  55.8 MBytes   468 Mbits/sec                  
[  7]   6.00-7.00   sec  56.4 MBytes   473 Mbits/sec                  
[SUM]   6.00-7.00   sec   112 MBytes   942 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   7.00-8.00   sec  56.1 MBytes   471 Mbits/sec                  
[  7]   7.00-8.00   sec  56.1 MBytes   471 Mbits/sec                  
[SUM]   7.00-8.00   sec   112 MBytes   941 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   8.00-9.00   sec  56.1 MBytes   471 Mbits/sec                  
[  7]   8.00-9.00   sec  56.1 MBytes   471 Mbits/sec                  
[SUM]   8.00-9.00   sec   112 MBytes   942 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   9.00-10.00  sec  56.1 MBytes   471 Mbits/sec                  
[  7]   9.00-10.00  sec  56.1 MBytes   471 Mbits/sec                  
[SUM]   9.00-10.00  sec   112 MBytes   941 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]  10.00-10.04  sec  2.17 MBytes   486 Mbits/sec                  
[  7]  10.00-10.04  sec  2.04 MBytes   458 Mbits/sec                  
[SUM]  10.00-10.04  sec  4.21 MBytes   944 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.04  sec   567 MBytes   474 Mbits/sec    0             sender
[  5]   0.00-10.04  sec   565 MBytes   472 Mbits/sec                  receiver
[  7]   0.00-10.04  sec   559 MBytes   468 Mbits/sec    0             sender
[  7]   0.00-10.04  sec   557 MBytes   466 Mbits/sec                  receiver
[SUM]   0.00-10.04  sec  1.10 GBytes   941 Mbits/sec    0             sender
[SUM]   0.00-10.04  sec  1.10 GBytes   938 Mbits/sec                  receiver

В сумме тож самое.

modjo
() автор топика
Ответ на: комментарий от vel

Cisco SG500-52. В web морде зашёл в lag management и указал порты к которым подключены компы + ставлю галку на LACP. После того когда поднимаю интерфейсы в поле Active Member показывает какие порты активны. Остальные настройки по дефолту.

modjo
() автор топика

Aggregator selection policy (ad_select): stable

у тебя политика неправильная выбрана

https://www.kernel.org/doc/Documentation/networking/bonding.txt

12.1 Maximum Throughput in a Single Switch Topology

http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding

конфиг interfaces для ubuntu (из-за upstart отличается от debian), выдержка из конфига моего домашнего хоста

auto lo eth0 eth1 bond0
#allow-hotplug eth0 eth1 p17p1

iface lo inet loopback

iface eth0 inet manual
bond-master bond0

iface eth1 inet manual
bond-master bond0

iface p17p1 inet manual

iface wlan0 inet manual

iface bond0 inet static
address
netmask
gateway
slaves eth0 eth1
bond-mode 802.3ad
bond-miimon 100
bond-downdelay 200
bond-updelay 200
bond-lacp-rate 0
bond-ad-select 1
bond-slaves eth0 eth1

cat /proc/net/bonding/bond0
Aggregator selection policy (ad_select): bandwidth

Структура до конца еще не добита, на прошлых выхах не получилось этим заняться. Кроме того, очень полезно использовать MTU 9000

targitaj ★★★★★
()
Ответ на: комментарий от zolden

мм... Как? Сервер позволяет только одно подключение делать. С одного клиента сколько хочешь потоков, а с нескольких сразу не позволит.

modjo
() автор топика
Ответ на: комментарий от modjo

мм... Как?

мм...в разных консолях?
по две консоли на клиенте и сервере
итого два клиента и два сервера(на разных портах), каждый клиент на свой сервер лезет

zolden ★★★★★
()

у тебя работает режим

11.1 High Availability in a Single Switch Topology

который не подразумевает одновременной работы портов. Больше гигабита в таком режиме ты не получишь.

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

Установил ad_select to 1. Разницы вообще никакой. Я завтра попробую все настроить на отдельном свиче. У меня тут сеть немного стрёмная. Возможно все идет не так как я думаю, хотя это мало вероятно.

modjo
() автор топика
Ответ на: комментарий от modjo

в конфиге прописывай

bond-ad-select 1

смотри выше мой конфиг. Проверяй через

cat /proc/net/bonding/bond0

должно быть

Aggregator selection policy (ad_select): bandwidth

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

Да, так и есть. С двух сторон показывает bandwidth и на свиче показано, что два порта с двух сторон активны.

modjo
() автор топика
Ответ на: комментарий от modjo

Ясно. Интересно будет увидеть решение. Сам собираюсь на днях добить этот вопрос в домашней сети.

targitaj ★★★★★
()
Ответ на: комментарий от modjo

Конечно! Если порт транка выбирается не только по MAC-ам, а еще и по портам tcp/udp, то балансировка будет более полно использовать всю емкость канала.

На одном потоке оно естественно ничего не даст.

У тебя такой пункт настройки есть ? В более простых коммутаторах эта настройка может быть одна на все транки, на более умных - для каждого транка своя.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

Автор, а поделись конфигурацией железа и сценариями использования, мне прям интересно как на писюках можно 2 гигабита заюзать

zolden ★★★★★
()
Ответ на: комментарий от zolden

))) я серьёзно. Мне тема бондинга интересна, но всё никак руки не дойдут допилить. Собственно говоря, вот одна из машин.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)

Запилил у себя дома бондинг. Аналогично, увидел гигабит, максимум. На обоих хостах

Aggregator selection policy (ad_select): bandwidth

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

Запилил у себя дома бондинг. Аналогично, увидел гигабит, максимум. На обоих хостах

The Plain Old Port Channel
Now, with respect to #1, it’s important to differentiate between bandwidth and throughput. If we have two switches connected together with (1) 1Gb link, our bandwidth is 1Gb and so is our maximum throughput. If we cable up more links so that we have (4) 1Gb links and put them into a port channel, our bandwidth is now 4Gb but our max throughput is still 1Gb. Why is that?

https://www.packetmischief.ca/2012/07/20/4-types-of-port-channels-and-when-th...

snaf ★★★★★
()
Ответ на: комментарий от targitaj

http://forum.synology.com/enu/viewtopic.php?f=145&t=61139#p234389

Also don't forget, that LACP works session based, so 1 pc can't achive a 2 GBit connection, only 1 GBit per session, but if you have 2 clients then both of them can have up to 1 GBit each.

Таки я не понял, надо третью машину подтянуть к тестированию? Мммм, а ноут с 802.11ac линком подойдёт? Впрочем, шланг один свободный вроде есть...

targitaj ★★★★★
()
Ответ на: комментарий от snaf

Спасибо. Завтра буду курить дальше, хватит пока.
Получается, что бондинг на ББ не нужен или я не въехал в тему?

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)

В теории должно быть рядом с 2000 Mbits/sec

Нет, на один коннект (в общем случае кватра-тульпе src ip / src port / dst ip / dst port) у тебя будет максиум скорость одного линка.

Преимущества бондига проявляются только при нескольких одновременных коннектах, и то не всегда.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

Какой бы алгоритм разброса пакетов между линками ты не выбрал на своих сервере и клиенте, то что от них прилетает на свич дальше будет балансироваться так как умеет свич.

А свичи обычно умеют разбрасывать пакеты на основании хэша использующего (в лучшем случае) MAC-адреса, IP-адреса и порты.
Соответствено, если открыть одну TCP-сессию между компами, то от свича трафик будет идти через один из доступных интерфейсов (все входы у хэш-функции одинаковые -> хэш одинаковый -> трафик всё время летит в один интерфейс).
Если свич умеет (и настроен) использовать порты, то открыв два соединения на разные порты возможно (но не гарантированно) разбросаешь трафик в разные интерфейсы от свича.

frob ★★★★★
()
Ответ на: комментарий от zolden

Взял старый свич, linksys. Разделил потоки. На нем скорость уже не 950Mbits/sec, а 780Mbits/sec. Видимо из-за того что он середины двухтысячных. Ну да ладно. Итого в тесте 3 компа: один сервер с bonding и два клиента с гигабитными линками. Все равно в сумме получается 780Mbits/sec. Linksys лежит рядом и когда я запускаю тест на одном клиенте - моргает один линк, второй линк изредка дёргается. Как только запускаю на втором клиенте начинает моргать второй линк. Разброс по каналам работает, но скорость между клиентами делит как 750Mbits/sec.

Предполагалось, что binding будет висеть на самодельном SAN. SAN предполагаю использовать для iSCSI и bacula. Понятно что нужно разделять... но все от нехватки денег. Да и знания как-то нужно получить, даже в такой ситуации.

modjo
() автор топика
Ответ на: комментарий от targitaj

Завтра буду тестировать все режимы. Попутно выяснил что сетевухи от длинка работают в пол-сили... еще раз зарекаюсь не покупать больше ничего от этой конторы...

modjo
() автор топика
Ответ на: комментарий от modjo

D-Link System Inc DGE-528T - гигабитная сетевух для PCI 32/33

ты от нее хочешь гигабит вопросительный знак, два раза хаха.

Гигабит живет на PCI-X, PCI-64/66, PCI-E

vel ★★★★★
()
Ответ на: комментарий от vel

Мммм.. Не обратил внимание. На самом деле у меня вот это D-Link DGE-560T. Видимо дров нет. Либо просто «название» поменяли. В общем еще одна причина забыть про эту контору...

modjo
() автор топика
Ответ на: комментарий от modjo

d-link не делает чипов.

в старых dge-560 стоит какой-то древный marvell, в новых - realtek

C гигабитрыми pci-e realtek-ами особых проблем нет.

А вот со старыми марвелами проблемы были.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.