В распоряжении администраторов Windows есть мощное оружие – технология выравнивания сетевой нагрузки (network load balancing, NLB), встроенная прямо в Windows Server. Она не особенно популярна, а между тем, пользоваться ею очень легко.
Чаще всего выравнивание сетевой нагрузки используется для приложений, работающих без запоминания состояния, – например, для IIS (Internet Information Services) на веб-сервере. Тем не менее, технология NLB может применяться в самых разных ситуациях для обеспечения высокой доступности и выравнивания нагрузки там, где об этом редко задумываются. Давайте посмотрим, чем хорош этот механизм и в каких применениях он наиболее эффективен.
Выгоды выравнивания сетевой нагрузки
Главное достоинство NLB – кластеризация. Эта технология позволяет создать кластер машин для обеспечения высокой доступности и распределения загрузки. Идея проста: вместо использования одного конкретного сервера, в настройках DNS указывается FQDN (полностью определенное имя домена) кластера NLB. Если кластер состоит из двух или более серверов, способных отвечать на определенные запросы, технология NLB обеспечивает равномерное распределение нагрузки между всеми этими серверами. В случае сбоя запросы перенаправляются на оставшиеся рабочие серверы. Для клиентской системы или конечного пользователя переход происходит незаметно (хотя все, конечно, зависит от приложения, протокола, настроек родственности и природы перехода).
Простота NLB выгодно отличает эту технологию от других кластерных решений, таких как кластеризация для преодоления отказа в Windows Server Enterprise Edition. Самое главное, что NLB не требует наличия кластерных устройств хранения типа совместно используемых массивов. На каждом сервере запускается копия IP-приложения или сервиса, а данные для этих приложений и сервисов хранятся на локальных компьютерах. Это не активная/пассивная кластеризация: все машины в кластере одинаково могут работать и обслуживать клиентов для выравнивания нагрузки.
NLB можно использовать и с одним сетевым адаптером, но лучше всего иметь два – для отделения сети NLB от публичной локальной сети. Некоторые администраторы задаются вопросом, нужно ли для таких RAID-зеркалирование. Поскольку каждый член кластера NLB – точная копия других участников с идентичными данными, RAID не требуется. К тому же, очень часто серверы в кластере предоставляют обслуживание, а не данные, поэтому RAID-массивы или отказоустойчивые диски не особенно важны.
Где применяется выравнивание сетевой нагрузки
Выравнивание сетевой нагрузки имеет очевидные выгоды для веб-сайтов с использованием IIS. При помощи NLB можно распределить нагрузку на 32 сервера. Актуальна эта технология и для других IP-приложений и сервисов, включая медиасерверы, терминальные серверы и интернет-магазины.
NLB может пригодиться и в менее очевидных ситуациях. К примеру, в некоторых ситуациях с помощью этого механизма можно обеспечить повышенную избыточность веб-серверов front-end на базе SharePoint 2010 – правда, при наличии коммутаторов Cisco это может оказаться затруднительно. При использовании Exchange 2010 выравнивание сетевой нагрузки можно применять в целях создания CAS-массивов для роли сервера клиентского доступа (Client Access Server), чтобы обеспечить высокую доступность служб CAS. Только имейте в виду, что нельзя использовать NLB, если CAS-серверы совмещены с серверами почтового ящика, входящими в группу доступности баз данных Exchange (Database Availability Gropup, DAG).
NLB также можно использовать для дополнительного выравнивания нагрузки на транспортные серверы-концентраторы (Hub Transport) (в SP1 и более поздних версиях), что актуально лишь при наличии SMTP-приложения, которое в этом нуждается. Если применяются пограничные серверы (Edge Transport) внутри одного предприятия, можно создать клон такого сервера и также использовать NLB. Подробнее о выравнивании сетевой нагрузки для транспортных серверов концентраторов можно узнать на сайте TechNet.
Обратите внимание: хотя в Exchange поддерживается NLB для выравнивания нагрузки на транспортные серверы-концентраторы, пограничные серверы и серверы клиентского доступа, применение этой технологии не всегда рекомендуется. Как правило, Microsoft советует применять аппаратное выравнивание нагрузки из-за определенных ограничений, связанных с использованием NLB для Exchange: может наблюдаться снижение производительности, NLB не распознает прекращение работы служб, а иногда происходит перегрузка портов. Более подробно о рекомендациях по применению NLB можно узнать на сайте TechNet.
Некоторые полагают, что NLB не подходит для большинства, если не для всех вообще применений Exchange, поэтому я и посчитал нужным предупредить. Тем не менее, эта технология успешно используется, а в некоторых случаях и поддерживается, так что упомянуть об этом не помешает.
Microsoft советует использовать вместо NLB аппаратное выравнивание нагрузки, и тут действительно следует учитывать обстоятельства. К примеру, выше уже упоминалось, что если CAS-сервер входит в группу DAG, NLB использовать нельзя. Кроме того, в кластер NLB не могут входит серверы, которые уже входят в кластер Windows для преодоления отказа (как и в случае с членами группы DAG).
Бывают и другие случаи, не только в среде Exchange, когда использование аппаратного выравнивания нагрузки предпочтительнее из-за размера, конфигурации сети и применения тех или иных решений. Поэтому вам предстоит тщательно все взвесить и разобраться, подходит ли NLB для вашей среды.
Главная задача этой статьи – напомнить читателям об этом забытом решении, которое может успешно применяться в самых разных ситуациях, особенно при наличии веб-фермы или служб терминалов, требующих выравнивания нагрузки и высокой доступности за счет избыточности серверов. Если NLB вам подходит, не стесняйтесь использовать этот механизм!