Хранилища LVM#

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

Примечание

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

В ПВ поддерживаются внешние хранилища, построенные базе технологии SAN (Storage Area Network — сеть хранения данных), которая обеспечивает доступ к данным на уровне блочных устройств.

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

Настройка хранилищ c драйвером FS_LV#

Особенности использования драйвера FS_LVM#

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

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

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

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

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

Сетевая файловая система NFS не поддерживает использование меток безопасности. Если планируется использование этой файловой системы при построении хранилища, функционирующего в мандатном контексте, то для ВМ следует установить уровень целостности, назначаемый по умолчанию, равным 0.

Параметры хранилищ#

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

Параметр

Значение

NAME

<Наименование_хранилища>

TYPE

SYSTEM_DS

TM_MAD

fs_lvm

BRIDGE_LIST

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

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

Параметр

Значение

NAME

<Наименование_хранилища>

TYPE

IMAGE_DS

DS_MAD

fs

TM_MAD

fs_lvm

DISK_TYPE

BLOCK

SAFE_DIRS

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

BRIDGE_LIST

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

Регистрация хранилищ#

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

Действия по регистрации хранилищ в ПВ выполняются под учетной записью администратора ПВ.

Примечание

Примеры

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

  1. создать файл systemds.txt со следующим содержанием:

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

onedatastore create systemds.txt

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

ID: 100

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

  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

Настройка ПВ для использования хранилищ#

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

Действия по настройке ПВ для использования хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.

Необходимо обеспечить совместный доступ всех серверов виртуализации к каталогу хранилища образов. Для этого используется распределенная файловая система, такая как, например, NFS. Кроме того, все серверы виртуализации должны иметь доступ к одним и тем же сетевым блочным устройствам.

Примечание

К серверу управления сетевые блочные устройства можно не подключать. Сервер управления может получить доступ к системному хранилищу через узлы виртуализации (параметр BRIDGE_LIST).

На основе совместно используемых сетевых блочных устройств для каждого хранилища должна быть создана группа томов с именем вида: vg-one-<идентификатор_системного_хранилища>

Примечание

Формирование групп томов достаточно выполнить только на одном из узлов виртуализации.

Пример

Формирование группы томов (состоит из одного тома /dev/sda) для системного хранилища с идентификатором 100:

  1. Инициализировать блочное устройство для работы с LVM:

sudo pvcreate ``/dev/sda``

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

Physical volume "/dev/sda" successfully created.
  1. Создать группу томов:

sudo vgcreate vg-one-100 /dev/sda

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

Volume group "vg-one-100" successfully created

Настройка хранилищ c драйвером LVM_LVM#

Особенности использования драйвера 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

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

Параметр

Значение

NAME

<Наименование_хранилища>

TYPE

IMAGE_DS

DS_MAD

lvm

TM_MAD

lvm_lvm

DISK_TYPE

BLOCK

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

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

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-томов для хранилища образов и системного хранилища.

Примечание

Пример

Формирование группы томов (состоит из одного тома /dev/sda) для системного хранилища с идентификатором 100 и группы томов (состоит из одного тома /dev/sdb) для хранилища образов с идентификатором 101: 1. Инициализировать блочные устройства для работы с LVM:

sudo pvcreate /dev/sda sudo pvcreate /dev/sdb

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

Physical volume "/dev/sda" successfully created.
  1. Создать группу томов:

sudo vgcreate vg-one-100 /dev/sda sudo vgcreate vg-one-101 /dev/sdb

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

Volume group "vg-one-100" successfully created

Настройка хранилищ c драйвером LVM_THIN#

Особенности использования драйвера LVM_THIN#

Драйвер LVM_LVM позволяет организовать и хранилище образов, и системное хранилище в LVM. В отличие от драйвера LVM_LVM, при создании в системном хранилище нового логического тома LVM, его фактический размер соответствует объему имеющихся данных на исходном LVM-томе, и увеличивается по мере записи данных в этот том. Такой логический том LVM называют «тонким» LVM-томом. При этом для каждого сервера виртуализации в общем системном хранилище организуется индивидуальный ресурс — пул «тонких» LVM-томов.

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

«Тонкие» LVM-тома не могут совместно использоваться несколькими серверами виртуализации. В связи с этим, при использовании драйвера хранилища LVM_THIN не поддерживается миграция ВМ.

