Регистрация хранилищ в интерфейсе командной строки

Действия, описанные ниже, должны быть выполнены на сервере управления (текущем лидере RAFT).

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

  1. Создать конфигурационный файл хранилища образов images-ds.conf командой: 

    sudo nano images-ds.conf
  2. Добавить в созданный файл следующие строки и сохранить файл:
    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
    CODE
  3.  Выполнить команду
    sudo onedatastore create images-ds.conf
    После выполнения команды будет выведен идентификатор созданного хранилища, например:
    ID: 100
    CODE

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

  1. Создать конфигурационный файл системного хранилища system-ds.conf командой:
    nano system-ds.conf
  2. Добавить в созданный файл следующие строки и сохранить файл: 
    cat > system-ds.conf <<EOT
    NAME="brest-lvm-system"
    TYPE="SYSTEM_DS"
    TM_MAD="brest_lvm"
    DRIVER="qcow2"
    EOT
    CODE
  3. Выполнить команду: 
    sudo onedatastore create system-ds.conf
    После выполнения команды будет выведен идентификатор созданного хранилища, например:
    ID: 101
    CODE

Регистрация хранилищ в веб-интерфейсе ПК СВ

Регистрация хранилища образов в веб-интерфейсе ПК СВLink to Регистрация хранилища образов в веб-интерфейсе ПК СВ

Для регистрации хранилища образов BREST_LVM в веб-интерфейсе ПК СВ необходимо:

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

  2. На открывшейся странице Создать хранилище:
    • Перейти во вкладку Расширенный;
    • Во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки: 

      NAME="brest-lvm-images"
      TYPE="IMAGE_DS"
      DISK_TYPE="BLOCK"
      DS_MAD="brest_lvm"
      TM_MAD="brest_lvm"
      DRIVER="qcow2"
      CODE
    • Нажать на кнопку Создать:

Регистрация системного хранилища в веб-интерфейсе ПК СВLink to Регистрация системного хранилища в веб-интерфейсе ПК СВ

Для регистрации системного хранилища BREST_LVM в веб-интерфейсе ПК СВ необходимо:

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

  2. На открывшейся странице Создать хранилище:
    • перейти во вкладку Расширенный;
    • во вкладке Расширенный в поле Сохранить шаблон Хранилища здесь ввести следующие строки: 

      NAME="brest-lvm-system"
      TYPE="SYSTEM_DS"
      TM_MAD="brest_lvm"
      DRIVER="qcow2"
      CODE
    • нажать на кнопку Создать:

Настройка блокировок lvmlock и sanlock для групп томов LVM

Действия выполняются один раз на всех серверах управления и серверах виртуализации кластера (необходимые настройки распределенного LVM для использовании lvmlockd и sanlock).

Для настройки серверов кластера необходимо:

  1. Открыть конфигурационный файл /etc/lvm/lvm.conf командой:
    sudo nano /etc/lvm/lvm.conf
  2. В конфигурационном файле /etc/lvm/lvm.conf включить использование lvmlockd, поменяв его значение с 0 на 1:
    use_lvmlockd = 1
    CODE
  3. Открыть конфигурационный файл /etc/lvm/lvmlocal.conf командой:
    sudo nano /etc/lvm/lvmlocal.conf
  4. В конфигурационном файле /etc/lvm/lvmlocal.conf задать уникальный идентификационный номер для каждого сервера, где будет использоваться LVM_BREST:
    host_id = <идентификационный_номер>
    CODE
    где <идентификационный_номер> — произвольно выбранное уникальное цифровое значение от 1 до 2000.

    Для корректной работы службы контроля блокировок томов sanlock все серверы кластера, на которые подключаются хранилища, должны иметь отличные друг от друга идентификационные номера. Данные номера представляют собой любые уникальные числа в диапазоне от 1 до 2000 и не связаны с IP-адресами серверов.

  5. Активировать автозагрузку сервисов: lvmlockd, lvmlocks, sanlock и brest-lvm:
    sudo systemctl enable lvmlockd lvmlocks sanlock brest-lvm
  6. Для применения выполненных настроек перезапустить сервисы lvmlockd, lvmlocks, sanlock и brest-lvm:
    sudo systemctl restart lvmlockd lvmlocks sanlock brest-lvm

Создание групп томов BREST_LVM

