Шаблоны виртуальных машин
Шаблон виртуальной машины (ВМ) — конфигурационный файл, определяющий параметры виртуальной машины (ЦПУ, ОЗУ, хранилище, сетевые настройки и др.), необходимые для её быстрого развертывания. Шаблон служит заготовкой для создания идентичных виртуальных машин.
Создать шаблон ВМ
-
Создать шаблон ВМ можно аналогично процессу, описанному в статье Операции с виртуальными машинами. Создать ВМ через командную строку.
scheduler vm template add --name <NAME> --vcpu <VCPU> --vram <VRAM> --storage <STORAGE> --nodeSelector <NODESELECTOR> [--descr <DESCR>] [--labels <LABELS>] [--ip_addresses <IP_ADDRESSES>] [--cpu_overcommit_ratio <CPU_OVERCOMMIT_RATIO>] [--overcommit_tolerance <OVERCOMMIT_TOLERANCE>] [--networks <NETWORKS>] [--inbounds <INBOUNDS>] [--outbounds <OUTBOUNDS>] [--affinity <AFFINITY>] [--type <common|linked_clone>] [--path_to <PATH_TO>]где
name— имя шаблона;vcpu— количество ВЦПУ;vram— объем оперативной памяти в мегабайтах и гигабайтах. Число и единицы измерения указываются слитно в любом регистре. Например:100MB,200Mb,300Gb,400gb;storage— тип хранилища;nodeSelector— метка или список меток для размещения ВМ;descr— описание шаблона ВМ;labels— метка или список меток ВМ. Метки задаются в форматеkey=value, разделяются пробелами;ip_addresses— IP-адрес или список IP-адресов из пула доступных адресов;cpu_overcommit_ratio— коэффициент переподписки ЦПУ в кластере по умолчанию. Возможные значения от1до4;overcommit_tolerance— толерантность ВМ к переподписке. Возможные значения от0до3;networks— идентификатор сети или список идентификаторов;inbounds— лимит входящего трафика;outbounds— лимит исходящего трафика;affinity— правила размещения ВМ;-
type— тип ВМ. Значение по умолчанию:common. Возможные значения:common— ВМ создается стандартным способом, дисковая система формируется как полная хранилища источника;linked_clone— ВМ создается по технологии связанных клонов, использует общий родительский виртуальный диск в режиме «только чтение» и хранит только свои собственные изменения;
-
path_to— размещение шаблона ВМ в иерархии директорий.Внимание
Технология связанных клонов (
type=linked_clone) может быть использована только при создании ВМ с Libvirt-хранилищем.При указании в
nodeSelectorметок, игнорируемых в кластере, ВЦОД или виртуальном кластере, будет выведена ошибка. Подробности можно изучить в статье Правила размещения виртуальных машин
-
Создать шаблон ВМ из уже существующей виртуальной машины можно с помощью команды
гдеvm_uuid— идентификатор виртуальной машины.
Создать шаблон ВМ с помощью YAML-файла
-
Шаблон ВМ можно создать простым перечислением параметров, аналогично процессу, описанному в статье Операции с виртуальными машинами. Создать ВМ с помощью YAML-файла.
Пример
apiVersion: v1 kind: api metadata: plugin: scheduler: vm: template: add spec: name: test_vm_sp descr: "VM test" vram: "3GB" vcpu: 1 storage: nfs: disks: - "1fed2a97-3c90-465b-93fd-0ff8ca38f2a1" - "f4bdbdf5-a586-4120-9b27-b5b9216ca501" buses: 1fed2a97-3c90-465b-93fd-0ff8ca38f2a1: "sata" labels: "name=test" ip_addresses: "{\"6f478ba9-9ecc-4435-b562-2a910bc0340b\": \"10.3.31.38\"}" cpu_overcommit_ratio: 2 overcommit_tolerance: 2 networks: - "6f478ba9-9ecc-4435-b562-2a910bc0340b" inbounds: ["14980"] outbounds: ["24048"] nodeSelector: key: base -
Шаблон ВМ можно создать, скопировав параметры существующей виртуальной машины.
Просмотреть шаблоны ВМ
- Просмотреть список всех шаблонов ВМ
- Просмотреть информацию о конкретном шаблоне ВМ
где
uuid— идентификатор шаблона ВМ.
Изменить шаблон ВМ
scheduler vm template update --uuid <UUID>
[--name <NAME>]
[--descr <DESCR>]
[--vcpu <VCPU>]
[--vram <VRAM>]
[--storage <STORAGE>]
[--labels <LABELS>]
[--ip_addresses <IP_ADDRESSES>]
[--cpu_overcommit_ratio <CPU_OVERCOMMIT_RATIO>]
[--overcommit_tolerance <OVERCOMMIT_TOLERANCE>]
[--networks <NETWORKS>]
[--inbounds <INBOUNDS>]
[--outbounds <OUTBOUNDS>]
[--nodeSelector <NODESELECTOR>]
[--affinity <AFFINITY>]
[--type <common|linked_clone>]
где
uuid— идентификатор шаблона ВМ;name— имя шаблона;descr— описание шаблона ВМ;vcpu— количество ВЦПУ;vram— объем оперативной памяти в мегабайтах и гигабайтах. Число и единицы измерения указываются слитно в любом регистре. Например:100MB,200Mb,300Gb,400gb;storage— тип хранилища;labels— метка или список меток ВМ. Метки задаются в форматеkey=value, разделяются пробелами;ip_addresses— IP-адрес или список IP-адресов из пула доступных адресов;cpu_overcommit_ratio— коэффициент переподписки ЦПУ в кластере по умолчанию. Возможные значения от1до4;overcommit_tolerance— толерантность ВМ к переподписке. Возможные значения от0до3;networks— идентификатор сети или список идентификаторов;inbounds— лимит входящего трафика;outbounds— лимит исходящего трафика;nodeSelector— метка или список меток для размещения ВМ;affinity— правила размещения ВМ;-
type— тип ВМ. Значение по умолчанию:common. Возможные значения:common— ВМ создается стандартным способом, дисковая система формируется как полная хранилища источника;-
linked_clone— ВМ создается по технологии связанных клонов, использует общий родительский виртуальный диск в режиме «только чтение» и хранит только свои собственные изменения.Внимание
Технология связанных клонов (
type=linked_clone) может быть использована только при создании ВМ с Libvirt-хранилищем
Удалить шаблон ВМ
гдеuuid — идентификатор шаблона ВМ.
Восстановить виртуальную машину из шаблона ВМ
Процесс восстановления виртуальной машины из шаблона ВМ подробно описан в статье Восстановить виртуальную машину.
Термины и определения содержатся в статьях: