Общая информация

Группа ВМ определяет набор связанных ВМ и соответствующие ограничения на размещение ВМ в группе. Группа ВМ позволяет размещать вместе (или отдельно) определенные ВМ (или классы ВМ, называемые ролями). Группы ВМ помогут оптимизировать производительность.

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

  • правило Affinity размещает группу ВМ на одном выбранном сервере виртуализации;
  • правило Anti-Affinity распределяет группу ВМ по серверам виртуализации, исключая выбранные.

В ПК СВ "Брест" для ручной балансировки нагрузки на вычислительные ресурсы аппаратных средств за счет перераспределения ВМ между узлами кластера можно воспользоваться правилами Affinity и Anti-Affinity

Политики размещения

Политики размещения применяются к виртуальным машинам из группы ВМ.

Размещение ВМ на серверах виртуализации

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

Пример

Размещение ВМ баз данных на разных серверах виртуализации:

ROLE = [
    NAME         = "database",
    HOST_AFFINED = "1,2,3,4"
]
CODE

Размещение ВМ относительно друг друга

ВМ для которых установлены роли с правилами Affinity размещаются на одном сервере виртуализации. ВМ для которых установлены роли с правилами Anti-Affinity размещаются на серверах виртуализации, исключая выбранные в правиле. Правила Affinity и Anti-Affinity для роли задаются в параметре POLICY. 

Пример

Распределение ВМ на разных серверах виртуализации:

ROLE = [
    NAME   = "workers",
    POLICY = "ANTI_AFFINED"
]
CODE

Размещение ролей относительно друг друга

ВМ с заданными ролями могут располагаться совместно или раздельно с ВМ с другими заданными ролями. Это свойство используется для совмещения политик серверов виртуализации с ВМ и ВМ друг с другом. Правила Affinity для ролей задаются параметрами AFFINED и ANTI_AFFINED.

Пример

Размещение ВМ с базами данных совместно (с предоставлением доступа к одному хранилищу), ВМ с резервными копиями раздельно друг от друга, а также размещение ВМ с базами данных и ВМ с резервными копиями раздельно друг от друга:

ROLE = [
    NAME  = "databases",
    HOST_AFFINED = "1,2,3,4,5,6,7"
    POLICY = "AFFINED"
]

ROLE = [
    NAME = "backup",
    HOST_ANTI_AFFINED = "3,4"
    POLICY = "ANTI_AFFINED"
]

ANTI_AFFINED = "databases, backup"
CODE

Политика роли должна быть согласована с любыми ролевыми политиками, что означает, что роль с политикой ANTI_AFFINED не может быть включена в правило с ролями AFFINED.

Конфигурация планировщика

Группы ВМ располагаются с помощью динамически генерируемых требований (SHED_REQUIREMENTS) переоценивая эти требования для каждой ВМ. Кроме того, также рассчитывается следующее:

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

Использование групп ВМ

Для определения группы ВМ можно начать добавлять ВМ в нее, выбирая роль и группу при инсталляции, или установить их в шаблоне ВМ. Также можно специфицировать VM_GROUP с помощью идентификатора VMGROUP_ID и, в случае совпадения имён у множества групп, можно выделить одну с помощью VMGROUP_UID.

Можно добавить атрибут VMGROUP при создании ВМ или при установке связанного шаблона. Благодаря этому, один и тот же шаблон ВМ можно использовать с разными ролями.

Группы ВМ могут быть изменены для редактирования или добавления новых ролей. Правила ролей могут быть изменены только если в них нет ВМ. Группу ВМ можно создать в интерфейсе командной строки командой onevmgroup create.

 Для создания группы ВМ в интерфейсе командной строки необходимо создать файл с шаблоном группы ВМ в /var/tmp.

sudo onevmgroup create /var/tmp/<имя_файла>
где <имя_файла> —имя файла с шаблоном группы ВМ.

После создания группы ВМ будет выведен ID этой группы.

Пример

sudo onevmgroup create /var/tmp/templ1