Особенности функционирования драйвера хранилища LVM_THIN:

  • предварительно необходимо создать отдельные группы LVM-томов для хранилища образов;

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

  • на каждом сервере виртуализации предварительно необходимо создать отдельный пул «тонких» LVM-томов;

  • при загрузке образа диска ВМ в хранилище образов автоматически создается LVM-том, в который пишется загружаемый образ в формате raw;

  • при развертывании ВМ в системном хранилище из образа диска автоматически создается тонкий LVM-том в формате qcow2.

Параметры хранилищ#

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

Параметр

Значение

NAME

<Наименование_хранилища>

TYPE

SYSTEM_DS

TM_MAD

lvm_thin

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

Параметр

Значение

NAME

<Наименование_хранилища>

TYPE

IMAGE_DS

DS_MAD

lvm_thin

TM_MAD

lvm_thin

DISK_TYPE

BLOCK

DRIVER

raw

Регистрация хранилищ#

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

Действия по регистрации хранилищ в ПВ выполняются под учетной записью администратора ПВ.

Примечание

Примеры

  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

Настройка ПВ для использования хранилища образов#

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

Действия по настройке ПВ для использования хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.

Все компьютеры (выполняющие функцию сервера управления или сервера виртуализации) должны иметь доступ к одним и тем же сетевым блочным устройствам.

На одном из компьютеров (выполняющем функцию сервера управления или сервера виртуализации) необходимо создать отдельную группу томов для хранилища образов, которая должна иметь наименование вида: vg-one-<идентификатор_хранилища_образов>

Примечание

Пример

Формирование группы томов (состоит из одного тома /dev/sdc) для хранилища образов с идентификатором 101:

  1. инициализировать блочное устройство для работы с LVM:

sudo pvcreate /dev/sdc

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

Physical volume "/dev/sdc" successfully created.
  1. Создать группу томов:

sudo vgcreate vg-one-101 /dev/sdc

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

Volume group "vg-one-101" successfully created

Настройка ПВ для использования системного хранилища#

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

Действия по настройке ПВ для использования хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.

Все компьютеры (выполняющие функцию сервера управления или сервера виртуализации) должны иметь доступ к одним и тем же сетевым блочным устройствам.

На каждом сервере виртуализации необходимо выполнить следующие действия:

  1. Создать отдельную группу томов с именем вида: vg-one-<идентификатор_системного_хранилища>-<имя_узла_виртуализации>.

  2. Создать пул логических томов с именем вида: vg-one-<идентификатор_системного_хранилища>-<имя_узла_виртуализации>/ onethinpool.

Примечание

Пример

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

  1. Инициализировать блочное устройство для работы с LVM:

sudo pvcreate /dev/sda

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

Physical volume "/dev/sda" successfully created.
  1. Создать группу томов (в представленном примере группа состоит из одного тома):

sudo vgcreate vg-one-100-node1 /dev/sda

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

Volume group "vg-one-100-node1" successfully created
  1. Создать пул логических томов:

sudo lvcreate -T -L <размер>G vg-one-100-node1/onethinpool

где <размер> — размер пула логических томов в ГБ. Должен быть не больше размера локального блочного устройства (в представленном примере — /dev/sda). Пример вывода после успешного выполнения команды:

Thin pool volume with chunk size 64,00 KiB can address at most 15,81 TiB of data.
Logical volume "onethinpool" created.

При создании «тонкого» LVM-тома дополнительно к исходному LVM-тому создаются два скрытых тома под метаданные (информация о выделенных блоках). При исчерпании свободного места в пуле логических томов возникает потеря метаданных на скрытых томах. Это приводит к повреждению файловых систем на «тонких» томах, что проявляется как ошибка записи.

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

lvconvert --repair <наименование_группы>/<наименование_пула>

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

  • thin_pool_autoextend_threshold — пороговое значение (в процентах от заданного размера «тонкого» LVM-тома) при котором автоматически будет увеличен размер этого тома. По умолчанию имеет значение 100, в этом случае автоматическое расширение тома не производится;

  • thin_pool_autoextend_percent — объем дискового пространства (в процентах от заданного размера «тонкого» LVM-тома) на которое автоматически будет увеличен размер этого тома. По умолчанию имеет значение 20.

Примечание

Пример

Автоматическое увеличение размера томов на 20%, когда объем дискового пространства, выделенный для «тонкого» LVM-тома заполнится на 70%:

thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20

Например, был создан «тонкий» LVM-том размером 1 ГБ. Когда объем данных, размещенных на этом томе, достигнет размера 700 МБ, «тонкий» LVM-том будет автоматически расширен до 1,2 ГБ. После того как объем данных, размещенных на этом томе, достигнет размера 840 МБ, «тонкий» LVM-том будет автоматически расширен до 1,44 ГБ.