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

Операции с виртуальными машинами

Примечание

Действия выполняются пользователем с ролью Администратор ВЦОД или Разработчик ВМ

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

Создать ВМ

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


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

  1. Создайте файл формата YAML.
  2. Опишите в файле все необходимые параметры и правила для создания ВМ.
    Подробная информация описана в статье Правила размещения виртуальных машин.

  3. При необходимости укажите IP-адрес из пула доступных адресов:

    1. Чтобы просмотреть доступные адреса, введите команду

      ipam addr free list --uuid <UUID>
                         [--full_output <FULL_OUTPUT>]
      

      где

      • uuid — идентификатор сети или подсети;
      • full_output — отобразить весь список адресов. Без указания full_output по умолчанию отобразятся только три доступных адреса.
    2. Чтобы просмотреть занятые адреса, введите

      ipam addr allocated list --uuid <UUID>
      
      где uuid — идентификатор сети или подсети.

    3. Добавьте в YAML

      networks: ["идентификатор сети"]
      ip_addresses: ["{\"идентификатор сети\": \"IP-адрес из пула доступных адресов\"}"]
      

  4. При необходимости ограничьте трафик для сетевых интерфейсов

    Пример для ВМ с одним сетевым интерфейсом
    networks: ["идентификатор сети"]
    inbounds:  ["лимит входящего трафика"]
    outbounds: ["лимит исходящего трафика"]
    

    Пример для ВМ с двумя сетевыми интерфейсами
    networks: ["идентификатор сети 1", "идентификатор сети 2"]
    inbounds:  ["-", "лимит входящего трафика сети 2"]
    outbounds: ["лимит исходящего трафика сети 1", "-"]
    

    Для ВМ с двумя сетевыми интерфейсами ограничения указываются в том же порядке, что и интерфейсы в networks, значение "-" означает отсутствие ограничения на сетевой интерфейс.

  5. При необходимости определите индивидуальные параметры переподписки ЦПУ и ОЗУ.

  6. Сохраните файл.
  7. Загрузите файл на Платформу.

    Чтобы загрузить файлы в Sharx Base, введите команду

    resource --spec <SPEC>
    
    где spec — расположение YAML-файла.

    При локальном расположении на АРМ пользователя введите путь до файла.

    При расположении в стороннем репозитории укажите ссылку на данный файл.

  8. После загрузки проверьте список всех созданных ВМ

    scheduler request list --vcluster <VCLUSTER>
    
    где vcluster — имя виртуального кластера.

Пример

Примеры файлов создания ВМ:

  • для хранилища Libvirt с nodeSelector, указанием IP-адреса и ограничением на единственный сетевой интерфейс scheduler_request_libvirt.yaml.
  • для хранилища РСХД с nodeSelector, указанием IP-адресов и ограничением только на второй сетевой интерфейс scheduler_request_sp.yaml.

Создать ВМ через командную строку

Чтобы создать ВМ через командную строку, введите

scheduler request add --vcluster <VCLUSTER>
                      --name <NAME>
                     [--kind <KIND>]
                     [--descr <DESCR>]
                     [--labels <LABELS>]
                     [--data <DATA>]
                     [--type <common|linked_clone>]
                     [--template <TEMPLATE>]

где

  • vcluster — имя виртуального кластера;
  • name — имя пользовательского ресурса, содержащего ВМ;
  • kind — тип запроса. По умолчанию vm;
  • descr — описание виртуальной машины;
  • labels — метки ВМ. Задаются в формате key=value, разделяются пробелами;
  • data — определение спецификаций. Возможные значения можно посмотреть в примерах YAML-файлов: создание ВМ с Libvirt-хранилищем, создание ВМ с РСХД-хранилищем;
  • type — тип ВМ. Значение по умолчанию: common. Возможные значения:

    • common — ВМ создается стандартным способом, дисковая система формируется как полная копия хранилища источника;
    • linked_clone — ВМ создается по технологии связанных клонов, использует общий родительский виртуальный диск в режиме «только чтение» и хранит только свои собственные изменения;
  • template — идентификатор шаблона ВМ.

Внимание

Опция type=linked_clone может быть использована только для создания ВМ с Libvirt-хранилищем.

Прежде чем использовать опцию template при создании ВМ, необходимо прочитать статью Шаблоны виртуальных машин


Просмотреть ВМ

  1. Просмотреть список всех созданных ВМ

    scheduler request list --vcluster <VCLUSTER>
    
    где vcluster — имя виртуального кластера.

  2. Просмотреть информацию о конкретной ВМ

    scheduler request show --vcluster <VCLUSTER>
                           --name <NAME>
                          [--kind <KIND>]
                          [--show_uuid <SHOW_UUID>]
                          [--metrics <METRICS>]
    

    где

    • vcluster — имя виртуального кластера;
    • name — имя пользовательского ресурса, содержащего ВМ;
    • kind — тип запроса. По умолчанию vm;
    • show_uuid — показать идентификатор объекта;
    • metrics — получить метрики ВМ. Возможные значения:
      • yes — включить получение метрик,
      • no — отключить получение метрик.
  3. Просмотреть статус ВМ

    scheduler request status --vcluster <VCLUSTER>
                            [--kind <KIND>]
                            [--name <NAME>]
    

    где

    • vcluster — имя виртуального кластера;
    • kind — тип запроса. По умолчанию vm;
    • name — имя пользовательского ресурса, содержащего ВМ.
  4. Просмотреть логины и роли пользователей, имеющих доступ к ВМ

    scheduler request rights --vcluster <VCLUSTER>
                             --name <NAME>
                            [--kind <KIND>]
    

    где

    • vcluster — имя виртуального кластера;
    • name — имя пользовательского ресурса, содержащего ВМ;
    • kind — тип запроса. По умолчанию vm.

