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.