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.