Обновить ВМ

scheduler request update --vcluster <VCLUSTER>
                         --name <NAME>
                         --data <DATA>
                        [--kind <KIND>]
                        [--descr <DESCR>]
                        [--labels <LABELS>]

где

  • vcluster — имя виртуального кластера;
  • name — имя пользовательского ресурса, содержащего ВМ;
  • data — определение спецификаций. Возможные значения можно посмотреть в примерах YAML-файлов: создание ВМ с Libvirt-хранилищем, создание ВМ с РСХД-хранилищем;
  • kind — тип запроса. По умолчанию vm;
  • descr — описание виртуальной машины;
  • labels — метки ВМ. Задаются в формате key=value, разделяются пробелами.

Изменить статус ВМ

scheduler request state --vcluster <VCLUSTER>
                        --name <NAME>
                        --state <START|STOP|REBOOT|SUSPEND|RESUME>
                       [--kind <KIND>]
                       [--vms <VMS>]
                       [--force <yes|no>]

где

  • vcluster — имя виртуального кластера;
  • name — имя пользовательского ресурса, содержащего ВМ, у которой изменяется статус;
  • state — статус ВМ. Возможные значения:

    • START — запуск ВМ;
    • STOP — остановка ВМ;
    • REBOOT — перезагрузка ВМ;
    • SUSPEND — приостановка работы ВМ;
    • RESUME — возобновление работы ВМ;
  • kind — тип запроса. Значение по умолчанию — vm;

  • vms — список имен ВМ. Значение по умолчанию — *;
  • force — опция, разрешающая принудительную небезопасную перезагрузку или остановку виртуальной машины. Значение по умолчанию — no. Возможные значения:

    • yes — принудительная перезагрузка или остановка ВМ разрешена. При этом несохраненные данные могут быть потеряны;
    • no — выполняется только штатная перезагрузка или остановка.

Внимание

Опция force действует исключительно для состояний STOP и REBOOT


Назначить метку СКЗИ виртуальной машине

Метка СКЗИ или криптографическая метка применяется к ВМ, чтобы обозначить ее принадлежность к контуру криптографической защиты. Метка имеет ключ-значение vm=crypto. Для ВМ с меткой блокируются функции миграции, создания снимков и шаблона на основе этой ВМ. Данные меры исключают риск утечки защищаемых данных.

Внимание

Криптографическую метку может назначить или снять только определенная роль — Администратор СКЗИ ВЦОД. Эта роль находится в конфигурации ВЦОД cb_virt и будет опиисана в следующих версиях документации

  1. Чтобы назначить метку СКЗИ виртуальной машине, введите команду

    scheduler request cips label add --vcluster <VCLUSTER>
                                     --name <NAME>
    

    где

    • vcluster — имя виртуального кластера;
    • name — имя пользовательского ресурса, содержащего ВМ.
  2. Чтобы удалить метку СКЗИ с виртуальной машины, введите команду

    scheduler request cips label del --vcluster <VCLUSTER>
                                     --name <NAME>
    

    где

    • vcluster — имя виртуального кластера;
    • name — имя пользовательского ресурса, содержащего ВМ.

Мигрировать ВМ

Важно

Чтобы мигрировать ВМ, у которых есть снимок:

  1. Выключите ВМ state=stop.
  2. Выполните миграцию с параметром mode=offline
scheduler request migrate --vcluster <VCLUSTER>
                          --name <NAME>
                          --node <NODE>
                          --mode <MODE>
                         [--kind <KIND>]

где

  • vcluster — имя виртуального кластера;
  • name — имя пользовательского ресурса, внутри которого находится мигрируемая ВМ;
  • node — идентификатор целевого узла;
  • mode — режим миграции. Возможные значения:

    • live — миграция без прекращения работы ВМ;
    • offline — миграция с отключением ВМ;
  • kind — тип запроса. Значение по умолчанию — vm.

Внимание

Миграция ВМ с меткой СКЗИ невозможна


Удалить ВМ

Чтобы удалить ВМ, введите

scheduler request del --vcluster <VCLUSTER> 
                      --name <NAME>
                     [--kind <KIND>]
                     [--backup <yes|no>]

где

  • vcluster — имя виртуального кластера;
  • name — имя пользовательского ресурса, содержащего ВМ;
  • kind — тип запроса. По умолчанию vm;
  • backup — создать снимок удаляемой ВМ. Снимок удалится через 1 день. Возможные значения backupyes, no.

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