Управление дисковыми томами

В рамках инфраструктуры в облаке 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 ориентирована именно на такой сценарий использования.

Однако в реальных условиях часто возникает необходимость установки ОС 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"
}

Различные сценарии использования загрузочных образов при запуске виртуальных машин рассмотрены в следующем разделе.