Агрегирование каналов

Перейти к навигацииПерейти к поиску
Агрегирование каналов между коммутатором и сервером

Агрегирование каналов (англ. link aggregation) — технологии объединения нескольких параллельных каналов передачи данных в сетях Ethernet в один логический, позволяющие увеличить пропускную способность и повысить надёжность. В различных конкретных реализациях агрегирования используются альтернативные наименования: транкинг портов (англ. port trunking), связывание каналов (link bundling), склейка адаптеров (NIC bonding), сопряжение адаптеров (NIC teaming).

LACP (англ. link aggregation control protocol) — открытый стандартный протокол агрегирования каналов, описанный в документах IEEE 802.3ad[⇨] и IEEE 802.1aq. Многие производители для своих продуктов используют не стандарт, а патентованные или закрытые технологии, например, Cisco применяет технологию EtherChannel (разработанную в начале 1990-х годов компанией Kalpana[англ.]), а также нестандартный протокол PAgP.

Главное преимущество агрегирования каналов в том, что потенциально повышается полоса пропускания: в идеальных условиях полоса может достичь суммы полос пропускания объединённых каналов. Другое преимущество — «горячее» резервирование линий связи: в случае отказа одного из агрегируемых каналов трафик без прерывания сервиса посылается через оставшиеся, а после восстановления отказавшего канала он автоматически включается в работу[1].

Стандарт 802.3ad

Стандарт IEEE 802.3ad в составе группы стандартов для локальных вычислительных сетей IEEE 802 принят в 2000 году, полное название — «802.3ad Link aggregation for parallel links».

В общем случае, агрегирование восьми стандартных каналов с помощью 802.3ad оказывается дешевле, чем одно устройство, поддерживающее на порядок большую пропускную способность, и позволяет постепенно увеличивать скорость каналов в системе без необходимости покупать дорогостоящие более быстрые адаптеры. Однако, агрегирование имеет ограничения: распределение трафика по каналам может быть неравномерным, вплоть до того, что весь трафик идёт по одному каналу, а другие простаивают (зависит от трафика, возможностей и настроек оборудования), что в крайних случаях означает отсутствие выигрыша в пропускной способности по сравнению с единственным каналом. Кроме того, объединять можно не более восьми каналов, что в случае гигабитных каналов даёт теоретическую суммарную пропускную способность лишь в 8 Гбит/с вместо 10 Гбит/с, которые может обеспечить один быстродействующий адаптер.

Как правило, все порты при агрегировании должны быть одного типа, например, все порты для витой пары, все — для одномодового оптоволокна (SM) или все — для многомодового оптоволокна (MM). Объединяемые порты должны быть настроены на одну скорость передачи (хотя по стандарту 802.3ad смешивать порты с разной скоростью допустимо, на практике такие конфигурации зачастую оказываются неработоспособными).

Нестандартизованные технологии

Большинство решений для агрегирования гигабитных каналов основывается на стандарте IEEE 802.3ad. Однако нестандартизованные протоколы других фирм существовали ещё до принятия этого стандарта, некоторые из них используются до сих пор. Эти протоколы в большинстве своём работают исключительно с продукцией одной компании или продукцией одной линии. Некоторые из них имеют определённые преимущества перед стандартом, например EtherChannel, используемый Cisco, поддерживает разные режимы посылки пакетов, тогда как 802.3ad поддерживает только стандартный режим. Среди других нестандартных протоколов агрегации — Duralink Trunking (Adaptec), MLT (multi link trunking, Nortel).

К середине 2000-х годов большинство производителей перешли на выпуск сетевых устройств с поддержкой стандарта IEEE 802.3ad, что в принципе должно обеспечивать возможность совместной работы устройств различных марок. Однако на практике некоторые сочетания могут оказаться неработоспособными, поэтому в спецификациях зачастую специально уточняется возможность совместной работы тех или иных устройств.

Агрегирование сетевых адаптеров

Основное применение технологии агрегации — объединение каналов в сетевых коммутаторах, но можно настроить агрегирование для компьютерных сетевых адаптеров. Например, в операционной системе Linux можно сконфигурировать агрегированный сетевой адаптер bond0 со стандартным драйвером ядра (англ. bonding driver) как объединяющий Ethernet-адаптеры eth0 и eth1, с назначением ему единого IP-адреса, и для системы и выполняемых на ней программ нет никакой разницы между таким адаптером и физическими (исключая немногие служебные утилиты, которые предназначены для операций непосредственно с адаптерами). При этом значения MAC-адреса bond0 будут чередоваться — периодически будет показываться то MAC-адрес первой сетевой карты eth0, то MAC-адрес адаптера eth1.

Примечания

  1. Олифер В. Г., Олифер Н. А. Глава 13. Коммутируемые сети Ethernet // Компьютерные сети. Принципы, технологии, протоколы. — 4-е изд. — СПб.: «Питер», 2010. — С. 464. — 4500 экз. — ISBN 978-5-49807-389-7.

Ссылки