close

Вход

Забыли?

вход по аккаунту

...статус Минюста России и его территориальных органов;pdf

код для вставкиСкачать
РАЗРАБОТКА МЕТОДОВ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ
ДЛЯ ПЛАНИРОВЩИКА РЕСУРСОВ OpenStack
А.А. Букатов, А.В. Пыхалов, А.Н. Шепелев
Южный федеральный университет, г. Ростов-на-Дону
Тел.: (863) 219-97-27, 219-97-28, e-mail: [email protected], [email protected], [email protected]
Комплекс программных продуктов OpenStack представляет собой набор систем свободного программного
обеспечения, предназначенных для создания и организации функционирования вычислительных облаков
и облачных хранилищ данных, основанных на модели «Инфраструктура как Сервис» (Infrastructure as a Service
– IaaS) [1]. Обычно вычислительное облако, построенное средствами OpenStack, используется для
обслуживания работы виртуальных машин (ВМ) и систем хранения данных с предоставлением доступа извне
облака к указанным ресурсам облака: ВМ и объектам, расположенным в хранилищах данных. Задачу
распределения ресурсов, требуемых для создания ВМ, решает планировщик OpenStack. При этом из 4-х
предоставляемых этим планировщиком методов распределения ресурсов ни один не обеспечивает какой-либо
оптимизации выполняемого распределения. Поэтому задача разработки методов оптимального планирования
для системы OpenStack является весьма актуальной. Решение этой задачи позволит повысить эффективность
использования ресурсов вычислительного облака, в частности, увеличить производительность систем,
функционирующих в среде облака OpenStack, и повысить доступность его ресурсов.
В настоящем докладе, посвященном разработке методов оптимального планирования для планировщика
ресурсов OpenStack, вначале вкратце рассматриваются физическая топология вычислительного облака,
построенного с использованием средств OpenStack, и методы планирования распределения ресурсов,
реализованные в OpenStack. Затем рассматриваются разработанные методы планирования распределения
ресурсов вычислительного облака OpenStack.
Типовую архитектуру вычислительного облака, построенного с использованием средств OpenStack,
рассмотрим на примере физической архитектуры облачной инфраструктуры, приведенной на рис. 1.
Рис. 1. Пример физической архитектуры облачной инфраструктуры
В состав этой архитектуры входит контроллер облака, три группы вычислительных узлов (ВУ), а также три
дисковых системы. Данные компоненты связаны сетевой инфраструктурой, включающей коммутаторы,
маршрутизатор и сетевые кабели. Граничный маршрутизатор предоставляет возможность для подключения
к облаку из других сетей.
Ключевым компонентом рассматриваемой инфраструктуры является контроллер облака, который
используется для запуска наиболее важных сервисов облака. Каждый сервис отвечает за определенные
возможности облака: аутентификация, работа с сетью, планировщик, доступ через веб-интерфейс, управление
образами ВМ, управление дисковыми разделами, отправка служебных сообщений, работа с базой данных. На
каждом физическом ВУ имеется специальный сервис, предназначенный для задач запуска и обслуживания
работы ВМ.
Планировщик OpenStack решает задачу определения подходящего ВУ для запуска экземпляра ВМ. При
запуске ВМ необходимо указать, какие ресурсы (количество ядер CPU, объем оперативной памяти, объем
дискового пространства) ей требуется предоставить [2]. Планировщик опрашивает сервисы ВУ для получения
информации о свободных ресурсах. Данные о ресурсах, требуемых запускаемой ВМ, фильтруются на
основании полученной информации о свободных ресурсах, и планировщик выдает результат: на каком ВУ
следует запускать ВМ. К настоящему времени в планировщике OpenStack реализовано четыре основных схемы
планирования:
 Simple scheduler. Планировщик выбирает первый ВУ, удовлетворяющий условиям фильтрации.
 Random scheduler. Планировщик выбирает случайный ВУ, удовлетворяющий условиям фильтрации.
 Zone scheduler. Планировщик выбирает допустимый ВУ по атрибуту принадлежности к определенным
зонам.
 Pluggable scheduler. Планировщик позволяет пользователю самостоятельно задавать различные
параметры фильтров и весов (коэффициентов влияния), тем самым ограничивая возможный набор
результирующих ВУ.
Создателями OpenStack ведутся работы по развитию и оптимизации планировщика. Из этих работ отметим
проект SolverScheduler, использующий для решения задач размещения ресурсов математические пакеты
линейного программирования [3]. Реализация этого проекта выполнена на платформе PuLP [4].
В настоящее время планировщик OpenStack оперирует только информацией полученной от ВУ. Однако,
для задач оптимального размещения этого не достаточно. Для эффективного размещения ВМ на ВУ
необходимо дополнительно учитывать следующие параметры:
 максимальная пропускная способность каналов сетевой инфраструктуры облака;
 средняя загруженность сетевых каналов;
 резервируемая пропускная способность сетевых каналов;
 средняя задержка в сетевых соединениях;
 средняя загруженность дисковых подсистем.
Кроме того, необходимо учитывать зависимости между различными ВМ, возникающие при взаимодействии
ВМ между собой (например, при обмене данными).
В настоящей работе предлагается использовать для представления информации о состоянии указанных
параметров и связей взвешенный граф сетевой топологии облака. Вершины этого графа соответствуют
компонентам инфраструктуры облака, взвешенные дуги – каналам сетевой инфраструктуры. Веса дуг
представляют оценку стоимости передачи информации через соответствующие соединения. Оценка стоимости
использования той или иной системы хранения данных представляется в виде дополнительной дуги,
выходящей из вершины, соответствующей хранилищу.
Для оценки стоимости дуг предлагается использовать параметризованные функции с постоянными
коэффициентами, которые учитывают степень влияния различных параметров на итоговую стоимость дуги.
Примером такой функции может служить следующая функция вычисления стоимости дуги (канала):
Здесь
– скорость (пропускная способность) сетевого канала,
– пакетная задержка,
– средняя
загруженность сетевого канала.
Поскольку в число параметров входят средние значения, планировщику требуется регулярно обновлять
информацию о средней загруженности каналов сетевой инфраструктуры. Эта информация может получаться
различными способами. В данной работе предлагается опрашивать ВУ о статистике их сетевых соединений, а
полученную информацию агрегировать в виде нагрузки на дугах графа сетевой инфраструктуры облака.
Отдельно стоит упомянуть проблему подбора коэффициентов для функций вычисления стоимости дуг. Данная
задача решается введением эвристических оценок влияния тех или иных параметров на результирующую
стоимость. После завершению создания взвешенного графа с использованием алгоритма Дейкстры поиска
кратчайших путей в графе строится матрица кратчайших путей между всеми парами вершин графа.
Для нахождения оптимального размещения ВМ с учетом сетевой топологии предлагается использовать
следующую целевую функцию:
Параметры yi характеризуют расстояние от рассматриваемого ВУ до некоего ресурса облачной
инфраструктуры (другого ВУ, системы хранения данных и т.д.). Параметры pi характеризуют оценку
пользователем приоритетности соответствующего соединения. Данная функция соответствует задаче
линейного программирования по минимизации целевой функции. В рассматриваемой задаче использование
ограничений (системы неравенств) необязательно.
После создания разметки взвешенного графа, характеризующей текущее состояние окружения,
планировщик выполняет основной процесс размещения ВМ на ВУ в соответствии со следующим укрупненным
алгоритмом:
 Планировщик опрашивает ВУ для составления списка ВУ с достаточным объемом ресурсов, требуемых
для запуска текущей ВМ. Этот механизм уже реализован в текущей версии планировщика.
 Планировщик анализирует дополнительные сведения пользователя. Эти сведения включают описание
связей запускаемой ВМ с другими объектами, а также предварительные оценки пользователем степени
использования ресурсов облака создаваемой ВМ.
 Планировщик генерирует функцию вычисления оптимального размещения ВМ. При этом перебираются
допустимые ВУ, а параметры функции заполняются из матрицы кратчайших расстояний.
Использование информации о текущем состоянии сетевой инфраструктуры позволяет выполнять ряд
дополнительных оптимизирующих действий. Так как планировщик всегда обладает информацией о текущей
загруженности инфраструктуры, он может принять решение о перемещении некоторых ВМ в менее
загруженный сегмент сети. Данная процедура выполняется за счет использования механизма live migration
(живой миграции), обеспечивающего перемещение ВМ между физическими узлами без остановки работы
самой ВМ.
Кроме того, с учетом возможности live migration можно модифицировать процесс нахождения подходящего
ВУ таким образом, что он будет вычислять расстояние не только от допустимых ВУ (обладающих достаточными
ресурсами), но и от недопустимых ВУ и использовать это для возможного увеличения производительности
размещаемой ВМ. Так, если значение функции F для недопустимого ВУ намного меньше (в несколько раз), чем
наименьшее значение этой функции для допустимых ВУ, то, возможно, стоит освободить ресурсы наиболее
подходящего ВУ для размещения в нем создаваемой ВМ.
Таким образом, предлагаемые методы и средства оптимизации планировщика OpenStack позволяют
решить задачу более эффективного размещения ресурсов (ВМ) в облачной инфраструктуре. Использование
графа сетевой инфраструктуры облака и алгоритмов на графах гарантирует нахождение кратчайших
расстояний, а приведение задачи размещения ВМ к задаче линейного программирования позволяет получать
оптимальные решения.
Литература
1.
2.
3.
4.
Сайт проекта OpenStack. – URL: http://www.openstack.org/, дата обращения 10.03.13.
Документация по планировщику OpenStack. – URL: http://docs.openstack.org/trunk/config-reference/
content/section_compute-scheduler.html, дата обращения 10.03.14.
Репозиторий проекта nova-solver-sheduler. – URL: https://github.com/CiscoSystems/nova-solverscheduler, дата обращения 15.03.14.
Страница проекта PuLP. – URL: https://code.google.com/p/pulp-or/, дата обращения 18.03.14.
1/--страниц
Пожаловаться на содержимое документа