Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014-09 Инфокоммуникационные системы и сети / сети_теория_слайды / лекция_ web выравнивание-системы балансировки нагрузки.ppt
Скачиваний:
94
Добавлен:
20.02.2016
Размер:
410.11 Кб
Скачать

Схемы балансировки нагрузки для web- серверов

Существует несколько распространенных подходов в организации распределения нагрузки:

-круговой DNS, когда для распределения нагрузки используется DNS-сервер

-аппаратное распределение нагрузки, когда используется устройство, с функциями маршрутизатора

-программное распределение нагрузки. Например программа "TCP/IP Network Load Balancing" от Microsoft.

-смешанные схемы, когда используется комбинация аппаратных и программных средств

Основной недостаток для всех систем е-коммерции и информационных приложений требуется постоянное соединение между клиентом и определенной машиной пока не будет завершена определенная операция.

Схемы балансировки нагрузки для web- серверовКруговой DNS

DNS-сервер хранит пару "имя хоста/IP-адрес" для каждой машины в определенном домене: wrox.com xxx.xxx.xxx.2

www.wrox.com xxx.xxx.xxx.3

Любому имени можно назначить несколько IP-адресов: wrox.com xxx.xxx.xxx.2

www.wrox.com xxx.xxx.xxx.3 www.wrox.com xxx.xxx.xxx.4 www.wrox.com xxx.xxx.xxx.5 www.wrox.com xxx.xxx.xxx.6

Балансировка нагрузки заключается в том, что каждый из серверов получит равное количество запросов (т.к. имеется одинаковый объем ресурсов), и что им для выполнения всех операций необходимо одинаковое количество этих ресурсов

Недостаток:

-не учитывается, насколько сильно загружен процессор той или иной машины -низкая отказоустойчивость

-кэширование таблиц DNS может привести к тому, что локальный DNS-сервер клиента запишет у себя только одно соответствие "доменное имя/IP-адрес", все клиенты этого локального DNS- сервера будут все время обращаться на один и тот же IP-адрес

- остановка сервера потребует внести изменения в таблицу DNS, а изменения в таблице DNS распространяются медленно

--с поддержкой сессий (с Java-апплетами, с SSL-соединениями ).

Схемы балансировки нагрузки для web-

серверовАппаратное распределение нагрузки

В сеть между сетевым оборудованием (сетевым экраном, маршрутизатором и т.д.) и web-серверами вставляется аппаратный распределитель нагрузки (Hardware Load Balancer).

Такая конфигурация называется кластером (cluster). Кластер серверов имеет один IP-адрес

При получении IP пакетов предназначенных для кластера, распределитель выполняет следующие функции:

-принимает решение, какому из серверов кластера следует направить следующий запрос

-опрашивает все сервера и приложения (т.е. определенный TCP/IP порт) - доступны ли они

