В рамках инфраструктуры в облаке OpenStack вы получаете определённый объём дискового пространства в системе хранения данных (СХД), в пределах которого можно создавать дисковые тома для виртуальных машин, их снапшоты, а также загрузочные образы.
Наше облако OpenStack сконфигурировано таким образом, что загрузка виртуальных машин осуществляется непосредственно с дисковых томов. Это даёт возможность устанавливать на виртуальные машины любые операционные системы и настраивать их индивидуально (в отличие от наиболее классической конфигурации OpenStack, предполагающей, что виртуальные машины используют типовые образы операционных систем, а набор таких образов ограничен).
Для создания дисковых томов используется ресурс openstack_blockstorage_volume_v3.
По состоянию на январь 2022 года ресурс openstack_blockstorage_volume_v2 также работает.
Пожалуйста, обратите внимание на перечисленные ниже аргументы, значения которых определяются особенностями работы нашего дискового хранилища:
hdd-sio
для накопителей типа HDD, либо ssd-sio
для накопителей типа SSD (в зависимости от того, какой именно тип накопитилей заказан для вашей услуги).В примерах, которые приводятся в официальной документации, фигурирует аргумент Region — в нашей инфраструктуре его можно не указывать.
Обычный (не загрузочный) том на хранилище SSD объёмом 16 гигабайт:
resource "openstack_blockstorage_volume_v3" "volume_1" { name = "volume_1" description = "non-bootable SSD volume" size = 16 volume_type = "ssd-sio" }
Загрузочный том, ОС CentOS 7 из готового образа CentOS 7, имеющегося в OpenStack:
resource "openstack_blockstorage_volume_v3" "volume_from_image_1" { name = "volume_from_image_1" description = "bootable CentOS 7 volume" size = 8 volume_type = "hdd-sio" image_id = "7c9b647c-0184-47be-bbfe-176818a5883e" }
Значение аргумента image_id для образов можно посмотреть в веб-интерфейсе (дашборде) в разделе Compute —> Images.
Загрузочные образы создаются при помощи ресурса openstack_images_image_v2.
В официальной документации приводится пример создания загрузочного образа в формате QCOW2 — т.е. в виде файловой системы с уже установленной ОС. Такой образ копируется на дисковый том виртуальной машины, и виртуальная машина сразу же с него стартует. Архитектура среды OpenStack ориентирована именно на такой сценарий использования.
Однако в реальных условиях часто возникает необходимость установки ОС c ISO-образа. Для этого также нужно создать загрузочный образ, пример конфигурации такого образа приведён ниже:
resource "openstack_images_image_v2" "ubuntu_20" { name = "Ubuntu 20.04 LTS" image_source_url = "http://ubuntu.colocall.net/ubuntu-releases/20.04.3/ubuntu-20.04.3-live-server-amd64.iso" container_format = "bare" disk_format = "iso" }
Различные сценарии использования загрузочных образов при запуске виртуальных машин рассмотрены в следующем разделе.