UMGUM.COM 

Windows + HP + NCU + LACP ( Агрегирование каналов c помощью LACP для сервера HP Proliant DL* под управлением Microsoft Windows 2003. )

21 октября 2011  (обновлено 31 января 2015)

OS: Microsoft Windows 2003 Standart SP2.
Hard: HP Proliant DL*.

Задача: обеспечить высокий уровень надёжности приёма и передачи данных для сервера под управлением Microsoft Windows 2003 вкупе с увеличением пропускной способности каналов.

С Linux и *BSD способ аргегатирования практически один, так называемый "bonding" (единое решение для всех видов сетевых интерфейсов). Microsoft на такое не пошла, полагая (видимо), что проще отдать разработку решений агрегирования тем, кто сможет и захочет это сделать, снимая с себя ответственность за потенциально нестабильную работу на массе оборудования, протестировать которое весьма и весьма трудоёмкая задача. Не думаю, что это свидетельствует о каком-то особо пренебрежительном отношении к потребителю, скорее всего, полагаю, это связано с принципиально иным подходом к реализации сетевой подсистемы, не позволяющей выстроить дополнительную абстракцию над драйверами сетевых устройств, так просто и надёжно, как это сделано в Linux (архитектурное наследие, от которого не так просто отказаться, хотя бы и из соображений обеспечения совместимости).

Как бы то ни было, аргегатирование интерфейсов в Microsot Windows делается с помощью дополнительного программного обеспечения, поставляемого с драйверами к сетевому оборудованию, поддерживающему агрегирование. В частности, поддержка такового есть у всех "серверных" сетевых карт Hewlett-Packard и Intel, и реализуется оно с помощью "фирменного" программного обеспечения. В данном случае рассматривается вариант объединения сетевых интерфейсов "HP NC7782 Gigabit Server Adapter" (на самом деле это сетевые интерфейсы Broadcom, но HP подкорректировало драйверы для своих нужд с сопутствующим переименованием) на сервере "HP Proliant DL380 G4" в соответствии со спецификацией IEEE 802.3ad (LACP).

Если сервер HP Proliant поставлялся официально, с ним обязательно идёт пакет драйверов от компании Hewlett-Packard, тесно переплетённых с сопутствующим программным обеспечением мониторинга и управления оборудования. В частности, драйверы сетевых устройств нельзя установить, насколько я мог заметить, без утилиты "NIC Teaming" (Network Configuration Utility). Эта самая "NIC Teaming" и поможет нам в настройке агрегирования интерфейсов.


Прежде всего, для всех сетевых интерфейсов, задействованных в объединении, необходимо установить единые значения для ряда параметров. Следует в явном виде указать скорость и "дуплекс", например: "100 Mb & Full" (естественно, на стороне коммутатора необходимо заранее обеспечить работу интерфейсов в аналогичном режиме).

размер: 320 400 640 800 1024 1280
HP NIC Teaming. Microsoft Windows 2003: Выбор физического сетевого адаптера для настройки.
HP NIC Teaming. Microsoft Windows 2003: Выбор физического сетевого адаптера для настройки.

Далее следует отключить поддержку "Checksum Offload", "Receive Side Scaling" и "NetDMA" (теперь вычисление контрольных сумм и балансировку между обработчиками сетевого потока будет осуществлять тот процессор, что будет заниматься поддержкой агрегированного канала).

HP NIC Teaming. Microsoft Windows 2003: Отключение функций SNP для физического сетевого адаптера.
HP NIC Teaming. Microsoft Windows 2003: Отключение функций SNP для физического сетевого адаптера.

Вообще, в качестве справки, замечу, что набор "Scalable Networking Pack", функционал которого мы здесь отключаем, предназначен для повышения производительности сетевой подсистемы сервера. Он устанавливается в Microsoft Windows 2003 в составе "Service Pack 1" (и автоматически активируется при установке "Service Pack 2") и содержит следующие компоненты:

TCP Chimney Offload - перенос части функционала TCP/IP стека на оборудование сетевого адаптера;
Receive Side Scaling (RSS) - распределение обработки входящего сетевого потока между несколькими системными процессорами (обычно стек TCP/IP работает всегда только на одном процессоре, даже если машина многопроцессорная);
Network Direct Memory Access (NetDMA) - использование механизма прямого доступа для обмена информацией между сетевым адаптером и основной памятью вместо использования центрального процессора и его прерываний.

"Фишка" в том, что SNP работает только в обычных, прямых подключениях, когда трафик льётся с сетевой карты в обрабатывающее приложение системными средствами; а вот вкупе с перехватом и перенаправление потока, который и осуществляется в рамках агрегирования - нет (http://support.microsoft.com/kb/912222):

....
TCP Chimney offload and NetDMA will not work with the following features:
  Windows Firewall
  Internet Protocol security (IPsec)
  Internet Protocol Network Address Translation (IPNAT)
  Third-party firewalls
  NDIS 5.1 intermediate drivers
....

На самом деле, драйвер "HP NIC Teaming" поддерживает не менее богатые возможности оптимизации обработки потока данных, просто таковая осуществляются на уровне "группового" сетевого интерфейса; так что, отключая эти возможности в сетевых картах мы не теряем существенно в производительности.

Отключение функционала SNP если и разрывает сетевые соединения, то на доли секунды. Далее следуют процедуры, во время исполнения которых сетевые соединения будут разорваны так долго, как медленно мы будем щёлкать мышкой. Переходим к свойствам любого сетевого интерфейса, из тех, что мы намерены объединить в группу:

HP NIC Teaming. Microsoft Windows 2003: Выбор сетевого интерфейса для настройки.
802x314 • HP NIC Teaming. Microsoft Windows 2003: Выбор сетевого интерфейса для настройки.

Выбираем пункт "HP Network Configuration Utility". Нажатие кнопки "Свойства" вызовет запуск стороннего графического интерфейса, от разработчика драйверов:

HP NIC Teaming. Microsoft Windows 2003: Переход к интерфейсу HP Network Configuration Utility.
HP NIC Teaming. Microsoft Windows 2003: Переход к интерфейсу HP Network Configuration Utility.

Выделяем объединяемые сетевые интерфейсы и нажимает на кнопку "Team":

HP NIC Teaming. Microsoft Windows 2003: Выбор сетевых интерфейсов для группирования.
HP NIC Teaming. Microsoft Windows 2003: Выбор сетевых интерфейсов для группирования.

Выбираем тип агрегирования, в нашем случае это 802.3ad (LACP):

HP NIC Teaming. Microsoft Windows 2003: Выбор типа агрегирования сетевых интерфейсов.
HP NIC Teaming. Microsoft Windows 2003: Выбор типа агрегирования сетевых интерфейсов.

В самом простом случае - это всё. После нажатия кнопки "Ок" будет создан новый виртуальный групповой интерфейс и сброшены TCP/IP параметры подчинённых интерфейсов. Если в сети налажен DHCP, то групповой интерфейс получит параметры автоматически (IP, mask, gayeway, DNS), в противном случае - настраиваем его вручную.

После этого возвращаемся к графическому интерфейсу "HP Network Configuration Utility" и удостоверяемся, что один из физических сетевых линков активен и работает:

HP NIC Teaming. Microsoft Windows 2003: Этап после подключения одного сетевого линка.
HP NIC Teaming. Microsoft Windows 2003: Этап после подключения одного сетевого линка.

Теперь самое время заняться настройкой LACP на стороне сетевого партнёра. Как сделать это для Cisco Catalyst я уже писал здесь.

После того, как поддержка LACP обеспечена на обеих взаимодействующих сторонах, можно подключать второй сетевой линк:

HP NIC Teaming. Microsoft Windows 2003: Этап после подключения двух сетевых линков.
HP NIC Teaming. Microsoft Windows 2003: Этап после подключения двух сетевых линков.

Общая пропускная способность теперь составляет не 100 Mbs, как ранее, а 200 Mbs, то есть в два раза больше. Введём третий линк - будет в три раза больше:

HP NIC Teaming. Microsoft Windows 2003: Общий вид агрегированного сетевого подключения.
HP NIC Teaming. Microsoft Windows 2003: Общий вид агрегированного сетевого подключения.

Тестирование одно-поточной загрузкой:

HP NIC Teaming. Microsoft Windows 2003: Тестирование агрегированного сетевого подключения.
HP NIC Teaming. Microsoft Windows 2003: Тестирование агрегированного сетевого подключения.

Отключаем приоритетный интерфейс и видим, что поток данных переместился на второй интерфейс; соединения при этом не прервались:

HP NIC Teaming. Microsoft Windows 2003: Тестирование агрегированного сетевого подключения разрывом связи.
HP NIC Teaming. Microsoft Windows 2003: Тестирование агрегированного сетевого подключения разрывом связи.

Теперь можно передёргивать не только шнуры питания (как правило у серверов по два блока питания), но и провода подключения к коммутатору - связь не прервётся.


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )