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

Драйвер хранилища FS_LVM
рекомендуется применять при наличии СХД высшего класса (high-end
). В этом случае LUN можно экспортировать на все серверы виртуализации.
Для хранения образов дисков в виде файлов используется распределенная файловая система, такая как, например, NFS. При этом необходимо выполнить настройку каталогов хранилищ образов и точек монтирования так же, как и при использовании метода совместной передачи (shared
) в хранилище, построенном на базе файловой технологии хранения. Рекомендуется сначала выполнить развертывание хранилища образов, построенного на базе файловой технологии хранения. А затем, убедившись в его корректной работе, заменить его на хранилище LVM.
Параметры хранилищ#
При регистрации нового системного хранилища необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
SYSTEM_DS |
|
|
|
Список серверов виртуализации, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (SAN). Не используется, если сервер управления имеет прямой доступ к системе хранения данных. |
При регистрации нового хранилища образов необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
IMAGE_DS |
|
fs |
|
fs_lvm |
|
BLOCK |
|
Перечень каталогов, разделенных символом пробела, в которых разрешается размещать образы. По умолчанию имеет значение |
|
Список серверов виртуализации, разделенных пробелами, через которые осуществляется доступ к системе хранения данных (SAN). Не используется, если сервер управления имеет прямой доступ к системе хранения данных. |
Регистрация хранилищ#
Предупреждение
Действия по регистрации хранилищ в ПВ выполняются под учетной записью администратора ПВ.
Примечание
Примеры
Регистрация системного хранилища с использованием конфигурационного файла:
создать файл systemds.txt со следующим содержанием:
NAME = fs_lvm_system
TYPE = SYSTEM_DS
TM_MAD = fs_lvm
BRIDGE_LIST = "NODE1 NODE2"
выполнить команду:
onedatastore create systemds.txt
Пример вывода после выполнения команды:
ID: 100
Регистрация хранилища образов с использованием конфигурационного файла:
создать файл 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:
Инициализировать блочное устройство для работы с LVM:
sudo pvcreate ``/dev/sda``
Пример вывода после успешного выполнения команды:
Physical volume "/dev/sda" successfully created.
Создать группу томов:
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
не поддерживается создание снимков диска и создание «тонких» дисков.
Параметры хранилищ#
При регистрации нового системного хранилища необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
|
|
|
|
|
При регистрации нового хранилища образов необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
IMAGE_DS |
|
lvm |
|
lvm_lvm |
|
BLOCK |
|
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.
Создать группу томов:
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
.
Параметры хранилищ#
При регистрации нового системного хранилища необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
|
|
|
При регистрации нового хранилища образов необходимо задать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
|
<Наименование_хранилища> |
|
|
|
|
|
|
|
|
|
|
Регистрация хранилищ#
Предупреждение
Действия по регистрации хранилищ в ПВ выполняются под учетной записью администратора ПВ.
Примечание
Примеры
Регистрация хранилища образов с использованием конфигурационного файла:
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
Настройка ПВ для использования хранилища образов#
Предупреждение
Действия по настройке ПВ для использования хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.
Все компьютеры (выполняющие функцию сервера управления или сервера виртуализации) должны иметь доступ к одним и тем же сетевым блочным устройствам.
На одном из компьютеров (выполняющем функцию сервера управления или сервера виртуализации) необходимо создать отдельную группу томов для хранилища образов, которая должна иметь наименование вида: vg-one-<идентификатор_хранилища_образов>
Примечание
Пример
Формирование группы томов (состоит из одного тома /dev/sdc
) для хранилища образов с идентификатором 101:
инициализировать блочное устройство для работы с LVM:
sudo pvcreate /dev/sdc
Пример вывода после успешного выполнения команды:
Physical volume "/dev/sdc" successfully created.
Создать группу томов:
sudo vgcreate vg-one-101 /dev/sdc
Пример вывода после успешного выполнения команды:
Volume group "vg-one-101" successfully created
Настройка ПВ для использования системного хранилища#
Предупреждение
Действия по настройке ПВ для использования хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.
Все компьютеры (выполняющие функцию сервера управления или сервера виртуализации) должны иметь доступ к одним и тем же сетевым блочным устройствам.
На каждом сервере виртуализации необходимо выполнить следующие действия:
Создать отдельную группу томов с именем вида:
vg-one-<идентификатор_системного_хранилища>-<имя_узла_виртуализации>
.Создать пул логических томов с именем вида:
vg-one-<идентификатор_системного_хранилища>-<имя_узла_виртуализации>/ onethinpool
.
Примечание
Пример
Настройка сервера виртуализации для использования системного хранилища с идентификатором 100:
Инициализировать блочное устройство для работы с LVM:
sudo pvcreate /dev/sda
Пример вывода после успешного выполнения команды:
Physical volume "/dev/sda" successfully created.
Создать группу томов (в представленном примере группа состоит из одного тома):
sudo vgcreate vg-one-100-node1 /dev/sda
Пример вывода после успешного выполнения команды:
Volume group "vg-one-100-node1" successfully created
Создать пул логических томов:
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 ГБ.