Алгоритм работы планировщика
В состав планировщика входит программный модуль установления соответствия (mm_sched
), реализующий стратегию планирования ранга (Rank Scheduling Policy
). Данная стратегия нацелена на определение приоритета ресурсов, подходящих для ВМ.
Алгоритм установления соответствия работает следующим образом:
- Виртуальные машины, для размещения диска которых требуется больше дискового пространства, чем доступно на данный момент, отфильтровываются и остаются в состоянии ожидания (
pending
). - Серверы виртуализации, которые не соответствуют требованиям (задаются параметром
SCHED_REQUIREMENTS
в шаблоне ВМ) или не имеют достаточной вычислительной мощности (свободных ЦП и оперативной памяти) для запуска ВМ, отфильтровываются. - Системные хранилища, которые не соответствуют требованиям (задаются параметром
SCHED_DS_REQUIREMENTS
в шаблоне ВМ) или не имеют достаточного дискового ресурса, отфильтровываются; - Виртуальные сети, которые не соответствуют требованиям (задаются параметром
SCHED_REQUIREMENTS
в блоке параметров NIC шаблона ВМ) или не имеют достаточного количества свободных (арендованных) адресов, отфильтровываются; - Производится финальная фильтрация и ранжирование серверов виртуализации, системных хранилищ и виртуальных сетей в соответствии со значениями параметров, указанных в следующих источниках (по убыванию приоритета):
- в шаблоне ВМ (используются параметры
SCHED_RANK
иSCHED_DS_RANK
); - для всех виртуальных машин в целом — в файле
/etc/one/sched.conf
(используются блоки параметровDEFAULT_SCHED
,DEFAULT_DS_SCHED
иDEFAULT_NIC_SCHED
).
- в шаблоне ВМ (используются параметры
- При развертывании ВМ в первую очередь используются ресурсы с более высоким рангом.
Если при создании ВМ указать только один сервер виртуализации для развертывания, в шаблон ВМ будет добавлена опция SCHED_REQUIREMENTS
с идентификатором указанного сервера. Планировщик, в таком случае, будет использовать для планирования только указанный сервер (например, при выполнении команды onevm resсhed ID_VM
).
В случае указания нескольких серверов виртуализации для развертывания ВМ, при работе планировщика будут использоваться только указанные в списке сервера.
Если при создании ВМ сервер виртуализации для развертывания не указан, планировщик будет учитывать все сервера виртуализации в заданном кластере.