Стратегия размещения применяется для эффективного распределения виртуальных машин между серверами виртуализации.

Параметры стратегии размещения

Для настройки стратегии размещения в конфигурационном файле /etc/one/sched.conf используется блок DEFAULT_SCHED, в котором определены значения следующих параметров:

  • RANK — арифметическое выражение для ранжирования подходящих серверов виртуализации в зависимости от их производительности (используется при настройке пользовательской стратегии размещения);
  • POLICY — номер используемой стратегии размещения:
СтратегияОписание
0

Предустановленная стратегия вида Уплотнение: свести к минимуму количество используемых серверов виртуализации за счет уплотнения ВМ на сервере виртуализации

1

Предустановленная стратегия вида Распределение: свести к максимуму количество доступных для ВМ ресурсов путем распределения ВМ на серверах виртуализации (установлено по умолчанию)

2

Предустановленная стратегия вида С учетом нагрузки: свести к максимуму количество доступных для ВМ ресурсов путем размещения ВМ на сервере виртуализации с меньшей нагрузкой

3

Пользовательская стратегия: для размещения ВМ выбирается сервер виртуализации в соответствии с правилом, заданным в параметре RANK

4

Предустановленная стратегия вида Фиксированная: серверы виртуализации будут ранжироваться в соответствии со значением параметра PRIORITY (приоритет), заданном в шаблоне сервера виртуализации или кластера

Особенности ранжирования серверов виртуализации

При развертывании ВМ для каждого сервера виртуализации вычисляется значение ранга. Таким образом обеспечивается выбор наилучшего сервера виртуализации для запуска ВМ.
Ранг сервера виртуализации вычисляется в соответствии с арифметическим выражением, заданным в параметре RANK. В качестве операндов такого выражения выступают числовые константы и параметры серверов виртуализации, значения которых собираются информационными драйверами системы мониторинга или задаются вручную в шаблоне сервера виртуализации. Для вычисления значения ранга допускается использовать следующие арифметические операции:

  • + — сложение;
  • - — вычитание;
  • * — умножение;
  • / — деление.

При вычислении ранга используется арифметика с плавающей запятой, однако результат округляется до целого числа.

Арифметическое выражение может состоять только из одного параметра. Кроме того, в качестве значения ранга могут выступать отрицательные числа.

Примеры

  • Высший ранг имеет сервер виртуализации с наибольшим количеством работающих ВМ:
    RANK=RUNNING_VMS
    CODE
  • Высший ранг имеет сервер виртуализации с наименьшим количеством работающих ВМ:
    RANK="- RUNNING_VMS"
    CODE

Предустановленные стратегии размещения

Стратегия вида Уплотнение:

  • цель: свести к минимуму количество используемых серверов виртуализации;
  • эвристическая процедура: плотно разместить ВМ на серверах виртуализации;
  • реализация: сначала использовать сервер виртуализации с наибольшим количеством работающих ВМ.

Этой стратегии соответствует следующее арифметическое выражение для ранжирования серверов виртуализации:

RANK=RUNNING_VMS
CODE

Стратегия вида Распределение:

  • цель: свести к максимуму ресурсы, доступные для ВМ на сервере виртуализации;
  • эвристическая процедура: равномерно распределить ВМ на серверах виртуализации;
  • реализация: сначала использовать сервер виртуализации с меньшим количеством работающих ВМ.

Этой стратегии соответствует следующее арифметическое выражение для ранжирования серверов виртуализации:

RANK="- RUNNING_VMS"
CODE

Стратегия вида С учетом нагрузки:цель:

  • свести к максимуму ресурсы, доступные для ВМ на сервере виртуализации;
  • эвристическая процедура: использовать серверы виртуализации с меньшей нагрузкой;
  • реализация: сначала использовать сервер виртуализации с наибольшим количеством свободных ЦП.

Этой стратегии соответствует следующее арифметическое выражение для ранжирования серверов виртуализации:

RANK=FREE_CPU
CODE

Стратегия вида Фиксированная:

  • цель: сортировать серверы виртуализации вручную;
  • эвристическая процедура: учитывать значение параметра PRIORITY (приоритет), заданный в шаблоне сервера виртуализации или кластера;
  • реализация: сначала использовать сервер виртуализации с более высоким приоритетом.

Этой стратегии соответствует следующее арифметическое выражение для ранжирования серверов виртуализации:

RANK=PRIORITY
CODE

Перепланирование размещения виртуальных машин

ВМ может быть перепланирована без выключения. При выполнении команды onevm resched для ВМ устанавливается метка перепланирования. При следующей итерации действий планировщика ВМ будет представлена на перепланирование, если выполняются следующие условия:

  • существует подходящий сервер виртуализации для ВМ;
  • ВМ еще не запущена на нем.

Для корректной отработки данной функции, при развертывании, в разделе Планировка шаблона ВМ должен быть указан кластер для размещения ВМ, а не конкретный сервер виртуализации.

Ограничение ресурсов, предоставляемых сервером виртуализации

Перед назначением ВМ на сервер виртуализации проверяется его доступная вычислительная мощность, чтобы убедиться, что имеющихся ресурсов сервера виртуализации достаточно для развертывания ВМ. Данные о вычислительной мощности передаются агентами мониторинга. Данный алгоритм можно изменить, зарезервировав определенное количество вычислительной мощности (MEMORY и CPU). Для резервирования доступны следующие методы:

  • резервирование на уровне кластера при обновлении шаблона кластера (например, с помощью команды onecluster update). Все серверы виртуализации кластера зарезервируют одинаковое количество вычислительной мощности;
  • резервирование на уровне сервера виртуализации путем обновления шаблона сервера виртуализации (например, с помощью команды onehost update). При этом будут заменены значения параметров, которые были указаны на уровне кластера. 

В частности, возможно резервирование следующих параметров вычислительной мощности:

  • RESERVED_CPU в процентах. Будет вычитаться из TOTAL CPU;
  • RESERVED_MEM в КБ. Будет вычитаться из TOTAL MEM.

Данные значения могут быть отрицательными. В этом случае фактически требуется увеличить общую вычислительную мощность, тем самым перегружая сервер виртуализации.