| 2.3.5 Агрегирование соединений |
|
Данный раздел разбит на следующие секции:
◆ Секция 2.3.5.1, ”Агрегирование порта”
◆ Секция 2.3.5.2, ”Протокол Link Aggregation Control Protocol (LACP)”
◆ Секция 2.3.5.3, ”Объединение сетевых интерфейсов”
◆ Секция 2.3.5.4, ”Метод балансировки нагрузки”
В масштабируемых кампус
LAN сетях и сетях в дата-центрах, используются различные технологии Ethernet для увеличения пропускной способности сетей. Пропускные способности сетей Ethernet эволюционировали с 10 Mb/s (Ethernet), до 100 Mb/s (Fast Ethernet), потом до 1 Gb/s (Gigabit Ethernet), и на текущий момент скорость передачи увеличена до 10 Gb/s Ethernet. Однако, бывают случаи, когда одно соединение 10 Gb/s, не справляется с требуемой пропускной способность нескольких VLAN магистралей или сетей хранения данных, например, когда идет передача данных с использованием протоколов iSCSI или
FCoE. Высокие требования к пропускной способности VLAN магистрали формируются из требований множества VLAN сетей, подключенных к коммутатору, который формирует магистраль. Это также относится и к количеству iSCSI подключений, через магистраль. Если сервер подключен к массиву по iSCSI, то зачастую пропускной способности 1 Gb/s Gigabit Ethernet может не хватать.Различные производители коммутаторов, используют разные термины для реализации агрегирования портов. Например, Cisco использует термин Etherchannel, а у Brocade называется Brocade LAG. Также существует стандартизированное решение для агрегирования портов, реализованное в протоколе LACP (Link Aggregation Control Protocol). Данный протокол не зависит от производителя коммутационного оборудования, и поддерживается почти всеми коммутаторами.
Все реализации агрегирования портов, выполняют одну задачу по объединению двух и более портов, в единый логический порт с повышенной пропускной способностью, резервированием соединений и балансировкой нагрузки между физическими соединениями. Технически, можно соединить коммутаторы несколькими физическими соединениями, для создания канала с повышенной пропускной способностью, но протокол Spanning Tree, воспримет эти соединения, как петли и отключит дублирующиеся соединения, оставив активным только одно. Агрегирование портов, помогает избежать такой ситуации и создает одно логическое соединение, которое может служить как магистралью (для нескольких VLAN сетей) или в качестве единого соединения (для подключения серверов).
Коммутаторы или серверы, образующие агрегацию портов, должны использовать единый протокол для совместимости и стабильности работы. При использовании балансировки нагрузки, обычно используется алгоритм хеширования, который позволяет передавать через соединение различные виды трафика через одно логическое соединение. Также агрегация портов, позволяет резервировать физические соединения. Если одно из физических соединений из агрегированного соединения обрывается, то данные могут продолжать передаваться по оставшимся соединениям. Восстановление агрегированного соединения, обычно занимает несколько миллисекунд. Т.к. агрегированное соединение содержит два и более физических соединения, то соединение между коммутаторами будет установлено, до тех пор, пока все физические соединения, не оборвутся. Обрывы физических соединений в агрегированном канале, обычно не заметны для пользователей. Однако, чем меньше физических соединений в агрегированном канале остается, тем большее количество информации требуется передать через оставшиеся в агрегированном канале физические соединения. Также, чем больше физических соединений находятся в агрегированном канале, тем лучше нагрузка сбалансируется между физическими соединениями. На рисунке 21 показана агрегация физических соединений между двумя коммутаторами. Если скорость физических каналов равна 10 Gb/s, то скорость агрегированного соединения будет равна 20 Gb/s.
Рисунок 21. Агрегация портов между двумя коммутаторами
На рисунке 22, показана агрегация портов между коммутатором и сервером. Скорость каждого порта равна 1 Gb/s, а скорость агрегированного соединения равна 2 Gb/s.
Рисунок 22. Агрегация портов между коммутатором и сервером
При выборе сетевых интерфейсов для создания агрегированного соединения, нужно учитывать их совместимость между собой. Это требует проверки рабочих атрибутов интерфейсов, прежде чем добавлять его в группы агрегации портов, которые также называют группой каналов. Прежде всего, необходимо проверить следующие параметры интерфейсов:
◆ Port mode (режим работы порта)
◆ Доступ к VLAN
◆ Магистраль VLAN
◆ Доступный лист сетей VLAN
◆ Скорость соединений
Протокол Link Aggregation Control Protocol (LACP) отсылает LACPDU пакеты через все доступные ему порты. Если протокол обнаруживает на другом конце линии устройство, которое работает с LACP, он начнет отправлять свои пакеты по тем линиям, на которых протокол включен. Таким образом, оба устройства организуют множество физических соединений и объединяют их в одно логическое соединение.
Протокол LACP может работать в двух режимах: «активном» или «пассивном». В «активном» режиме, протокол постоянно будет отсылать пакеты через все настроенные соединения. В «пассивном» режиме, протокол передает данные по запросу, а в остальное время ожидает прихода пакетов.
Протокол LAC, определенный стандартом IEEE 802.3ad, является протоколом, который позволяет коммутаторам автоматически объединять соединения, обменявшись пакетами LACP. После завершения идентификации портов и определения совместимости портов коммутатора, LACP назначает портам коммутаторов роли.
Коммутатор с наименьшим системным приоритетом, определяет, какие порты должны активно участвовать в агрегации портов, в нужные периоды времени. Выбираются эти порты и активируются в зависимости от установленного приоритета порта. Например, для агрегации настроено восемь каналов связи. Через LACP, коммутатор выбирает из них четыре порта с наивысшим приоритетом, в качестве активных портов, в заданный период времени, и ведет через них передачу данных. Обычно, наивысшим приоритетом, считается порт, с наименьшим числовым значением заданного приоритета. Остальные четыре порта резервируются для горячей замены активных портов, на случай если какой либо активный порт выйдет из строя или оборвется активное соединение.
Приоритеты у портов обычно подлежат настройке, но если приоритеты портам не назначены, то коммутатор сам расставит приоритеты. Если на нескольких портах установлены одинаковые приоритеты, то они могут начать конфликтовать друг с другом. Обычно, производители коммутаторов, назначают наивысший приоритет первым портам, например, у порта 1/1 приоритет будет выше, чем у порта 1/5.
Каждому интерфейсу коммутатора, включенному в канал портов, должен быть присвоен номер группы интерфейсов канала. LACP автоматически назначает портам значения ключей, которые эквивалентны номеру группы каналов. Данный ключ, позволяет порту агрегироваться с другими портами. Возможность порта агрегироваться с другими портами, определяется пропускной способность, возможностью дуплекса и типом физического носителя сигнала.
На рисунок 23 показана рабочая конфигурация портов, на обоих концах соединения, чтобы образовать группу каналов LACP.
Рисунок 23. Конфигурация портов
У различных приложений и серверов в дата-центрах, различные требования к отказоустойчивости сетевого оборудования. Если на сервере работает важное для бизнеса приложение, то требование к отказоустойчивости такого сервера, также высоки. Повысить отказоустойчивость сервера, можно путем балансировки нагрузки, использование двойного подключения к коммутаторам и объединения сетевых интерфейсов, также известного как NIC teaming.
Проблемы первого и второго решений по отказоустойчивости, заключаются в иерархии модели уровней LAN сетей. Отказоустойчивость в TCP/IP обеспечивается на сеансовом уровне протокола, а не на сервере.
Объединения сетевых интерфейсов происходит непосредственно на сервере. Объединять в единый логический интерфейс, можно два и более физических сетевых интерфейса. Использование двойного подключения к коммутаторам и объединения сетевых интерфейсов, позволяют повысить отказоустойчивость дата-центров, даже в случаях отказов сетевых коммутаторов.
Режимы подключения серверов к сети по двум путям, полностью зависят от программного обеспечения, которое объединяет физические интерфейсы, которое поставляется либо производителем сетевых адаптеров, или входит в состав операционной системы. Обычно, данное программное обеспечение включает в себя отказоустойчивость, при физическом отключении одного интерфейса, а также обеспечивает балансировку нагрузки между интерфейсами. Для балансировки нагрузки могут использоваться различные алгоритмы, обычно они основаны на балансировании нагрузки между MAC и IP адресами, а также между номерами TCP/UDP портов.
Рисунок 24. Одно логическое подключение
Как показано на рисунке 24, к коммутатору подключены дублирующиеся сетевые подключения, а со стороны приложения, они выглядят как единый NIC интерфейс. Обычно, когда физические сетевые интерфейсы объединяются в один, со стороны приложения оно выглядит, как один виртуальный интерфейс. Когда настраивается такой виртуальный интерфейс, ему присевается IP адрес, а также назначается MAC на оба сетевых адаптера (для исходящего трафика). Рекомендуется назначать MAC адрес виртуальному адаптеру. При такой конфигурации, если один адаптер сломается или пропадет физическое соединение, второй адаптер, будет способен получать пакеты по прежнему MAC адресу виртуального интерфейса.
При нормальной работе интерфейсов, оба интерфейса активно передают информацию, а также выполняют балансировку нагрузки.
В случаях отказа сетевого оборудования, отказавший сетевой адаптер переходит из активного состояния, в отключенное, а передача данных продолжается через второй активный адаптер. Оставшееся сетевое подключение продолжает передачу данных и отправляет ARP пакеты с IP адреса виртуального адаптера. Также в это время отслеживается статус отказавшего адаптера или физического подключения, на предмет восстановления сетевого соединения, чтобы продолжить передачу данных через него.
При использовании агрегации портов, трафик распределяется по объединенным физическим соединениям функциями детерминирования. Отправка пакетов через физические соединения происходит при помощи алгоритма хеширования. Некоторые сетевые коммутаторы, также поддерживают алгоритм хеширования и их можно настроить на балансировку нагрузки, основываясь на следующих параметрах:
◆ MAC адресов получателей
◆ MAC адресов отправителей
◆ MAC адресов отправителей и получателей
◆ IP адресов получателей
◆ IP адресов отправителей
◆ IP адресов отправителей и получателей
◆ Номеров TCP/UDP портов получателя
◆ Номеров TCP/UDP портов отправителя
◆ Номеров TCP/UDP портов получателя и отправителя
Например, если имеются два агрегированных соединения и используется балансировка по MAC адресу отправителя пакета, то в качестве индекса для балансировки нагрузки, будет использоваться последний бит MAC адреса отправителя (см. таблицу 3). Если агрегировано четыре физических соединения, то для балансировки нагрузки, потребуется использование четырех индексов. В таком случае, в качестве индексов для балансировки, будут использоваться последние два бита MAC адреса: 00, 01, 10 и 11.
В таблице 3, показано распределение пакетов между двумя агрегированными соединениями, на основе MAC адресов (в двоичном виде).
Таблица 3. Распределение пакетов между двумя агрегированными соединениями.
В таблице 4, показано распределение пакетов между четырьмя агрегированными соединениями, на основе MAC адресов (последние два бита используются в качестве индекса).
Таблица 4. Распределение пакетов между четырьмя агрегированными соединениями.
В таблице 5, показано распределение пакетов между двумя агрегированными соединениями, с балансировкой по MAC адресам отправителя и получателя, выполняемой методом XOR.
Таблица 5. Распределение пакетов методом XOR
|