Пример вывода ID после создания группы ВМ: 

ID: 5
CODE

Нужно иметь в виду, что к группам ВМ применяются правила ACL, поэтому необходимо предоставить пользователю права на размещение ВМ в группе.

Управление правилами Affinity и Anti-Affinity в шаблоне ВМ

Действия в данном разделе выполняются пользователем с ролью администратора ПК СВ.

В шаблоне ВМ для управления правилами Affinity и Anti-Affinity используется блок параметров ROLE, в котором:

Параметр

Обязательный

Описание

NAME

Да

Имя роли, которое должно быть уникальным в пределах группы ВМ.

POLICY

Нет

Политика размещения ВМ для роли. Возможные значения: AFFINED и ANTI_AFFINED.

HOST_AFFINED

Нет

Определяет набор серверов виртуализации (по их ID) на которых ВМ определённой роли могут запускаться.

HOST_ANTI_AFFINED

Нет

Определяет набор серверов виртуализации (по их ID) на которых ВМ определённой роли не могут запускаться.

Дополнительные ограничения на размещение могут быть установлены на роли ВМ с помощью следующих параметров:

Параметр

Обязательный

Описание

AFFINED

Нет

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

ANTI_AFFINED

Нет

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


Управление правилами Affinity и Anti-Affinity в веб-интерфейсе ПК СВ

Действия в данном разделе выполняются пользователем с ролью администратора ПК СВ.

Создание политик размещения ВМ

  1. В веб-интерфейсе ПК СВ в меню слева выбрать пункт ШаблоныГруппы ВМ, нажать кнопку +.
  2. На открывшейся странице Создать группу ВМ:
    • в поле Название задать наименование группы ВМ;
    • в поле Имя роли задать имя первой роли role1;
    • в разделе Политика размещения ВМ установить флаг Размещать вместе;
    • выбрать сервер виртуализации (в примере выбран node1.brest33.lc).
  3. В разделе Роли нажать кнопку +:
    • в поле Имя роли задать имя второй роли role2;
    • в разделе Политика размещения ВМ установить флаг Размещать порознь;
    • выбрать сервер виртуализации (в примере выбран node3.brest33.lc).
  4. На странице Создать группу ВМ нажать кнопку Создать.

Политики размещения добавятся автоматически на основе ролей.


Создание ВМ на основе политики размещения Affinity

  1. В веб-интерфейсе ПК СВ в меню слева выбрать пункт Шаблоны — ВМ.
  2. На открывшейся странице Шаблоны ВМ выбрать необходимый шаблон.
  3. На открывшейся странице шаблона необходимо нажать кнопку Создать экземпляр.
  4. На открывшейся странице Создать ВМ открыть параметры Добавить ВМ в группу.
  5. Нажать кнопку + для выбранной группы.
  6. Выбрать нужную группу из списка.
  7. В появившемся списке ролей выбрать политику размещения role1.
  8. Указать количество экземпляров ВМ и нажать кнопку Создать экземпляр.


На странице ВМ отобразятся созданные экземпляры ВМ, согласно политике размещения role1 все ВМ будут размещены на сервере виртуализации node1.brest33.lc.


Создание ВМ на основе политики размещения Anti-Affinity

  1. В веб-интерфейсе ПК СВ в меню слева выбрать пункт Шаблоны ВМВМ.
  2. На открывшейся странице Шаблоны ВМ выбрать необходимый шаблон.
  3. На открывшейся странице шаблона необходимо нажать кнопку Создать экземпляр.
  4. На открывшейся странице Создать ВМ открыть параметры Добавить ВМ в группу.
  5. Нажать кнопку + для выбранной группы.
  6. Выбрать нужную группу из списка.
  7. В появившемся списке ролей выбрать политику размещения role2.
  8. Указать два экземпляра ВМ и нажать кнопку Создать экземпляр.

На странице ВМ отобразятся созданные экземпляры ВМ, согласно политике размещения role2 ВМ будут размещены на серверах виртуализации node1.brest33.lc и node2.brest33.lc.