Приложение Б. Драйверы HPE 3PAR для OpenStack Cinder

Приложение Б. Драйверы HPE 3PAR для OpenStack Cinder#

Драйверы HPE3PARFCDriver и HPE3PARISCSIDriver, основанные на модульной архитектуре службы блочного хранилища Cinder, выполняют операции над томами посредством взаимодействия с СХД HPE 3PAR через подключения HTTP, HTTPS и SSH. Для подключений HTTP и HTTPS используется пакет python-3parclient, который является частью стандартной библиотеки Python.

Системные требования

Чтобы использовать драйвер HPE 3PAR, в СХД HPE 3PAR нужно установить следующие компоненты и ПО:

  • Операционная система HPE 3PAR версии 3.1.3 MU1 или новее.

    • Для поддержки дедупликации данных (Deduplication Provisioning) необходимы диски SSD и операционная система HPE 3PAR версии 3.2.1 MU1 или новее.

    • Для включения политики флеш-кэширования необходимо следующее:

      • Массив должен содержать диски SSD.

      • Операционная система HPE 3PAR версии 3.2.1 MU2 или новее.

      • python-3parclient версии 4.2.0 или новее.

      • Флеш-кэш должен быть включен для массива с помощью команды интерфейса командной строки createflashcache SIZE, где размер (SIZE) должен указываться в ГБ и быть кратным 16. Например, createflashcache 128g создаст флеш-кэш размером 128 ГБ для каждой пары узлов в массиве.

    • Функция динамической оптимизации (Dynamic Optimization) необходима для поддержки любой функциональности, в результате использования которой у тома изменяется тип обеспечения (Volume Provisioning Type) или общая группа обеспечения (Common Provisioning Group, или CPG). Это может относиться к командам volume migrate, retype и manage.

    • Функция виртуального копирования (Virtual Copy) должна поддерживать любые операции, связанные с моментальными снимками томов. Это относится к командам volume snapshot-*.

    • Для включения функции сжатия томов (Volume Compression) необходимо следующее:

      • Массив должен содержать диски SSD.

      • Операционная система HPE 3PAR версии 3.3.1 MU1 или новее.

      • СХД HPE 3PAR серии 8000 или 20000.

  • Служба HPE 3PAR Web Services API должна быть включена и запущена.

  • Общая группа обеспечения (CPG).

  • Кроме того, необходимо установить python-3parclient версии 4.2.0 или новее из стандартной библиотеки Python в системе с включенными драйверами томов службы блочного хранилища.

Поддерживаемые операции

  • Создание, удаление, присоединение и отсоединение томов.

  • Создание, перечисление и удаление моментальных снимков томов.

  • Создание тома из моментального снимка тома.

  • Копирование образа в том.

  • Копирование тома в образ.

  • Клонирование тома.

  • Расширение тома.

  • Миграция тома при содействии бэкенда.

  • Изменение типа тома.

  • Управление томом. Снятие управления с тома.

  • Управление моментальным снимком тома. Снятие управления с моментального снимка тома.

  • Репликация томов сервера.

  • Аварийное переключение томов сервера.

  • Возврат в исходное состояние томов сервера после аварийного переключения.

  • Изменение типа тома у реплицированного тома.

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

  • Создание и удаление моментальных снимков общих групп томов.

  • Создание общей группы томов из моментального снимка общей группы томов или из другой общей группы томов.

  • Сжатие томов.

  • Групповая репликация с большей степенью гранулярности (Tiramisu).

  • Откат тома до моментального снимка тома.

  • Дополнительные возможности бэкенда.

  • Отчет о состоянии бэкенда в списке служб.

Поддержка типов томов обоими драйверами HPE 3PAR включает возможность устанавливать через API службы блочного хранилища OpenStack с помощью модуля расширения дополнительных спецификаций типов томов cinder.api.contrib.types_extra_specs следующие параметры:

  • hpe3par:snap_cpg,

  • hpe3par:provisioning,

  • hpe3par:persona,

  • hpe3par:vvs,

  • hpe3par:flash_cache,

  • hpe3par:compression.

При работе с фильтрами планировщика по умолчанию имейте в виду, что значения ключей чувствительны к регистру символов, а их область применимости задается с помощью префикса hpe3par:. Для получения сведений о том, как задать пары ключ-значение и связать их с типом тома, выполните следующую команду:

$ openstack help volume type

Примечание

Клонированные тома поддерживают только ключи дополнительных спецификаций cpg, snap_cpg, provisioning и vvs. Остальные ключи дополнительных спецификаций игнорируются. Кроме того, раздел комментариев клонированного тома в массиве хранения HPE 3PAR StoreServ не заполняется.

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

  • hpe3par:cpg — По умолчанию используется значение параметра hpe3par_cpg в файле cinder.conf.

  • hpe3par:snap_cpg — По умолчанию используется значение параметра hpe3par_snap в файле cinder.conf. Если параметр hpe3par_snap не задан, по умолчанию используется значение параметра hpe3par_cpg.

  • hpe3par:provisioning — По умолчанию используется экономное выделение дискового пространства (Thin Provisioning). Допустимые значения: thin, full или dedup.

  • hpe3par:persona — По умолчанию используется значение 2 - Generic-ALUA. Допустимые значения:

    • 1 - Generic,

    • 2 - Generic-ALUA,

    • 3 - Generic-legacy,

    • 4 - HPUX-legacy,

    • 5 - AIX-legacy,

    • 6 - EGENERA,

    • 7 - ONTAP-legacy,

    • 8 - VMware,

    • 9 - OpenVMS,

    • 10 - HPUX,

    • 11 - WindowsServer.

  • hpe3par:flash_cache - По умолчанию используется значение false. Допустимые значения: true или false.

Поддержка качества обслуживания (Quality of Service, или QoS) обоими драйверами HPE 3PAR включает возможность устанавливать через API службы блочного хранилища OpenStack с помощью модуля расширения дополнительных спецификаций качества обслуживания cinder.api.contrib.qos_specs_manage следующие параметры:

  • minBWS,

  • maxBWS,

  • minIOPS,

  • maxIOPS,

  • latency,

  • priority.

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

$ openstack help volume qos

Для следующих ключей требуется, чтобы в массиве хранения HPE 3PAR StoreServ была включена функция приоритетной оптимизации (Priority Optimization).

hpe3par:vvs

Имя набора виртуальных томов (Virtual Volume Set, или VVS), который был предопределен администратором и содержит правила качества обслуживания. Если указана дополнительная спецификация hpe3par:vvs, то дополнительные спецификации качества обслуживания minIOPS, maxIOPS, minBWS и maxBWS игнорируются.

minBWS

Целевая минимальная пропускная способность в МБ/c. Если дополнительная спецификация не задана, то целевая минимальная пропускная способность не будет установлена.

maxBWS

Целевая максимальная пропускная способность в МБ/c. Если дополнительная спецификация не задана, то пропускная способность не будет ограничена.

minIOPS

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

maxIOPS

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

latency

Целевая задержка в миллисекундах.

priority

Приоритет правила качества обслуживания относительно других правил. Если дополнительная спецификация не задана, будет использовано значение normal. Допустимые значения: low, normal или high.

Примечание

Начиная с выпуска Icehouse, minIOPS и maxIOPS должны использоваться вместе для установки ограничений ввода-вывода. minBWS и maxBWS также должны использоваться вместе. Если задано только одно из них, другое будет иметь то же значение.

Для следующих ключей требуется, чтобы в массиве хранения HPE 3PAR StoreServ была включена функция Adaptive Flash Cache.

  • hpe3par:flash_cache — Политика флеш-кэширования, которая может быть включена или выключена посредством установки значения true или false.

  • hpe3par:compression — Сжатие томов, которое может быть включено или выключено посредством установки значения true или false.

Другие ограничения и замечания для hpe3par:compression:

  • При сжатии минимальный размер тома должен составлять 16 ГБ; в противном случае итоговый том будет создан успешно, но не будет являться сжатым томом.

  • Том с типом обеспечения "полное выделение дискового пространства" не может быть сжат. Если сжатие включено и запрошен тип обеспечения "полное выделение дискового пространства", то итоговый том по умолчанию будет сжатым томом с типом обеспечения "экономное выделение дискового пространства".

Драйверы HPE 3PAR поддерживают аутентификацию LDAP/AD.

Для аутентификации LDAP/AD бэкенд HPE 3PAR должен быть соответствующим образом настроен до настройки драйверов томов. Подробные сведения см. в руководстве пользователя СХД HPE 3PAR.

После настройки параметры hpe3par_username и hpe3par_password в cinder.conf можно использовать с учетными данными LDAP/AD.

Включение драйверов HPE 3PAR Fibre Channel и iSCSI

