Облачные хранилища LVM#
Блочная технология хранения с использованием LVM обеспечивает возможность использования LVM-томов вместо обычных файлов для хранения образов. При использовании данного типа хранилища отсутствует необходимость в организации файловой системы.
Примечание
Для хранилища LVM не требуется настройка кластерного управления логическими томами (CLVM) в кластере. Драйверы обновляют метаданные LVM каждый раз, когда образ требуется в другом узле.
Драйвер хранилища FS_LV#
Общие сведения#
Образы хранятся как обычные файлы, по умолчанию установлен следующий путь размещения в хранилище образов: /var/lib/one/datastores/<идентификатор_образа>
, но при создании ВМ они выгружаются в логические тома (LV). Виртуальные машины запускаются из LV на узле:

Драйвер хранилища FS_LVM
рекомендуется применять при наличии СХД высшего класса (high-end
). В этом случае LUN можно экспортировать на все узлы.
Предупреждение
Для хранения образов в виде файлов используется распределенная файловая система, такая как, например, NFS. При этом необходимо выполнить настройку каталогов облачных хранилищ и точек монтирования так же, как и при использовании метода совместной передачи (shared) в облачном хранилище, построенном на базе файловой технологии хранения. Рекомендуется сначала выполнить развертывание системного хранилища, построенного на базе файловой технологии хранения. А затем, убедившись в его корректной работе, заменить его на системное хранилище LVM.
Общие настройки ПВ#
Настройка ПВ выполняется в два этапа:
регистрация системного хранилища;
регистрация хранилища образов.
При регистрации нового системного хранилища необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
Имя хранилища |
|
SYSTEM_DS |
|
|
|
Список узлов, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (SAN). |
Примечание
Пример
Создание хранилища LVM с использованием конфигурационного файла:
1. создать файл systemds.txt
со следующим содержанием:
NAME = lvm_system
TYPE = SYSTEM_DS
TM_MAD = fs_lvm
BRIDGE_LIST = "NODE1 NODE2"
выполнить команду:
onedatastore create systemds.txt
Пример вывода после выполнения команды:
ID: 100
При регистрации нового хранилища образов необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
Имя хранилища |
|
|
|
|
|
|
|
|
|
Необязательный параметр — перечень каталогов, разделенных символом пробела, в которые разрешается размещать образы. По умолчанию размещать образы запрещено во все подкаталоги корневого каталога «/». |
|
Список узлов, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (SAN).Не используется, если фронтальная машина имеет прямой доступ к системе хранения данных. |
Примечание
Пример
Создание хранилища LVM с использованием конфигурационного файла: 1. создать файл
imageds.txt
со следующим содержанием:NAME = lvm_image TYPE = IMAGE_DS DS_MAD = fs TM_MAD = fs_lvm DISK_TYPE = "BLOCK" SAFE_DIRS="/var/tmp /tmp" BRIDGE_LIST = "NODE1 NODE2"2. выполнить команду: .. code-block:: bash
onedatastore create imageds.txt
Пример вывода после выполнения команды:
ID: 101
Настройка фронтальной машины#
Дополнительная настройка фронтальной машины не требуется.
Настройка узла виртуализации#
Узлы должны отвечать следующим требованиям:
на узлах должен быть установлен пакет
lvm2
;все узлы должны иметь доступ к одним и тем же LUN;
на одном узле должна быть создана группа томов совместно используемых LUN для каждого хранилища с именем вида:
vg-one-<идентификатор_системного_хранилища>
.
Примечание
Пример
В системе две виртуальные машины (9 и 10) используют образ с идентификатором «0», размещенный в хранилище LVM. На узлах выполнена настройка совместно используемого LUN и создана группа томов с именем vg-one-0
. Хранилище будет иметь следующую схему (пример вывода после выполнения команды lvs):
LV VG Attr LSize Pool Origin Data% Meta% Move
lv-one-10-0 vg-one-0 -wi------- 2.20g lv-one-9-0 vg-one-0 -wi------- 2.20g
Драйвер хранилища LVM_LVM#
Общие сведения#
Драйвер позволяет организовать хранилище образов и системное хранилище в LVM. При использовании драйвера хранилища LVM_LVM
необходимо наличие на всех узлах кластера общих блочных устройств хранения данных. При этом, в отличие от использования драйвера FS_LVM
, нет необходимости создавать общую сетевую файловую систему для образов.
Особенности функционирования драйвера хранилища LVM_LVM
:
предварительно необходимо создать отдельные группы LVM-томов для хранилища образов и системного хранилища;
при загрузке образа диска ВМ в хранилище образов автоматически создается LVM-том, в который записывается загружаемый образ в формате
raw
;при развертывании ВМ в системном хранилище автоматически создается копия LVM-тома из хранилища образов.
Предупреждение
В драйвере хранилища LVM_LVM
не поддерживается создание снимков диска и создание «тонких» дисков.
Общие настройки ПВ#
Настройка ПВ выполняется в два этапа:
регистрация системного хранилища;
регистрация хранилища образов.
Системные хранилища должны создаваться со значениями, приведенными в таблице:
Параметр |
Значение |
---|---|
|
Имя хранилища |
|
|
|
|
|
|
Примечание
Пример
Регистрация системного хранилища с использованием конфигурационного файла:
cat > system-ds.conf <<EOT
NAME="lvm-lvm-system"
TYPE="SYSTEM_DS"
TM_MAD="lvm_lvm"
DRIVER="raw"
EOT onedatastore create system-ds.conf
Пример вывода после выполнения команды:
ID: 100
Хранилища образов должны создаваться со значениями, приведенными в таблице:
Параметр |
Значение |
---|---|
|
Имя хранилища |
|
IMAGE_DS |
|
lvm |
|
lvm_lvm |
|
BLOCK |
|
raw |
Примечание
Пример
Создание хранилища с использованием конфигурационного файла:
cat > images-ds.conf <<EOT
NAME="lvm-images"
TYPE="IMAGE_DS"
DISK_TYPE="BLOCK"
DS_MAD="lvm"
TM_MAD="lvm_lvm"
DRIVER="raw" EOT onedatastore create images-ds.conf
Пример вывода после выполнения команды:
ID: 101
Настройка фронтальной машины#
На фронтальной машине необходимо создать отдельные группы LVM-томов для хранилища образов и системного хранилища.
Примечание
Пример
Создание групп LVM-томов для хранилища образов и системного хранилища на блочных устройствах (физических дисках) /dev/sdc
и /dev/sdb
:
pvcreate /dev/sdc pvcreate /dev/sdb vgcreate vg-one-<идентификатор_хранилища_образов> /dev/sdc vgcreate vg-one-<идентификатор_системного_хранилища> /dev/sdb
Настройка узла виртуализации#
Дополнительных действий по настройке не требуется.
Драйвер хранилища LVM_THIN#
Общие сведения#
Драйвер позволяет организовать хранилище образов и системное хранилище в LVM.
При использовании драйвера хранилища LVM_THIN
, в отличие от драйвера LVM_LVM
, системное хранилище организуется индивидуально — для этого необходимо указать отдельное блочное устройство, с которым будет взаимодействовать узел. Это может быть локальное блочное устройство узла виртуализации или выделенное (для каждого узла) блочное устройство системы хранения данных.
Особенности функционирования драйвера хранилища LVM_THIN
:
предварительно необходимо создать отдельные группы LVM-томов для хранилища образов и системного хранилища;
при загрузке образа диска ВМ в хранилище образов автоматически создается LVM-том, в который пишется загружаемый образ в формате
raw
;при развертывании ВМ в системном хранилище из образа диска автоматически создается тонкий LVM-том в формате qcow2.
Предупреждение
В драйвере хранилища LVM_THIN
не поддерживается миграция ВМ.
Общие настройки ПВ#
Настройка ПВ выполняется в два этапа:
регистрация системного хранилища;
регистрация хранилища образов.
Примечание
Примеры
Регистрация хранилища образов с использованием конфигурационного файла:
cat > images-ds.conf <<EOT
NAME="lvm-thin-images"
TYPE="IMAGE_DS"
DISK_TYPE="BLOCK"
DS_MAD="lvm_thin"
TM_MAD="lvm_thin" DRIVER="qcow2"
EOT onedatastore create images-ds.conf
Регистрация системного хранилища с использованием конфигурационного файла:
cat > system-ds.conf <<EOT
NAME="lvm-thin-system"
TYPE="SYSTEM_DS" TM_MAD="lvm_thin" EOT
onedatastore create system-ds.conf
Настройка фронтальной машины#
Дополнительных действий по настройке не требуется.
Настройка узла виртуализации#
На каждом узле виртуализации необходимо создать отдельную группу LVM-томов для хранилища образов и системного хранилища.
Примечание
Примеры
Создание группы LVM-томов для хранилища образов на блочном устройстве (физическом диске)
/dev/sdc
каждого узла:
pvcreate /dev/sdc vgcreate vg-one-<идентификатор_хранилища_образов> /dev/sdc
Создание группы LVM-томов для системного хранилища на локальном блочном устройстве (физическом диске)
/dev/sdb
каждого узла:
pvcreate /dev/sdb vgcreate vg-one-<SYSTEM_DS_ID>-<HOSTNAME> /dev/sdb lvcreate -T -L <SIZE>G vg-one-<SYSTEM_DS_ID>-<HOSTNAME>/onethinpool
где:
<SYSTEM_DS_ID>
— идентификатор системного хранилища;
<HOSTNAME>
— имя узла кластера;
<SIZE>
— размер тонкого пула в ГБ, должен быть не больше размера локального блочного устройства (в представленном примере — /dev/sdb
).
Примечание
При создании тонкого LVM-тома дополнительно к исходному LVM-тому создаются два скрытых тома под метаданные (информация о выделенных блоках).
При исчерпании свободного места на скрытых томах, выделенных под метаданные, возникает потеря метаданных и файловых систем на тонких томах, что приводит к ошибке записи.
Поврежденные метаданные возможно восстановить с помощью команды
lvconvert --repair VG/ThinPoolName.
Драйвер хранилища
LVM_THIN
поддерживает автоматическое увеличение размера томов, в том числе и скрытых томов, выделенных под метаданные. Для этого необходимо всегда оставлять свободное место в группе LVM-томов. Автоматическое увеличение размера томов настраивается в конфигурационном файле/etc/lvm.conf
, параметр:thin_pool_autoextend
.