Как распределить на узлах создаваемые виртуальные машины, чтобы оптимально утилизировать оборудования? В VMmanager предусмотрены базовые настройки на уровне кластера: можно создавать ВМ по очереди, пока не заполнятся все, или равномерно заполнять все узлы. Но этого не всегда достаточно, ведь не учитывается специфика каждого сервера и ограничений, которые есть у провайдера.
Сложные фильтры в VMmanager помогут распределить создаваемые ВМ по узлам, чтобы оптимально утилизировать разное оборудование. Посмотрим, как работать с ними, а также с общими настройками распределения.
Пример настроек VMmanager для оптимальной утилизации оборудования
Решим задачу распределения ВМ по узлам, если у провайдера следующие условия:
- лицензии Windows только на один физический сервер;
- сервер для больших ВМ. На нём установлено несколько дорогих CPU, много RAM и подключены быстрые NVME диски;
- несколько серверов с медленными дисками для создания маленьких виртуальных машин.
В VMmanager гибко настраивается распределение ВМ по узлам кластера. Для этого в общих настройках кластера и узлов есть специальный раздел. В нём можно выбрать равномерное или последовательное распределение.
При равномерном распределении ВМ создаются поочередно на каждом узле. При последовательном — ВМ сначала полностью заполняют первый узел, а затем создаются на следующем.
Эти общие настройки распределения применяются для всех узлов кластера, кроме тех, где используются свои политики. Далее я подробнее расскажу о сложных настройках политики распределения, которые можно выполнить с помощью сложных фильтров.
Как работают фильтры распределения ВМ на узле
Фильтры распределения ВМ задаются в настройках распределения ВМ на узле в карточке узла.
По умолчанию ВМ создаются на любом узле кластера, где хватает ресурсов для ее создания.
Например, есть три узла по 16 Гб оперативной памяти и 1 Тб дискового места. Если на первом узле в сумме занято 15 Гб оперативной памяти и 800 Гб диска, то при создании ВМ на 2 Гб оперативной памяти первый узел будет исключен и ВМ создастся на втором или третьем узле.
В VMmanager мы можем задать дополнительные фильтры:
- по тегам ОС;
- по конфигурациям ВМ;
- по количеству RAM;
- по количеству vCPU;
- по размеру диска.
Как это работает? Добавляем на второй узел фильтр по тегам ОС: windows. В таком случае:
- при создании ВМ на ОС AlmaLinux 8 этот узел будет исключен;
- будет использован первый или третий узел;
- при создании ВМ на ОС Windows Server 2019, этот узел не будет исключен;
- будет использован первый, второй или третий узел.
Схематично это можно показать так:
А как исключить создание ВМ на ОС 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”. Более подробно это описано в документации: работа с фильтрами распределения ВМ.
Так фильтры распределения в VMmanager позволяют гибко управлять оборудованием и решать даже самые сложные задачи по назначению ВМ определенным узлам. Чтобы попробовать VMmanager, оставьте нам заявку на сайте — консультанты ответят на все вопросы и предоставят триальную версию VMmanager.