На главную
Карта сайта
Написать письмо в АСПЕКТ СПб
Главная /  Решения /  ИТ-инфраструктура /  Системы высокой готовности / Балансировка нагрузки на серверы

Балансировка сетевой нагрузки

Основная задача кластера балансировки сетевой нагрузки (Network Load Balancing Cluster, NLB) — обеспечение  оптимальной загрузки серверов при минимально-необходимом времени отклика прикладных сервисов информационной системы во всех географических точках, где они должны быть доступны пользователям. Балансировка нагрузки достигается путем разгрузки запросов на несколько параллельно-установленных серверов. При этом технологии реализации балансировки могут быть различными.

К приложениям, требующим балансировки, как правило, относят наиболее типовые Web-серверы, серверы электронной почты и DNS-серверы, которые обслуживают сеть Интернет и корпоративные сети организаций. Помимо этого многие прикладные программы и инфраструктурные сервисы также могут поддерживать возможность балансировки, для чего они должны удовлетворять следующим требованиям:

  1. Согласованность данных на всех параллельно-доступных серверах.
  2. Целостность асинхронных и длительных по времени транзакций.
  3. Поддержка приложением системной инфраструктуры балансировки нагрузки.

Согласованность данных — основная проблема, так как все серверы должны выдавать одинаковые ответы пользователям на один и тот же запрос. При этом, если данные изменились на одном сервере, то они должны быть реплицированы на остальные сервера. А в зависимости от требований к времени обновления реплик на серверах технологии реализации согласования данных могут сильно отличаться: от переноса данных оператором системы на диске до организации масштабной системы онлайн-кластеризации и репликации данных (как в поисковых Web-площадках). Фактически, данную задачу должно решать прикладное программное обеспечение, но ни в коем случае не «железо» (зачастую при закупке оборудования предприятием допускается такая ошибка).

Целостность транзакций - одна из наиболее сложных проблем при организации NLB-кластера. В NLB-кластерах возможны ситуации, в которых приложение, начиная работу с одним сервером кластера, завершает её на другом сервере. Очевидно, что необходимо обеспечить целостность данных и корректность завершения транзакции.

Особое значение эта проблема имеет при организации сетей с балансировкой нагрузки и отказоустойчивостью маршрутизаторов и брандмауэров.

Инфраструктура балансировки сетевой нагрузки обеспечивает равномерное распределение заявок пользователей между серверами системы балансировки. Общая схема системы балансировки приведена на рисунке:

Network Load Balancing DB (small)


Рис.1. Типовая система балансировки сетевой нагрузки

Различают следующие уровни реализации NLB-системы:

  1. Сетевой уровень. Поддерживается на уровне операционной системы и реализован в Windows Server Network Load Balancing. Суть подхода заключается в логическом объединениии всех интерфейсов серверов под один IP-адрес в сети, при котором серверы договариваются между собой о порядке обслуживания запросов. Существует два способа реализации этого подхода:
    • Unicast mode. В случае unicast mode на всех серверах NLB-кластера настраивается один виртуальный MAC-адрес, что позволяет организовать прием пакетов на все интерфейсы кластера. В этом случае узлы кластера не могут обмениваться информацией между собой с использованнием таких интерфейсов. Для этого обычно организуется дополнительная административная сеть или сеть доступа к данным, в которую узлы подключаются дополнительными интерфейсами (см. рис.1.).
    • Multicast mode. В этом случае передача пакетов на узлы кластера организуется посредством коммутатора, который должен поддерживать multicast mode. В этом случае на интерфейсах кластера задействуются штатные MAC-адреса и поэтому серверы могут взаимодействовать друг с другом, используя эти же интерфейсы.
  2. Уровень службы имен интернета DNS. Данная служба позволяет преобразовывать имена компьютеров вида "comp2.domain.net" в IP-адреса вида "192.168.200.201" и наоборот для коммуникаций по протоколу IP. Для балансировки нагрузки в службе DNS для одного имени типа "comp2.domain.net" настраивается несколько IP-адресов, а также опция "round robin", которая устанавливает порядок выдачи адресов для DNS-запросов по кругу. В результате, каждый клиент, по мере выдачи запросов на одно имя на DNS-сервер, будет получать разные IP-адреса, а значит, подключаться к разным серверам.
  3. Уровень приложения. Данный подход реализуется в прикладном программном обеспечении и может не зависеть от инфраструктуры (уровней 1 и 2). Примерами таких приложений являются Active Directory, Microsoft Exchange Server, WINS, Kaspersky Administration Kit, корпоративные распределенные системы учета и т.п., в которых реализация носит индивидуальный характер.

Планирование NLB-решения предполагает принятия решений по следующим вопросам:

  1. Количество пользователей и интенсивность запросов, которое влияет на загрузку серверов.
  2. Географическая распределенность.
  3. Объем данных.
  4. Подход к реализации балансировки нагрузки.
  5. Разработка технологии репликации данных на серверах.
  6. Требования к отказоустойчивости.
 
© АСПЕКТ СПб, 2009. Все права защищены.