Создание образа

Если среди готовых образов нет подходящего, загрузите свой собственный образ.

Создание образа в панели управления

Для создания нового образа в панели управления:

  1. Перейдите в раздел Образы в проекте.
  2. Нажмите кнопку Создать образ.
  3. В открывшемся окне выберите регион.
  4. Выберите источник, из которого будет создан образ:
    • из файла — загрузка файла образа с локального компьютера;
    • из URL — общедоступная в интернете ссылка на файл с образом;
    • из диска — ранее созданный локальный или сетевой диск. Образ можно создать только в том регионе, в котором находится диск.
  5. Введите имя образа.
  6. При выборе в качестве источника файла или URL укажите формат образа.
  7. В некоторых регионах можно выбрать зону доступности, в которой будет создан образ (доступно для образов, загруженных из файла или по URL). В этой зоне сетевые диски и виртуальные машины из образа будут создаваться быстрее.

    Примечание: образы размером менее 16 ГБ будут автоматически реплицированы (скопированы) в соседние зоны. Для образов бóльшего размера выполните загрузку образа повторно либо создайте тикет на копирование, указав регион и UUID образа.

  8. Выберите операционную систему.

  9. При установке галочки Указать минимальные требования к диску и памяти появятся поля для определения минимального количества оперативной памяти и объёма дисков. Эти ограничения впоследствии будут использоваться панелью управления и API для определения пригодности выбранной конфигурации виртуальной машины для старта на базе этого образа.

  10. Нажмите кнопку Создать.

Созданный образ появится в Хранилище образов в регионе, в котором он создан.

Создание образа с помощью CLI

Использование консольных клиентов для загрузки образов позволяет указать специфические свойства, необходимые для тонкой настройки виртуальной машины. Подробно о начале работы с OpenStack CLI.

В регионах Облачной платформы с несколькими кластерами хранилища при создании образа из внешнего источника (файла или URL-ссылки) нужно указать зону доступности, в которую этот образ будет загружен первоначально. Благодаря этому создание сетевых дисков и виртуальных машин с локальным диском будет оптимизировано по времени на период фоновой синхронизации образов между хранилищами в зонах доступности региона.

Примечание: образы размером менее 16 ГБ будут автоматически реплицированы (скопированы) в соседние зоны. Для образов бóльшего размера выполните загрузку образа повторно либо создайте тикет на копирование, указав регион и UUID образа.

Загрузка образа по ссылке

Чтобы создать образ загрузкой по ссылке, введите:

glance image-create-via-import \
 --import-method web-download \
 --uri <uri_image> \
 --name <image_name> \
 --disk-format <disk_format> \
 --container-format <container_format> \
 --property hw_disk_bus=scsi \
 --property hw_scsi_model=virtio-scsi \
 --property x_sel_image_owner=Selectel \
 --property hw_qemu_guest_agent=yes
 --store <zone_name>

Где:

  • <uri_image> — URL-ссылка на образ;
  • <image_name> – имя образа;
  • <disk_format> — формат диска (образа);
  • <container_format> — формат контейнера, подробнее про форматы дисков и контейнеров;
  • <zone_name> — имя зоны, в которую будет загружен образ, например ru-1a.

Загрузка образа из файла

Для загрузки образа из файла с локальной машины:

glance image-create \
 --name <image_name> \
 --disk-format <disk_format> \
 --container-format <container_format> \
 --file <file> \
 --property hw_disk_bus=scsi \
 --property hw_scsi_model=virtio-scsi \
 --store <zone_name>

Где:

  • <image_name> – имя образа;
  • <disk_format> — формат диска (образа);
  • <container_format> — формат контейнера, подробнее про форматы дисков и контейнеров;
  • <file> — локальный файл;
  • <zone_name> — имя зоны, в которую будет загружен образ, например ru-1a.

Для создания образа в формате ISO:

glance image-create ISO_IMAGE \
 --disk-format iso \
 --container-format bare \
 --file <iso_file> \
 --property hw_disk_bus=scsi \
 --property hw_scsi_model=virtio-scsi
 --store <zone_name>

Загрузка большого образа из файла

При загрузке больших образов (более 100 ГБ) используйте curl. Для загрузки большого образа из файла воспользуйтесь последовательностью команд:

  1. Создайте токен для работы с API:

    openstack token issue -c id -f value
  2. Введите команду:

    curl 'https://api.<region>.selvpc.ru/image/v2/images' \
    -H 'X-Auth-Token: <token>' \
    -H 'Content-Type: application/json;charset=utf-8' \
    --data {"name":"<image_name>","disk_format":"<disk_format>","container_format":"<container_format>"}'

    Где:

    • <region> – название региона облачной платформы, например ru-1;
    • <token> – токен для работы с API, полученный в выводе первой команды;
    • <image_name> – имя образа;
    • <disk_format> – формат диска (образа);
    • <container_format> – формат контейнера, подробнее про форматы дисков и контейнеров.
  3. Для загрузки образа в одну выбранную зону введите:

    curl 'https://api.<region>.selvpc.ru/image/v2/images/<image_id_from_first_request>/file' -X PUT \
    -H 'Content-Type: application/octet-stream' \
    -H ‘X-Image-Meta-Store: <zone_name>’ \
    -H 'X-Auth-Token: <token>' \
    -T <path_to_file>

    Где:

    • <image_id_from_first_request> – идентификатор созданного образа из предыдущей команды;
    • <zone_name> — имя зоны, в которую будет загружен образ, например ru-1a;
    • <path_to_file> – путь к файлу на диске.

Загрузка образа из диска

Для создания консистентного образа из диска нужно отключить диск от виртуальной машины. Менее надёжный, но более удобный вариант — создать временный диск из снапшота основного диска без остановки виртуальной машины.

Создание образа из сетевого диска

Для создания образа из сетевого диска:

  1. Остановите сервер:

    openstack server stop <server>
  2. Просмотрите список сетевых дисков:

    openstack volume list
  3. Отключите диск от сервера:

    openstack server remove volume <server> <volume>
  4. Проверьте, что диск перешёл в состояние available:

    openstack volume list
  5. Создайте образ из сетевого диска:

    openstack image create --volume <volume> <image_name>

Создание образа из облачного сервера с локальным диском

Для создания образа из облачного сервера (виртуальной машины) с локальным диском введите:

openstack server image create --name <image_name> <server>

Подробнее об операциях с дисками в инструкции Управление дисками.