Назад | Перейти на главную страницу

Связь LACP периодически работает на Cisco N5000

Наши клиенты используют Centos 7.1 и 7.3. Они представляют собой две карты по 10 ГБ, соединенные для соединения 20 ГБ. Каждая сетевая карта подключена к паре коммутаторов Cisco N5000. При запуске cp или iperf я вижу, что иногда трафик проходит только через один интерфейс, поэтому мы можем достичь только 10 ГБ. В других случаях он проходит через оба интерфейса, и мы получаем 20 ГБ.

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

IPerf между двумя клиентами в одном коммутаторе / подсети.

# for i in {1..10}; do iperf -c 172.16.15.19 -l 1M -P 16 -t 300| grep SUM; done
[SUM]  0.0-300.0 sec   344 GBytes  9.84 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.84 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.84 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.84 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.83 Gbits/sec
[SUM]  0.0-300.0 sec   688 GBytes  19.7 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.85 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.84 Gbits/sec
[SUM]  0.0-300.0 sec   344 GBytes  9.83 Gbits/sec
[SUM]  0.0-300.0 sec   688 GBytes  19.7 Gbits/sec

Вот настройки бонда

DEVICE=bond1
ONBOOT=yes
NETBOOT=yes
TYPE=Ethernet
HOSTNAME=removed
BOOTPROTO=static
IPADDR=172.16.15.18
NETMASK=255.255.255.0
GATEWAY=172.16.15.1
DNS1=10.1.1.71
DNS2=10.1.1.70
MTU=9000
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer3+4"

Вот настройки eth. Размещено только одно, так как они идентичны, кроме имени eth.

BOOTPROTO=none
TYPE=Ethernet
NAME=eth16
DEVICE=eth16
ONBOOT=yes
MTU=9000
MASTER=bond1
SLAVE=yes

Вот настройки для Cisco N5000.

interface port-channel3008
  description <removed>
  switchport access vlan 3900
  vpc 3008

interface Ethernet103/1/31
  description <removed>
  switchport access vlan 3900
  channel-group 3008 mode active

На самом деле вы видите просто эффект «квантования» алгоритма балансировки нагрузки канала порта. Один поток всегда будет проходить через один и тот же физический интерфейс, и в вашем случае у вас есть две точки в вашем тесте, в которых необходимо принять решение о прохождении через интерфейс 1 или 2 на основе настраиваемого алгоритма хеширования. Как предложил Питер, проверьте также алгоритм балансировки нагрузки на стороне коммутатора: последние Nexus'ы по умолчанию используют уровень 3 + 4, более старые используют MAC src-dst по умолчанию (в этом случае вы не увидите скорости 20 Гбит / с между теми же узлами). Действительно, подобные вещи можно увидеть, когда вы тестируете ограниченное количество потоков.