Перейти к содержанию

Шаблоны виртуальных машин

Шаблон виртуальной машины (ВМ) — конфигурационный файл, определяющий параметры виртуальной машины (ЦПУ, ОЗУ, хранилище, сетевые настройки и др.), необходимые для её быстрого развертывания. Шаблон служит заготовкой для создания идентичных виртуальных машин.


Создать шаблон ВМ

  1. Создать шаблон ВМ можно аналогично процессу, описанному в статье Операции с виртуальными машинами. Создать ВМ через командную строку.

    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 меток, игнорируемых в кластере, ВЦОД или виртуальном кластере, будет выведена ошибка. Подробности можно изучить в статье Правила размещения виртуальных машин

  2. Создать шаблон ВМ из уже существующей виртуальной машины можно с помощью команды

    scheduler vm template from --vm_uuid <VM_UUID>
    
    где vm_uuid — идентификатор виртуальной машины.

Создать шаблон ВМ с помощью YAML-файла

  1. Шаблон ВМ можно создать простым перечислением параметров, аналогично процессу, описанному в статье Операции с виртуальными машинами. Создать ВМ с помощью 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
    
  2. Шаблон ВМ можно создать, скопировав параметры существующей виртуальной машины.

    Пример
    apiVersion: v1
    kind: api
    metadata:
      plugin:
        scheduler:
          vm:
            template: from
    spec:
       vm_uuid: 1f108dc6-a429-6fae-8d8e-5439abff52e6
    

Просмотреть шаблоны ВМ

  1. Просмотреть список всех шаблонов ВМ
    scheduler vm template list
    
  2. Просмотреть информацию о конкретном шаблоне ВМ
    scheduler vm template show --uuid <UUID>
    
    где 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-хранилищем


Удалить шаблон ВМ

scheduler vm template del --uuid <UUID>
где uuid — идентификатор шаблона ВМ.

Восстановить виртуальную машину из шаблона ВМ

Процесс восстановления виртуальной машины из шаблона ВМ подробно описан в статье Восстановить виртуальную машину.


Термины и определения содержатся в статьях: