В рамках інфраструктури у хмарі OpenStack ви отримуєте певний обсяг дискового простору в системі зберігання даних (СХД), в межах якого можна створювати дискові томи для віртуальних машин, їх снапшоти, а також завантажувальні образи.
Наша хмара OpenStack налаштована таким чином, що завантаження віртуальних машин здійснюється безпосередньо з дискових томів. Це дає можливість встановлювати на віртуальні машини будь-які операційні системи та налаштовувати їх індивідуально (на відміну від найбільш класичної конфігурації OpenStack, що передбачає, що віртуальні машини використовують типові образи операційних систем, а набір таких образів обмежений).
Для створення дискових томів використовується ресурс openstack_blockstorage_volume_v3.
Станом на початок 2022 року ресурс openstack_blockstorage_volume_v2 також працює.
Будь ласка, зверніть увагу на наведені нижче аргументи, значення яких визначаються особливостями роботи нашого дискового сховища:
У прикладах, що наводяться в офіційній документації, фігурує аргумент 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 орієнтована саме на такий сценарій використання.
Однак у реальних умовах часто виникає необхідність встановлення ОС 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" }
Різні сценарії використання завантажувальних образів при запуску віртуальних машин розглянуті в наступному розділі.