Реферат по теме выпускной работы

Содержание

Введение. Актуальность темы

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

1. Цель и задачи исследования

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

Задачи исследования:

  1. Анализ существующих алгоритмов балансировки нагрузки в глобальных сетях.
  2. Математическое моделирование географически распределенных серверов, потока пользовательских запросов и существующих алгоритмов балансировки нагрузки. Анализ полученных показателей, определение недостатков.
  3. Модернизация алгоритмов для достижения поставленной цели.
  4. Имитационное моделирование и проверка полученных результатов.
  5. Исследование и анализ полученных научных результатов.

Объект исследования: телекоммуникационные сети с географически распределенными репликами серверов.

Предмет исследования: методы повышения эффективности функционирования алгоритмов балансировки нагрузки.

2. Обзор исследований и разработок

2.1 Обзор международных источников

В [1] проводится обзор и классификации техник балансировки нагрузки. Авторы [2] освещают основные проблемы сетей доставки контента (CDN), включая расчет метрик выбора сервера и перенаправления пользовательских запросов. Более полная классификация всех аспектов функционирования CDN представлена в [34].

Актуальной темой для международных источников является расчет расстояния между хостами глобальной сети. В [56] предлагаются варианты архитектур для проведения таких расчетов. В [7] рассматривается измерение производительности серверов с использованием искусственных нагрузок.

Универсальный подход к использованию динамических дисциплин балансировки был реализован в IBM Network Dispatcher [89] и Cisco DistributedDirector [10].

2.2 Обзор национальных и локальных источников

На данном уровне комплексных исследований по теме магистерской работы не проводилось. Рассматриваются только системы балансировки нагрузки локальных кластерных архитектур, что не является объектом данного исследования.

3. Задачи системы балансировки нагрузки

Балансировка нагрузки определяет, какой сервер лучше обслужит данный клиентский запрос. Понятие «лучше» в данном случае определяется метрикой балансировки нагрузки.

Основной целью мероприятий по масштабированию веб-сервера является минимизация ощущаемой пользователем задержки. Данная задержка в свою очередь складывается из двух компонентов: задержки вносимой сетью и задержки вносимой сервером.

Представителем первой компоненты может служить время Round Trip Time (RTT). А вторая компонента определяется загруженностью сервера. Таким образом, для достижения поставленной цели должна применяться либо комплексная метрика, либо иерархичная (на первом уровне выбирать из пула серверов по загруженности, на втором — из отобранных серверов выбирать конкретный по параметру RTT).

Если при моделировании доказать высокую степень корреляции задержки с расстоянием, то можно применять метрики на базе расстояния, которые легче вычислются. Показателями расстояния служит информация протоколов маршрутизации Boarder Gateway Protocol (BGP) и Interior Gateway Protocols (IGP).

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

  1. мониторинг состояния серверов и сетевого оборудования
  2. выбор сервера, который будет отвечать на запрос клиента
  3. управление трафиком между клиентом и сервером.

3.1 Мониторинг состояния серверов и сетевого оборудования

Для мониторинга может применяться один из двух методов — внешний либо внутренний. Внешний заключается в создании синтетического запроса и замера времени ответа системы. Простейшей из существующих техник внешнего мониторинга является использование сообщений по протоколу Internet Control Message Protocol (ICMP). Если система балансировки нагрузки не получает ответа после нескольких запросов, то она отмечает сервер как недоступный.

Однако, использование протокола ICMP не дает никакой информации о состоянии стека TCP, использующегося протоколом HyperText Transfer Protocol (HTTP). В связи с этим, логичнее выполнять мониторинг, устанавливая TCP-соединение и оценивая качество этого соединения по количеству времени, затрачиваемого на его установление.

Самым высокоуровневым методом внешнего мониторинга является метод посылки Get-запросов по протоколу HTTP. Время ответа определяется как время с момента отправки запроса до момента получения кода ответа.

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

3.2 Выбор сервера

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

В случае локального кэширования сервером информации алгоритм балансировки должен учитывать необходимость постоянного соединения клиента с выбранным сервером, дабы последующие запросы направлялись на него. Система балансировки должна идентифицировать клиента и связать данный индикатор с выбранным сервером. Как правило, для этих целей используется IP-адрес отправителя. Но в силу использования прокси-серверов при таком подходе может возникнуть значительный дисбаланс нагрузки. Поэтому, в современных алгоритмах применяется идентификация по сокетам — парам IP-адрес, TCP-порт. Еще одним способом идентификации клиента является отслеживание идентификационных номеров сеанса связи пользователя по протоколу Secure Sockets Layer (SSL) [11]. Самым современным подходом к решению проблемы постоянного соединения является анализ содержимого cookie-файлов [12].

