Создание образа
Если среди готовых образов нет подходящего, загрузите свой собственный образ.
Создание образа в панели управления
Для создания нового образа в панели управления:
- Перейдите в раздел Образы в проекте.
- Нажмите кнопку Создать образ.
- В открывшемся окне выберите регион.
- Выберите источник, из которого будет создан образ:
- из файла — загрузка файла образа с локального компьютера;
- из URL — общедоступная в интернете ссылка на файл с образом;
- из диска — ранее созданный локальный или сетевой диск. Образ можно создать только в том регионе, в котором находится диск.
- Введите имя образа.
- При выборе в качестве источника файла или URL укажите формат образа.
В некоторых регионах можно выбрать зону доступности, в которой будет создан образ (доступно для образов, загруженных из файла или по URL). В этой зоне сетевые диски и виртуальные машины из образа будут создаваться быстрее.
Примечание: образы размером менее 16 ГБ будут автоматически реплицированы (скопированы) в соседние зоны. Для образов бóльшего размера выполните загрузку образа повторно либо создайте тикет на копирование, указав регион и UUID образа.
Выберите операционную систему.
При установке галочки Указать минимальные требования к диску и памяти появятся поля для определения минимального количества оперативной памяти и объёма дисков. Эти ограничения впоследствии будут использоваться панелью управления и API для определения пригодности выбранной конфигурации виртуальной машины для старта на базе этого образа.
Нажмите кнопку Создать.
Созданный образ появится в Хранилище образов в регионе, в котором он создан.
Создание образа с помощью 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. Для загрузки большого образа из файла воспользуйтесь последовательностью команд:
Создайте токен для работы с API:
openstack token issue -c id -f value
Введите команду:
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>
– формат контейнера, подробнее про форматы дисков и контейнеров.
Для загрузки образа в одну выбранную зону введите:
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>
– путь к файлу на диске.
Загрузка образа из диска
Для создания консистентного образа из диска нужно отключить диск от виртуальной машины. Менее надёжный, но более удобный вариант — создать временный диск из снапшота основного диска без остановки виртуальной машины.
Создание образа из сетевого диска
Для создания образа из сетевого диска:
Остановите сервер:
openstack server stop <server>
Просмотрите список сетевых дисков:
openstack volume list
Отключите диск от сервера:
openstack server remove volume <server> <volume>
Проверьте, что диск перешёл в состояние available:
openstack volume list
Создайте образ из сетевого диска:
openstack image create --volume <volume> <image_name>
Создание образа из облачного сервера с локальным диском
Для создания образа из облачного сервера (виртуальной машины) с локальным диском введите:
openstack server image create --name <image_name> <server>
Подробнее об операциях с дисками в инструкции Управление дисками.