Хранилища c драйвером BREST_LVM#
Особенности использования драйвера BREST_LVM#
Драйвер BREST_LVM позволяет организовать хранилище образов и системное хранилище в LVM.
Особенности функционирования хранилища BREST_LVM:
в BREST_LVM используется формат образа Qcow2 как в системном хранилище, так и в хранилище образов;
логический том, используемый в ВМ, будет увеличиться по мере использования диска ВМ;
при загрузке образы конвертируются в формат Qcow2;
персистентные образы подключаются к ВМ без предварительного копирования в системное хранилище;
хранилище поддерживает снимки состояния ВМ;
реализована возможность миграции образов и ВМ из других типов хранилищ в BREST_LVM;
загружаемые диски в форматах RAW и Qcow2 с опцией
preallocation=full
(заполнение неиспользованного места нулями) будут преобразованы в диски сpreallocation=none
(т.е. нули будут удалены). При этом логический том не будет автоматически уменьшен после записи на него конвертированного образа. В связи с этим, рекомендуется загружать диски в платформу в формате Qcow2 для экономии пространства хранилища;загружаемые диски в формате Qcow2 с использованием опции compression (сжатие) будут преобразованы в Qcow2-формат на базе логического тома без сжатия. В этом случае, после «распаковки» размер тома в хранилище увеличится приблизительно в 3.26 раза;
оптимальное потребление пространства хранилища за счет хранения фактически занимаемого объема данных. Логические тома создаются по реальному размеру данных в образе с запасом в 8%, а не по виртуальному размеру, указанному в свойствах образа.
Ограничения использования хранилища BREST_LVM:
снимки дисков ВМ не поддерживаются;
необходимость установки блокировок сервисами
lvmlock
иsanlock
;необходимость копирования образа в системное хранилище при работе в непостоянном режиме;
миграция ВМ между системными хранилищами одного типа доступна только при отсутствии снимков ВМ;
минимальный размер создаваемого тома 1 ГБ;
репликация на уровне СХД (между двумя СХД, LUN-to-LUN) не поддерживается из-за ограничений модуля блокировок
sanlock
и процедуры аренды и освобождения (метаинформация о блокировках) для активации и деактивации логического тома;данное хранилище не подходит для реализации Метрокластера, Disaster-Recovery и схожих сценариев;
данное хранилище не подходит для сетевых сред с высокой сетевой задержкой (High Latency) из-за ограничений модуля блокировок
sanlock
и процедуры аренды и освобождения (метаинформация о блокировках). Высокая сетевая задержка (7 мс и выше) может приводить к проблемам с активацией и деактивацией логических томов, поскольку данные операции выполняются в синхронном режиме;хранилище поддерживает до 2000 серверов, включая все серверы управления и серверы виртуализации;
необходимость предварительного создания групп LVM-томов для системных хранилищ и хранилищ образов, с обязательной настройкой сервисов
lvmlock
иsanlock
;не поддерживает переменную
BRIDGE_LIST
, что означает необходимость настройки групп LVM-томов на серверах управления:

Регистрация хранилищ в интерфейсе командной строки#
Примечание
Действия по регистрации хранилищ выполняются в ОС СН под учетной записью администратора ОС СН с высоким уровнем целостности.
Регистрация хранилища образов с использованием конфигурационного файла#
Создать конфигурационный файл хранилища образов
images-ds.conf
командой:
sudo nano images-ds.conf
Добавить в созданный файл следующие строки и сохранить файл:
cat > images-ds.conf <<EOT
NAME="brest-lvm-images"
TYPE="IMAGE_DS"
DISK_TYPE="BLOCK"
DS_MAD="brest_lvm"
TM_MAD="brest_lvm" DRIVER="qcow2"
EOT
Выполнить команду:
sudo onedatastore create images-ds.conf
После выполнения команды будет выведен идентификатор созданного хранилища, например:
ID: 100
Регистрация системного хранилища с использованием конфигурационного файла#
Создать конфигурационный файл системного хранилища
system-ds.conf
командой:
sudo nano system-ds.conf
Добавить в созданный файл следующие строки и сохранить файл:
cat > system-ds.conf <<EOT
NAME="brest-lvm-system"
TYPE="SYSTEM_DS"
TM_MAD="brest_lvm" DRIVER="qcow2"
EOT
Выполнить команду:
sudo onedatastore create system-ds.conf
После выполнения команды будет выведен идентификатор созданного хранилища, например:
ID: 101
Регистрация хранилищ в веб-интерфейсе ПВ#
Регистрация хранилища образов в веб-интерфейсе ПВ#
Для регистрации системного хранилища BREST_LVM в веб-интерфейсе ПВ необходимо:
В веб-интерфейсе ПВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку +, а затем в выпадающем списке выбрать пункт Создать:

