Download PDF
Download page Хранилище BREST_LVM.
Хранилище BREST_LVM
С доступными параметрами для настройки хранилищ типа BREST_LVM можно ознакомиться в таблице.
Регистрация хранилищ в интерфейсе командной строки
Действия, описанные ниже, должны быть выполнены на сервере управления (текущем лидере RAFT).
Регистрация хранилища образов с использованием конфигурационного файла:
Создать конфигурационный файл хранилища образов
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" EOTCODE - Выполнить команду: sudo onedatastore create images-ds.confПосле выполнения команды будет выведен идентификатор созданного хранилища, например:
ID: 100CODE
Регистрация системного хранилища с использованием конфигурационного файла:
- Создать конфигурационный файл системного хранилища
system-ds.confкомандой:nano system-ds.conf - Добавить в созданный файл следующие строки и сохранить файл:
cat > system-ds.conf <<EOT NAME="brest-lvm-system" TYPE="SYSTEM_DS" TM_MAD="brest_lvm" DRIVER="qcow2" EOTCODE - Выполнить команду: sudo onedatastore create system-ds.confПосле выполнения команды будет выведен идентификатор созданного хранилища, например:
ID: 101CODE
Регистрация хранилищ в веб-интерфейсе ПК СВ
Регистрация хранилища образов в веб-интерфейсе ПК СВ
Для регистрации хранилища образов BREST_LVM в веб-интерфейсе ПК СВ необходимо:
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку +, а затем в выпадающем списке выбрать пункт Создать:

- На открывшейся странице Создать хранилище:
- Перейти во вкладку Расширенный;
Во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки:
NAME="brest-lvm-images" TYPE="IMAGE_DS" DISK_TYPE="BLOCK" DS_MAD="brest_lvm" TM_MAD="brest_lvm" DRIVER="qcow2"CODEНажать на кнопку Создать:

Регистрация системного хранилища в веб-интерфейсе ПК СВ
Для регистрации системного хранилища BREST_LVM в веб-интерфейсе ПК СВ необходимо:
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку +, а затем в выпадающем списке выбрать пункт Создать:

- На открывшейся странице Создать хранилище:
- перейти во вкладку Расширенный;
во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки:
NAME="brest-lvm-system" TYPE="SYSTEM_DS" TM_MAD="brest_lvm" DRIVER="qcow2"CODE- нажать на кнопку Создать:

Настройка блокировок 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 = 1CODE - Открыть конфигурационный файл
/etc/lvm/lvmlocal.confкомандой:sudo nano /etc/lvm/lvmlocal.conf - В конфигурационном файле
/etc/lvm/lvmlocal.confзадать уникальный идентификационный номер для каждого сервера, где будет использоваться LVM_BREST:гдеhost_id = <идентификационный_номер>CODE<идентификационный_номер>— произвольно выбранное уникальное цифровое значение от 1 до 2000.Для корректной работы службы контроля блокировок томов
sanlockвсе серверы кластера, на которые подключаются хранилища, должны иметь отличные друг от друга идентификационные номера. Данные номера представляют собой любые уникальные числа в диапазоне от 1 до 2000 и не связаны с IP-адресами серверов. - Активировать автозагрузку сервисов: l
vmlockd,sanlockиbrest-lvm:sudo systemctl enable lvmlockd sanlock brest-lvm - Для применения выполненных настроек перезапустить сервисы
lvmlockd,sanlockиbrest-lvm:sudo systemctl restart lvmlockd 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]CODEПри использовании протокола
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:~$ ^CCODE - Создать группу системного хранилища, c использованием LUN, выбранного для системного хранилища (в данном примере:
360014057fb55687b6784f07b4936ab21):sudo vgcreate --shared --lock-type sanlock vg-one-<SYSTEM_DS_ID> /dev/disk/by-id/scsi-<360014057fb55687b6784f07b4936ab21>где:- <SYSTEM_DS_ID> — идентификатор системного хранилища;
- <
360014057fb55687b6784f07b4936ab21> – идентификатор LUN;
- Создать отдельную группу 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_ID> переносит в хранилище 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.
Особенности и ограничения использования драйвера 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-томов на серверах управления: