Я наблюдаю некоторую путаницу в отношении связанных интерфейсов в Linux, и я хотел бы описать ситуацию в надежде, что кто-то сможет прояснить это для меня.
У меня есть два сервера: Сервер 1 (S1) имеет 4x 1 Гбит соединения Ethernet; Сервер 2 (S2) имеет 2x 1 Гбит соединения Ethernet. Оба сервера работают под управлением Ubuntu 12.04, хотя и с ядром 3.11.0-15 (из пакета lts-saucy linux-generic).
Оба сервера имеют все свои сетевые интерфейсы, объединенные в единый интерфейс bond0 со следующей конфигурацией (in /etc/network/interfaces
):
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]
Между серверами есть пара коммутаторов HP, которые (я думаю) правильно настроены для LACP на рассматриваемых портах.
Теперь связь работает - сетевой трафик проходит счастливо на обе машины. И все соответствующие интерфейсы используются, так что агрегация не дает сбоев. Однако мне нужно как можно больше пропускной способности между этими двумя серверами, и я не получаю ~ 2 Гбит / с, чего я ожидал.
В моем тестировании я заметил, что каждый сервер выделяет каждое TCP-соединение (например, iperf, scp, nfs и т. Д.) Одному подчиненному интерфейсу. По сути, все кажется ограниченным максимумом в 1 гигабит.
Установив bond-xmit-hash-policy layer3+4
, я могу использовать iperf -c S1 -P2
для отправки на двух подчиненных интерфейсах, но на стороне сервера, прием по-прежнему происходит только на одном подчиненном интерфейсе, и поэтому общая пропускная способность ограничена 1 Гбит / с, то есть клиент показывает ~ 40-50 МБ / с. на двух подчиненных интерфейсах сервер показывает ~ 100 МБ / с на одном подчиненном интерфейсе. Без настройки bond-xmit-hash-policy
отправка также ограничивается одним подчиненным интерфейсом.
У меня сложилось впечатление, что LACP должен разрешать такого рода связывание соединений, позволяя, например, одну передачу scp, чтобы использовать все доступные интерфейсы между двумя хостами.
Мое понимание LACP неверно? Или я где-то пропустил некоторые параметры конфигурации? Любые предложения или подсказки для расследования будет принята с благодарностью!