Под Linux вы можете объединить несколько сетевых интерфейсов в «связанный» сетевой интерфейс для обеспечения отработки отказа.
Но есть несколько режимов, некоторые из которых не требуют поддержки коммутатора. Я не ограничен в своем переключателе в том, что я могу использовать любой из режимов.
Однако, читая о разных режимах, не сразу понятно, какие плюсы и минусы у каждого.
- Некоторые режимы обеспечивают более быстрое восстановление после отказа?
- Каково влияние нагрузки на процессор для каждого режима?
- Какие режимы могут объединять пропускную способность, а не просто обеспечивать избыточность?
- Есть ли ограничения к этому?
- Баланс-рр требует поддержки коммутатора?
- Надежность? Каковы ваши опыт работы в долгосрочной перспективе?
Ответы:
Самым большим фактором при сбое является скорость, с которой обнаруживается сбой соединения. Отключите кабель от хоста, и все они будут работать довольно хорошо. Оставьте действующую ссылку на неработающем коммутаторе, и большинство режимов (за исключением тех, которые поддерживают маяки / сообщения активности) не будут отправлять часть вашего трафика в никуда.
Вообще говоря, сетевой трафик управляется прерыванием. Различные алгоритмы хеширования не будут иметь существенного значения.
Любой режим, который не активен / находится в режиме ожидания или широковещательный, будет распределять трафик в различной степени. Некоторые режимы могут балансировать для каждого пакета, другие работают для каждого потока. Первый будет более равномерно распределять нагрузку, в то время как последний гораздо более полезен (читай: функциональный / стабильный) в реальных сетях.
Да, существуют ограничения для каждого режима, но нам нужно знать больше о вашем приложении, чтобы поговорить с ними.
Только LACP / 802.3ad (режим 4) явно требует поддержки на коммутаторе. Тем не менее, только то, что вы отправляете на коммутатор с определенным шаблоном, не означает, что коммутатор будет отправлять вам обратно таким же образом.
Единственный режим, которому я склонен доверять в производстве, - это 802.3ad, который с соответствующим образом настроенным коммутатором будет гарантировать, что в канале окажутся только правильные каналы, а также обеспечит некоторую меру симметрии в распределении трафика и предсказуемый отклик, когда ссылка не работает Этот режим также позволяет избежать некоторых распространенных, но неприятных проблем (например, одноадресное наводнение). Активный / режим ожидания также довольно распространен. Другие режимы могут потребоваться для определенных обстоятельств, но, IMO, имеют тенденцию быть более болезненными.
Другие режимы балансировки потока / MAC / IP или активный / резервный тоже могут быть хорошими и могут потребоваться при работе с неуправляемыми коммутаторами.
источник
Большинство из этих пунктов довольно подробно описаны в
/usr/src/linux/Documentation/networking/bonding.txt
файле документации из пакета с исходным кодом linux вашего любимого дистрибутива. Скорость переключения при сбое регулируется параметром "miimon" для большинства режимов, но не должна быть слишком низкой; нормальные значения в любом случае меньше одной секунды.Вот лучшие части, выполненные мной:
balance-rr, active-backup, balance-tlb и balance-alb не нуждаются в поддержке коммутатора.
balance-rr увеличивает производительность за счет фрагментации, плохо работает с некоторыми протоколами (CIFS) и более чем с 2 интерфейсами.
balance-alb и balance-tlb могут работать некорректно со всеми коммутаторами; часто возникают проблемы с arp (например, некоторые машины могут не соединяться друг с другом). Вам может понадобиться настроить различные параметры (miimon, updelay), чтобы получить стабильную сеть.
balance-xor может требовать или не требовать настройки коммутатора. Вам нужно настроить интерфейсную группу ( не LACP) на коммутаторах HP и Cisco, но, очевидно, в коммутаторах D-Link, Netgear и Fujitsu это не обязательно.
802.3ad абсолютно требует группу LACP на стороне коммутатора. Это лучший поддерживаемый вариант для повышения производительности.
Примечание: что бы вы ни делали, одно сетевое соединение всегда проходит через одну и только одну физическую ссылку. Таким образом, при агрегировании интерфейсов GigE передача файлов с компьютера A на компьютер B не может превышать 1 гигабит / с, даже если на каждой машине имеется 4 агрегированных интерфейса GigE (независимо от используемого режима соединения).
источник
Документы ядра отвечают на некоторые из этих вопросов:
Соединение по Ethernet
источник