Действия выполняются на одном из серверов кластера.

  1. Определить блочные устройства, подключенные к серверу, выполнив команду:
    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 или идентификатор.

  2. Получить список дисков 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
    CODE
  3. Создать группу системного хранилища, 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;
  4. Создать отдельную группу 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.
  5. Для активации блокировок, перезапустить службу 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.

Миграция ВМ будет происходить следующими этапами:

  1. При миграции будет создана копия образа ВМ в хранилище BREST_LVM.
  2. Имя нового образа будет изменено на <ИМЯ ОРИГИНАЛЬНОГО ОБРАЗА>_<ID ОРИГИНАЛЬНОГО ОБРАЗА>.
  3. ВМ будет перемещена в системное хранилище BREST_LVM и связана с новым образом.
  4. При использовании непостоянных образов вторая и последующие ВМ, связанная с оригинальным образом, будет привязана к новому уже созданному образу в хранилище BREST_LVM, при условии, что его имя не менялось. Если изменить имя нового образа, будет создан еще один образ.
  5. По завершении миграции всех ВМ, связанных с образом, он останется в хранилище образов, но с ним уже не будет связана ни одна ВМ.

На данный момент поддерживаются только хранилища LVM_LVM, LVM_THIN, и qcow2.

Особенности и ограничения использования драйвера BREST_LVM

Драйвер BREST_LVM позволяет организовать хранилище образов и системное хранилище в LVM.

Особенности функционирования хранилища BREST_LVMLink to Особенности функционирования хранилища BREST_LVM

  • В BREST_LVM используется формат образа Qcow2 как в системном хранилище, так и в хранилище образов.
  • Логический том, используемый в ВМ, будет увеличиться по мере использования диска ВМ.
  • При загрузке образы конвертируются в формат Qcow2.
  • Персистентные образы подключаются к ВМ без предварительного копирования в системное хранилище.
  • Хранилище поддерживает снимки состояния ВМ.
  • Реализована возможность миграции образов и ВМ из других типов хранилищ в BREST_LVM.
  • Загружаемые диски в форматах RAW и QCOW2 с опцией preallocation=full (заполнение неиспользованного места нулями) будут преобразованы в диски с preallocation=none (т.е. нули будут удалены). При этом логический том не будет автоматически уменьшен после записи на него конвертированного образа. В связи с этим, рекомендуется загружать диски в платформу в формате Qcow2 для экономии пространства хранилища.
  • Загружаемые диски в формате Qcow2 с использованием опции compression (сжатие) будут преобразованы в Qcow2-формат на базе логического тома без сжатия. В этом случае, после "распаковки" размер тома в хранилище увеличится приблизительно в 3.26 раза.
  • Оптимальное потребление пространства хранилища за счет хранения фактически занимаемого объема данных. Логические тома создаются по реальному размеру данных в образе с запасом в 8%, а не по виртуальному размеру, указанному в свойствах образа. 

Ограничения использования хранилища BREST_LVMLink to Ограничения использования хранилища BREST_LVM

  • Снимки дисков ВМ не поддерживаются.
  • Необходимость установки блокировок сервисами lvmlock и sanlock.
  • Необходимость копирования образа в системное хранилище при работе в непостоянном режиме.
  • Миграция ВМ между системными хранилищами одного типа доступна только при отсутствии снимков ВМ.
  • Минимальный размер создаваемого тома 1 ГБ.
  • Репликация на уровне СХД (между двумя СХД, LUN-to-LUN) не поддерживается из-за ограничений модуля блокировок sanlock и процедуры аренды и освобождения (метаинформация о блокировках) для активации и деактивации логических томов.
  • Данное хранилище не подходит для реализации Метрокластера, Disaster-Recovery и схожих сценариев.
  • Данное хранилище не подходит для сетевых сред с высокой сетевой задержкой (High Latency)  из-за ограничений модуля блокировок sanlock и процедуры аренды и освобождения (метаинформация о блокировках). Высокая сетевая задержка (7 мс и выше) может приводить к проблемам с активацией и деактивацией логических томов, поскольку данные операции выполняются в синхронном режиме.
  • Хранилище поддерживает до 2000 серверов, включая все серверы управления и серверы виртуализации.
  • Необходимость предварительного создания групп LVM-томов для системных хранилищ и хранилищ образов, с обязательной настройкой сервисов lvmlock и sanlock.
  • Не поддерживает переменную BRIDGE_LIST, что означает необходимость настройки групп LVM-томов на серверах управления: