У меня небольшой кластер, состоящий из 3-х серверов. У каждого есть две оптические сетевые карты 10Gbe SFP +. Есть два отдельных коммутатора 10Gbe. На всех серверах одна сетевая карта подключена к коммутатору 1, вторая сетевая карта подключена к коммутатору 2 для обеспечения отказоустойчивости.
Физические интерфейсы связаны на уровне сервера с помощью LACP.
Все серверы могут пинговать друг друга, но на одном наблюдается небольшая (4%) потеря пакетов (через связанный интерфейс, что мне кажется подозрительным)
Когда я проверяю скорость передачи iperf3 между двумя хорошими серверами, они показывают скорость передачи около 9,8 Гбит / с в обоих направлениях.
Эти два хороших сервера также могут загружать с проблемного также около 9,8 Гбит / с.
Iperf3 показывает странные вещи при запуске в качестве клиента на проблемном сервере. Он начинается с нескольких сотен мегабит в первую очередь. Позже скорость упадет до 0 бит / с (при использовании ICMP ping с вероятностью успеха ~ 96%). Только в одном направлении. Когда другие серверы загружаются с этого, они получают полную скорость.
Все работает на одном оборудовании, даже версия прошивки одинакова (серверы Dell R620, сетевые адаптеры Mellanox ConnextX-3-EN, модули Opton SPF +, коммутаторы Mikrotik CRS309-1G-8S). Также ОС - это тот же самый последний стабильный Debian со всеми обновлениями и точно установленными пакетами.
Брандмауэра нет, все правила iptables очищены на всех серверах
На проблемном сервере я проверяю интерфейсы, оба сетевых адаптера работают и работают в полнодуплексном режиме 10 Гбит.
Также cat / proc / net / bonding / bond0 показывает оба интерфейса UP, active, никаких ошибок физического соединения
Я проверил / заменил модули SFP +, использовал разные оптоволоконные патч-корды, пробовал разные порты коммутатора, и ничего не изменилось, но у этого проблемного сервера низкая скорость загрузки от других и небольшая потеря пакетов (через связанный интерфейс!).
Я также пробовал комбинации патч-кордов с: (оба включены, первый включен, второй выключен, первый выключен, второй включен). Также без изменений
Есть идеи, как мне лучше диагностировать?
Если коммутаторы не поддерживают стек и поддерживают LACP в шасси, LACP не может работать таким образом. Фактически, статический LAG-транкинг тоже не работает.
Как правило, агрегация каналов работает только с одним противоположным коммутатором (или стеком, действующим как он).
При простом резервировании L2 вы можете запускать сетевые адаптеры только в парах активный / пассивный с аварийным переключением. Использование нескольких каналов L3 с соответствующей балансировкой нагрузки и миграцией IP при отказе или мониторинге с помощью внешнего балансировщика нагрузки также будет работать в вашем сценарии.
Пожалуйста, посмотрите мой ответ здесь (не забудьте поставить палец вверх, если он будет полезен в вашей ситуации):
Почему я достигаю только 2,5 Гбит / с при прямом соединении 10 Гбит / с между двумя компьютерами?
Скорее всего, это связано с LRO GRO с расшифровкой RECEIVE OFFLOAD, которую можно легко отключить. Также есть хорошее объяснение того, почему это происходит. Вот: https://lwn.net/Articles/358910/
Настройка сетевых интерфейсов 10G - огромная тема.