Средство балансировки сетевой нагрузки (NLB) в Windows Server 2008 R2 повышает надежность и масштабируемость серверных приложений Интернета, используемых на веб-, прокси- и FTP-серверах, серверах брандмауэра и виртуальной частной сети (VPN) и на других ответственных серверах. Сервер на основе одного компьютера под управлением Windows Server 2008 R2 не будет обладать достаточно высоким уровнем надежности и масштабируемой производительности. Однако при объединении ресурсов нескольких компьютеров, на которых установлены программные продукты Windows Server 2008 R2, в единый виртуальный кластер технология балансировки сетевой нагрузки может обеспечить надежность и производительность, необходимые для веб-сервера и других ответственных серверов.
На приведенной выше схеме изображены два связанных кластера балансировки сетевой нагрузки. Первый кластер состоит из двух узлов, а второй - из четырех. Это один из примеров использования NLB.
На каждом узле выполняется отдельная копия заданных серверных приложений (например, приложений для веб-, FTP- и Telnet-сервера). NLB распределяет входящие клиентские запросы между узлами в кластере. Нагрузку, которую должен обрабатывать каждый узел, можно настроить в соответствии с требованиями. Если нужно обработать дополнительную нагрузку, узлы можно добавлять к кластеру динамически. Кроме того, NLB может направлять весь поток данных на один предназначенный для этого узел, называемый узлом по умолчанию.
NLB позволяет обращаться ко всем компьютерам в кластере по одному и тому же набору IP-адресов кластера и поддерживает набор уникальных, выделенных IP-адресов для каждого узла. Для приложений с балансировкой нагрузки при сбое на узле или его отключении нагрузка автоматически перераспределяется между работающими компьютерами. При сбое или неожиданном отключении компьютера все активные подключения к такому серверу будут потеряны. Но если работа узла завершается намеренно, можно с помощью команды drainstop обслужить все активные подключения до отключения компьютера. В любом случае отключенный компьютер, когда он будет готов к работе, может снова присоединиться к кластеру в рабочем режиме и взять на себя часть нагрузки, что позволит снизить объем данных, приходящийся на другие компьютеры кластера.
Узлы кластера с NLB обмениваются сообщениями пульса для согласования данных о членстве в кластере. По умолчанию, если узел не отправляет сообщений пульса в течение пяти секунд, это считается сбоем. При сбое на узле остальные узлы кластера начинают процесс схождения и:
- выявляют узлы, оставшиеся активными членами
кластера;
- назначают узел с наивысшим приоритетом узлом
по умолчанию;
- обеспечивают обработку новых запросов
клиентов работающими узлами.
В процессе схождения работающие узлы ищут регулярные сообщения пульса. Если узел, на котором произошел сбой, начинает передавать сообщения пульса регулярно, он снова присоединяется к кластеру в процессе схождения. Когда к кластеру пытается присоединиться новый узел, он передает свои сообщения пульса, которые тоже запускают схождение. После того как все узлы кластера придут к соглашению по членству в кластере на данный момент, нагрузка от клиентов перераспределяется между узлами, оставшимися в результате, и схождение завершается.
Схождение обычно длится несколько секунд, поэтому перерыв в работе клиентских служб оказывается незначительным. Во время схождения узлы, оставшиеся активными, продолжают обработку клиентских запросов без изменения в имеющихся подключениях. Схождение завершается, когда все узлы одинаково описывают членство в кластере и схему распределения на протяжении нескольких периодов пульса.
Новые возможности NLB
Средство NLB в Windows Server 2008 R2 включает следующие усовершенствования.
- Расширенное сходство. Параметр
«Расширенное» обеспечивает соответствие клиента при изменении
конфигурации кластера балансировки сетевой нагрузки. Этот параметр
также позволяет клиентам сохранять соответствие с узлом кластера в
отсутствие активных текущих подключений от клиента к узлу.
- Оболочка Windows PowerShell для
NLB-кластеров. Оболочка Windows PowerShell - это новая оболочка
командной строки и язык сценариев. Оболочка Windows PowerShell
увеличивает скорость автоматизации задач по администрированию
системы. Windows PowerShell можно использовать для управления
кластерами балансировки сетевой нагрузки. Дополнительные сведения
об использовании оболочки Windows PowerShell для кластеров
балансировки сетевой нагрузки см. в статье (может быть на
английском языке) по адресу http://go.microsoft.com/fwlink/?LinkId=140180.
- Поддержка чередующегося обновления.
Балансировка сетевой нагрузки поддерживает чередующееся обновление
Windows Server 2003 до Windows Server 2008 R2, а
также Windows Server 2008 до Windows Server 2008 R2.
Сведения о развертывании для NLB, в том числе о чередующемся
обновлении, см. по адресу http://go.microsoft.com/fwlink/?LinkId=87253.
Настройка NLB
Средство NLB работает как сетевой драйвер Windows. Его операции прозрачны для стека сетевых протоколов TCP/IP.
На приведенной выше схеме показаны соотношения между NLB и другими компонентами в типовой конфигурации узла NLB.
Возможности в балансировке сетевой нагрузки
NLB включает следующие возможности.
Масштабируемость
Масштабируемость показывает, насколько можно расширить возможности компьютера, службы или приложения в соответствии с повышением требований к его производительности. Применительно к кластерам NLB масштабируемость - это возможность добавления одной или нескольких систем к существующему кластеру, когда общая нагрузка кластера превышает его текущую производительность. Поддержка масштабируемости реализуется в средстве балансировки сетевой нагрузки следующим образом.
- Балансировка запросов нагрузки в пределах
NLB-кластера для отдельных служб TCP/IP.
- Поддержка до 32 компьютеров в одном
кластере.
- Балансировка запросов нагрузки для нескольких
серверов (как от одного клиента, так и от нескольких клиентов) по
нескольким узлам кластера.
- Возможность добавления узлов к NLB-кластеру
при возрастании нагрузки без перерыва в работе кластера.
- Возможность удаления узлов из кластера при
снижении нагрузки.
- Реализация высокой производительности и
снижение накладных расходов благодаря полнофункциональному
конвейерному режиму. Этот режим позволяет отправлять запросы
NLB-кластеру, не ожидая ответа на предыдущий запрос.
Высокая надежность
Система высокой надежности обеспечивает безотказное обслуживание на приемлемом уровне с минимальными простоями. Средство балансировки сетевой нагрузки включает встроенные компоненты, обеспечивающие высокую надежность путем автоматического выполнения следующих действий.
- Распознавание сбоя или отключения узла
кластера и его восстановление.
- Балансировка нагрузки сети при добавлении и
удалении узлов.
- Восстановление и перераспределение рабочей
нагрузки в течение 10 секунд.
Управляемость
Имеются следующие возможности управления NLB.
- Управлять несколькими кластерами NLB и узлами
кластеров и настраивать их можно с одного компьютера с помощью
диспетчера NLB.
- Используя правила управления портами, можно
задавать режим балансировки для отдельного IP-порта или группы
портов.
- Для каждого веб-сайта можно определить особые
правила для портов. Если для нескольких приложений или веб-сайтов
используется один набор серверов с балансировкой нагрузки, правила
для портов выбираются по виртуальному IP-адресу назначения (с
использованием виртуальных кластеров).
- Все клиентские запросы можно направлять на
один узел с помощью дополнительных правил одного узла. NLB будет
направлять клиентские запросы на определенный узел, где выполняются
заданные приложения.
- Можно заблокировать доступ по сети к
определенным IP-портам.
- Для контроля переполнения коммутатора (при
работе в многоадресном режиме) можно включить поддержку протокола
IGMP (Internet Group Management Protocol).
- Можно запускать, останавливать действия NLB и
управлять ими с любого подключенного к сети компьютера под
управлением Windows при помощи команд оболочки или сценариев.
- События NLB можно просматривать в журнале
событий Windows. В журнал событий записываются все действия NLB и
изменения кластера.
Простота использования
В средстве NLB предусмотрен ряд функциональных возможностей для удобства его использования.
- NLB устанавливается как стандартный компонент
Windows - сетевой драйвер.
- NLB не требует для запуска и работы
каких-либо изменений в оборудовании.
- Диспетчер NLB позволяет создавать новые
кластеры NLB.
- Диспетчер NLB позволяет управлять несколькими
кластерами и всеми узлами кластеров и настраивать их с одного
удаленного или локального компьютера.
- Балансировка сетевой нагрузки дает клиентам
возможность обращаться к кластеру по единому логическому
интернет-имени и виртуальному IP-адресу, называемому IP-адресом
кластера (сохраняются отдельные имена для каждого компьютера). NLB
поддерживает несколько IP-адресов для многосетевого сервера.
Примечание В случае виртуального кластера сервер не обязательно должен быть многосетевым, чтобы иметь несколько IP-адресов.
- Средство NLB может быть привязано к
нескольким сетевым адаптерам, что позволяет настроить несколько
независимых кластеров на каждом узле. Поддержка нескольких сетевых
адаптеров - это не то же самое, что виртуальные кластеры, в которых
можно настраивать несколько кластеров на одном сетевом
адаптере.
- Не требуется вносить изменения в серверные
приложения, чтобы запускать их в кластере NLB.
- NLB может быть настроена так, что при сбое и
последующем восстановлении работы узла он будет добавляться в
кластер автоматически. Добавленный узел затем сможет вновь
обрабатывать запросы к серверу от клиентов.
- Компьютеры можно отключать для
профилактического обслуживания, не затрагивая операции кластера на
других узлах.
Дополнительные ссылки
Установка балансировки сетевой нагрузки
Контрольный список: Приступая к работе с балансировкой сетевой нагрузки
Создание кластеров балансировки сетевой нагрузки
Управление кластерами балансировки сетевой нагрузки
Настройка параметров балансировки сетевой нагрузки
Управление узлами в кластерах балансировки сетевой нагрузки
Устранение неполадок в кластерах балансировки сетевой нагрузки
Пользовательский интерфейс: Диспетчер балансировки сетевой нагрузки