Создание виртуальных машин

Ограничения

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

Предварительные требования

Чтобы создать виртуальную машину

Панель администратора

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

  2. Укажите имя новой ВМ.
  3. Выберите загрузочный носитель ВМ.

    Если выбрать образ или том с назначенным размещением, то созданная ВМ унаследует это размещение.

    После выбора загрузочного носителя необходимые для загрузки тома будут автоматически добавлены в раздел Тома.

  4. Настройте диски ВМ.

    1. В окне Тома убедитесь, что загрузочный том по умолчанию достаточно большой для размещения гостевой ОС. В противном случае нажмите значок с многоточием и выберите Изменить. Измените размер тома и нажмите Сохранить.
    2. Добавьте дополнительные диски в ВМ путем создания или присоединения томов. Для этого щелкните по значку карандаша в разделе Тома, а затем нажмите Добавить или Присоединить в окне Тома.

    3. Выберите тома, которые будут удалены при удалении ВМ. Для этого щелкните по значку карандаша в разделе Тома, нажмите значок с многоточием напротив нужного тома и выберите Изменить. Включите параметр Удалить по завершении и нажмите Сохранить.
    4. Завершив настройку дисков ВМ, нажмите Готово.
  5. Выберите объем ОЗУ и ресурсов ЦП, которые будут выделены ВМ, в разделе Тип ВМ. В окне Тип ВМ выберите тип и нажмите Готово.

    При выборе типа для ВМ убедитесь, что он удовлетворяет требованиям к оборудованию гостевой ОС.

    Если выбрать тип ВМ с назначенным размещением, то созданная ВМ унаследует это размещение.

  6. Добавьте сетевые интерфейсы для ВМ в разделе Сети.

    1. В окне Сетевые интерфейсы нажмите Добавить, чтобы присоединить сетевой интерфейс.
    2. В окне Добавить сетевой интерфейс выберите вычислительную сеть, к которой следует подключиться, и укажите MAC-адрес, адреса IPv4 и/или IPv6 и группы безопасности. По умолчанию MAC-адрес и основной IP-адрес назначаются автоматически. Чтобы указать их вручную, снимите флажки Назначить автоматически и введите нужные адреса. При необходимости можно назначить сетевому интерфейсу дополнительные IP-адреса в разделе Вторичные IP-адреса. Учтите, что вторичный адрес IPv6 недоступен для подсети IPv6, которая работает в режиме SLAAC или DHCPv6 без отслеживания состояния.

      Вторичные IP-адреса, в отличие от основного, не будут автоматически назначены сетевому интерфейсу внутри гостевой ОС виртуальной машины. Их следует назначать вручную.

      Указав параметры сетевого интерфейса, нажмите Добавить. Интерфейс появится в списке Сетевые интерфейсы.

    3. При необходимости измените IP-адреса и группы безопасности добавленных сетевых интерфейсов. Для этого щелкните по значку с многоточием, выберите Изменить и задайте нужные параметры.

    4. Завершив настройку сетевых интерфейсов ВМ, нажмите Готово.
    5. Включите EUI-64 в сетевых настройках ВМ для корректного назначения IP-адреса.

  7. Если вы выбрали загрузку из шаблона или тома, на котором установлены cloud-init и OpenSSH:

    Поскольку у облачных образов нет пароля по умолчанию, доступ к ВМ, развернутым из этих образов, можно получить только с помощью метода аутентификации с ключом SSH.

  8. Разрешите горячее подключение ресурсов ЦП и ОЗУ для ВМ в разделе Расширенные параметры, чтобы можно было изменить тип работающей ВМ. Горячее подключение также можно разрешить после создания ВМ.

  9. Настроив все параметры ВМ, нажмите Развернуть, чтобы создать и загрузить ВМ.

Если вы развертываете ВМ из ISO-образа, потребуется установить гостевую ОС внутри ВМ с помощью встроенной консоли VNC. Виртуальные машины, созданные из шаблона или загрузочного тома, уже имеют предустановленную гостевую ОС.

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute server create [--description <description>]
                                     [--metadata <metadata>]
                                     [--user-data <user-data>]
                                     [--key-name <key-name>]
                                     [--config-drive] [--count <count>]
                                     [--ha-enabled {true,false}]
                                     [--placements <placements>]
                                     [--allow-live-resize]
                                     --network id|<id=id[,key=value,…]>
                                     --volume <source=source[,key=value,…]>
                                     --flavor <flavor> <server-name>
