Я пытаюсь заставить NIC работать с balance-rr, чтобы три порта NIC были объединены, так что вместо получения 1 Гбит / с мы получили 3 Гбит / с. Мы делаем это на двух серверах, подключенных к одному коммутатору. Однако мы получаем скорость только одного физического канала.
Мы используем 1 Dell PowerConnect 5324, версия ПО 2.0.1.3, версия загрузки 1.0.2.02, версия HW 00.00.02. Оба сервера - CentOS 5.9 (Final) с гипервизором OnApp (CloudBoot).
Сервер 1 использует порты g5-g7 в канале порта 1. Сервер 2 использует порты g9-g11 в канале порта 2.
Переключатель
show interface status
Port Type Duplex Speed Neg ctrl State Pressure Mode
-------- ------------ ------ ----- -------- ---- ----------- -------- -------
g1 1G-Copper -- -- -- -- Down -- --
g2 1G-Copper Full 1000 Enabled Off Up Disabled Off
g3 1G-Copper -- -- -- -- Down -- --
g4 1G-Copper -- -- -- -- Down -- --
g5 1G-Copper Full 1000 Enabled Off Up Disabled Off
g6 1G-Copper Full 1000 Enabled Off Up Disabled Off
g7 1G-Copper Full 1000 Enabled Off Up Disabled On
g8 1G-Copper Full 1000 Enabled Off Up Disabled Off
g9 1G-Copper Full 1000 Enabled Off Up Disabled On
g10 1G-Copper Full 1000 Enabled Off Up Disabled On
g11 1G-Copper Full 1000 Enabled Off Up Disabled Off
g12 1G-Copper Full 1000 Enabled Off Up Disabled On
g13 1G-Copper -- -- -- -- Down -- --
g14 1G-Copper -- -- -- -- Down -- --
g15 1G-Copper -- -- -- -- Down -- --
g16 1G-Copper -- -- -- -- Down -- --
g17 1G-Copper -- -- -- -- Down -- --
g18 1G-Copper -- -- -- -- Down -- --
g19 1G-Copper -- -- -- -- Down -- --
g20 1G-Copper -- -- -- -- Down -- --
g21 1G-Combo-C -- -- -- -- Down -- --
g22 1G-Combo-C -- -- -- -- Down -- --
g23 1G-Combo-C -- -- -- -- Down -- --
g24 1G-Combo-C Full 100 Enabled Off Up Disabled On
Flow Link
Ch Type Duplex Speed Neg control State
-------- ------- ------ ----- -------- ------- -----------
ch1 1G Full 1000 Enabled Off Up
ch2 1G Full 1000 Enabled Off Up
ch3 -- -- -- -- -- Not Present
ch4 -- -- -- -- -- Not Present
ch5 -- -- -- -- -- Not Present
ch6 -- -- -- -- -- Not Present
ch7 -- -- -- -- -- Not Present
ch8 -- -- -- -- -- Not Present
Сервер 1:
cat /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
HWADDR=00:1b:21:ac:d5:55
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth4
DEVICE=eth4
HWADDR=68:05:ca:18:28:ae
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth5
DEVICE=eth5
HWADDR=68:05:ca:18:28:af
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-onappstorebond
DEVICE=onappstorebond
IPADDR=10.200.52.1
NETMASK=255.255.0.0
GATEWAY=10.200.2.254
NETWORK=10.200.0.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
cat /proc/net/bonding/onappstorebond
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1b:21:ac:d5:55
Slave Interface: eth4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 68:05:ca:18:28:ae
Slave Interface: eth5
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 68:05:ca:18:28:af
Сервер 2:
cat /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
HWADDR=00:1b:21:ac:d5:a7
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth4
DEVICE=eth4
HWADDR=68:05:ca:18:30:30
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth5
DEVICE=eth5
HWADDR=68:05:ca:18:30:31
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
MASTER=onappstorebond
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-onappstorebond
DEVICE=onappstorebond
IPADDR=10.200.53.1
NETMASK=255.255.0.0
GATEWAY=10.200.3.254
NETWORK=10.200.0.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
cat /proc/net/bonding/onappstorebond
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1b:21:ac:d5:a7
Slave Interface: eth4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 68:05:ca:18:30:30
Slave Interface: eth5
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 68:05:ca:18:30:31
Вот результаты iperf.
------------------------------------------------------------
Client connecting to 10.200.52.1, TCP port 5001
TCP window size: 27.7 KByte (default)
------------------------------------------------------------
[ 3] local 10.200.3.254 port 53766 connected with 10.200.52.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 950 MBytes 794 Mbits/sec
Балансировка входящей нагрузки от коммутатора к системе контролируется коммутатором.
Вероятно, у вас есть 3 Гбит / с неупорядоченной передачи TCP, но только 1 Гбит / с приема, потому что коммутатор отправляет только одно ведомое устройство.
Вы не получаете полный 1 Гбит / с, потому что balance-rr
часто приводит к нарушению порядка трафика TCP, поэтому TCP работает сверхурочно, чтобы изменить порядок вашего потока iperf.
По моему опыту, практически невозможно надежно сбалансировать нагрузку одного потока TCP.
Правильно настроенное соединение позволяет общая пропускная способность пропускной способности рабов при правильных условиях, но ваша максимальная пропускная способность максимальная скорость одного ведомого.
Лично я бы использовал режим 2 (с EtherChannel на коммутаторе) или режим 4 (с LACP на коммутаторе).
Если вам нужно быстрее, чем 1 Гбит / с, вам понадобится более быстрый сетевой адаптер.