Хранилище BREST_LVM
Регистрация хранилищ в интерфейсе командной строки
Действия, описанные ниже, должны быть выполнены на сервере управления (текущем лидере RAFT).
Регистрация хранилища образов с использованием конфигурационного файла:
Создать конфигурационный файл хранилища образов
images-ds.conf
командой:sudo nano images-ds.conf- Добавить в созданный файл следующие строки и сохранить файл:CODE
- Выполнить команду: sudo onedatastore create images-ds.confПосле выполнения команды будет выведен идентификатор созданного хранилища, например:CODE
Регистрация системного хранилища с использованием конфигурационного файла:
- Создать конфигурационный файл системного хранилища
system-ds.conf
командой:nano system-ds.conf - Добавить в созданный файл следующие строки и сохранить файл: CODE
- Выполнить команду: sudo onedatastore create system-ds.confПосле выполнения команды будет выведен идентификатор созданного хранилища, например:CODE
Регистрация хранилищ в веб-интерфейсе ПК СВ
Регистрация хранилища образов в веб-интерфейсе ПК СВ
Для регистрации хранилища образов BREST_LVM в веб-интерфейсе ПК СВ необходимо:
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку +, а затем в выпадающем списке выбрать пункт Создать:
- На открывшейся странице Создать хранилище:
Регистрация системного хранилища в веб-интерфейсе ПК СВ
Для регистрации системного хранилища BREST_LVM в веб-интерфейсе ПК СВ необходимо:
Настройка блокировок lvmlock и sanlock для групп томов LVM
Действия выполняются один раз на всех серверах управления и серверах виртуализации кластера (необходимые настройки распределенного LVM для использовании lvmlockd
и sanlock
).
Для настройки серверов кластера необходимо:
- Открыть конфигурационный файл
/etc/lvm/lvm.conf
командой:sudo nano /etc/lvm/lvm.conf - В конфигурационном файле
/etc/lvm/lvm.conf
включить использованиеlvmlockd
, поменяв его значение с0
на1
:CODE - Открыть конфигурационный файл
/etc/lvm/lvmlocal.conf
командой:sudo nano /etc/lvm/lvmlocal.conf - В конфигурационном файле
/etc/lvm/lvmlocal.conf
задать уникальный идентификационный номер для каждого сервера, где будет использоваться LVM_BREST:CODE<идентификационный_номер>
— произвольно выбранное уникальное цифровое значение от 1 до 2000.Для корректной работы службы контроля блокировок томов
sanlock
все серверы кластера, на которые подключаются хранилища, должны иметь отличные друг от друга идентификационные номера. Данные номера представляют собой любые уникальные числа в диапазоне от 1 до 2000 и не связаны с IP-адресами серверов. - Активировать автозагрузку сервисов: l
vmlockd
,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Пример вывода после выполнения команды:CODE
При использовании протокола
multipath
необходимо указывать не наименование определенного блочного устройства, а егоalias
или идентификатор. - Получить список дисков LUN, подключенных к серверу, выполнив команды:где
sudo ls -al /dev/disk/by-id/ | grep <sda>
sudo ls -al /dev/disk/by-id/ | grep <sdb>
<sda>
и<sdb>
– наименования блочных устройств.
Пример вывода после выполнения команд:CODE - Создать группу системного хранилища, 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-томов на серверах управления:
- Регистрация хранилищ в интерфейсе командной строки
- Регистрация хранилищ в веб-интерфейсе ПК СВ
- Настройка блокировок lvmlock и sanlock для групп томов LVM
- Создание групп томов BREST_LVM
- Миграция образов из других хранилищ в BREST_LVM
- Миграция ВМ из других хранилищ в BREST_LVM
- Особенности и ограничения использования драйвера BREST_LVM