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