--description <description>
Описание виртуальной машины
--metadata <metadata>
Метаданные виртуальной машины
--user-data <user-data>
Файл пользовательских данных
--key-name <key-name>
Пара ключей для внедрения
--config-drive
Использовать временный (эфемерный) диск
--count <count>
Если указано число и оно больше 1, то аргумент имя рассматривается как шаблон присвоения имен.
--ha-enabled {true,false}
Включение или отключение высокой доступности для виртуальной машины.
--placements <placements>
Имена или идентификаторы размещений, в которые следует добавить виртуальную машину.
--allow-live-resize
Разрешает изменение размера виртуальной машины в онлайн-режиме.
--network id|<id=id[,key=value,…]>

Создает виртуальную машину с заданной сетью. Укажите этот параметр несколько раз, чтобы создать несколько сетей.

  • id: присоединить сетевой интерфейс к указанной (по идентификатору или имени) сети
  • разделенные запятыми пары key=value с ключами (необязательно):
    • mac: MAC-адрес для сетевого интерфейса
    • fixed-ip: фиксированный IP-адрес или None для автоматического выделения IP-адреса. Этот параметр можно использовать несколько раз.
    • spoofing-protection-enable:: включение защиты от спуфинга пакетов на сетевом интерфейсе
    • spoofing-protection-disable:: отключение защиты от спуфинга пакетов на сетевом интерфейсе
    • security-group: имя или идентификатор группы безопасности. Этот параметр можно использовать несколько раз.
    • no-security-group: не использовать группу безопасности
--volume <source=source[,key=value,…]>

Создает виртуальную машину с заданным томом. Укажите этот параметр несколько раз, чтобы создать несколько томов.

  • source: тип источника (volume для тома, image для образа, snapshot для снимка или blank — пустой)
  • разделенные запятыми пары key=value с ключами (необязательно):
    • id: идентификатор или имя ресурса для указанного типа источника (требуется для источников типа volume — том, image — образ и snapshot — снимок)
    • size: размер блочного устройства в гигабайтах (требуется для источников типа image — образ и blank — пустой)
    • boot-index: загрузочный индекс блочного устройства (требуется при наличии нескольких томов с типом источника volume)
    • bus: тип контроллера блочного устройства (scsi)
    • type: тип блочного устройства (disk или cdrom)
    • rm: удалить блочное устройство по завершении работы виртуальной машины (yes или no)
    • storage-policy: политика хранилища блочного устройства
--flavor <flavor>
Идентификатор или имя типа ВМ
<server-name>
Имя для виртуальной машины

Например, чтобы создать виртуальную машину myvm, основанную на образа cirros и типе ВМ tiny, и подключить ее к виртуальной сети private с фиксированным IP-адресом192.168.128.100, выполните:

# vinfra service compute server create myvm --network id=private,fixed-ip=192.168.128.100 \
--volume source=image,id=cirros,size=1 --flavor tiny
+--------------+--------------------------------------+
| Field        | Value                                |
+--------------+--------------------------------------+
| config_drive |                                      |
| created      | 2019-05-29T11:24:04Z                 |
| description  |                                      |
| flavor       | disk: 0                              |
|              | ephemeral: 0                         |
|              | extra_specs: {}                      |
|              | original_name: tiny                  |
|              | ram: 512                             |
|              | swap: 0                              |
|              | vcpus: 1                             |
| ha_enabled   | True                                 |
| host         |                                      |
| id           | 8cd29296-8bee-4efb-828d-0e522d816c6e |
| key_name     |                                      |
| metadata     | {}                                   |
| name         | myvm                                 |
| networks     | []                                   |
| power_state  | NOSTATE                              |
| project_id   | b4267de6fd0c442da99542cd20f5932c     |
| status       | BUILD                                |
| task_state   | scheduling                           |
| updated      | 2019-05-29T11:24:21Z                 |
| user_data    |                                      |
| vm_state     | building                             |
| volumes      | []                                   |
+--------------+--------------------------------------+

Новая виртуальная машина появится в выводе команды vinfra service compute server list:

# vinfra service compute server list
+--------------------------------------+------+--------+------------------------+
| id                                   | name | status | host                   |
+--------------------------------------+------+--------+------------------------+
| 8cd29296-8bee-4efb-828d-0e522d816c6e | myvm | BUILD  | node002.vstoragedomain |
+--------------------------------------+------+--------+------------------------+