Для многих пользователей дополнительные порты могут показаться избыточными, однако опытные системные администраторы знают, что помимо очевидного подключения устройства к физически разделенным подсетям, существует возможность объединения нескольких сетевых интерфейсов в один логический канал. Такое объединение называется агрегацией и позволяет увеличить пропускную способность и обеспечить отказоустойчивость участка сети. Более подробно разбираться в механизмах агрегации каналов, а также настраивать тестовую конфигурацию, мы будем с помощью сетевого накопителя Thecus N5810PRO, одной из отличительных особенностей которого является наличие сразу пяти сетевых интерфейсов RJ-45 1000Мбит/с.

Начнем знакомство с технологией агрегации каналов с краткого обзора возможных режимов работы, предлагаемых сетевыми накопителями Thecus. Всего для выбора доступно семь режимов:

  • Load Balance – Пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. Этот режим применяется для балансировки нагрузки и отказоустойчивости.
  • Failover – Только один из объединенных интерфейсов будет активным, если он выйдет из строя, его место займет следующий. Этот режим применяется для отказоустойчивости.
  • Balance-XOR – Передача распределяется между сетевыми картами таким образом, что одна и та же сетевая карта передает пакеты одним и тем же получателям. Режим XOR применяется для балансировки нагрузки и отказоустойчивости.
  • Broadcast – Широковещательный режим, который использует все доступные порты для передачи данных, применяется для отказоустойчивости.
  • Balance-TLB – Режим адаптивной балансировки нагрузки передачи. Исходящий трафик распределяется в зависимости от текущей загрузки каждого интерфейса. Входящие пакеты принимаются только активным сетевым интерфейсом.
  • Balance-ALB – Режим адаптивной балансировки нагрузки. Включает в себя политику Balance-TLB и осуществляет балансировку входящего трафика. Балансировка входящего трафика достигается путем подмены ARP ответов, где связующий драйвер перехватывает и изменяет передаваемые MAC-адреса сетевых карт таким образом, что разные клиенты используют различные MAC-адреса при обращении к серверу.

Все шесть описанных выше режимов не требуют специального коммутатора и могут быть настроены в одностороннем порядке через веб-интерфейс сетевого накопителя. Последний же режим агрегации предлагает объединять каналы в соответствии со стандартом IEEE 802.3ad, который потребует от коммутатора совместимости и настройки. С его помощью мы и будем конфигурировать тестовую систему, но сначала хотелось бы сказать несколько слов о самом стандарте.

Стандарт IEEE 802.3ad был принят в 2000-ом году в качестве общедоступной альтернативы уже существующим к тому моменту проприетарным технологиям агрегирования каналов от мировых лидеров рынка, таких как Cisco, Adaptec и т.д. Стандарт позволяет объединить в агрегированную группу до восьми сетевых интерфейсов с одинаковой скоростью и дуплексом, что в случае гигабитных каналов дает теоретическую суммарную пропускную способность в 8 Гбит/сек. Однако на практике распределение трафика по каналам может быть неравномерным, вплоть до того, что весь трафик идет по одному каналу, а другие простаивают, в частности, такая ситуация будет наблюдаться во время работы группы с одним единственным клиентом. Помимо увеличения пропускной способности стандарт 802.3ad также обеспечивает отказоустойчивость.

Схема настройки агрегации

Познакомившись с теоретической частью, самое время приступить к практике. Как уже говорилось выше, настраивать агрегацию мы будем на сетевом хранилище Thecus N5810PRO, его парой будет выступать коммутатор GIGALINK GL-SW-G201-28TC. Подключив все объединяемые сетевые карты хранилища к свободным портам коммутатора, приступаем непосредственно к настройке.

Открываем «Панель управления» в веб-интерфейсе накопителя, затем переходим к пункту «Сеть» во вкладку «Агрегация каналов». Нажатием кнопки «Добавить» вызываем окно создания агрегированной группы. Здесь необходимо указать участвующие в объединении сетевые интерфейсы, мы выбираем все доступные. Далее указываем режим агрегации, в нашем случае – 802.3ad. Следующий параметр предлагает выбрать хэш политику передачи пакетов через объединенные интерфейсы.

Не углубляясь в подробности, скажем, что различные политики определяют алгоритм балансировки трафика, используя для генерации хэша: MAC-адреса (layer 2), MAC и IP-адреса (layer 2+3), IP-адреса и протоколы транспортного уровня (TCP или UDP) (layer 3+4). Полное описание связывающего драйвера (Bonding Driver) можно изучить по адресу: www.kernel.org.

Закончив с выбором интерфейсов, режимов и политик, переходим к настройке виртуального IP-адреса, вручную указываем свободный адрес локальной сети, маску и адрес шлюза. Сохраняем настройки нажатием кнопки «Применить». Для применения новых настроек систему необходимо перезагрузить – подтверждаем перезагрузку и приступаем к настройке коммутатора.

Настройка агрегации (1)

Для создания агрегированной группы портов на коммутаторе переходим в раздел настроек второго уровня (L2 Config), выбираем пункт конфигурации портов (Port Channel) и нажимаем кнопку «New». В правом списке доступных портов выбираем все, которые мы хотим добавить группу, и переносим их в левый список нажатием кнопки «<<». В выпадающем списке выбираем один из трех доступных режимов агрегации.

Статический режим агрегации возможен только тогда, когда обе стороны настроены в статическом режиме. При настройке динамического режима необходимо, чтобы хотя бы один из участников инициировал передачу пакетов LACP (Link Aggregation Control Protocol). Устройство, работающее в пассивном режиме, активирует протокол LACP, только обнаружив поступление пакетов от другой стороны. Настроенный нами ранее сетевой накопитель уже работает в активном режиме, поэтому коммутатор может быть как активным, так и пассивным участником объединения. Применяем конфигурацию нажатием кнопки «Apply».

Настройка агрегации (2)

Итоговый результат можно увидеть в веб-интерфейсах обоих устройств:

Настройка агрегации (3)

Попробуем протестировать пропускную способность, обратившись к файловым ресурсам сетевого хранилища сразу с нескольких компьютеров. Отслеживать состояние системы мы будем при помощи программного модуля netdata, предоставляющего всю необходимую информацию в виде удобных интерактивных графиков. Снимая показания, мы можем наблюдать, что пиковые значения суммарной пропускной способности превышают 3 Гбит/сек.

Показания программного модуля netdata

Однако при такой нагрузке наша система вплотную подходит к пределам своих возможностей, сталкиваясь с узким местом в виде центрального процессора, загрузка которого превышает 90%.

Показания программного модуля netdata

Познакомившись с технологией объединения сетевых интерфейсов на СХД Thecus, подведем итог. Агрегация каналов может быть настроена даже без использования специального оборудования и обеспечивая при этом отказоустойчивость и балансировку нагрузки. Расширение пропускной способности методом агрегации значительно дешевле одного устройства поддерживающего на порядок более высокую скорость. Однако минусом такого подхода станет то, что суммарная полоса пропускания будет увеличиваться только при одновременном подключении нескольких клиентов. Также следует учитывать, что увеличение трафика способно серьезно нагрузить систему хранения данных.