Содержание к диссертации
Введение
ГЛАВА 1. Анализ существующих методов распределения ресурсов в облачных вычислительных средах на основе многомашинных вычислительных комплексов 9
1.1. Особенности распределения ресурсов в облачных вычислительных средах 11
1.2. Анализ методов распределения ресурсов в виртуальных средах
1.2.1. Метод динамического распределения ресурсов 15
1.2.2. Метод динамического управления ресурсами с учетом энергопотребления
1.3. Анализ методов распределения ресурсов в облачных вычислительных средах на основе модели IaaS 18
1.4. Сравнительный анализ подходов к распределению ресурсов в виртуальных и облачных вычислительных средах 21
1.5. Выводы 23
ГЛАВА 2. Разработка методов распределения ресурсов в облачных вычислительных средах IAAS 25
2.1. Формальная постановка задачи 25
2.2. Подходы и методы решения задачи 26
2.3. Метод и алгоритм первоначального выделения вычислительных ресурсов на основе анализа иерархий 32
2.4. Метод прогнозирования нагрузки в облачной вычислительной среде
2.4.1. Построение прогнозной модели 46
2.4.2. Моделирование нагрузки в облачной вычислительной среде с использованием гибридного подхода 50
2.4.3. Кластеризация нагрузки на базе алгоритма нечетких с-средних 54
2.4.4. Прогноз нагрузки в облачной вычислительной среде с использованием сети Элмана 56 2.4.5. Решение задачи обучения нейросети Элмана с помощью искусственной иммунной системы 60
2.5. Модель распределения ресурсов в процессе функционирования облачной вычислительной среды 67
2.5.1. Алгоритм балансировки нагрузки в облачной вычислительной среде 67
Выводы 76
ГЛАВА 3. Практические аспекты распределения вычислительных ресурсов 77
3.1. Обоснование архитектуры подсистемы распределения вычислительных ресурсов 77
3.2. Оценка эффективности результатов исследования
3.2.1. Оценка эффективности первоначального выделения вычислительных ресурсов 81
3.2.2. Оценка эффективности прогнозирования ресурсов 83
3.2.3. Оценка эффективности распределения ресурсов
3.3. Предложения по реализации разработанных методов распределения вычислительных ресурсов 85
3.4. Выводы 87
Заключение 89
Перечень используемых терминов и сокращений 91
Список литературы 92
- Анализ методов распределения ресурсов в виртуальных средах
- Метод и алгоритм первоначального выделения вычислительных ресурсов на основе анализа иерархий
- Решение задачи обучения нейросети Элмана с помощью искусственной иммунной системы
- Оценка эффективности прогнозирования ресурсов
Введение к работе
Актуальность работы
Развитие информационного общества привносит качественные
коррективы в представления пользователей о том, как должны предоставляться
информационные сервисы: на первый план выходят не технические
характеристики оказываемых услуг, а качественные показатели –
своевременное удовлетворение потребностей бизнеса, простота использования, скорость выполнения типичных операций и др.
В связи с этим, определяющим подходом при предоставлении вычислительных мощностей становится модель «Инфраструктура как сервис» (IaaS), которая позволяет свести к минимуму взаимодействие поставщика и потребителя вычислительных ресурсов по техническим вопросам, сократить число инцидентов и время их обработки, дать бизнесу большие возможности адаптировать работу под свои нужды, а также сократить капитальные и операционные затраты.
Внутри облачной вычислительной среды могут размещаться самые разные системы – начиная от малонагруженного вебсайта и заканчивая высоконагруженными базами данных, ERP-системами и пр. Очевидно, что эти системы предъявляют абсолютно разные требования к каждому типу вычислительных ресурсов, следовательно, размещать их на одних и тех же хостах, хранилищах и участках сети нецелесообразно – это приведет к нерациональному использованию ресурсов, снижению производительности и дополнительным затратам.
Облачная вычислительная среда содержит в себе обширный набор вычислительных ресурсов: серверы, системы хранения данных, сетевые устройства. При этом они могут быть как однотипными, так и различными по производительности, набору инструкций, соотношению числа процессорных ядер к объему оперативной памяти и т.п. Это усугубляет проблему неоптимального использования имеющихся ресурсов, приводя к значительному удорожанию, усложнению управления или даже полной невозможности использования облачных вычислительных сред IaaS для решения разнородных задач в одной вычислительной среде.
Таким образом, актуальной становится задача оптимального управления ресурсами в облачной вычислительной среде для повышения эффективности их использования и минимизации затрат. При этом должны учитываться как реальные потребности приложений, так и показатели использования имеющихся ресурсов с учетом их специфики.
Цель работы
Целью диссертационной работы является повышение эффективности использования вычислительных ресурсов в облачных вычислительных средах на основе модели «Инфраструктура как сервис» путем разработки методики интеллектуального управления их распределением.
Объект и предмет исследования
Объектом исследования являются облачные вычислительные среды «Инфраструктура как сервис» на основе многомашинных вычислительных комплексов.
Предметом исследования является процесс распределения вычислительных ресурсов в облачных вычислительных средах на основе модели «Инфраструктура как сервис».
Научная задача исследования
Для достижения поставленной цели в работе решены следующие задачи:
Анализ системы показателей эффективности использования вычислительных ресурсов облачной ИТ-инфраструктуры;
Разработка методов распределения вычислительных ресурсов в облачных средах;
Разработка алгоритмов и методов первоначального выделения и перераспределения вычислительных ресурсов для повышения эффективности их использования;
Оценка эффективности разработанных предложений.
Научная новизна
Научная новизна работы состоит в следующем:
-
Проведен системный анализ существующих методов распределения и балансировки нагрузки в средах корпоративной виртуализации и облачных вычислительных средах. Выявлены основные отличия в особенностях распределения ресурсов, доказана необходимость использования иных подходов к управлению ресурсами облачной вычислительной среды, нежели тех, что применяются при виртуализации. Выявлены проблемы, препятствующие оптимальному использованию облачных вычислительных ресурсов при существующих подходах к их планированию и распределению.
-
Процесс управления ресурсами декомпозирован на несколько этапов, для каждого из которых разработаны модели и алгоритмы:
модель и алгоритм первоначального выделения ресурсов в облачной вычислительной среде с использованием метода анализа иерархий, позволяющие обеспечить оптимальное выделение ресурсов при запуске экземпляра с учетом совокупности статических и динамических показателей функционирования облачной среды, а также их относительной значимости, что обеспечивает повышение эффективности использования ресурсов облачной вычислительной среды;
модель и алгоритм прогнозирования нагрузки в облачной вычислительной среде с использованием нейросетей Элмана. Обучение нейросети осуществляется с использованием искусственных иммунных систем на основе исторических данных, кластеризованных на основе метода нечетких с-средних. Это позволяет с заданной точностью прогнозировать значения параметров функционирования облачной среды, что обеспечивает повышение
эффективности управления ресурсами за счет своевременной генерации управляющих воздействий;
- модель и алгоритм перераспределения ресурсов в облачной вычислительной среде, позволяющие снизить неравномерность использования ресурсов каждого хоста с использованием прогнозных значений динамических параметров функционирования облачной вычислительной среды, что обеспечивает повышение эффективности использования ее ресурсов.
3. Разработаны программные модули, реализующие функционал
исследуемых методов и алгоритмов. Проведен ряд вычислительных
экспериментов, подтверждающих состоятельность и эффективность
проведенных разработок в сравнении с другими используемыми методами.
4. Проведена апробация разработанного программного обеспечения при
построении реальной облачной вычислительной среды для оказания услуг на
основе модели «Инфраструктура как сервис».
Достоверность результатов
Достоверность полученных результатов подтверждается применением
широко известных частных научных результатов, корректностью
математического обоснования впервые полученных результатов, сходимостью результатов моделирования с имеющимися экспериментальными данными, ясной физической интерпретацией полученных результатов.
Практическая значимость
Практическая значимость работы заключается в том, что полученные результаты могут быть использованы для решения задачи повышения эффективности использования ресурсов в облачных средах на основе модели «Инфраструктура как сервис».
Совокупность полученных результатов исследования является решением
актуальной научно-технической задачи, направленной на совершенствование
механизмов работы облачных вычислительных сред на основе модели
«Инфраструктура как сервис». Разработанные научно-методические
рекомендации могут быть использованы для оценки как существующих, так и разрабатываемых систем управления ресурсами в облачных вычислительных средах.
Реализация результатов работы
Результаты исследований были реализованы в ООО «СТОРМ СИСТЕМС» и позволили снизить расходы на оборудование инфраструктуры и его техническое сопровождение на 21%, что подтверждено соответствующим актом об использовании результатов.
Апробация работы
Результаты, полученные при подготовке диссертационной работы, докладывались на всероссийских и международных научно-технических конференциях и семинарах.
Результаты разработки и апробации моделей и алгоритмов были опубликованы в научных изданиях, входящих в перечень ВАК, в том числе: «Нейрокомпьютеры», «Открытое образование», «Вестник УМО».
Публикации
Материалы исследований опубликованы в 6 печатных работах объемом 32 п.л. (27 авторских п.л.), в том числе 3-х в изданиях, рекомендованных ВАК.
Заявка на изобретение, приоритетный номер RU 2015109182 C2, зарегистрирована в ФИПС и находится на этапе экспертизы.
Структура и объем работы
Диссертационная работа состоит из введения, трех глав, заключения и списка литературы. Объем текста составляет 117 печатных страниц, 11 таблиц и 34 рисунка.
На защиту выносятся
-
Концептуальные положения по построению подсистемы распределения ресурсов в облачных вычислительных средах «Инфраструктура как сервис» с учетом известных отличительных особенностей этих сред.
-
Метод первоначального выделения ресурсов в облачной вычислительной среде на основе анализа иерархий, отличающийся возможностью учета расширенного набора статических и динамических показателей функционирования хостов облачной вычислительной среды, что обеспечивает оптимальное распределение вычислительных ресурсов в облачной вычислительной среде на этапе их первоначального выделения.
-
Метод и алгоритм прогнозирования нагрузки на ресурсы облачной вычислительной среды с использованием искусственных нейросетей Элмана, обучаемых на основе исторических данных о значениях динамических параметров облачной вычислительной среды. Отличительной особенностью модели является применение метода нечетких с-средних для кластеризации исторических данных, а также использование искусственных иммунных систем для обучения нейросети, что обеспечивает высокую точность прогнозирования параметров функционирования вычислительного облака с учетом изменения динамики этих показателей. Для повышения эффективности прогнозирования применен подход на основе искусственных иммунных систем, обеспечивающий повышение эффективности обучения нейросети.
-
Метод и алгоритм распределения вычислительных ресурсов в облачной среде, позволяющие эффективно распределять ресурсы с использованием прогноза нагрузки с минимальными расходами вычислительного ресурса на их перемещение.
-
Метод планирования и перераспределения ресурсов, обеспечивающий комплексный учет показателей, влияющих на качество доставки сервисов и эффективное управление функционированием облачных вычислительных сред.
-
Программные модули подсистемы управления ресурсами в облачной среде на основе разработанных моделей и алгоритмов.
Анализ методов распределения ресурсов в виртуальных средах
Существующие в облачных вычислительных средах подходы к первоначальному выделению и последующему распределению ресурсов можно разделить на 3 типа: ручное назначение ресурсов, планирование ресурсов диспетчером облачной вычислительной среды и планирование ресурсов средой виртуализации [3].
Специфика распределения ресурсов в облачных вычислительных средах «Инфраструктура как сервис» берет свое начало в основных идеях, которые заложены в этой модели облачного сервиса. Они хорошо описаны в [9]. В частности, это: 1) Отсутствие у администратора информации о реальных потребностях приложений, находящихся внутри экземпляров (чаще всего – виртуальных машин); 2) Отсутствие у администратора возможности ручного назначения ресурсов экземплярам. Таким образом, облачные вычислительные среды имеют особенности, которые создают специфику распределения ресурсов в такой среде. Некоторые элементы этой проблематики являются общими с проблемами систем виртуализации, а некоторые имеют особенности, характерные для облачных вычислительных сред. На процесс распределения ресурсов в облачной среде влияют:
Различные классы оборудования и сочетания ресурсов. Одной из основных идей при создании облачных вычислительных сред является экономия средств на их создание и расширение. Очевидно, что в составе облачной вычислительной среды могут использоваться разные классы оборудования – серверы с разным числом процессоров, системы хранения данных с разной производительностью, сетевое оборудование с разной пропускной способностью и т.д.
Неравномерная загруженность каждого из ресурсов. Процесс функционирования облачной вычислительной среды предполагает минимальное вмешательство администратора для поддержания ее работоспособности. Чтобы снизить время, затрачиваемое администратором на обслуживание облачной вычислительной среды, и обеспечить его наиболее эффективную работу, при распределении ресурсов стоит учитывать не только емкость, но и текущую фактическую нагрузку на каждый элемент инфраструктуры – это касается не только процессорного времени и оперативной памяти, но и многих других параметров, таких как отклик дисковых ресурсов, сетевые задержки и т.п.
Отсутствие сведений о реальных потребностях приложений в ресурсах. Администратор облачной вычислительной среды не знает, какие приложения и с какими потребностями функционируют внутри экземпляра. Поэтому необходим метод, который бы без участия человека определял, на каких ресурсах будет лучше функционировать то или иное приложение, не создавая проблем для других приложений.
Различные потребности приложений к ресурсам. В рамках двух экземпляров с похожими или вовсе одинаковыми параметрами (количество процессорных ядер, объем ОЗУ, диск) могут находиться два абсолютно различных по потребностям приложения. Например, в рамках экземпляра с 4-мя процессорными ядрами и 16-ю Гб ОЗУ может находиться как веб-приложение, которое будет использовать 3-5% процессорного времени и не давать большой нагрузки на диск, так и высоконагруженная база данных CRM-системы, которая будет нагружена на 80% и иметь огромные потребности в дисковом ресурсе. Определение класса, к которому относится приложение, противоречит идее облачной вычислительной среды и приводит к неэффективному использованию ресурсов, поскольку реальные потребности в них неизвестны. Несоответствие запрошенных ресурсов потребляемым. Зачастую рекомендации по выделению ресурсов для информационных систем делаются с большим запасом и не соответствуют фактическим потребностям приложений, их составляющих. В ходе эксплуатации облачных вычислительных сред, как правило, преследуется цель максимально эффективного использования имеющихся в рамках среды вычислительных ресурсов, и конфигурация вычислительной среды должна учитывать, что, к примеру, из запрошенных 256-ти Гб оперативной памяти по факту может использоваться не больше 10-ти Гб. Если тарификация учитывает только используемые ресурсы, то и поставщик облачных ресурсов должен соотносить это со своими затратами.
Отсутствие возможности ручного назначения ресурсов. Как уже отмечалось выше, в облачной вычислительной среде не существует методов ручной привязки пользователем приложений к конкретным серверам или системам хранения данных, так как это сводит на нет идеи, лежащие в основе облачных вычислений. Администратору не известно, какие приложения находятся внутри экземпляров, и он не имеет возможности вручную распределить ресурсы, еще и потому, что при большом числе экземпляров это фактически невозможно.
Таким образом, проведенный анализ показал, что облачные вычислительные среды обладают рядом характеристик и проблем, не свойственных другим моделям предоставления ресурсов (рисунок 1), что вызывает необходимость совершенствования методов распределения ресурсов для указанных сред.
Метод и алгоритм первоначального выделения вычислительных ресурсов на основе анализа иерархий
Для эффективного распределения ресурсов облачной вычислительной среды между экземплярами необходимо прогнозировать изменения нагрузки. Это позволит решать задачу распределения ресурсов, а также избежать необоснованной миграции экземпляров при кратковременной перегрузке сервера. Для прогноза необходимо использовать набор статистических данных, отражающих реальное состояние ресурсов облачной вычислительной среды за интервал времени [36]. Как известно, существующие методы прогнозирования подразделяются на пять основных групп [19]: 1) Эвристические методы прогнозирования; 2) Математические методы временной экстраполяции; 3) Математические методы пространственной экстраполяции; 4) Методы моделирования процессов развития; 5) Логические и структурные методы искусственного интеллекта (ИИ).
При решении аналогичной задачи авторами статьи [10] было описано решение задачи прогнозирования расхода ресурсов в облачной вычислительной среде с помощью метода экспоненциально взвешенного скользящего среднего (EWMA). Однако этот метод, как и другие методы статистического прогнозирования, допускает значительное упрощение и не позволяет выявлять неявные закономерности, что приводит к невысокой точности прогнозов при анализе поведения сложных систем. Исходя из принципа «необходимого разнообразия» У.Р. Эшби [13], поскольку облачная вычислительная среда является сложной системой [24] с обширным набором показателей, для прогноза его поведения необходимы методы, учитывающие все многообразие имеющихся параметров [25].
По этой причине обосновано применение прогнозной модели на основе методов искусственного интеллекта, в частности, искусственных нейронных сетей (ИНС). ИНС хорошо зарекомендовали себя при решении задач прогнозирования по следующим причинам [11]: 1) Способность ИНС осуществлять многопараметрический прогноз с учетом эмерджентности прогнозируемых процессов; 2) Оперативность прогнозирования ИНС, достигаемая максимальной распараллеленностью процесса обработки информации [21]; 3) Нечувствительность к недостатку априорной информации о динамике, компенсируемая информацией о прецедентах; 4) Возможность обработки данных, представленных в разнотипных шкалах путем сведения к логической шкале без ущерба оперативности прогнозирования; 5) Способность решать слабо формализованные задачи путем выявления неявных аналогий прецедентов протокола наблюдений; 6) «Голографичность», или способность сохранения свойств при разрушении случайно выбранной части ИНС вследствие полной связности и большого числа искусственных нейронов; 7) Способность к дообучению. Поступающая на вход информация может быть использована для дообучения прогнозной модели без необходимости изменять ее для адаптации к новым условиям [14]; 8) Возможность прогнозирования скачков и событий, не наблюдавшихся ранее в обучающей выборке наблюдаемого объекта. Решение задачи с использованием ИНС сводится к 5 основным этапам [11]: 1) Сбор исходных данных и их представление в единой форме в таблице прецедентов; 2) Синтез прогнозирующей архитектуры нейросети (НС); 3) Синтез прогнозной модели путем обучения НС по ситуациям обучающей выборки; 4) Получение прогноза на требуемый период упреждения; 5) Верификация прогнозной модели в соответствии с выбранным критерием. Динамические параметры функционирования облачной вычислительной среды относятся к ее техническому состоянию (ТС) [37].
Прогнозная нейросетевая модель должна быть способна не только непрерывно обрабатывать большое количество параметров ТС, факторов прогнозного фона, но и учитывать разнородную информацию о текущих и планируемых режимах функционирования облачной вычислительной среды. Нейросетевая система прогнозирования, в свою очередь, должна учитывать информацию о логике работы системы, а также экспертную информацию. Для решения задачи прогноза необходимо учитывать большой спектр параметров, которые могут быть декомпозированы на следующие виды [11]: Информация о предшествующей динамике ТС объекта; Информация о динамике прогнозного фона объекта; Информация о надежности элементов объекта; Экспертная информация; Морфологическая информация (сведения о прецедентах); Дополнительная информация о логике функционирования объекта и его элементов. При этом входными значениями выступает набор показателей и характеристик для каждого хоста облачной вычислительной среды за последние сутки с интервалом времени 5 минут. Такое значение было выбрано потому, что для выполнения живой миграции виртуальной машины, как правило, достаточно указанного интервала времени. К таким характеристикам относятся:
Решение задачи обучения нейросети Элмана с помощью искусственной иммунной системы
В третьей главе разработаны программные модули, реализующие методы и алгоритмы распределения ресурсов в облачной вычислительной среде, представленные во второй главе, а также проанализированы результаты применения данных модулей для управления облачной вычислительной средой на основе OpenStack.
Указанная подсистема включает: На основе полученных результатов исследования был реализован ряд программных компонентов, входящих в состав подсистемы распределения ресурсов облачной вычислительной среды (рисунок 26). - блок первоначального выделения ресурсов; - блок прогнозирования, включающий в себя ряд других блоков; - блок нечеткой кластеризации; - блок нейросетевого прогноза; - блок обучения нейросети; - блок перераспределения ресурсов.
Блок первоначального выделения ресурсов реализует функционал получения текущих значений параметров функционирования облачной вычислительной среды из подсистемы серверного мониторинга, а также поиск оптимального хоста для размещения очередного экземпляра с использованием математического аппарата метода анализа иерархий. Схема классов данного блока представлена ниже (рисунок 27).
Блок прогнозирования отвечает за генерацию прогнозного значения динамических показателей функционирования облачной вычислительной среды в момент времени t+1 и включает в себя блоки, выполняющие кластеризацию данных, нейросетевой прогноз и обучение нейросети.
Блок нечеткой кластеризации реализует функционал метода нечетких с-средних применительно к историческим данным по нагрузке. Схема классов данного блока представлена ниже (рисунок 28).
Блок нейросетевого прогноза реализует функционал прогноза динамических параметров функционирования облачной вычислительной среды с использованием нейросетей Элмана.
Блок обучения нейросети реализует искусственную иммунную систему для обучения сети Элмана с использованием исторических данных о нагрузке в пределах кластера.
Блок перераспределения ресурсов реализует алгоритм уменьшения неравномерности для перераспределения ресурсов. Схема классов последних трех блоков представлена ниже (рисунок 29).
Для подтверждения состоятельности разработанных методов и алгоритмов был проведен вычислительный эксперимент. Экспериментальной проверке были подвергнуты следующие результаты работы: 1) Метод и алгоритм первоначального выделения ресурсов с использованием метода анализа иерархий были проверены на реально работающей облачной вычислительной среде. 2) Метод и алгоритм прогнозирования ресурсов были проверены на наборе реальных исторических данных о нагрузке облачной вычислительной среды «инфраструктура как сервис». Рисунок 28. Схема классов блока нечеткой кластеризации 3) Метод и алгоритм распределения ресурсов были проверены на облачной вычислительной среде с реальной нагрузкой.
Оценка эффективности первоначального выделения ресурсов производилась путем измерения показателя неравномерности использования ресурсов сервера p, на котором был в конечном итоге произведен запуск экземпляра, при использовании различных методов. Сравнению подлежит параметр неравномерности NR загрузки ресурсов r сервера p: где rt - нагрузка на текущий ресурс сервера p, ft - это средняя текущая загрузка всех ресурсов сервера p. Каждым из методов было произведено 100 пробных запусков экземпляра с произвольными характеристиками в работающей облачной вычислительной среде без изменения каких-либо параметров нагрузки. Результаты оценки представлены в таблице 9 и на рисунке 30.
Как видно из приведенной выше таблицы, разброс значений между простым, случайным алгоритмами и алгоритмом «в пределах зоны доступности» невелик и носит чисто статистический характер. Это объясняется тем, что при выделении ресурсов не учитываются никакие параметры функционирования облачной вычислительной среды [43].
Алгоритм DRS показал значительно лучший результат за счет учета такого параметра, как загрузка ЦП. Разработанный алгоритм на основе метода анализа иерархий показал наилучший результат уменьшения неравномерности ресурсов хоста, поскольку учитывает весь набор показателей функционирования хоста применительно к характеристикам запускаемого экземпляра. Таким образом, разработанный алгоритм выделения ресурсов продемонстрировал свою эффективность при первоначальном запуске экземпляра в функционирующей облачной вычислительной среде. 3.2.2. Оценка эффективности прогнозирования ресурсов
Для оценки результатов прогнозирования предложено использовать два хорошо зарекомендовавших себя подхода - анализ среднеквадратической ошибки (PMSE) и средней абсолютной ошибки (аМАЕ) [26]. где yt - прогнозное значение параметра, yt - реальное значение, а h - число временных точек, прогнозное значение которых должно быть рассчитано (в нашем случае /7=1).
Обучающая выборка состояла из 300 примеров, в которой число экземпляров изменялось от 2 до 1000, число серверов от 1 до 100. Среднеквадратическая ошибка, усредненная по всем обучающим примерам, составила 0,042. Средняя абсолютная ошибка, усредненная по всем тестовым примерам, составила 0,4.
Оценка эффективности прогнозирования ресурсов
Алгоритм выполняется периодически для оценки состояния выделенных ресурсов на основании выполненного прогноза потребностей экземпляров. Сервер называется «горячей точкой», если использование любого из его ресурсов выше т.н. «допустимой отметки», предварительно заданной для каждого типа ресурсов. Это говорит о том, что хост перегружен, поэтому часть экземпляров должна быть перемещена с него на другие хосты. «Температура» горячей точки определяется как квадратичная сумма использования всех ее ресурсов выше «допустимой отметки»: t = Y(r-rt)2, (29) reR где R - набор перегруженных ресурсов сервера/?, а rt - «допустимая отметка» ресурса г (при расчете учитываются только перегруженные ресурсы). Температура горячей точки отражает степень перегрузки сервера. Если сервер не является горячей точкой, его температура равняется нулю.
Различные типы ресурсов имеют различные допустимые отметки. К примеру, для загрузки ЦП и занятой оперативной памяти они могут быть определены как 90% и 80% соответственно. Таким образом, сервер становится горячей точкой при достижении этой нагрузки.
Таким образом, задача выявления серверов с нерациональным использованием вычислительных ресурсов сводится к выявлению «горячих точек» по описанному алгоритму.
Алгоритм распределения нагрузки в облачной вычислительной среде включает совокупность шагов: 1) Сортировка списка серверов-«горячих точек»/? по убыванию температуры t (т.е. наиболее горячая становится первой в списке). Цель - исключить все горячие точки, если это возможно, или, по крайней мере, поддерживать их температуру настолько низкой, насколько это возможно. 2) Определение для каждого сервера р списка экземпляров е, для которых должна быть выполнена миграция. 3) Сортировка списка экземпляров е на основе результирующей температуры хоста t pe3yjlbT, которая определяется после миграции экземпляра (виртуальной машины). Цель - выполнить миграцию того экземпляра, который понизит температуру сервера рп до минимального значения: результ(Рп) — min. 4) Выбор виртуальной машины е\ миграция которой позволит максимально снизить неравномерность сервера. 5) Определение для найденной виртуальной машины е, можно ли найти целевой сервер Рцелевой для ее размещения. Сервер считается подходящим для миграции, если после переноса на него виртуальной машины е неравномерность целевого сервера окажется меньше неравномерности текущего. 6) Выбор сервера р целевой из этого списка, неравномерность которого будет максимально снижена после переноса данной виртуальной машины. Стоит обратить внимание, что неравномерность целевого сервера может быть и увеличена. В этом случае необходимо выбрать сервер, для которого такое увеличение будет минимальным. 7) Если целевой сервер р цеЛевой найден, инициируется миграция виртуальной машины на этот сервер, и обновляется прогноз нагрузки для всех участвующих серверов. В противном случае, из списка выбирается следующая виртуальная машина, и происходит поиск целевого сервера для нее. Блок-схема алгоритма представлена ниже (рисунок 23).
До тех пор, пока можно найти целевой сервер для любой виртуальной машины сервера-«горячей точки», выполнение алгоритма для данного сервера продолжается. Как только это становится невозможным, осуществляется переход к следующей «горячей точке» [54].
Прогнозирование нагрузки с использованием искусственной нейронной сети перед запуском алгоритма позволяет не учитывать несущественных, непродолжительных пиков нагрузки, что ведет к значительному снижению числа ложных срабатываний алгоритма устранения горячих точек и, таким образом, снижению расходов вычислительных ресурсов на перемещение виртуальных машин.
В качестве примера работы алгоритма рассмотрим перераспределение нагрузки в облачной вычислительной среде, состоящей из 5 серверов аналогичной конфигурации с 30 запущенными экземплярами. На момент выполнения алгоритма прогнозируемые параметры функционирования этой облачной вычислительной среды описываются динамическими значениями, указанными в таблице 6. Таблица 6. Динамические параметры функционирования облачной вычислительной среды
По графику, приведенному на рисунке 24, видно, что ресурсы серверов 2, 4 и 5 в данном примере используются неравномерно, что может вести к неэффективному использованию ресурсов.
Пусть «допустимая отметка» установлена на значении 70% загрузки любого из ресурсов хоста. Таким образом, получаем список серверов-«горячих точек», вычисляем их «температуру» ґ и сортируем эти серверы по убыванию температуры:
Итак, сервер 5 обладает наибольшей температурой (0,0521). Следовательно, следующим шагом будет инициирована миграция одного из экземпляров с этого сервера на другой сервер облачной вычислительной среды. Список экземпляров сервера 5 представлен в таблице 7, доли использования ресурсов сервера каждым экземпляром наглядно отражено на рисунке 25.
Очевидно, что в представленном случае результирующая температура сервера 5 - ре3ульт(Р5) – будет равна 0 при миграции любого из экземпляров с сервера, поскольку не останется ни одного ресурса, превышающего «горячую отметку». Поэтому следующим шагом необходимо определить неравномерность сервера после миграции каждого экземпляра и выбрать для миграции тот экземпляр, который позволит максимально снизить неравномерность сервера. 100% -90% -80% -70% -60% -50% -40% -30% -20% -10% -0% - Экземпляр Экземпляр Использование ЦП Использование ОЗУ Использование Использование сети хоста хоста дисковой хостаподсистемы хоста