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

Системы балансировки нагрузки Web-серверов(Часть 2)



Переадресация трафика

Системы балансировки нагрузки могут перенаправлять трафик клиентов на избранный сервер несколькими способами: по методу трансляции адресов с управлением доступом к среде передачи (media access control (MAC) address translation, MAT), по методу трансляции сетевых адресов (Network Address Translation, NAT), или - при использовании отложенного связывания - с помощью механизма шлюза TCP (TCP gateway). Рассмотрим, как реализуется каждый из этих методов перенаправления трафика средствами выравнивания нагрузки.

MAT. Этот метод может быть реализован системой балансировки нагрузки при том условии, что каждый Web-сервер наряду со своим физическим IP-адресом использует в качестве интерфейсного адреса обратной связи (loopback interface address) VIP-адрес системы балансировки. Получив от клиента пакет и назначив ему соответствующий сервер, система балансировки заменяет в этом пакете MAC-адрес получателя MAC-адресом соответствующего сервера, после чего направляет пакет на выделенный сервер. В пакете содержится IP-адрес клиента, так что для прямого ответа клиенту сервер использует в качестве IP-адреса получателя первоначальный IP-адрес клиента. Однако в качестве IP-адреса отправителя сервер указывает VIP-адрес системы балансировки нагрузки, как если бы трафик поступал клиенту именно от нее. Таким образом, следующий пакет от клиента направляется не ответившему ему серверу, а системе балансировки нагрузки.

NAT. При использовании этого метода система балансировки направляет полученный от клиента пакет назначенному серверу лишь после того, как выполнит над пакетом несколько операций: во-первых, она замещает в пакете адрес получателя (т. е. собственный VIP-адрес) IP-адресом назначенного сервера, а во-вторых, - меняет IP-адрес отправителя на свой VIP-адрес. Данный метод позволяет скрывать от клиентов IP-адреса Web-серверов, так что последние могут использовать любые IP-адреса, в том числе и частные. При этом Web-серверы не обязательно должны быть непосредственно соединены с системой балансировки (иначе говоря, входить в один и тот же сегмент ЛВС); достаточно, чтобы они могли устанавливать соединения по протоколам статической или сетевой маршрутизации.

Шлюз TCP. При установке непосредственного (немедленного) связывания системы балансировки нагрузки могут направлять трафик по методам MAT или NAT на уровнях 2 или 3. Но если речь идет об отложенном связывании, системы балансировки должны управлять трафиком на уровне TCP и на более высоких уровнях. Отложенное связывание предполагает, что система балансировки нагрузки и клиент устанавливают соединение по протоколу TCP так, чтобы система могла получить данные приложения еще до назначения сервера. Затем средство балансировки устанавливает TCP-соединение с назначенным сервером и передает ему клиентский запрос. Далее система балансировки передает клиенту ответ сервера, для чего опять-таки используется TCP-соединение "система балансировки - клиент". Описанная функция и называется шлюзом TCP. Специалисты компании Resonate реализуют ее в системе балансировки нагрузки с помощью специального агента (этот агент устанавливается на сервере, который обеспечивает прямое TCP-соединение между клиентом и сервером, выступающим в роли средства балансировки). По терминологии, предложенной компанией-поставщиком, данная реализация именуется системой с транзитом TCP-соединений (TCP connection hop).

Выбор сайта и управление трафиком на глобальном уровне

В тех случаях, когда информационные ресурсы размещаются на нескольких зеркальных узлах, системы балансировки нагрузки (именуемые также глобальными системами балансировки нагрузки) определяют подходящий для клиента узел с помощью уже описанных механизмов выбора сервера. Кроме того, в качестве критерия выбора сайта глобальная система балансировки может использовать такой показатель, как расстояние между сайтом и клиентом (выраженное в количестве транзитных участков и в длительности сетевой задержки). При определении наиболее подходящего сайта система балансировки часто направляет трафик клиента на соответствующий узел с помощью интеллектуальной функции DNS.

Чтобы лучше понять механизм данного процесса, вернемся к нашему примеру. Виртуальная система с именем http://www.acme.com/ представлена на двух сайтах. Функции серверов DNS для этой машины выполняют две системы балансировки нагрузки: одна - в Нью-Йорке, вторая - в Лос-Анджелесе. Разрешение имен для таких служб, как ftp и электронная почта, а также для других серверов и компьютеров в Internet осуществляется официальным сервером DNS домена acme.com. Так вот, администратор может делегировать имя поддомена http://www.acme.com/, который является частью Internet-домена acme.com, обоим средствам балансировки, после чего обе системы выравнивания нагрузки станут серверами имен для поддомена http://www.acme.com/. Чтобы получить подобную конфигурацию, нужно для каждой системы балансировки определить DNS-имя http://www.acme.com/ и поставить его в соответствии с ее собственным локальным VIP-адресом. Поскольку две системы балансировки обмениваются информацией о конфигурации и нагрузке, обе они "понимают", что виртуальная система http://www.acme.com/ имеет два VIP-адреса (т. е. представлена двумя узлами). И следовательно, обе имеют информацию о нагрузке и доступности каждого из сайтов.