Ряд существующих алгоритмов выполняет выбор сервера в тот момент, когда система получает от клиента пакет TCP SYN [13]. Такой подход называется непосредственное связывание (immediate binding). При этом обеспечивается высокое быстродействие, но система не анализирует такую информацию как идентификатор сеанса связи по протоколу SSL, содержимое cookie-файла, адрес URL и данные прикладной программы. Для равномерной балансировки нагрузки системе необходимы более подробные сведения о клиенте, в связи с чем требуется время для анализа информации уровня приложения. Такой анализ выполняется при использовании метода отложенного связывания — система балансировки принимает решение о выборе сервера лишь по завершении установки соединения с клиентом.

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

Системы балансировки нагрузки могут перенаправлять трафик клиентов на избранный сервер двумя способами: по методу трансляции сетевых адресов (Network Address Translation, NAT), или (при использовании отложенного связывания) с помощью механизма шлюза TCP (TCP gateway).

При использовании метода NAT система балансировки направляет пакет назначенному серверу только после того, как заменит адрес получателя (собственный IP-адрес) IP-адресом назначенного сервера, а также IP-адрес отправителя на свой IP-адрес. Данный метод позволяет скрывать от клиентов IP-адреса Web-серверов, так что последние могут использовать любые IP-адреса, в том числе и частные.

Отложенное связывание предполагает, что система балансировки нагрузки и клиент устанавливают соединение по протоколу TCP так, чтобы система могла получить данные приложения еще до назначения сервера. Затем средство балансировки устанавливает TCP-соединение с назначенным сервером и передает ему клиентский запрос. Далее система балансировки передает клиенту ответ сервера, для чего опять-таки используется TCP-соединение система балансировки - клиент. Описанная функция называется шлюзом TCP [9].

4. Исследование методов балансировки нагрузки в глобальных сетях

Задачу распределения запросов принято разбивать на 2 составляющие: разработку политики направления запросов и выбор механизма перенаправления [2].

Политика – это собственно алгоритм, осуществляющий выбор конкретного сервера, а механизм – объект, который информирует клиента о выбранном сервере.

Классификация политик:

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

В [14] была проведена классификация механизмов маршрутизации клиентских запросов на сервера сайта. Критерием выделения различных типов архитектур распределенных Web-серверов является объект, который осуществляет распределение пользовательских запросов.

Соответственно существуют механизмы следующих видов:

  • клиентские;
  • на базе DNS;
  • диспетчерские;
  • серверные.

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

В методах на базе DNS распределение запросов осуществляется авторизированным DNS-сервером домена. Прозрачность архитектуры для пользователя реализуется на прикладном уровне модели Open System Interconnection (OSI) — сайт имеет один URL.

Принцип работы методов на базе DNS

Рисунок 1 — Принцип работы методов на базе DNS
(анимация: 5 кадров, 7 циклов повторения, 132 килобайт)

Однако, контроль распределения запросов со стороны DNS ограничен наличием между клиентом и DNS-сервером, осуществляющим балансировку, большого числа промежуточных DNS-серверов, которые могут кэшировать DNS-записи с целью уменьшения объема трафика. DNS-сервер, осуществляя разрешение имен, определяет период TTL, в течение которого кэш данной записи может храниться. В течение данного периода запросы, проходящие через сервера, хранящие кэш, не будут достигать авторизированного DNS-сервера кластера и балансировка нагрузки для них проводиться не будет, они будут направляться на сервер, определённый в кэше.

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

В рамках механизмов на базе DNS существуют алгоритмы с постоянным значением TTL, которые, в связи с описанной проблемой, осуществляют контроль над очень малой долей запросов и алгоритмы с динамически устанавливаемым значением TTL [1], осуществляющие, кроме балансировки, выбор значения TTL для каждой записи (меньшее значение TTL может быть присвоено запросам от доменов с большим количеством пользователей и запросам, направляемым на менее производительный сервер). Алгоритмы первого типа в глобальных сетях не применяются, в отличие от динамических, которые легко масштабируются, так как требуют наличия только информации, которая может быть динамически получена DNS-сервером (частота запросов, соответствующая каждому домену и производительность каждого сервера).

Однако, данные методы при выборе сервера не берут во внимание расстояние между клиентом и сервером. Методы динамического назначения TTL в совокупности с механизмом вычисления расстояния до клиента способны обеспечить лучшую производительность.

Диспетчерские методы реализуют прозрачность для пользователя на сетевом уровне — каждому кластеру ставится в соответствие виртуальный IP-адрес, который является адресом специализированного устройства, осуществляющего маршрутизацию клиентских запросов — диспетчера.