Драйверы HPE3PARFCDriver и HPE3PARISCSIDriver устанавливаются вместе с программным обеспечением OpenStack.

  1. Установите Python-пакет python-3parclient в систему блочного хранилища OpenStack.

    $ pip install 'python-3parclient>=4.0,<5.0'
    
  2. Убедитесь, что служба HPE 3PAR Web Services API включена и запущена в СХД HPE 3PAR.

    1. Войдите в СХД HPE 3PAR, использовав учетные данные администратора.

      $ ssh 3paradm@<HPE 3PAR IP Address>
      
    2. Просмотрите текущее состояние службы HPE 3PAR Web Services API.

      $ showwsapi
      -Service- -State- -HTTP_State- HTTP_Port -HTTPS_State- HTTPS_Port -Version-
      Enabled   Active Enabled       8008        Enabled       8080       1.1
      
    3. Если служба HPE 3PAR Web Services API выключена, запустите ее.

      $ startwsapi
      
  3. Если протокол HTTP или HTTPS выключен, включите один из них.

    $ setwsapi -http enable
    

    или

    $ setwsapi -https enable
    

    Примечание

    Чтобы остановить службу HPE 3PAR Web Services API, используйте команду stopwsapi. Для просмотра списка параметров команды запустите команду setwsapi -h.

  4. Если вы не планируете использовать какую-либо существующую общую группу обеспечения (CPG), создайте в СХД HPE 3PAR новую общую группу обеспечения, которая будет использоваться как расположение по умолчанию для создания томов.

  5. Внесите следующие изменения в файл /etc/cinder/cinder.conf.

    # URL-адрес службы HPE 3PAR Web Services API.
    hpe3par_api_url=https://10.10.0.141:8080/api/v1
    
    # Имя пользователя HPE 3PAR с ролью "edit".
    hpe3par_username=edit3par
    
    # Пароль пользователя, указанного в параметре hpe3par_username.
    hpe3par_password=3parpass
    
    # Общая группа обеспечения (CPG), которую нужно использовать для
    # создания томов.
    hpe3par_cpg=OpenStackCPG_RAID5_NL
    
    # IP-адрес SAN-контроллера для SSH-доступа к массиву.
    san_ip=10.10.22.241
    
    # Имя пользователя SAN-контроллера для SSH-доступа к массиву.
    san_login=3paradm
    
    # Пароль пользователя, указанного в параметре san_login.
    san_password=3parpass
    
    # Fibre Channel (раскомментируйте следующую строку, чтобы включить драйвер Fibre Channel).
    # volume_driver=cinder.volume.drivers.hpe.hpe_3par_fc.HPE3PARFCDriver
    
    # iSCSI (раскомментируйте следующую строку, чтобы включить драйвер iSCSI; также раскомментируйте
    # одну из строк с параметрами hpe3par_iscsi_ips и iscsi_ip_address).
    # volume_driver=cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver
    
    # Многопортовая конфигурация iSCSI.
    # hpe3par_iscsi_ips=10.10.220.253:3261,10.10.222.234
    
    # Однопортовая конфигурация iSCSI.
    # iscsi_ip_address=10.10.220.253
    
    # Включение отладки HTTP.
    hpe3par_debug=false
    
    # Включение CHAP-аутентификации для подключений iSCSI.
    hpe3par_iscsi_chap_enabled=false
    
    # Общая группа обеспечения (CPG), которую нужно использовать для моментальных снимков томов. Если
    # она не указана, будет использоваться CPG, указанная в параметре hpe3par_cpg.
    hpe3par_cpg_snap=OpenStackSNAP_CPG
    
    # Срок хранения моментального снимка тома в часах. Моментальный снимок тома нельзя удалить, пока не
    # истечет его срок хранения.
    hpe3par_snapshot_retention=48
    
    # Срок устаревания моментального снимка тома в часах. По истечении этого срока моментальный снимок
    # тома считается устаревшим и удаляется. Указанное значение должно быть больше, чем срок хранения.
    hpe3par_snapshot_expiration=72
    
    # Коэффициент перераспределения для томов, для которых применяется экономное выделение дискового
    # пространства (Thin Provisioning). Значение коэффициента по умолчанию  20.0, что означает, что
    # предоставляемая емкость может превосходить физическую емкость в 20 раз.
    max_over_subscription_ratio=20.0
    
    # Зарезервированная емкость бэкенда в процентах.
    reserved_percentage=15
    

    Примечание

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

    Примечание

    Вы можете указать от одного до нескольких адресов iSCSI посредством использования параметра hpe3par_iscsi_ips. Разделяйте несколько IP-адресов запятой (,). Если указано несколько адресов, драйвер выбирает порт iSCSI с наименьшим количеством активных томов в момент подключения. Массив HPE 3PAR не позволяет изменить порт по умолчанию 3260, поэтому IP-порты указывать не нужно.

  6. Сохраните изменения, сделанные в файле cinder.conf, и перезапустите службу cinder-volume.

Драйверы HPE 3PAR Fibre Channel и iSCSI теперь включены в вашей системе OpenStack. Если у вас возникли проблемы, просмотрите файлы журнала службы блочного хранилища на предмет ошибок.

Следующая таблица содержит все конфигурационные параметры, поддерживаемые драйверами HPE 3PAR Fibre Channel и iSCSI.

Таблица 30 Описание конфигурационных параметров HPE 3PAR#

Конфигурационный параметр = Значение по умолчанию

Описание

hpe3par_api_url = <>

(Строковое значение) URL-адрес службы HPE 3PAR Web Services API, например: https://<IP-адрес СХД HPE 3PAR>:8080/api/v1.

hpe3par_cpg = [OpenStack]

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

hpe3par_cpg_snap = <>

(Строковое значение) Общая группа обеспечения (CPG), которую нужно использовать для моментальных снимков томов. Если она не указана, будет использоваться значение userCPG.

hpe3par_debug = False

(Логическое значение) Включить отладку HTTP в СХД HPE 3PAR.

hpe3par_iscsi_chap_enabled = False

(Логическое значение) Включить CHAP-аутентификацию для подключений iSCSI.

hpe3par_iscsi_ips = []

(Список строковых значений) Список IP-адресов целевых устройств iSCSI.

hpe3par_password = <>

(Строковое значение) Пароль пользователя, указанного в параметре hpe3par_username.

hpe3par_snapshot_expiration = <>

(Строковое значение) Срок устаревания моментального снимка тома в часах. По истечении этого срока моментальный снимок тома считается устаревшим и удаляется. Указанное значение должно быть больше, чем срок хранения.

hpe3par_snapshot_retention = <>

(Строковое значение) Срок хранения моментального снимка тома в часах. Моментальный снимок тома нельзя удалить, пока не истечет его срок хранения.

hpe3par_target_nsp = <>

(Строковое значение) Параметр nsp бэкенда HPE 3PAR должен использоваться, когда: (1) функция multipath не включена в cinder.conf; (2) не используется Fibre Channel Zone Manager; (3) HPE 3PAR бэкенд предварительно зонирован с помощью отдельного значения NSP. Например, если NSP — это 2 1 2, формат значения параметра — 2:1:2.

hpe3par_username = <>

(Строковое значение) Имя пользователя HPE 3PAR с ролью "edit".

Указание NSP для загрузочного тома Fibre Channel

Дана система, подключенная к СХД HPE 3PAR через Fibre Channel, и в файле cinder.conf НЕ используется настройка multipath. Когда пользователь пытается создать загрузочный том, операция создания время от времени завершается с ошибкой "Fibre Channel volume device not found".

Это происходит, когда зона создается с использованием второго или более позднего целевого устройства из бэкенда HPE 3PAR. В этом случае код клиента HPE 3PAR выбирает первое целевое устройство для формирования карты целевых устройств инициатора. Это может быть проиллюстрировано на примере ниже.

Пример вывода команды showport:

$ showport -sortcol 6
N:S:P      Mode State ----Node_WWN---- -Port_WWN/HW_Addr-  Type Protocol Partner FailoverState
0:1:1    target ready 2FF70002AC002DB6   20110002AC002DB6  host       FC       -             -
0:1:2    target ready 2FF70002AC002DB6   20120002AC002DB6  host       FC   1:1:2          none
1:1:1 initiator ready 2FF70002AC002DB6   21110002AC002DB6  rcfc       FC       -             -
1:1:2    target ready 2FF70002AC002DB6   21120002AC002DB6  host       FC   0:1:2          none
2:1:1 initiator ready 2FF70002AC002DB6   22110002AC002DB6  rcfc       FC       -             -
2:1:2    target ready 2FF70002AC002DB6   22120002AC002DB6  host       FC   3:1:2          none
3:1:1    target ready 2FF70002AC002DB6   23110002AC002DB6  host       FC       -             -
3:1:2    target ready 2FF70002AC002DB6   23120002AC002DB6  host       FC   2:1:2          none

Предположим, что зона создана с использованием целевых устройств "2:1:2" и "3:1:2" из приведенного выше вывода. Тогда карта целевых устройств инициатора создается с использованием только целевого устройства "0:1:1". В этом случае путь не будет найден и создание загрузочного тома завершится неуспешно.

Чтобы избежать вышеупомянутой проблемы, пользователь может указать целевое устройство в разделе бэкенда HPE 3PAR в cinder.conf следующим образом:

hpe3par_target_nsp = 3:1:2

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

Примечание

Если вышеупомянутый параметр (nsp) не указан в файле cinder.conf, то будет выполнена оригинальная последовательность действий (то есть будет выбрано первое целевое устройство, и создание загрузочного тома может завершиться неуспешно).