В ВЕРСИИ ПК СВ "БРЕСТ" 3.3.1 ДРАЙВЕР LVM_BREST НЕ ПРЕДНАЗНАЧЕН ДЛЯ ПРОМЫШЛЕННОЙ ЭКСПЛУАТАЦИИ, ТОЛЬКО ДЛЯ ТЕСТИРОВАНИЯ.

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

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

Особенности функционирования драйвера хранилища LVM_BREST:

  • предварительно необходимо создать отдельные группы LVM-томов для хранилища образов и системного хранилища;
  • поддержка создания снимков диска;
  • поддержка миграции ВМ;
  • сервис мониторинга на сервере виртуализации позволяет отследить переполнение диска ВМ и сообщает об этом на сервер управления серверу метаданных, который увеличивает размер тома диска;
  • при загрузке образа диска ВМ в хранилище образов автоматически создается LVM-том, в который записывается загружаемый образ в формате raw или qcow2;
  • при развертывании ВМ в системном хранилище из образа диска автоматически создается LVM-том в формате qcow2 поверх исходного образа (raw или qcow2).

Конфигурация стенда

Перед настройкой работы драйвера хранилища LVM_BREST необходимо выполнить подключение оборудования согласно схеме: 

Роли серверов управления и виртуализации можно совмещать.

Подключить СХД и блочные устройства к серверам:

  • если роли серверов совмещены, то необходимо подключить оба блочных устройства ко всем серверам;
  • если роли серверов разделены, то одно блочное устройство необходимо подключить ко всем серверам управления, а другое ко всем серверам виртуализации.

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

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

Для регистрации хранилища LVM_BREST необходимо:

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

    NAME="lvm-brest-images"
    TYPE="IMAGE_DS"
    DISK_TYPE="BLOCK"
    DS_MAD="lvm_brest"
    TM_MAD="lvm_brest"
    DRIVER="qcow2"
    CODE
  2. Создать хранилище образов с использованием конфигурационного файла images-ds.conf командой:

    onedatastore create images-ds.conf

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

    NAME="lvm-brest-system"
    TYPE="SYSTEM_DS"
    TM_MAD="lvm_brest"
    CODE
  4. Создать хранилище образов с использованием конфигурационного файла system-ds.conf командой:

    onedatastore create system-ds.conf

  5. Определить общее блочное устройство:

    sudo ls -al /dev/disk/by-id/ | grep sde
    где sde — имя блочного устройства.
    Пример вывода:

    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-1LIO-ORG_block_sdb:30b38557-60d6-4c2c-993c-26ad60613c63 -> ../../sde
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-3600140530b3855760d64c2c993c26ad6 -> ../../sde
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-SLIO-ORG_block_sdb_30b38557-60d6-4c2c-993c-26ad60613c63 -> ../../sde
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 wwn-0x600140530b3855760d64c2c993c26ad6 -> ../../sde
    CODE

    где 3600140530b3855760d64c2c993c26ad6 — идентификатор блочного устройства.

  6. Инициализировать блочные устройства как физический том:

    pvcreate /dev/disk/by-id/scsi-<идентификатор_LUN>
    где <идентификатор_LUN> — идентификатор блочного устройства.

  7. Создать отдельную группу LVM-томов для хранилища образов на блочных устройствах:

    vgcreate vg-one-<идентификатор_хранилища> /dev/disk/by-id/scsi-<идентификатор_LUN>
    где:

    • <идентификатор_хранилища> — идентификатор хранилища образов;

    • <идентификатор_LUN> — идентификатор блочного устройства.

Настройка сервера виртуализации

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

Если на сервере виртуализации не установлена или не настроена служба LVM_thin, то отслеживание тонких пулов и автоматическое расширение томов дисков ВМ не будут работать.

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

  1. Определить общее блочное устройство:

    sudo ls -al /dev/disk/by-id/ | grep sdf
    где sdf - имя блочного устройства.
    Пример вывода:

    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-1LIO-ORG_block_sdb:30b38557-60d6-4c2c-dfsd-26ad60613c63 -> ../../sdf
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-3600140530b3855760fdsfsdfsdf123412412c26ad6 -> ../../sdf
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 scsi-SLIO-ORG_block_sdb_30b38557-60d6-4c2c-dfsd-26ad60613c63 -> ../../sdf
    
    lrwxrwxrwx 1 root root   9 сен 28 07:40 wwn-0x600140530b3855760fdsfsdfsdf123412412c26ad6-> ../../sdf
    CODE

    где 3600140530b3855760fdsfsdfsdf123412412c26ad6 — идентификатор блочного устройства.

  2. Инициализировать блочные устройства как физический том:

    pvcreate /dev/disk/by-id/scsi-<идентификатор_LUN>
    где <идентификатор_LUN> — идентификатор блочного устройства.

  3. Создать отдельную группу LVM-томов для системного хранилища на блочных устройствах:

    vgcreate vg-one-<идентификатор_хранилища> /dev/disk/by-id/scsi-<идентификатор_LUN>
    где 

    • <идентификатор_хранилища> — идентификатор системного хранилища;

    • <идентификатор_LUN> — идентификатор блочного устройства.
  4. Создать тонкий логический том в группе системного хранилища:

    Системное хранилище LVM_BREST необходимо для размещения дисков ВМ в виде тонких логических томов LVM, а так же метаданных для этих томов.

    lvcreate -T -L <размер_тома>G vg-one-<идентификатор_хранилища>/thinpool-<имя_сервера>

    где

    • <размер_тома> — размер тонкого логического тома в ГБ (должен быть не больше размера локального блочного устройства /dev/sdc);
    • <идентификатор_хранилища> — идентификатор системного хранилища;
    • <имя_сервера> — имя сервера виртуализации кластера.

      Необходимо указывать только NetBIOS-имя. Запрещается указывать имя сервера виртуализации кластера в формате FQDN.

  5. Сконфигурировать службы LVM_BREST:
    1. на серверах управления в файл /var/lib/one/.one/one_auth записать строку:

      <имя_пользователя>:<пароль>
      CODE

      где:

      • <имя_пользователя> — имя сервисной учетной записи;
      • <пароль> — пароль, сгенерированный при установке платформы.
    2. на серверах виртуализации установить службу LVM_thin:

      sudo apt install opennebula-lvmthin-monitor

    3. в файле /etc/one/lvmthin_monitor.conf задать настройки:

      ONE_XMLRPC_URL = "<IP-адрес_сервера>"
      ONE_XMLRPC_TOKEN = "<имя_пользователя>:<пароль>"
      CODE

      где

      • <IP-адрес_сервера> — плавающий IP-адрес сервера управления (текущего лидера RAFT);
      • <имя_пользователя>:<пароль>— имя сервисной учетной записи и пароль, сгенерированный при установке платформы.
    4. выключить службу LVM_thin:

      sudo systemctl enable opennebula-lvmthin-monitor.service

    5. перезапустить службу LVM_thin:

      sudo systemctl restart opennebula-lvmthin-monitor.service