Балансировка нагрузки сети: описание технологии

Кластерная разработка балансировки нагрузки сети (Network Load Balancing), включенная в операционные системы Microsoft® Windows® 2000 Advanced Server и Datacenter Server, увеличивает масштабируемость и отказоустойчивость критически принципиальных служб, работающих по протоколам TCP/IP, таких как веб-сервер, службы терминалов, службы виртуальных личных сетей и потокового мультимедийного вещания. Служба балансировки нагрузки, являющаяся компонентом ОС Windows 2000, работает на всех узлах кластера и не требует для работы специального оборудования. Для обеспечения масштабируемости производительности служба БНС (Балансировка нагрузки сети, Network Load Balancing) распределяет поток данных, передаваемых по протоколу IP, между несколькими узлами кластера. Кроме этого, служба обеспечивает высшую отказоустойчивость, автоматом обнаруживая сбои узлов и перераспределяя поток данных посреди оставшихся. Служба БНС включает функции удаленного управления и позволяет производить чередующиеся обновления для ОС Windows NT® 4.0 и более поздних версий.

Уникальная, стопроцентно распределенная архитектура службы БНС позволяет обеспечивать высочайшую производительность и защиту от сбоев, в особенности по сравнению с технологиями рассредотачивания нагрузки на основе диспетчеризации. В данном документе тщательно описаны главные функции службы балансировки нагрузки, ее внутреннее устройство и параметры производительности.

Архитектура службы балансировки нагрузки сети

Для заслуги наибольшей пропускной возможности и отказоустойчивости служба БНС употребляет вполне распределенную программную архитектуру. На всех узлах кластера параллельно производятся однообразные драйверы службы БНС. Эти драйверы объединяют все узлы в единую сеть для обработки входящего потока данных, поступающих на основной Айпишник кластера (и на дополнительные IP-адреса многосетевых узлов). Для каждого отдельного узла драйвер делает функции фильтра меж драйвером сетевого адаптера и стеком протоколов TCP/IP, позволяя распределять поток данных, получаемых узлом. Таким макаром, поступающие запросы делятся и распределяются меж узлами кластера.

Балансировка нагрузки сети: описание технологии

Набросок 1 – Узел кластера. Ядро Windows 2000

Служба БНС работает как сетевой драйвер, расположенный в сетевой модели ниже высокоуровневых протоколов приложений, таких как HTTP и FTP.

Такая архитектура позволяет достигнуть наибольшей пропускной возможности за счет использования широковещательной сабсети для доставки поступающих данных на все узлы кластера, которая позволяет обойтись без маршрутизации входящих пакетов. Так как фильтрация ненадобных пакетов работает резвее, чем маршрутизация (при которой нужно получить, проверить, перезаписать и повторно выслать каждый пакет), при использовании службы БНС достигается более высочайшая пропускная способность сети по сравнению с решениями на основе диспетчеризации. При росте скорости работы сервера и сети пропорционально вырастает и производительность; таким макаром устраняется зависимость от производительности аппаратных решений для рассредотачивания нагрузки на основе маршрутизации. К примеру, в гигабитных сетях служба БНС показывает пропускную способность до 250 Мб/с.

Другим главным преимуществом на сто процентов распределенной архитектуры службы БНС являются потрясающие характеристики отказоустойчивости (N–1) для кластера с N узлами. Напротив, в решениях на основе диспетчеризации непременно имеется центральный элемент, являющийся «узким местом» системы, для устранения которого нужно использовать запасный диспетчер, обеспечивая только однонаправленное перемещение нагрузки при нарушении. Такая защита от сбоя наименее эффективна по сравнению с полностью распределенной архитектурой.

В архитектуре службы БНС для одновременной доставки поступающих данных на каждый узел кластера употребляется концентратор и/или коммутатор сабсети. Тем не менее, таковой подход ведет к увеличению нагрузки на коммутаторы и требует дополнительных ресурсов пропускной возможности портов. (Сведения о показателях производительности при использовании коммутаторов см. в разделе «Производительность балансировки нагрузки сети»). Как правило это не влияет на большинство обширно применяемых приложений (к примеру, веб-службы и мультимедиа-вещание), так как входящие данные составляют очень маленькую долю общего потока данных в сети. Тем не менее, если пропускная способность полосы связи к коммутатору со стороны клиента существенно выше пропускной возможности канала со стороны сервера, входящие данные могут составлять очень значительную часть общего потока данных. Та же неувязка появляется и при подключении нескольких кластеров к одному коммутатору, когда для отдельных кластеров не настроены виртуальные локальные сети LAN.

На сто процентов конвейерный механизм службы БНС при поступлении пакетов сразу передает их в стек протоколов TCP/IP и получает пакеты от драйвера сетевого адаптера. Это понижает общее время обработки потока данных и задержку, так как стек TCP/IP может обрабатывать пакет сразу с получением драйвером NDIS последующего пакета. Не считая того, требуется меньше ресурсов для координации операций стека TCP/IP и драйвера, а также, в большинстве случаев, в памяти не создаются дополнительные копии пакетов данных. При отправке пакетов служба БНС также обеспечивает завышенную пропускную способность, маленькое время задержки и отсутствие затратных издержек производительности за счет роста числа пакетов TCP/IP, которые могут быть высланы за один вызов NDIS. Для заслуги настолько высочайшей производительности служба БНС употребляет пул буферов и дескрипторов па