Dynamic Resource Scheduler (DRS)

Автоматическая разгрузка гипервизоров (Dynamic Resource Scheduler, DRS)

DRS периодически опрашивает Prometheus на предмет нагрузки гипервизоров в регионе и принимает решение о необходимости живой миграции ВМ с гипервизора, чья загрузка по CPU в среднем за последние “metric_resolution” минут превышает заданное значение “MOVE_SYN_THRESHOLD”.

Динамическая конфигурация параметров работы

Конфигурация алгоритма определения перегруженных гипервизоров и алгоритма выбора живой миграции задаются динамически в сущности “config” REST-API сервиса.

Динамическая конфигурация частоты опроса облака

Период опроса Prometheus для поиска перегруженных гипервизоров задается параметром “period” сущности “job” REST-API сервиса.

Логика ограничения выбора целевого гипервизора для живой миграции

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

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

DRS позволяет помечать следующие ВМ как недоступные для живой миграции:

  • конкретные ВМ (с помощью метаданных ВМ);

  • все ВМ проектов (с помощью метаданных проекта);

  • все ВМ с проброшенными PCI-устройствами.

Мониторинг и оповещения

DRS может оповещать Prometheus AlertManager о начале живой миграции ВМ.

Интеграция с Keystone

REST-API DRS использует авторизацию через Keystone региона Openstack.

Высокая доступность

DRS может запускаться в отказоустойчивом режиме “active-active”. Задачи по опросу и оптимизации облака выполняются на лидере кластера.

Множественные задачи

DRS поддерживает одновременное выполнение нескольких периодических заданий (jobs) с различными конфигурациями и периодами запуска.

Режим рекомендации миграций

Периодические задания по поиску перегруженных гипервизоров могут как выдавать рекомендации к живой миграции ВМ, так и применять их немедленно в автоматическом режиме. Рекомендации сохраняются и БД DRS и могут быть применены администратором в полуавтоматическом режиме через REST-API DRS.

Коммандлайн-клиент, предоставляющий удобный доступ из интерпретатора до сущностей REST-API DRS с использованием стандартного файла авторизации OpenRC

DRS CLI — управление и конфигурация подсистемы. Весь процесс сборки и интеграции автоматизирован с помощью GitLab-CI.