Когда клиент службы AOL обращается по адресу http://www.acme.com/, как показано на Рисунке 4, процедура вызова начинается с того, что клиент запрашивает у локального сервера DNS службы AOL IP-адрес компьютера http://www.acme.com/. Если в кэше локального сервера DNS службы AOL не содержится данных о запрошенном IP-адресе, этот сервер направляет запрос официальному серверу DNS домена acme.com. Как мы помним, сервер DNS домена acme.com назначил имя http://www.acme.com/ двум системам балансировки нагрузки, поэтому домен acme.com возвращает локальному серверу DNS службы AOL IP-адреса двух систем балансировки нагрузки в качестве сервера имен http://www.acme.com/. (Обратите внимание, что на Рисунке 4 выделена интеллектуальная служба сервера DNS, обозначенная отдельным прямоугольником, - некоторые поставщики реализуют эту технологию на отдельном сервере.) Затем локальный сервер DNS службы AOL направляет запрос на получение имени одной из двух систем балансировки нагрузки. Обе системы представляют собой серверы имен, поэтому, не получив ответа от первого сервера, локальный сервер DNS службы AOL направит повторный запрос уже второй машине. Система балансировки нагрузки выбирает на основе заданных для сайта критериев наиболее подходящий сервер и возвращает локальному серверу DNS службы AOL VIP-адрес сервера сайта. Получив от локального сервера DNS службы AOL VIP-адрес главной машины http://www.acme.com/, клиент адресует свой HTTP-трафик системе балансировки нагрузки избранного сайта (например, нью-йоркского), и эта система выбирает для клиента один из локальных серверов. Поскольку локальный сервер DNS кэширует разрешенную запись DNS на срок, соответствующий указанному в записи параметру Time To Live (TTL), поставщики обычно рекомендуют не задавать больших значений TTL, чтобы клиент имел возможность быстро получить новый VIP-адрес и переключиться на другой доступный сайт.

Рис.4 Перенаправление DNS запросов для нескольких сайтов.

Системы балансировки нагрузки могут выбирать подходящий сайт, а также перенаправлять трафик и другим методом: с помощью переадресации средствами протокола HTTP. Данный метод не предусматривает использования DNS-функции системы балансировки нагрузки. Вместо этого (снова обращаюсь к нашему примеру) администратор определяет на сервере DNS запись о http://www.acme.com/ и соответствующие ей VIP-адреса. Когда клиент получает VIP-адрес http://www.acme.com/ и направляет по протоколу HTTP запрос системе балансировки нагрузки, последняя подбирает для него наиболее подходящий узел. Если избранный сайт не является удаленным (расположен не слишком далеко), система балансировки направляет браузеру клиента HTTP-команду на переадресацию, и браузер устанавливает соединение с указанным сайтом. Описанный метод дает системе балансировки нагрузки возможность еще до выбора узла получить о клиенте более подробные сведения (например, его IP-адрес). Однако клиент может воспользоваться VIP-адресом, возвращенным сервером DNS, и попытаться установить соединение с не отвечающим на запросы узлом.

Помимо метода динамического назначения клиенту того или иного узла системы балансировки нагрузки могут использовать для связывания конкретных клиентов с конкретными сайтами метод статического назначения (static mapping method). Допустим, у нас имеется зеркальный узел Web в Европе. Нам нужно, чтобы клиенты из Европы все время попадали именно на европейский сайт - за исключением тех случаев, когда он выходит из строя и система балансировки нагрузки направляет европейский трафик на узел, расположенный в США. Администратор имеет возможность настроить систему балансировки нагрузки так, чтобы любой запрос от клиента с европейским IP-адресом сначала направлялся на сайт в Европе. (Для выполнения соответствующих настроек необходимо ввести в систему балансировки весь блок европейских IP-адресов.) Получив такое указание, система балансировки нагрузки будет в первую очередь направлять на европейский узел любой запрос с европейским обратным адресом и лишь после этого принимать в расчет другие заданные критерии выбора сайта.

Избыточные системы балансировки

Системы балансировки нагрузки - не что иное, как средства доступа к серверам Web, и потому выход такого средства из строя может повлечь за собой полное прекращение работы узла. Отсюда вывод: при планировании и реализации инфраструктуры с выравниванием нагрузок важно принимать во внимание отказоустойчивость средств балансировки, а также выбирать решения с широкой полосой пропускания, способные обеспечить высокую производительность системы в целом. В распоряжении администратора имеются две схемы организации избыточных систем балансировки нагрузки: первая предполагает, что одна система балансировки функционирует в активном режиме, а другая - находится в состоянии ожидания (active-and-standby type); вторая же схема предусматривает одновременное функционирование обеих систем балансировки (active-and-active type). Обе схемы предполагают наличие на одном узле двух экземпляров систем балансировки нагрузки.

При использовании метода одна система активна, а другая находится в состоянии ожидания, резервная система балансировки постоянно контролирует состояние главной системы. Стоит последней выйти из строя, как резервная система балансировки принимает на себя функции главной (т. е. начинает управлять трафиком). Когда же главная система возобновляет работу, резервная передает ей управление трафиком и вновь переходит в режим ожидания.

В схеме с двумя активными системами балансировки нагрузки обе системы обслуживают трафик и подстраховывают друг друга. Представим для примера узел Web, состоящий из четырех серверов. Два из них обслуживаются первой системой балансировки нагрузки, и два - второй. Когда одна система балансировки выходит из строя, заботу обо всех четырех серверах берет на себя вторая система. Этот метод в полной мере использует ресурсы средств балансировки и повышает производительность узла.

Больше, чем технология

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

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

НАЗАД   СОДЕРЖАНИЕ   ВПЕРЕД