Основываясь на механизме маршрутизации запросов, в данной группе методов выделяют два подхода:

  • перезапись адресов в пакете;
  • перенаправление средствами HTTP — диспетчер посылает клиенту ответ, в котором указан выбранный сервер.

Первый подход подразумевает большой уровень накладных расходов на изменение адресов, в то время как второй увеличивает число открытых TCP-сессий на стороне клиента.

Серверные методы используют двухуровневый механизм балансировки запросов: изначально они распределяются по множеству серверов с помощью DNS-сервера аналогично методам на базе DNS; затем каждый сервер способен перенаправить полученный запрос любому другому серверу. Данный подход позволяет преодолеть большинство ограничений, наложенных на подходы на основе DNS. Перенаправление серверами реализуется теми же механизмами маршрутизации, что и при диспетчерском подходе.

Последней проблемой, которую необходимо решить для достижения поставленной цели, является кластеризации клиентов. Размеры сети Интернет не позволяют вычислять значение метрики для каждого клиента, поэтому и применяется кластеризация:

  • по DNS-домену;
  • по Autonomous System (AS).

Таким образом, разрабатываемый алгоритм должен обеспечивать кластеризацию для достижения поставленной цели.

Выводы

На данный момент была проведена классификация существующих подходов к балансировке нагрузки, перечислены недостатки каждого метода. Наилучшей масштабируемостью обладают методы на базе DNS и серверные. Для применения в глобальных сетях объект, осуществляющий балансировку, должен учитывать не только загрузку серверов, но также загрузку каналов связи и расстояние между клиентом и сервером. Таким образом, должна применяться комплексная метрика при выборе конкретного сервера.

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

Важное замечание

На момент написания данного реферата квалификационная работа еще не завершена. Дата окончательного завершения работы: декабрь 2012 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

  1. Colajanni M., Yu P.S., Cardellini V., “Dynamic load balancing in geographically distributed heterogeneous Web–servers”, Amsterdam, The Netherlands, May 1998.
  2. Sivasubramanian S., Szymaniak M., Pierre G., “Replication for web hosting systems,” ACM Computing Surveys, vol. 36, no. 3, no. 3, pp. 291–334, 2004.
  3. Pathan M. and Buyya R. A Taxonomy of CDNs. Content Delivery Networks, pages 33–78, 2008.
  4. Mulerikkal J. and Khalil I. An architecture for distributed content delivery network. In Proc. IEEE International Conference on Networks, pages 359–364, 2007.
  5. Theilmann W., Rothermel K. Dynamic Distance Maps of the Internet. In Proceedings of the 2000 IEEE INFOCOM Conference, Tel Aviv, Israel, Mar. 2000 [Электронный ресурс]. — Режим доступа: http://elib.uni-stuttgart.de/opus/volltexte/1999/494/pdf/TR-1999-08.pdf.
  6. Francis P., Jamin S., Jin C., Jin Y., Raz D., Shavitt Y., and Zhang L. IDMaps: A global Internet host distance estimation service. IEEE/ACM Transactions on Networking, Oct. 2001.
  7. Banga G., Druschel P. Measuring the capacity of a Web server under realisitc loads. World Wide Web Journal, 2, May 1999.
  8. Hunt G., Nahum E., Tracey J. Enabling content–based load distribution for scalable services. / G. Hunt, E. Nahum, J. Tracey. — IBM T.J. Watson Research Center, 1997. — Technical report.
  9. Тао Чжоу. Системы балансировки нагрузки web–серверов. — Windows magazine, #03/2000.
  10. Kevin Delgadillo. Cisco DistributedDirector. — Cisco Systems, Inc., 1999. — Technical report.
  11. Chou W., “Inside SSL: The Secure Sockets Layer Protocol”, IT Pro, July/August 2002, pp. 47–52, published by the IEEE Computer Society.
  12. Таненбаум Э., Ван Стеен М. Распределённые системы. Принципы и парадигмы. — СПб.: Питер, 2003.
  13. Casalicchio E., Cardellini V., Colajanni M., Content-aware dispatching algorithms for cluster-based web servers, Cluster Computing, vol. 5, no. 1, pp. 65–74, 2002.
  14. Петренко А.С., Червинский В.В. Исследование методов балансировки нагрузки в глобальных сетях. Автоматизація технологічних об’єктів та процесів. Пошук молодих. Збірник наукових праць ХІI науково-технічної конференції аспірантів та студентів в м. Донецьку 17–20 квітня 2012 р. — Донецьк, ДонНТУ, 2012. — с. 79–80.