Приложение Б. Драйверы 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.
Установите Python-пакет python-3parclient в систему блочного хранилища OpenStack.
$ pip install 'python-3parclient>=4.0,<5.0'
Убедитесь, что служба HPE 3PAR Web Services API включена и запущена в СХД HPE 3PAR.
Войдите в СХД HPE 3PAR, использовав учетные данные администратора.
$ ssh 3paradm@<HPE 3PAR IP Address>
Просмотрите текущее состояние службы 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
Если служба HPE 3PAR Web Services API выключена, запустите ее.
$ startwsapi
Если протокол HTTP или HTTPS выключен, включите один из них.
$ setwsapi -http enable
или
$ setwsapi -https enable
Примечание
Чтобы остановить службу HPE 3PAR Web Services API, используйте команду stopwsapi. Для просмотра списка параметров команды запустите команду setwsapi -h.
Если вы не планируете использовать какую-либо существующую общую группу обеспечения (CPG), создайте в СХД HPE 3PAR новую общую группу обеспечения, которая будет использоваться как расположение по умолчанию для создания томов.
Внесите следующие изменения в файл /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-порты указывать не нужно.
Сохраните изменения, сделанные в файле cinder.conf, и перезапустите службу cinder-volume.
Драйверы HPE 3PAR Fibre Channel и iSCSI теперь включены в вашей системе OpenStack. Если у вас возникли проблемы, просмотрите файлы журнала службы блочного хранилища на предмет ошибок.
Следующая таблица содержит все конфигурационные параметры, поддерживаемые драйверами HPE 3PAR Fibre Channel и iSCSI.
Конфигурационный параметр = Значение по умолчанию |
Описание |
|---|---|
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, то будет выполнена оригинальная последовательность действий (то есть будет выбрано первое целевое устройство, и создание загрузочного тома может завершиться неуспешно).
См. также