07 апреля 2022 Время чтения: 4 минуты

Эффективная утилизация серверных мощностей: настраиваем в VMmanager

Илья Калиниченко

Илья Калиниченко

DevOps платформы VMmanager

ISPSystem

Как распределить на узлах создаваемые виртуальные машины, чтобы оптимально утилизировать оборудования? В VMmanager предусмотрены базовые настройки на уровне кластера: можно создавать ВМ по очереди, пока не заполнятся все, или равномерно заполнять все узлы. Но этого не всегда достаточно, ведь не учитывается специфика каждого сервера и ограничений, которые есть у провайдера.

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

Пример настроек VMmanager для оптимальной утилизации оборудования

Решим задачу распределения ВМ по узлам, если у провайдера следующие условия:

  • лицензии Windows только на один физический сервер;
  • сервер для больших ВМ. На нём установлено несколько дорогих CPU, много RAM и подключены быстрые NVME диски;
  • несколько серверов с медленными дисками для создания маленьких виртуальных машин.

В VMmanager гибко настраивается распределение ВМ по узлам кластера. Для этого в общих настройках кластера и узлов есть специальный раздел. В нём можно выбрать равномерное или последовательное распределение.

Настройки распределения ВМ для кластера
Настройки распределения ВМ для кластера

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

Эти общие настройки распределения применяются для всех узлов кластера, кроме тех, где используются свои политики. Далее я подробнее расскажу о сложных настройках политики распределения, которые можно выполнить с помощью сложных фильтров.

Как работают фильтры распределения ВМ на узле

Фильтры распределения ВМ задаются в настройках распределения ВМ на узле в карточке узла.

Настройки распределения ВМ для узла
Настройки распределения ВМ для узла

По умолчанию ВМ создаются на любом узле кластера, где хватает ресурсов для ее создания.

Например, есть три узла по 16 Гб оперативной памяти и 1 Тб дискового места. Если на первом узле в сумме занято 15 Гб оперативной памяти и 800 Гб диска, то при создании ВМ на 2 Гб оперативной памяти первый узел будет исключен и ВМ создастся на втором или третьем узле.

Пример работы сложного фильтра распределения, когда на узлах должны создаваться ВМ с RAM > 2G или с vCPU > 4
Пример работы сложного фильтра распределения, когда на узлах должны создаваться ВМ с RAM > 2G или с vCPU > 4

В VMmanager мы можем задать дополнительные фильтры:

  • по тегам ОС;
  • по конфигурациям ВМ;
  • по количеству RAM;
  • по количеству vCPU;
  • по размеру диска.

Как это работает? Добавляем на второй узел фильтр по тегам ОС: windows. В таком случае:

  • при создании ВМ на ОС AlmaLinux 8 этот узел будет исключен;
  • будет использован первый или третий узел;
  • при создании ВМ на ОС Windows Server 2019, этот узел не будет исключен;
  • будет использован первый, второй или третий узел.

Схематично это можно показать так:

Варианты распределения ВМ, когда на второй узел добавлен тег ОС: windows. ВМ с Alma Linux теперь может быть создана только на первом или третьем узле
Варианты распределения ВМ, когда на второй узел добавлен тег ОС: windows. ВМ с Alma Linux теперь может быть создана только на первом или третьем узле

А как исключить создание ВМ на ОС Windows на первом и третьем узле?

Добавить на эти узлы фильтр по тегу ОС: !windows

Фильтры объединяются между собой через логическое И.

Если на узле задать фильтр RAM>1G, vCPU>=2, тогда:

  • при создании ВМ (RAM 2G, 1 vCPU) — на этот узел не попадет;
  • при создании ВМ (RAM 2G, 4 vCPU) — попадет на этот узел.

Внутри фильтра можно указать условия через запятую. При этом условия объединяются через логическое ИЛИ.

Например, теги ОС можно записать так: freebsd, centos. Это значит, что на узел попадут только ВДС c ОС CentOS или FreeBSD.

А что делать, если на узле должны создаваться ВМ с RAM > 2G или с vCPU > 4?

Для этого нужно использовать «Сложный фильтр” “cpu_number > 4 || ram_mib > 2048”. Более подробно это описано в документации: работа с фильтрами распределения ВМ.

Пример работы сложного фильтра распределения, когда на узлах должны создаваться ВМ с RAM > 2G или с vCPU > 4
Пример работы сложного фильтра распределения, когда на узлах должны создаваться ВМ с RAM > 2G или с vCPU > 4

Так фильтры распределения в VMmanager позволяют гибко управлять оборудованием и решать даже самые сложные задачи по назначению ВМ определенным узлам. Чтобы попробовать VMmanager, оставьте нам заявку на сайте — консультанты ответят на все вопросы и предоставят триальную версию VMmanager.