Руководство по управлению SDS

Аннотация

Гиперконвергентная среда zVirt представляет собой архитектуру вычислительных ресурсов и хранилищ, объединенных в единую платформу. Она предоставляет возможность объединять несколько серверов с локальными устройствами хранения (дисками) в единое хранилище данных, которое можно масштабировать по мере необходимости.

В этом документе объясняется, как выполнять задачи обслуживания, характерные для гиперконвергентной среды zVirt.

1. Добавление вычислительных ресурсов и ресурсов хранения

Гиперконвергентную среду zVirt можно масштабировать до 6, 9 или 12 узлов.

Можно добавить вычислительные ресурсы и ресурсы хранения несколькими способами:

Можно увеличить свободное пространство на существующих узлах, чтобы расширить хранилище без увеличения вычислительных ресурсов.

2. Управление хостами

2.1. Добавление хостов

Этот раздел содержит инструкцию по расширению существующего гиперконвергентного кластера путем добавления новых хостов.

Предварительные требования
  1. Установлены и подготовлены в соответствии с разделом Подготовка среды дополнительные физические машины в качестве новых гиперконвергентных хостов.

Порядок действий:
  1. На портале администрирования перейдите в Ресурсы  Хосты.

  2. Нажмите Новый.

  3. В окне добавления хоста:

    1. На вкладке Общее:

      • При необходимости измените кластер, в котором будет размещен хост.

      • Введите отображаемое Имя хоста.

      • Введите FQDN/IP, который необходимо использовать для подключения.

      • В разделе Аутентификация введите Пароль для пользователя root этого хоста.

      add newhost
    2. На вкладке Hosted Engine выберите Да если хотите подготовить хост для размещения на нем ВМ HostedEngine.

    3. Нажмите OK.

  4. Аналогичным образом добавьте в среду остальные хосты.

  5. После активации хостов, добавьте к ним сеть хранилища. Для этого:

    1. В Ресурсы  Хосты нажмите на имя хоста для перехода в подробное представление.

    2. Откройте вкладку Сетевые интерфейсы и нажмите Настройка сетей хоста.

    3. Перетащите сеть Gluster на нужный интерфейс.

      add newhost gl net 1
    4. Нажмите на иконку карандаша, чтобы открыть окно Редактирование подключения к сети.

    5. Если ранее интерфейс не был настроен, выберите статическую настройку, укажите адрес и маску сети.

      add newhost gl net 2
      Может потребоваться активировать опцию Синхронизировать сеть.
    6. Нажмите OK.

    7. На вкладке Сетевые интерфейсы нажмите на интерфейс с подключением к сети Gluster и убедитесь, что сеть не имеет статус Не синхронизирована.

      add newhost gl net 3
    8. Повторите операцию с остальными хостами.

После успешного добавления хостов можно переходить к добавлению новых томов и расширению существующих.

2.2. Подключение хостов к кластеру Gluster с помощью CLI

Для подключения хоста в кластер выполните следующие действия:

  1. Убедитесь, что служба glusterd запущена и включена по умолчанию на всех хостах:

    systemctl enable --now glusterd
  2. С одного из хостов выполните команду подключения остальных хостов

    gluster peer probe <IP или hostname>
    В команде необходимо использовать адреса сети хранилища, а не внешние.
  3. Убедитесь, что в списке пиров присутствуют все необходимые хосты:

    gluster peer status

2.3. Конвертация хостов виртуализации в гиперконвергентные хосты

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

  1. Аутентифицируйтесь на портале администрирования.

  2. Переведите хосты в режим обслуживания(кроме хоста с выполняющейся ВМ HostedEngine):

    1. Перейдите в Ресурсы  Хосты.

    2. Выделите все хосты, на которых не выполняется ВМ HostedEngine.

    3. Нажмите Управление > Обслуживание.

  3. Активируйте службы Gluster:

    1. Перейдите в Ресурсы  Кластеры.

    2. Выделите нужный кластер и нажмите Изменить.

    3. На вкладке общее активируйте опцию Службы Gluster.

    4. Нажмите OK.

  4. Переустановите хосты (кроме хоста с выполняющейся ВМ HostedEngine):

    1. Перейдите в Ресурсы  Хосты.

    2. Выделите все хосты, на которых не выполняется ВМ HostedEngine.

    3. Нажмите Управление > Переустановить.

    4. Если хосты ранее имели роль HostedEngine, на вкладке Hosted Engine выберите DEPLOY.

    5. Дождитесь активации хостов.

  5. Переведите хост с выполняющейся ВМ HostedEngine в режим обслуживания:

    1. Перейдите в Ресурсы  Хосты.

    2. Выделите нужный хост.

    3. Нажмите Управление > Обслуживание.

      Перед выполнением следующих действий убедитесь, что ВМ HostedEngine мигрировала на другой хост!
  6. Переустановите хост:

    1. Перейдите в Ресурсы  Хосты.

    2. Выделите нужный хост.

    3. Нажмите Управление > Переустановить.

    4. Дождитесь активации хоста.

Теперь хосты могут использовать и управлять хранилищем в виде томов Gluster.

3. Управление бриками

3.1. Добавление бриков

В этом разделе описаны способы добавления новых бриков на гиперконвергентных хостах. Добавленные брики могут быть использованы для добавления новых томов или расширения существующих.

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

  1. Хосты, на которых будут создаваться брики, добавлены в гиперконвергентную среду.

  2. Настроена беспарольная аутентификация SSH на основе ключа между всеми хостами.

    Это требование не обязательно к выполнению при использовании портала администрирования.
  3. На хостах присутствуют неразмеченные блочные устройства.

3.1.1. Использование портала администрирования

Порядок действий:
  1. Аутентифицируйтесь на портале администрирования.

  2. Перейдите в Ресурсы  Хосты.

  3. Нажмите на имя нужного хоста для перехода в подробное представление и откройте вкладку Устройства хранения.

  4. Выделите нужное устройство и нажмите Создать блок.

    Если на устройстве отображается значок lock, значит, устройство уже используется и создать брик невозможно.

  5. В открывшемся окне:

    1. Введите Имя брика.

    2. После ввода имени поле Точка монтирования должно заполниться автоматически.

    3. При необходимости выберите нужный Тип RAID или установите значение Нет, если RAID не используется.

    4. В таблице Устройство хранения убедитесь, что выбрано корректное устройство.

    5. В разделе Устройство кэширования при необходимости можно указать устройство, которое будет использоваться в качестве lvcache, а также его параметры.

    6. Нажмите ОК.

    create brick
  6. Убедитесь, что брик создан. Если брик не отобразился в таблице сразу после создания, нажмите Синхронизация.

    create brick finish
  7. Повторите операцию на всех необходимых хостах.

3.1.2. Использование Ansible

Если необходимо создать брики сразу на большом количестве хостов, можно автоматизировать этот процесс, создав плейбук Ansible. В этом разделе содержится описание подготовки и запуска плейбука, который создает, форматирует и монтирует брики для использования в гиперконвергентной среде.

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

Порядок действий:
  1. Создайте инвентаризацонный файл:

    1. В каталоге /etc/ansible/roles/gluster.infra/playbooks создайте новый файл, например, с именем inventory.

    2. В этом файле перечислите хосты, на которых нужно создать новые брики. Например:

      [hosts]
      ghost-4.vlab.local
      ghost-5.vlab.local
      ghost-6.vlab.local

    Поскольку в Ansible нет инструмента разрешения имен, необходимо использовать DNS или файл /etc/hosts, чтобы обеспечить разрешение на правильный IP-адрес, или использовать IP-адреса вместо FQDN в списке хостов.

  2. Определите необходимые параметры бриков в файле переменных:

    Если необходимо создать брики без слоя VDO
    1. Сделайте резервную копию существующего файла bricks.yml:

      cd /etc/ansible/roles/gluster.infra/playbooks/
      cp bricks.yml bricks.yml.backup
    2. Измените необходимые параметры в файле переменных bricks.yml:

      gluster_infra_disktype: RAID10 (1)
      gluster_infra_dalign: 256K (2)
      gluster_infra_diskcount: 10 (3)
      gluster_infra_stripe_unit_size: 128 (4)
      gluster_infra_volume_groups: (5)
         - { vgname: 'vg_vdb', pvname: '/dev/vdb' }
         - { vgname: 'vg_vdc', pvname: '/dev/vdc' }
      gluster_infra_thick_lvs:  (6)
        - { vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1', size: '10G' }
      gluster_infra_thinpools:  (7)
        - {vgname: 'vg_vdb', thinpoolname: 'foo_thinpool', thinpoolsize: '2T', poolmetadatasize: '1G' }
        - {vgname: 'vg_vdc', thinpoolname: 'bar_thinpool', thinpoolsize: '3T', poolmetadatasize: '1G' }
      gluster_infra_lv_logicalvols:  (8)
         - { vgname: 'vg_vdb', thinpool: 'foo_thinpool', lvname: 'vg_vdb_thinlv', lvsize: '500G' }
         - { vgname: 'vg_vdc', thinpool: 'bar_thinpool', lvname: 'vg_vdc_thinlv', lvsize: '500G' }
      gluster_infra_cache_vars:  (9)
         - { vgname: 'vg_vdb', cachedisk: '/dev/vdd',
             cachethinpoolname: 'foo_thinpool', cachelvname: 'cachelv',
             cachelvsize: '20G', cachemetalvname: 'cachemeta',
             cachemetalvsize: '100M', cachemode: 'writethrough' }
      gluster_infra_mount_devices:  (10)
         - { path: '/mnt/thicklv', vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1' }
         - { path: '/mnt/thinlv1', vgname: 'vg_vdb', lvname: 'vg_vdb_thinlv' }
         - { path: '/mnt/thinlv2', vgname: 'vg_vdc', lvname: 'vg_vdc_thinlv' }
      1 Тип диска на физическом слое:
      • Если на физическом слое используется RAID, укажите соответствующий тип. Допустимы значения RAID6 и RAID10.

      • Если на физическом слое не используется RAID, укажите значение JBOD.

      2 Размер выравнивания данных на физическом слое:
      • Для JBOD по умолчанию (если параметр не указан) - 256К.

      • Для RAID (6 и 10) вычисляется путем умножения gluster_infra_diskcount и gluster_infra_stripe_unit_size.

      3 Используется только с RAID. Указывает количество дисков, которые должны быть использованы для создания тома GlusterFS.
      4 Используется только с RAID. Указывает размер части в striped томе. Значение задаётся в KiB. При этом указывать единицу измерения не нужно.
      5 Список групп томов, которые необходимо создать. Каждый элемент списка должен включать:
      • vgname - имя создаваемой группы томов.

      • pvname - путь к файлу блочного устройства, которое будет использовано для создания группы томов.

      6 Список "толстых" (с предварительно выделенным пространством) логических томов, которые необходимо создать. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан логический том.

      • lvname - имя создаваемого логического тома.

      • size - размер создаваемого логического тома с указанием единицы измерения (например, G - GiB).

      7 Список создаваемых пулов для "тонких" логических томов. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан пул.

      • thinpoolname - имя пула. Если не указано, будет назначено имя в формате <vgname>_thinpool.

      • thinpoolsize - размер пула с указанием единицы измерения (например, G - GiB).

      • poolmetadatasize - размер пространства для метаданных пула с указанием единицы измерения (например, G - GiB). Если параметр не указан, используется значение по умолчанию - 16G.

      8 Список "тонких" (с динамическим выделением пространства) томов. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан логический том.

      • thinpool - имя пула, из которого будет выделяться пространство для логического тома. Если параметр не указан, будет использоваться имя в формате <vgname>_thinpool.

      • lvname - имя создаваемого логического тома.

      • lvsize - размер создаваемого логического тома с указанием единицы измерения (например, G - GiB). Это значение определяет максимальный размер, до которого том может динамически расширяться.

      9 Список кэширующих томов. Каждый элемент списка может включать:
      • vgname - группа томов, в которой будет создан кэширующий том.

      • cachedisk - SSD диск, используемый для кэширующего тома.

      • cachethinpoolname - имя пула для для выделения пространства под кэширующий том.

      • cachelvname - имя кэширующего тома.

      • cachelvsize - размер кэширующего тома с указанием единицы измерения (например, G - GiB).

      • cachemetalvname - имя тома метаданных.

      • cachemetalvsize - размер тома метаданных с указанием единицы измерения (например, G - GiB).

      • cachemode - режим кэширования. Допустимы следующие значения:

        • writethrough - в этом режиме данные при одновременно записываются как в кэш, так и на основной (более медленный) носитель.

        • writeback - в этом режиме данные при записи сначала попадают только в кэш, а не на основной (более медленный) носитель. Запись данных на основной носитель из кэша происходит позже, в фоновом режиме.

      10 Список точек монтирования созданных томов. Каждый элемент списка должен включать:
      • path - путь монтирования.

      • vgname - имя группы томов, которой принадлежит монтируемый том.

      • lvname - имя монтируемого тома.

    Если необходимо создать брики с использованием VDO
    1. Сделайте резервную копию существующего файла bricks_vdo.yml:

      cd /etc/ansible/roles/gluster.infra/playbooks/
      cp bricks_vdo.yml bricks_vdo.yml.backup
    2. Измените необходимые параметры в файле переменных bricks_vdo.yml:

      gluster_infra_disktype: RAID10 (1)
      gluster_infra_dalign: 256K (2)
      gluster_infra_diskcount: 10 (3)
      gluster_infra_stripe_unit_size: 128 (4)
      gluster_infra_vdo: (5)
         - { name: 'hc_vdo_1', device: '/dev/vdb' }
         - { name: 'hc_vdo_2', device: '/dev/vdc' }
      gluster_infra_volume_groups: (6)
         - { vgname: 'vg_vdb', pvname: '/dev/mapper/hc_vdo_1' }
         - { vgname: 'vg_vdc', pvname: '/dev/mapper/hc_vdo_2' }
      gluster_infra_thick_lvs:  (7)
        - { vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1', size: '10G' }
      gluster_infra_thinpools:  (8)
        - {vgname: 'vg_vdb', thinpoolname: 'foo_thinpool', thinpoolsize: '2T', poolmetadatasize: '1G' }
        - {vgname: 'vg_vdc', thinpoolname: 'bar_thinpool', thinpoolsize: '3T', poolmetadatasize: '1G' }
      gluster_infra_lv_logicalvols:  (9)
         - { vgname: 'vg_vdb', thinpool: 'foo_thinpool', lvname: 'vg_vdb_thinlv', lvsize: '500G' }
         - { vgname: 'vg_vdc', thinpool: 'bar_thinpool', lvname: 'vg_vdc_thinlv', lvsize: '500G' }
      gluster_infra_cache_vars:  (10)
         - { vgname: 'vg_vdb', cachedisk: '/dev/vdd',
             cachethinpoolname: 'foo_thinpool', cachelvname: 'cachelv',
             cachelvsize: '20G', cachemetalvname: 'cachemeta',
             cachemetalvsize: '100M', cachemode: 'writethrough' }
      gluster_infra_mount_devices:  (11)
         - { path: '/mnt/thicklv', vgname: 'vg_vdb', lvname: 'vg_vdb_thicklv1' }
         - { path: '/mnt/thinlv1', vgname: 'vg_vdb', lvname: 'vg_vdb_thinlv' }
         - { path: '/mnt/thinlv2', vgname: 'vg_vdc', lvname: 'vg_vdc_thinlv' }
      1 Тип диска на физическом слое:
      • Если на физическом слое используется RAID, укажите соответствующий тип. Допустимы значения RAID6 и RAID10.

      • Если на физическом слое не используется RAID, укажите значение JBOD.

      2 Размер выравнивания данных на физическом слое:
      • Для JBOD по умолчанию (если параметр не указан) - 256К.

      • Для RAID (6 и 10) вычисляется путем умножения gluster_infra_diskcount и gluster_infra_stripe_unit_size.

      3 Используется только с RAID. Указывает количество дисков, которые должны быть использованы для создания тома GlusterFS.
      4 Используется только с RAID. Указывает размер части в striped томе. Значение задаётся в KiB. При этом указывать единицу измерения не нужно.
      5 Список создаваемых томов vdo. Каждый элемент списка должен включать:
      • name - имя создаваемого тома vdo.

      • device - путь к файлу блочного устройства, которое будет использовано для создания тома vdo.

      6 Список групп томов, которые необходимо создать. Каждый элемент списка должен включать:
      • vgname - имя создаваемой группы томов.

      • pvname - путь к тому vdo, который будет использован для создания группы томов.

      7 Список "толстых" (с предварительно выделенным пространством) логических томов, которые необходимо создать. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан логический том.

      • lvname - имя создаваемого логического тома.

      • size - размер создаваемого логического тома с указанием единицы измерения (например, G - GiB).

      8 Список создаваемых пулов для "тонких" логических томов. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан пул.

      • thinpoolname - имя пула. Если не указано, будет назначено имя в формате <vgname>_thinpool.

      • thinpoolsize - размер пула с указанием единицы измерения (например, G - GiB).

      • poolmetadatasize - размер пространства для метаданных пула с указанием единицы измерения (например, G - GiB). Если параметр не указан, используется значение по умолчанию - 16G.

      9 Список "тонких" (с динамическим выделением пространства) томов. Каждый элемент списка должен включать:
      • vgname - группа томов, в которой будет создан логический том.

      • thinpool - имя пула, из которого будет выделяться пространство для логического тома. Если параметр не указан, будет использоваться имя в формате <vgname>_thinpool.

      • lvname - имя создаваемого логического тома.

      • lvsize - размер создаваемого логического тома с указанием единицы измерения (например, G - GiB). Это значение определяет максимальный размер, до которого том может динамически расширяться.

      10 Список кэширующих томов. Каждый элемент списка может включать:
      • vgname - группа томов, в которой будет создан кэширующий том.

      • cachedisk - SSD диск, используемый для кэширующего тома.

      • cachethinpoolname - имя пула для для выделения пространства под кэширующий том.

      • cachelvname - имя кэширующего тома.

      • cachelvsize - размер кэширующего тома с указанием единицы измерения (например, G - GiB).

      • cachemetalvname - имя тома метаданных.

      • cachemetalvsize - размер тома метаданных с указанием единицы измерения (например, G - GiB).

      • cachemode - режим кэширования. Допустимы следующие значения:

        • writethrough - в этом режиме данные при одновременно записываются как в кэш, так и на основной (более медленный) носитель.

        • writeback - в этом режиме данные при записи сначала попадают только в кэш, а не на основной (более медленный) носитель. Запись данных на основной носитель из кэша происходит позже, в фоновом режиме.

      11 Список точек монтирования созданных томов. Каждый элемент списка должен включать:
      • path - путь монтирования.

      • vgname - имя группы томов, которой принадлежит монтируемый том.

      • lvname - имя монтируемого тома.

  3. Запустите плейбук create_brick.yml:

    1. Проверьте содержимое плейбука. Оно должно быть следующим:

      cat create_brick.yml
      
      ---
      - name: Create a GlusterFS brick on the servers
        remote_user: root
        hosts: all
        gather_facts: false
        vars_files:
          - bricks.yml (1)
      
        roles:
          - gluster.infra
      1 Укажите корректный файл переменных:
      • Если VDO не используется - bricks.yml

      • Если VDO используется - bricks_vdo.yml

    2. Запустите плейбук с указанием инвентаризационного файла:

      ansible-playbook -i inventory create_brick.yml
  4. Проверьте, что брики доступны:

    1. На портале администрирования перейдите Ресурсы  Хосты.

    2. Нажмите на имя любого хоста, который был указан для размещения новых бриков.

    3. Перейдите на вкладку Устройства хранения.

    4. Убедитесь, что в списке присутствуют новые брики.

      Если новые брики не появились, нажмите Синхронизация и дождитесь окончания процесса. Новые брики должны появиться в списке.

3.1.3. Использование CLI

Для функционирования брика необходимо создать файловую систему XFS на отдельном блочном устройстве.

В качестве блочного устройства может выступать:

  • Непосредственно устройство.

  • Раздел на устройстве.

    Для использования такого решения предварительно создайте раздел нужного размера, например с помощью fdisk.

  • Том LVM.

    Для использования данного решения:

    1. Пометьте устройство в качестве физического тома LVM:

      pvcreate /dev/mapper/<имя диска>
    2. Создайте группу томов:

      vgcreate <имя группы> /dev/mapper/<имя диска>
    3. Создайте логический том:

      vgcreate -L <размер> -n <имя тома>  <имя группы>
  1. Отформатируйте раздел:

    • В случе без LVM:

      mkfs.xfs /dev/mapper/<имя диска>
    • c LVM:

      mkfs.xfs /dev/<имя группы>/<имя тома>
  2. Создайте точку монтирования, например:

    mkdir /brickN
  3. Добавьте запись в fstab и перезагрузите список юнитов:

    systemctl daemon-reload
  4. Смонтируйте созданный брик:

    mount -a

Для создания брика с кэшированием (например кеш на SSD, основные данные на HDD) выполните следующие действия:

  1. Подготовьте диски(или разделы на них) (в примере, <fast> - диск SSD\NVME, а <slow> диск на HDD):

    pvcreate /dev/mapper/<fast>
    
    pvcreate /dev/mapper/<slow>
  2. Создайте группу томов с использованием созданных PV (в примере, brickN - имя группы):

    vgcreate brickN /dev/mapper/<fast> /dev/mapper/<slow>
  3. Создайте логический том под кеш (в примере, brickN_cache - имя создаваемого тома):

    lvcreate -L <размер кэша>G -n brickN_cache  brickN /dev/mapper/<fast>
  4. Выключите том кэша:

    lvchange -an /dev/brickN/brickN_chache
  5. Создайте новый том (в примере, brickN_lv - имя создаваемого тома):

    lvcreate --type writecahce -L<размер брика>G -n brickN_lv  --cachevol brickN_cache brickN /dev/mapper/<slow>
  6. Отформатируйте и смонтируйте тома по инструкции выше.

3.2. Сброс бриков

Сброс позволяет переконфигурировать брик как при его первоначальном добавлении в кластер, используя те же UUID, имя хоста и путь.

Операция сброса бриков доступна только для томов типа Репликация.
Порядок действий:
  1. На портале администрирования перейдите в Хранилище  Тома.

  2. Нажмите на имя тома, брик которого необходимо сбросить.

  3. Откройте вкладку Брики.

  4. Выделите нужный брик и нажмите Сбросить брик.

    brick reset
  5. В появившемся окне нажмите ОК для подтверждения сброса.

3.3. Замена бриков

Замена брика может потребоваться в случаях, когда происходит физический сбой диска, на котором расположен брик, или когда необходимо увеличить объем хранилища путем замены брика на более объемный.

Предварительные требования:
  1. В среде существует неиспользуемый брик. Если свободные брики отсутствуют, их можно создать по инструкции.

  2. Размер нового брика не менее размера заменяемого.

3.3.1. На портале администрирования

Порядок действий:
  1. На портале администрирования перейдите в Хранилище  Тома.

  2. Нажмите на имя тома, брик которого необходимо сбросить.

  3. Откройте вкладку Брики.

  4. Выделите нужный брик и нажмите Заменить брик.

  5. В появившемся окне выберите хост с новым бриком и каталог брика.

    brick replace
  6. Нажмите ОК.

3.3.2. С помощью CLI

  1. Подключитесь к консоли хоста, на котором необходимо заменить брик.

  2. Выполните коменду для замены брика:

    gluster volume replace-brick <volname> <oldbrick> <newbrick> commit force
  3. После замены запустится процесс самовосстановления. За его прогрессом можно наблюдать с помощью следующей команды:

    gluster volume heal <volume> info

3.4. Удаление бриков

3.4.1. На портале администрирования

Порядок действий:
  1. На портале администрирования перейдите в Хранилище  Тома.

  2. Нажмите на имя тома, брик которого необходимо сбросить.

  3. Откройте вкладку Брики.

  4. Выделите нужный брик.

    • Если брик удаляется из тома типа Распределение:

      1. Нажмите Удалить.

      2. В открывшемся окне подтвердите операцию, нажав OK.

    • Если брик удаляется из тома типа Репликация:

      Удалить брик из тома типа Репликация можно только при наличии 4 и более бриков.
      1. Нажмите Сбросить брик.

      2. Дождитесь окончания операции.

      3. Нажмите Удалить.

      4. В открывшемся окне подтвердите операцию, нажав OK.

3.4.2. С помощью CLI

  1. Подключитесь к консоли хоста, на котором необходимо удалить брик.

  2. Выполните команду для удаления брика:

    gluster volume remove-birck <volname> <brick>

    Если брик удаляется из реплицируемого тома, необходимо понизить уровень реплики. В этом случае используйте следующую команду (в примере, количество реплик снижается с 4 до 3):

    gluster volume remove-birck <volname> replica 3 <brick>

4. Управление томами

4.1. Добавление томов Gluster

В этом разделе описаны способы добавления томов в гиперконвергентный кластер. Добавленные тома могут быть использованы для добавления новых доменов хранения.

Перед добавлением томов, убедитесь, что соблюдены следующие требования:

  1. Хосты, на которых будут создаваться тома, добавлены в гиперконвергентную среду.

  2. На хостах присутствуют неиспользуемые брики.

При создании тома учитывайте следующее:

  • Включение брика арбитра возможно только при количестве реплик равном 3.

  • Для тома типа распределённая репликация:

    • Требуется не менее 4 хостов и 4 бриков.

    • Количество бриков должно быть кратно количеству реплик. При этом группы репликации будут созданы автоматически в зависимости от расположения бриков.

  • Для тома типа репликация:

    • Требуется не менее 2 бриков. Рекомендуется использовать 3 и более.

    • Количество бриков должно быть равно количеству реплик.

4.1.1. На портале администрирования

Порядок действий:
  1. На портале администрирования перейдите в Хранилище  Тома и нажмите Новый.

  2. В окне создания тома:

    1. При необходимости измените Центр данных и Кластер томов.

    2. Введите Имя нового тома.

    3. Выберите тип тома. Доступны следующие значения:

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

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

      • Распределенная репликация - данные распределяются по реплицируемым брикам тома. Данный вариант рекомендуется использовать в средах, где важны высокая надежность и масштабируемость. Этот тип тома обеспечивает повышенную производительность чтения в большинстве сред.

    4. Если выбран тип Репликация или Распределенная репликация, то можно активировать опцию Том арбитр. При включении этой опции один брик будет использован только для репликации метаданных. Такой вариант подходит для сред, где критически важна консистентность, но пространство хранилища ограничено.

    5. Убедитесь, что опция Тип транспорта TCP активна.

    6. Нажмите Добавить брики для открытия окна добавления бриков в том. В этом окне:

      • Если выбран тип Репликация или Распределенная репликация, укажите количество реплик.

      • Выберите нужный хост.

      • Выберите нужный брик на хосте.

      • Нажмите Добавить.

      • Повторите операцию со всеми необходимыми хостами и бриками.

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

        Будьте внимательны, эта опция полностью удаляет содержимое брика и очищает его атрибуты.

        add new vol bricks
      • Нажмите OK.

    7. Дополнительно, для повышения безопасности в поле Разрешить доступ можно указать IP-адреса или FQDN хостов в кластере, которым будет разрешен доступ к созданному тому. Значение * означает, что доступ разрешен всем.

    8. Активируйте опцию Оптимизировать для виртуальных машин, чтобы настроить том для хранения образов виртуальных машин.

    9. Нажмите OK.

    add new vol
  3. Дождитесь активации тома. Если том не активировался автоматически, выделите его и нажмите Запустить.

После активации тома его можно подключить в среду в качестве домена хранения.

4.1.2. С помощью CLI

  1. Подключитесь к консоли хоста, находящегося в кластере.

  2. Создайте том:

    • Для создания реплицированного тома:

      gluster volume create <имя тома> replica 3 host1:/brick1/v1/ host2:/brick1/v1/ host3:/brick1/v1/

      Если используется несколько бриков на одном хосте, нужно сначала перечислить хосты, а потом брики. Например:

      gluster volume create <имя тома> replica 3 host1:/brick1/v1/ host2:/brick1/v1/ host3:/brick1/v1/ host1:/brick2/v1/ host2:/brick2/v1/ host3:/brick2/v1/
      • Для создания реплицированного тома с арбитром:

        gluster volume create <имя тома> replica 2 arbiter 1 host1:/brick1/v1/ host2:/brick1/v1/ host3:/arb/v1
  3. Настройте том для работы с виртуализацией:

    gluster volume set engine group virt
    gluster volume set engine storage.owner-gid 36
    gluster volume set engine stourage.owner.uid 36
  4. Запустите том:

    gluster volume start <volname>

После активации тома его можно подключить в среду в качестве домена хранения.

4.2. Расширение томов Gluster

Этот раздел содержит инструкцию по расширению существующего тома путем добавления новых бриков на существующих гиперконвергентных хостах.

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

  1. На хостах присутствуют неиспользуемые брики.

4.2.1. На портале администрирования

Порядок действий:
  1. На серверах, на которые планируется расширить том, создайте новые брики, используя инструкции в разделе Добавление бриков.

  2. Добавьте новые брики в том:

    1. На портале администрирования перейдите в Хранилище  Тома.

    2. Нажмите на имя нужного тома для перехода в подробное представление и откройте вкладку Брики.

    3. Нажмите добавить.

    4. В окне добавления брика:

      1. Для томов типа Репликация или Распределенная репликация, измените количество реплик в соответствии с количеством добавляемых бриков.

        • Для тома типа распределённая репликация количество бриков должно быть кратно количеству реплик.

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

      2. Выберите нужный хост.

      3. Выберите директорию брика.

      4. Нажмите Добавить.

      5. Повторите операцию со всеми новыми хостами.

      6. Опция Разрешить повторное использование бриков в корневом разделе с очисткой атрибутов позволяет повторно использовать брики, если ранее они были частью другого тома.

        Будьте внимательны, эта опция полностью удаляет содержимое брика и очищает его атрибуты.

      7. Нажмите OK.

Том автоматически синхронизируется с новыми бриками.

4.2.2. С помощью CLI

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

  1. Подключитесь к консоли хоста, находящегося в кластере.

  2. Выполните команду для добавления брика в том:

    gluster volume add-brick <volname> replica <lvl> <host>:<brick>

Обратите внимание:

  • Если меняется уровень реплики необходимо явно указывать это c помощью опции replica. Например, при увеличении реплик с 3 до 4:

    gluster volume add-brick data replica 4 10.252.11.104:/gluster_bricks/new-brick
  • В распределённых реплицируемых томах брики необходимо добавлять в количестве кратном количеству реплик. Например, если уровень репликации равен 3, то нужно добавлять по 3 брика.

4.3. Подключение томов Gluster в качесте Data-доменов

После успешного создания томов Gluster, добавьте их в среду в качестве доменов хранения. Для этого:

  1. На портале администрирования перейдите в Хранилище  Домены.

  2. Нажмите Новый домен.

  3. В окне добавления домена:

    1. Убедитесь, что заданы корректные центр данных и функция домена.

    2. Установите Тип хранилища GlusterFS.

    3. Выберите хост для подключения.

    4. Введите имя добавляемого домена.

    5. В разделе параметров домена:

      • Активируйте параметр Использовать управляемый том gluster.

      • В выпадающем списке Gluster выберите нужный том.

        Тома распределённой репликации не отображаются в выпадающем списке.

        Для подключения таких томов необходимо вручную указать путь к тому параметры монтирования. Например:

        • Путь: 10.252.11.103:/replication

        • В параметрах монтирования необходимо перечислить остальные хосты, с бриками данного тома: backup-volfile-servers=10.252.11.104:10.252.11.105:10.252.11.106.

      • При необходимости настройте дополнительные параметры.

    6. Нажмите OK.

add new dom

4.4. Перебалансировка тома

После расширения или сжатия тома путем удаления бриков (без переноса данных) необходимо перебалансировать данные между хостами. В не реплицированном томе для выполнения операции ребалансировки все хосты должны быть в сети. В реплицированном томе хотя бы один из бриков в реплике должен быть в сети.

Порядок действий:
  1. На портале администрирования перейдите в Хранилище  Тома.

  2. Выделите нужный том.

  3. Нажмите Профилирование > Перебалансировка.

Начнется процесс ребалансировки, и в столбце Активности, относящемся к данному тому, появится значок ребалансировки.

4.5. Удаление тома Gluster

4.5.1. На портале администрирования

Порядок действий:
  1. Если том добавлен в качестве домена хранения сначала необходимо удалить домен:

    1. На портале администрирования перейдите в Хранилище  Диски и переместите все образы в другой домен хранения.

    2. Переведите домен хранения в режим обслуживания и отключите его:

      1. Перейдите в Хранилище  Домены и нажмите на имя нужного домена для перехода в подробное представление.

      2. Откройте вкладку Центр данных.

      3. Нажмите Обслуживание (Maintenance), затем OK.

      4. Нажмите Отсоединить (Detatch), затем OK.

    3. Нажмите Удалить (Remove).

      При желании установите флажок Форматирование домена, т.е. содержимое хранилища будет потеряно! (Format Domain, i.e. Storage Content will be lost!), чтобы стереть содержимое домена.

    4. Нажмите OK

  2. Удалите нужный том. Для этого:

    1. На портале администрирования перейдите в Хранилище  Тома.

    2. Выделите нужный том и нажмите Остановить.

    3. В появившемся окне подтвердите операцию, нажав OK.

    4. Нажмите Удалить.

    5. В появившемся окне подтвердите операцию, нажав OK.

4.5.2. С помощью CLI

  1. Если том добавлен в качестве домена хранения сначала необходимо удалить домен:

    1. На портале администрирования перейдите в Хранилище  Диски и переместите все образы в другой домен хранения.

    2. Переведите домен хранения в режим обслуживания и отключите его:

      1. Перейдите в Хранилище  Домены и нажмите на имя нужного домена для перехода в подробное представление.

      2. Откройте вкладку Центр данных.

      3. Нажмите Обслуживание (Maintenance), затем OK.

      4. Нажмите Отсоединить (Detatch), затем OK.

    3. Нажмите Удалить (Remove).

      При желании установите флажок Форматирование домена, т.е. содержимое хранилища будет потеряно! (Format Domain, i.e. Storage Content will be lost!), чтобы стереть содержимое домена.

    4. Нажмите OK.

  2. Удалите нужный том. Для этого:

    1. Подключитесь к консоли хоста, находящегося в кластере.

    2. Остановите том:

      gluster volume stop <volname>
    3. Удалите том:

      gluster volume delete <volname>