Приложение к журналу
«Современные проблемы науки и образования»
ISSN - 1817-6321


PDF-версия статьи Титульная страница журнала PDF-версия статьи
ОБЕСПЕЧЕНИЕ БАЛАНСИРОВКИ НАГРУЗКИ ПРИ РЕАЛИЗАЦИИ МАСШТАБИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ ВЕБ-СЕРВИСОВ

Институт проблем передачи информации РАН


Реализация масштабируемых вычислительных веб-сервисов (ВВС) требует разработки специальных технических решений по мониторингу и динамической балансировке нагрузки между узлами облачной вычислительной системы (ОВС). Разработан экспериментальный образец системы мониторинга и динамической балансировки нагрузки (СМДБН), реализующий комплексный подход к данной проблеме с учетом характерных особенностей ВВС.

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

Для подбора узла для выполнения задания СМДБН использует информацию о доступности и текущей загрузке узлов. С точки зрения СМДБН каждый узел предоставляет набор ресурсов, таких как процессорные мощности, оперативная память, дисковое пространство, которые могут быть использованы для выполнения заданий. Получение информации о текущем потреблении ресурсов узлов происходит через сервис мониторинга СМДБН. Что касается информации о требованиях задания к ресурсам, то в общем случае она неизвестна перед запуском задания. В отсутствии информации о системных требованиях заданий реализация СМДБН предусматривает специальные меры для отслеживания и обработки возможных проблем, таких как перегрузка узла.

Потребителем информации, предоставляемой сервисом мониторинга, является модуль СМДБН, реализующий распределение заданий ВВС между узлами ОВС (модуль РЗВВС). Данный модуль обеспечивает обработку событий следующих типов: поступление нового задания; завершение выполнения задания узлом; подключение нового узла; отключение узла; перегрузка узла. События первого типа поступают извне, от подсистемы ВВС, принимающей запросы клиентов сервиса. Обнаружение событий других типов реализовано путем анализа данных мониторинга. Данная функция возложена на сервис мониторинга с обеспечением передачи обнаруженных событий в модуль РЗВВС.Доступ к данным сервиса мониторинга организован при помощи двух программных интерфейсов. Один из них предназначен для получения текущей загрузки узлов ОВС, а другой – для подписки на уведомления о событиях, связанных с узлами.

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

Обнаружение отказа узла осуществляется с помощью сервиса мониторинга. Данное событие передается в модуль РЗВВС, который осуществляет перезапуск выполнявшихся узлом заданий на других узлах инфраструктуры. Для этого в СМДБН реализовано хранение всей информации, необходимой для повторного запуска заданий. При отключении узла модуль РЗВВС назначает выполнявшиеся узлом задания другим узлам или помещает задания в очередь. Для этого модуль хранит в памяти информацию о том, какие задания назначены каждому из узлов, а также всю информацию о каждом задании, необходимую для его перезапуска. Также при этом используется информация о текущей загрузки узлов, которая доступна через программный интерфейс сервиса мониторинга. При перегрузке узла модуль балансировки прекращает выполнение части заданий на узле, назначает остановленные задания другим узлам или помещает не назначенные задания в очередь. Наиболее предпочтительными кандидатами для миграции с сильно нагруженного узла являются задания, выполнявшиеся меньшее время.

Работа выполнена в рамках ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы» при финансовой поддержке Минобрнауки, государственный контракт № 14.514.11.4041.


ОПУБЛИКОВАНО

Афанасьев А.П., Волков С.Ю., Колпаков В.Г., Корх А.В., Курочкин И.И., Смирнов С.А., Рубцов А.О., Сухорослов О.В. ОБЕСПЕЧЕНИЕ БАЛАНСИРОВКИ НАГРУЗКИ ПРИ РЕАЛИЗАЦИИ МАСШТАБИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ ВЕБ-СЕРВИСОВ. // Современные проблемы науки и образования - 2013.-№6. (приложение "Технические науки"). - C. 21