На открывшейся странице Создать хранилище:
перейти во вкладку Расширенный;
во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки:
NAME="brest-lvm-images" TYPE="IMAGE_DS" DISK_TYPE="BLOCK" DS_MAD="brest_lvm" TM_MAD="brest_lvm" DRIVER="qcow2"
нажать на кнопку Создать:
![]()
Регистрация системного хранилища в веб-интерфейсе ПВ#
В веб-интерфейсе ПВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице «Хранилища» нажать на кнопку +, а затем в выпадающем списке выбрать пункт Создать:

На открывшейся странице Создать хранилище:
перейти во вкладку Расширенный;
во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки:
NAME="brest-lvm-system" TYPE="SYSTEM_DS" TM_MAD="brest_lvm" DRIVER="qcow2"
нажать на кнопку Создать:
![]()
Настройка блокировок lvmlock и sanlock для групп томов LVM#
Примечание
Действия выполняются один раз на всех серверах управления и серверах виртуализации кластера (необходимые настройки распределенного LVM для использовании lvmlockd
и sanlock
).
Для настройки серверов кластера необходимо:
Открыть конфигурационный файл
/etc/lvm/lvm.conf
командой:
sudo nano /etc/lvm/lvm.conf
В конфигурационном файле
/etc/lvm/lvm.conf
включить использованиеlvmlockd
, поменяв его значение с «0» на «1»:
use_lvmlockd = 1
Открыть конфигурационный файл
/etc/lvm/lvmlocal.conf
командой:
sudo nano /etc/lvm/lvmlocal.conf
В конфигурационном файле
/etc/lvm/lvmlocal.conf
задать уникальный идентификационный номер для каждого сервера, где будет использоваться LVM_BREST:
host_id = <идентификационный_номер>
где <идентификационный_номер>
— произвольно выбранное уникальное цифровое значение от 1 до 2000.
Примечание
Для корректной работы службы контроля блокировок томов sanlock
все серверы кластера, на которые подключаются хранилища, должны иметь отличные друг от друга идентификационные номера. Данные номера представляют собой любые уникальные числа в диапазоне от 1 до 2000 и не связаны с IP-адресами серверов.
Активировать автозагрузку сервисов
lvmlockd
,lvmlocks
,sanlock
иbrest-lvm
:
sudo systemctl enable lvmlockd lvmlocks sanlock brest-lvm
Для применения выполненных настроек перезапустить сервисы
lvmlockd
,lvmlocks
,sanlock
иbrest-lvm
:
sudo systemctl restart lvmlockd lvmlocks sanlock brest-lvm
Создание групп томов BREST_LVM#
Примечание
Действия выполняются на одном из серверов кластера.
Определить блочные устройства, подключенные к серверу, выполнив команду:
lsblk
Пример вывода после выполнения команды:
locadm@mgmt2:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 250G 0 disk
├─vg--one--101-lv--one--image--0 253:7 0 3G 0 lvm
├─vg--one--101-lv--one--image--3 253:9 0 1,2G 0 lvm
└─vg--one--101-lv--one--image--4 253:10 0 10G 0 lvm
sdb 8:16 0 150G 0 disk
├─vg--one--100-lv--one--vm--0--0 253:0 0 10G 0 lvm
├─vg--one--100-lv--one--vm--1--0 253:1 0 10G 0 lvm
├─vg--one--100-lv--one--vm--2--0 253:2 0 10G 0 lvm
├─vg--one--100-lv--one--vm--3--0 253:3 0 10G 0 lvm
├─vg--one--100-lv--one--vm--4--0 253:4 0 3G 0 lvm
├─vg--one--100-lv--one--vm--5--0 253:5 0 3G 0 lvm
├─vg--one--100-lv--one--vm--6--0 253:6 0 3G 0 lvm
├─vg--one--100-lv--one--vm--7--0 253:8 0 3G 0 lvm
└─vg--one--100-lv--one--vm--8--0 253:11 0 3G 0 lvm
sr0 11:0 1 364K 0 rom
sr1 11:1 1 166M 0 rom
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 99G 0 part /
├─vda2 252:2 0 1K 0 part
└─vda5 252:5 0 975M 0 part [SWAP]
Примечание
При использовании протокола multipath
необходимо указывать не наименование определенного блочного устройства, а его alias или идентификатор.
Получить список дисков LUN, подключенных к серверу, выполнив команды:
sudo ls -al /dev/disk/by-id/ | grep <sda>
sudo ls -al /dev/disk/by-id/ | grep <sdb>
где <sda>
и <sdb>
— наименования блочных устройств.
Пример вывода после выполнения команд:
locadm@mgmt2:~$ ls -al /dev/disk/by-id/ | grep sda
lrwxrwxrwx 1 root root 9 мар 5 13:04 lvm-pv-uuid-BHiG7e-vqnV-gYYH-Op1c-A0sX-srGK-9kwv4z -> ../../sda
lrwxrwxrwx 1 root root 9 мар 5 13:04 scsi-360014057fb55687b6784f07b4936ab21 -> ../../sda
lrwxrwxrwx 1 root root 9 мар 5 13:04 wwn-0x60014057fb55687b6784f07b4936ab21 -> ../../sda
locadm@mgmt2:~$ ls -al /dev/disk/by-id/ | grep sdb
lrwxrwxrwx 1 root root 9 мар 5 12:58 lvm-pv-uuid-3UeG8h-Jjpm-Uo3y-e6nM-3fRd-u3B6-p4Iq5R -> ../../sdb
lrwxrwxrwx 1 root root 9 мар 5 12:58 scsi-36001405430fdeae2f8a4d8187cc5fa4c -> ../../sdb
lrwxrwxrwx 1 root root 9 мар 5 12:58 wwn-0x6001405430fdeae2f8a4d8187cc5fa4c -> ../../sdb
locadm@mgmt2:~$ ^C
Создать группу системного хранилища, c использованием LUN, выбранного для системного хранилища (в данном примере: «360014057fb55687b6784f07b4936ab21»):
sudo vgcreate --shared --lock-type sanlock vg-one-<SYSTEM_DS_ID> /dev/disk/by-id/scsi-<360014057fb55687b6784f07b4936ab21>
где:
<SYSTEM_DS_ID>
— идентификатор системного хранилища;<360014057fb55687b6784f07b4936ab21>
— идентификатор LU.
Создать отдельную группу LVM-томов для хранилища образов на блочных устройствах, с использованием LUN, выбранного для хранилища образов (в данном примере: «36001405430fdeae2f8a4d8187cc5fa4c»):
sudo vgcreate --shared --lock-type sanlock vg-one-<IMAGE_DS_ID> /dev/disk/by-id/scsi-<36001405430fdeae2f8a4d8187cc5fa4c>
где:
<IMAGE_DS_ID>
— идентификатор хранилища образов;<36001405430fdeae2f8a4d8187cc5fa4c>
— идентификатор LUN.
Для активации блокировок, перезапустить службу
brest-lvm
на всех серверах кластера, выполнив на них команду:
sudo systemctl restart brest-lvm
Примечание
Запуск службы brest-lvm
, как и создание группы томов LVM с блокировками, может занять длительное время (от 30 секунд до 3 минут) в связи с особенностями функционирования сервиса sanlock
. Следовательно после загрузки сервера хранилище будет доступно только после запуска блокировок.
Миграция образов из других хранилищ в BREST_LVM#
Для выполнения миграции образов, в интерфейсе CLI выполните команду:
sudo oneimage convert <IMAGE_ID> <BREST_LVM_IMAGE_DS_ID>
где:
<IMAGE_ID>
— идентификатор переносимого образа;<BREST_LVM_IMAGE_DS_ID>
— идентификатор хранилища образов BREST_LVM.
Примечание
Команда sudo oneimage convert <IMAGE_ID> <BREST_LVM_IMAGE_DS
переносит в хранилище BREST_LVM только неиспользуемые образы (в состоянии «ГОТОВО»). Используемый образ можно перенести только вместе с ВМ, которая его использует.
Примечание
На данный момент поддерживаются только хранилища LVM_LVM, LVM_THIN и qcow2.
Миграция ВМ из других хранилищ в BREST_LVM#
Примечание
Поддерживается только миграция ВМ в состоянии ВЫКЛЮЧЕНО.
Для выполнения миграции виртуальных машин, в интерфейсе CLI выполните команду:
sudo onevm changeds <VMID> <BREST_LVM_SYSTEM_DS_ID> <BREST_LVM_IMAGE_DS_ID>
где:
<VMID>
— идентификатор виртуальной машины;<BREST_LVM_SYSTEM_DS_ID>
— идентификатор системного хранилища BREST_LVM;<BREST_LVM_IMAGE_DS_ID>
— идентификатор хранилища образов BREST_LVM.
Миграция ВМ будет происходить следующими этапами:
При миграции будет создана копия образа ВМ в хранилище BREST_LVM.
Имя нового образа будет изменено на
<ИМЯ_ОРИГИНАЛЬНОГО_ОБРАЗА>_<ID_ОРИГИНАЛЬНОГО_ОБРАЗА>
.ВМ будет перемещена в системное хранилище BREST_LVM и связана с новым образом.
При использовании непостоянных образов вторая и последующие ВМ, связанная с оригинальным образом, будет привязана к новому уже созданному образу в хранилище BREST_LVM, при условии, что его имя не менялось. Если изменить имя нового образа, будет создан еще один образ.
По завершении миграции всех ВМ, связанных с образом, он останется в хранилище образов, но с ним уже не будет связана ни одна ВМ.
Примечание
На данный момент поддерживаются только хранилища LVM_LVM, LVM_THIN и qcow2.