Облачные хранилища LVM#

Блочная технология хранения с использованием LVM обеспечивает возможность использования LVM-томов вместо обычных файлов для хранения образов. При использовании данного типа хранилища отсутствует необходимость в организации файловой системы.

Примечание

Для хранилища LVM не требуется настройка кластерного управления логическими томами (CLVM) в кластере. Драйверы обновляют метаданные LVM каждый раз, когда образ требуется в другом узле.

Драйвер хранилища FS_LV#

Общие сведения#

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

../../../../_images/LV-node.png

Драйвер хранилища FS_LVM рекомендуется применять при наличии СХД высшего класса (high-end). В этом случае LUN можно экспортировать на все узлы.

Предупреждение

Для хранения образов в виде файлов используется распределенная файловая система, такая как, например, NFS. При этом необходимо выполнить настройку каталогов облачных хранилищ и точек монтирования так же, как и при использовании метода совместной передачи (shared) в облачном хранилище, построенном на базе файловой технологии хранения. Рекомендуется сначала выполнить развертывание системного хранилища, построенного на базе файловой технологии хранения. А затем, убедившись в его корректной работе, заменить его на системное хранилище LVM.

Общие настройки ПВ#

Настройка ПВ выполняется в два этапа:

  • регистрация системного хранилища;

  • регистрация хранилища образов.

При регистрации нового системного хранилища необходимо задать значения параметров в соответствии с таблицей:

Параметр

Значение

NAME

Имя хранилища

TYPE

SYSTEM_DS

DS_MAD

fs_lvm

BRIDGE_LIST

Список узлов, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (SAN).

Примечание

Пример

Создание хранилища LVM с использованием конфигурационного файла: 1. создать файл systemds.txt со следующим содержанием:

 NAME = lvm_system
TYPE = SYSTEM_DS
   TM_MAD = fs_lvm
   BRIDGE_LIST = "NODE1 NODE2"
  1. выполнить команду:

onedatastore create systemds.txt

Пример вывода после выполнения команды:

ID: 100

При регистрации нового хранилища образов необходимо задать значения параметров в соответствии с таблицей:

Параметр

Значение

NAME

Имя хранилища

TYPE

IMAGE_DS

DS_MAD

fs

TM_MAD

fs_lvm

DISK_TYPE

BLOCK

SAFE_DIRS

Необязательный параметр — перечень каталогов, разделенных символом пробела, в которые разрешается размещать образы. По умолчанию размещать образы запрещено во все подкаталоги корневого каталога «/».

BRIDGE_LIST

Список узлов, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (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 не поддерживается создание снимков диска и создание «тонких» дисков.

Общие настройки ПВ#

Настройка ПВ выполняется в два этапа:

  • регистрация системного хранилища;

  • регистрация хранилища образов.

Системные хранилища должны создаваться со значениями, приведенными в таблице:

Параметр

Значение

NAME

Имя хранилища

TYPE

SYSTEM_DS

TM_MAD

lvm_lvm

DRIVER

raw

Примечание

Пример

Регистрация системного хранилища с использованием конфигурационного файла:

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

Хранилища образов должны создаваться со значениями, приведенными в таблице:

Параметр

Значение

NAME

Имя хранилища

TYPE

IMAGE_DS

DS_MAD

lvm

TM_MAD

lvm_lvm

DISK_TYPE

BLOCK

DRIVER

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 не поддерживается миграция ВМ.

Общие настройки ПВ#

Настройка ПВ выполняется в два этапа:

  • регистрация системного хранилища;

  • регистрация хранилища образов.

Примечание

Примеры

  1. Регистрация хранилища образов с использованием конфигурационного файла:

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
  1. Регистрация системного хранилища с использованием конфигурационного файла:

cat > system-ds.conf <<EOT
NAME="lvm-thin-system"
TYPE="SYSTEM_DS" TM_MAD="lvm_thin" EOT
onedatastore create system-ds.conf

Настройка фронтальной машины#

Дополнительных действий по настройке не требуется.

Настройка узла виртуализации#

На каждом узле виртуализации необходимо создать отдельную группу LVM-томов для хранилища образов и системного хранилища.

Примечание

Примеры

  1. Создание группы LVM-томов для хранилища образов на блочном устройстве (физическом диске) /dev/sdc каждого узла:

pvcreate /dev/sdc vgcreate vg-one-<идентификатор_хранилища_образов> /dev/sdc
  1. Создание группы 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).

Примечание

  1. При создании тонкого LVM-тома дополнительно к исходному LVM-тому создаются два скрытых тома под метаданные (информация о выделенных блоках).

  2. При исчерпании свободного места на скрытых томах, выделенных под метаданные, возникает потеря метаданных и файловых систем на тонких томах, что приводит к ошибке записи.

  3. Поврежденные метаданные возможно восстановить с помощью команды

lvconvert --repair VG/ThinPoolName.
  1. Драйвер хранилища LVM_THIN поддерживает автоматическое увеличение размера томов, в том числе и скрытых томов, выделенных под метаданные. Для этого необходимо всегда оставлять свободное место в группе LVM-томов. Автоматическое увеличение размера томов настраивается в конфигурационном файле /etc/lvm.conf, параметр: thin_pool_autoextend.