-в некоторых случаях проверяет, возвращает ли сервер корректные данные. (Нет сообщения "HTTP Error 404)

-переделывает IP-заголовок пакета так, что он уходит определенному серверу ("преобразование сетевого адреса"- network address translation).

-отправляет пакет на сервер

-когда сервер отвечает клиенту, распределитель производит такое же преобразование всех пакетов и возвращает их клиенту.

Выбор сервера в кластере зависит от распределителя:

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

- выбор алгоритма выбора (круговое переключение адресов, круговой перебор адресов с коэффициентами) В результате устойчивость выше.

Для повышения надежности используется конфигурация с избыточным оборудованием. Распределители соединяются через последовательное соединение (RS-232), в каждом из приборов есть контрольное устройство (watchdog processor), которые постоянно поддерживают связь друг с другом.

Схемы балансировки нагрузки для web-

серверовПрограммное распределение нагрузки Windows Load Balancing Service - WLBS

На каждый сервер ставится особе программное обеспечение, которое завязывает сервера в единый кластер с единым IP- адресом. Каждой машине присваивается свой идентификатор в кластере от 1 до 32. Назначается весовой коэффициент

При установке распределителя, между TCP/IP стеком и драйвером сетевой карты внедряется фильтр, который определяет, какой из серверов должен обработать запрос. Все сервера в кластере фильтруют трафик, и только

определенный сервер отвечает на запрос.

Достоинство:

- так как принцип работы построен на фильтрации пакетов, а не на преобразовании их заголовков, программный распределитель работает быстрее, чем аппаратный

Обычно на каждую машину устанавливают еще одну сетевую плату, через которую машины в кластере общаются между собой и с базой данных. Тогда весь приходящий трафик идет через первый сетевой интерфейс (на котором сидит распределитель), а весь межмашинный трафик идет через второй интерфейс, так что администрирование машин и прочие сервисы не мешают работе web-серверов

- повышение устойчивости Распределители на всех машинах периодически рассылают по сети

особые сообщения, с помощью которых определяется состояние Недостатки: всего кластера.

-сложность администрирования

- дополнительная задержка на "сведения" (convergence) машины, когда оценивают новое состояние кластера и соответственно меняют алгоритм

Схемы балансировки нагрузки для web-

серверов

Смешанные решения

В системе используется один аппаратный распределитель нагрузки (и еще один запасной) и два кластера серверов, в которых используются программные распределители нагрузки

Достоинство:

-можно расширять мощность до 8192 серверов

-благодаря такой схеме можно строить связки серверов, изолированные территориально

-не сложное администрирование

Схемы балансировки нагрузки для web- серверов

Недостатки балансировки:

Для поддержания сессии используется технология - "привязка" (affinity). Означает, что по началу сессии клиент направляется на любую машину, и на протяжении всей сессии поддерживает соединение только с ней.

Нет в переключателях нагрузки (load director), есть в распределителях (load balancer)

Эффективность распределения нагрузки падает, так как клиенты распределяются между серверами по оценке состояния машин на момент прихода первого запроса.

Для повышения отказоустойчивости позволяют делать привязку для всего пространства адресов класса С, или 256 различных IP-адресов

Система балансировки нагрузки, выполняет следующие задачи:

1 - контроль за нагрузкой и состоянием серверов (мониторинг состояния), 2 - выбор сервера, который будет отвечать на запрос клиента,

3 - управление трафиком между клиентом и сервером.

Схемы балансировки нагрузки для web- серверов Внешний мониторинг и внутренний

При проведении внешнегомониторингасистема балансировки нагрузки рассчитывает время отклика сервера, для чего направляет на сервер запрос и замеряет время ответа:

- использование ping-тест по протоколу управления сообщениями (Internet Control Message Protocol - ICMP) -установка соединения по протоколу TCP, для чего требуется осуществить состоящий из трех этапов обмен подтверждающими сообщениями:

1 - сначала средство балансировки нагрузки направляет серверу TCP-пакет, в котором значение бита SYN=1. Если после этого система балансировки получает от сервера TCP-пакет, в котором

значение бита SYN=1, а значение бита ACK=1, выполняется переход ко второму этапу;

2- направляет серверу второй TCP-пакет со значением бита SYN=0 и значением бита ACK=1. Если обмен подтверждающими сообщениями завершился успешно, значит, TCP-стек сервера

функционирует нормально;

3 – по завершении обмена качество TCP-соединения с сервером оценивается системой по показателю - время, необходимое для выполнения всех трех этапов обмена подтверждающими сообщениями.

Балансировка нагрузки установленных на сервере приложений может быть выполнена следующим способом: -на сервер направляется запрос по протоколу HTTP на получение информационных материалов или адреса URL. Пусть именем начальной страницы сервера web1.acme.com будет index.htm.

- система балансировки нагрузки может инициировать предусмотренную по протоколу HTTP команду Get, запрашивая тем самым у сервера web1.acme.com содержимое страницы index.htm. Если код возврата, направляемый системе Web-сервером, будет 200, значит, начальная страница на сервере web1.acme.com недоступна.

-время отклика определяется системой балансировки нагрузки как время с момента отправки запроса на предоставление информации до момента получения кода возврата.

Недостатки: отсутствие информации о состоянии центрального процессора, памяти, системной шины, шины ввода/вывода, сетевой интерфейсной платы, а также о ряде важных ресурсов системы и прикладных программ

Подробную информацию о нагрузке сервера может предоставить только внутренний мониторинг, для этого предусмотрены специальные агенты внутреннего мониторинга

Схемы балансировки нагрузки для web- серверов Выбор менее загруженного сервера
Формула, по которой система балансировки определяет уровень загруженности серверов, может выглядеть примерно так:
загрузка сервера = (10 * уровень использования ЦП) + (3 * уровень использования памяти) + (6 * число открытых TCP-соединений) + (3* число переданных пакетов).
Система балансировки постоянно поддерживала трафик между клиентом и сервером, такое соединение называется постоянным.
Следовательно, система балансировки должна фиксировать информацию о том, с каким сервером связывается каждый клиент, и хранить ее в памяти в течение определенного времени (время хранения указывает администратор).
При организации устойчивого соединения основная задача системы балансировки состоит в том, чтобы идентифицировать клиента и связать соответствующий идентификатор с сервером-получателем запроса, например, IP-адрес отправителя, что не всегда истина.
Проблему можно решить:
если воспользоваться системой балансировки нагрузки, оснащенной средствами идентификации IP-адресов отправителей и номеров портов TCP, такая идентификация возможна потому, что каждое TCP-соединение имеет уникальный IP-адрес отправителя и номер порта TCP.
Другой способ - зафиксировать идентификационный номер сеанса связи пользователя по
протоколу Secure Sockets Layer (SSL).
Третий способ средство поддержания устойчивых соединений - это распространяемые по сети Web cookie-файлы
Четвертый способ – непосредственное связывание (immediate binding)
Пятый способ - по методу отложенного связывания система балансировки нагрузки принимает решение о назначении сервера лишь по завершении трехэтапного обмена подтверждающими сообщениями и после установки соединения между ней и клиентом
Для более точной балансировки нагрузки требуется время для анализа информации уровня приложения.

Схемы балансировки нагрузки для web-

серверов

Управление трафиком (переадресация)

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

1 - по методу трансляции адресов с управлением доступом к среде передачи (media access control (MAC) address translation, MAT),

2 - по методу трансляции сетевых адресов (Network Address Translation, NAT),

3 - при использовании отложенного связывания - с помощью механизма шлюза TCP

(TCP gateway).

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

Получив от клиента пакет и назначив ему соответствующий сервер, система балансировки заменяет в этом пакете MAC-адрес получателя MAC-адресом соответствующего сервера, после чего направляет пакет на выделенный сервер.

В пакете содержится IP-адрес клиента, так что для прямого ответа клиенту сервер использует в качестве IP-адреса получателя первоначальный IP-адрес клиента. Однако в качестве IP-адреса отправителя сервер указывает VIP-адрес системы балансировки нагрузки, как если бы трафик поступал клиенту именно от нее. Таким образом, следующий пакет от клиента направляется не ответившему ему серверу, а системе балансировки нагрузки

Схемы балансировки нагрузки для web-

серверов

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).