Приложение А. Драйверы Huawei для OpenStack Cinder

Приложение А. Драйверы Huawei для OpenStack Cinder#

Для системы хранения данных Huawei необходимо подготовить конфигурацию в формате XML и указать ее как значение параметра cinder_huawei_conf_file при добавлении внешнего хранилища.

Спецификации

Функция

Субфункция

Описание

Соответствие платформ

Платформа OpenStack

Версии OpenStack:

Mitaka, Newton, Ocata, Pike, Queens, Rocky, Stein, Train, Ussuri, Victoria, Wallaby, Xena, Yoga, Zed, Antelope, Bobcat

  • Ресурсы, созданные с использованием OpenStack, такие как серверы, группы серверов, LUN, группы LUN, моментальные снимки, представления соответствий (mapping views), политики QoS и пары HyperMetro, нельзя использовать совместно с другими приложениями платформы или изменять вручную.

  • Нельзя изменять предоставленные для OpenStack адрес доступа к хранилищу, имя пользователя, пароль и сведения о пуле хранения.

Конфигурация

Конфигурационный XML-файл

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

Для сети Fibre Channel необходимо установить инструмент sg, чтобы можно было использовать ресурсы хранилища.

Значения параметров в конфигурационном файле драйвера Cinder для СХД Huawei не должны содержать следующих специальных символов XML: <, >, &, ', ".

Установите параметр Product на основе модели СХД.

Значение параметра HostName элемента конфигурации Initiator является регулярным выражением.

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

  • Правила политики конфигурации инициаторов:

    • Приоритет: главная конфигурация инициаторов на основе имени сервера > общая конфигурация инициаторов на основе имени сервера.

    • В главной конфигурации инициаторов использовать первую секцию ALUA, которая соответствует политике конфигурации.

Примеры использования этого параметра см. в подразделе "Примеры политики конфигурации инициаторов".

Конфигурация многопутевого ввода-вывода (multipath)

Многопутевой ввод-вывод на сервере:

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

Многопутевой ввод-вывод в OpenStack:

Поддержка многопутевого ввода-вывода выключена по умолчанию. Необходимо вручную изменить конфигурацию служб Nova и Cinder.

Тип LUN

СХД OceanStor Dorado поддерживает только тип томов "Thin".

Политика

SmartQoS

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

  • Ограничительные параметры политики: maxIOPS и maxBandWidth.

  • Защитные параметры политики: minIOPS, minBandWidth и latency.

Для СХД OceanStor Dorado:

Параметру IOType должно быть задано значение 2.

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

Копирование данных

FastClone

Только некоторые устройства хранения поддерживают быстрое клонирование данных (FastClone).

  • OceanStor Dorado: 6.1.0 и более новые версии

  • OceanStor Dorado V3: V300R001C20 и более новые версии

  • OceanStor 6.1.3/6.1.5/6.1.6

При использовании быстрого клонирования данных (FastClone) могут быть недоступны следующие функции: HyperMetro, удаленная репликация, моментальные снимки, клонирование.

Полная копия данных

Скорость копирования можно настроить. По умолчанию используется средняя скорость копирования LUN.

  • Низкая: от 0 МБ/с до 5 МБ/с

  • Средняя: от 10 МБ/с до 20 МБ/с

  • Высокая: от 50 МБ/с до 70 МБ/с

  • Максимальная: больше 100 МБ/с

Лицензия

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

Необходима лицензия HyperSnap.

Создание тома с настройками качества обслуживания (QoS)

Необходима лицензия SmartQoS.

Создание тома HyperMetro

Необходима лицензия HyperMetro.

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

Необходима лицензия HyperCopy/HyperClone.

Создание зеркалируемого тома (mirrored volume)

Необходима лицензия HyperSnap & HyperCopy/HyperClone.

Создание копии тома

Необходима лицензия HyperSnap & HyperCopy/HyperClone.

REST-запросы

Максимально допустимое количество одновременных REST-запросов, отправляемых устройству хранения драйвером Cinder

Значение по умолчанию — 20.

Рекомендуется подключать каждое устройство хранения к двум драйверам Cinder.

Обязательные параметры конфигурационного XML-файла

Пример конфигурационного XML-файла для iSCSI

<?xml version='1.0' encoding='UTF-8'?>
<config>
    <Storage>
        <Product>***</Product>
        <Protocol>iSCSI</Protocol>
        <RestURL>https://*.*.*.*:8088/deviceManager/rest/;https://*.*.*.*:8088/deviceManager/rest/</RestURL>
        <UserName>***</UserName>
        <UserPassword>***</UserPassword>
        <SSLCertVerify>True</SSLCertVerify>
        <SSLCertPath>***</SSLCertPath>
    </Storage>
    <LUN>
        <StoragePool>***</StoragePool>
        <LUNType>***</LUNType>
        <LUNCopySpeed>***</LUNCopySpeed>
    </LUN>
    <iSCSI>
        <Initiator HostName="******" ALUA="*" FAILOVERMODE="*" SPECIALMODETYPE="*" PATHTYPE="*" TargetIP="*.*.*.* *.*.*.*"/>
        <Initiator HostName="******" ALUA="*" FAILOVERMODE="*" SPECIALMODETYPE="*" PATHTYPE="*" TargetIP="*.*.*.* *.*.*.*"/>
    </iSCSI>
</config>

Пример конфигурационного XML-файла для Fibre Channel

<?xml version='1.0' encoding='UTF-8'?>
<config>
    <Storage>
        <Product>***</Product>
        <Protocol>FC</Protocol>
        <RestURL>https://*.*.*.*:8088/deviceManager/rest/;https://*.*.*.*:8088/deviceManager/rest/</RestURL>
        <UserName>***</UserName>
        <UserPassword>***</UserPassword>
        <SSLCertVerify>True</SSLCertVerify>
        <SSLCertPath>***</SSLCertPath>
    </Storage>
    <LUN>
        <StoragePool>***</StoragePool>
        <LUNType>***</LUNType>
        <LUNCopySpeed>***</LUNCopySpeed>
    </LUN>
    <FC>
        <MinOnlineFCInitiator>**</MinOnlineFCInitiator>
        <Initiator HostName="***" ALUA="***" FAILOVERMODE="***" PATHTYPE="***"/>
        <Initiator HostName="***" ALUA="***" FAILOVERMODE="***" PATHTYPE="***"/>
    </FC>
</config>

Обязательные параметры

Product

Тип продукта. Может иметь значение:

  • V5 — СХД серии OceanStor V5;

  • V6 — СХД серии OceanStor 6.1.3/6.1.5/6.1.6;

  • Dorado — СХД серии OceanStor Dorado.

Установите параметр Product на основе модели СХД.

Protocol

Тип протокола подключения. Укажите iSCSI для iSCSI или FC для Fibre Channel.

RestURL

Адрес для доступа к интерфейсу REST. Можно указать несколько адресов, использовав точки с запятыми (;) как разделители.

UserName

Имя учетной записи администратора или суперадминистратора хранилища.

UserPassword

Пароль учетной записи администратора или суперадминистратора хранилища.

SSLCertVerify

Включение проверки подлинности сертификатов. Может иметь значение True или False. Если параметр не задан, по умолчанию используется значение False.

SSLCertPath

Путь к файлу цепочки сертификатов для проверки подлинности. Параметр необходим, когда параметру SSLCertVerify задано значение True.

StoragePool

Имя пула хранения. Необходимо заранее создать этот пул хранения в целевом хранилище. Можно указать несколько имен пулов, использовав точки с запятыми (;) как разделители.

LUNType

Тип создаваемых LUN. Может иметь значение Thick или Thin. СХД OceanStor Dorado поддерживает только значение Thin.

LUNCopySpeed

Скорость копирования LUN. Может иметь значение:

  • 1 — низкая;

  • 2 — средняя;

  • 3 — высокая;

  • 4 — максимальная.

MinOnlineFCInitiator

Этот параметр можно использовать только для протокола подключения Fibre Channel.

Минимальное количество доступных инициаторов Fibre Channel. Значение должно быть числом. Значение по умолчанию указывает, что все инициаторы должны быть в состоянии онлайн для завершения монтирования тома.

Initiator

Сведения о параметрах см. в таблице "Описание конфигурации инициатора".

Примечание

СХД OceanStor V5, OceanStor 6.1.3/6.1.5/6.1.6, OceanStor Dorado V3 и OceanStor Dorado поддерживают либо параметр Name, либо параметр HostName (их нельзя использовать одновременно). Параметр HostName является рекомендуемым.

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

HostName

Значение параметра HostName является регулярным выражением на основе имени сервера, на котором расположена служба Nova-compute или Cinder-volume. Укажите либо параметр HostName, либо параметр Name.

Когда параметру HostName задано значение *, используется и применяется общая конфигурация инициаторов для всех серверов с любым именем. Когда параметру HostName задано какое-либо другое значение, используется главная конфигурация инициаторов.

Правила политики конфигурации инициаторов:

  • Приоритет: главная конфигурация инициаторов на основе имени сервера > общая конфигурация инициаторов на основе имени сервера.

  • В главной конфигурации инициаторов использовать первую секцию ALUA, которая соответствует политике конфигурации.

Примеры использования этого параметра см. в подразделе "Примеры политики конфигурации инициаторов".

В ОС Linux можно выполнить команду cat /etc/hostname или команду hostname, чтобы узнать имя сервера.

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

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

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

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

    • Используйте общую конфигурацию инициаторов HostName="*".

    • Укажите параметр Name вместо параметра HostName.

При настройке параметра HostName число серверных подключений является ограниченным. Подробные сведения об этом ограничении можно получить на странице запроса спецификаций по запросу Maximum number of iSCSI connections per controller enclosure (для iSCSI) или Maximum number of Fibre Channel connections per controller enclosure (для Fibre Channel). Если число серверных подключений меньше либо равно максимальному значению, рекомендуется использовать общую конфигурацию инициаторов. Если число серверных подключений больше, чем максимальное значение, используйте главную конфигурацию инициаторов.

Name
  • Протокол подключения iSCSI.

    Значение параметра Name — это имя iSCSI-инициатора сервера (IQN), на котором расположена служба Nova-compute или Cinder-volume. Укажите либо параметр HostName, либо параметр Name.

    Чтобы узнать имя iSCSI-инициатора сервера (IQN), можно выполнить команду cat /etc/iscsi/initiatorname.iscsi.

    Примеры использования этого параметра см. в подразделе "Примеры политики конфигурации инициаторов".

  • Протокол подключения Fibre Channel.

    Значение параметра Name — это идентификатор Fibre Channel-инициатора сервера (WWN), на котором расположена служба Nova-compute или Cinder-volume. Укажите либо параметр HostName, либо параметр Name.

    Чтобы узнать идентификатор Fibre Channel-инициатора сервера (WWN), можно выполнить команду cat /sys/class/fc_host/*/port_name.

    Примеры использования этого параметра см. в подразделе "Примеры политики конфигурации инициаторов".

Параметры ALUA

Параметры ALUA, которые можно настроить, включают ALUA, FAILOVERMODE, SPECIALMODETYPE, PATHTYPE, ACCESSMODE и HYPERMETROPATHOPTIMIZED.

TargetIP

Этот параметр можно использовать только для протокола подключения iSCSI.

TargetIP указывает IP-адрес порта целевого устройства iSCSI. Можно задать несколько IP-адресов, использовав символ пробела как разделитель. Можно указать разные значения параметра TargetIP для разных серверов.

Можно войти в Менеджер устройств (DeviceManager), чтобы узнать IP-адрес порта целевого устройства iSCSI.

  • СХД серии OceanStor V5: Чтобы узнать IP-адрес Ethernet-порта указанного устройства хранения, выберите Provisioning → Port → Ethernet Ports в Менеджере устройств.

  • СХД серии OceanStor Dorado V3: Чтобы узнать IP-адрес Ethernet-порта указанного устройства хранения, выберите Provisioning → Port → Ethernet Ports в Менеджере устройств.

  • СХД серии OceanStor Dorado: Чтобы узнать IP-адрес логического порта указанного устройства хранения, выберите Services → Network → Logical Ports в Менеджере устройств и используйте IP-адрес с типом протокола iSCSI.

  • СХД серии OceanStor 6.1.3/6.1.5/6.1.6: Чтобы узнать IP-адрес логического порта указанного устройства хранения, выберите Services → Network → Logical Ports в Менеджере устройств и используйте IP-адрес с типом протокола iSCSI.

Примеры политики конфигурации инициаторов

  • Пример 1:

    <iSCSI>
        <Initiator HostName="*" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
        <Initiator HostName="Host" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
    </iSCSI>
    

    Если имя сервера — Host, оба из предшествующих элементов конфигурации могут использоваться, чтобы указать сведения, такие как ALUA и группа портов, для инициатора. Согласно правилам (предпочтение более точному соответствию) приоритет второго элемента конфигурации (HostName="Host") выше, чем приоритет первого (HostName="*").

  • Пример 2:

    <iSCSI>
        <Initiator HostName="Host[0-9]" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
        <Initiator HostName="Host[5-7]" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
    </iSCSI>
    

    Если имя сервера — это Host6, оба из предшествующих элементов конфигурации могут использоваться, чтобы указать сведения, такие как ALUA и группа портов, для инициатора. Согласно правилам (предпочтение первому соответствию) используется первый элемент конфигурации, чтобы настроить инициатор.

  • Пример 3:

    <FC>
        <Initiator HostName="*" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
        <Initiator HostName="Host" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
    </FC>
    

    Если имя сервера — Host, оба из предшествующих элементов конфигурации могут использоваться, чтобы указать сведения, такие как ALUA и группа портов, для инициатора. Согласно правилам (предпочтение более точному соответствию) приоритет второго элемента конфигурации (HostName="Host") выше, чем приоритет первого (HostName="*").

  • Пример 4:

    <FC>
        <Initiator HostName="Host[0-9]" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
        <Initiator HostName="Host[5-7]" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
    </FC>
    

    Если имя сервера — это Host6, оба из предшествующих элементов конфигурации могут использоваться, чтобы указать сведения, такие как ALUA и группа портов, для инициатора. Согласно правилам (предпочтение первому соответствию) используется первый элемент конфигурации, чтобы настроить инициатор.

  • Пример 5:

    <iSCSI>
        <Initiator HostName="^Host1$" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
        <Initiator HostName="^Host10$" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx" TargetIP="x.x.x.x y.y.y.y"/>
    </iSCSI>
    

    Если имя сервера — Host1, используется первый элемент конфигурации, чтобы настроить инициатор. Если имя сервера — Host10, используется второй элемент конфигурации, чтобы настроить инициатор. Символ ^ соответствует началу строки символов, а символ $ — концу строки символов.

  • Пример 6:

    <FC>
        <Initiator HostName="^Host1$" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
        <Initiator HostName="^Host10$" ALUA="xxx" FAILOVERMODE="XXX" PATHTYPE="xxx"/>
    </FC>
    

    Если имя сервера — Host1, используется первый элемент конфигурации, чтобы настроить инициатор. Если имя сервера — Host10, используется второй элемент конфигурации, чтобы настроить инициатор. Символ ^ соответствует началу строки символов, а символ $ — концу строки символов.

Необязательные параметры конфигурационного XML-файла

Пример использования необязательных параметров

<Storage>
    <Semaphore>***</Semaphore>
</Storage>
<LUN>
    <WriteType>***</WriteType>
    <Prefetch Type="***" Value="***"/>
    <LUNcopyWaitInterval>***</LUNcopyWaitInterval>
    <Timeout>***</Timeout>
    <LUNCloneMode>***</LUNCloneMode>
    <HyperSyncSpeed>***</HyperSyncSpeed>
    <ReplicaSyncSpeed>***</ReplicaSyncSpeed>
    <ForceDeleteVolume>***</ForceDeleteVolume>
    <HyperEnforceMultipath>***</HyperEnforceMultipath>
    <SnapshotRollbackSpeed>***</SnapshotRollbackSpeed>
    <QosIgnoredParam>***;***</QosIgnoredParam>
</LUN>

Необязательные параметры

Semaphore

Значение по умолчанию: 20

Максимально допустимое количество одновременных REST-запросов, отправляемых устройству хранения драйвером Cinder.

WriteType

Значение по умолчанию: 1

Режим записи данных в кэш. Может иметь значение:

  • 1 — режим "Write-back";

  • 2 — режим "Write-through".

Тома, созданные в СХД серии OceanStor Dorado, поддерживают только режим "Write-back".

Prefetch Type

Значение по умолчанию: 3

Политика упреждающей загрузки данных в кэш. Может иметь значение:

  • 0 — политика "No prefetch";

  • 1 — политика "Constant prefetch";

  • 2 — политика "Variable prefetch";

  • 3 — политика "Intelligent prefetch".

Prefetch Value

Значение по умолчанию: 0

Значение параметра политики упреждающей загрузки данных в кэш.

LUNcopyWaitInterval

Значение по умолчанию: 5

После запуска операции копирования LUN драйверу необходимо постоянно запрашивать сведения о прогрессе операции. Этот параметр задает интервал между запросами в секундах.

Timeout

Значение по умолчанию: 2592000

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

LUNCloneMode

Значение по умолчанию: luncopy

Режим клонирования LUN. Может иметь значение:

  • fastclone,

  • luncopy.

СХД OceanStor Dorado V300R001C20 и ее новые версии и СХД OceanStor Dorado 6.1.0 и ее новые версии поддерживают режимы fastclone и luncopy. Остальные устройства хранения поддерживают только режим luncopy.

Примечание

В режиме FastClone могут быть недоступны следующие функции: HyperMetro, удаленная репликация, моментальные снимки, создание группы согласованности из моментального снимка группы согласованности или другой группы согласованности, клонирование.

HyperSyncSpeed

Значение по умолчанию: 2

Скорость синхронизации пары HyperMetro. Может иметь значение:

  • 1 — низкая;

  • 2 — средняя;

  • 3 — высокая;

  • 4 — максимальная.

ReplicaSyncSpeed

Значение по умолчанию: 2

Скорость синхронизации пары удаленной репликации. Может иметь значение:

  • 1 — низкая;

  • 2 — средняя;

  • 3 — высокая;

  • 4 — максимальная.

ForceDeleteVolume

Значение по умолчанию: False

Принудительно удалять LUN, который существует в представлении соответствий (mapping view). Может иметь значение True или False.

HyperEnforceMultipath

Значение по умолчанию: True

Включение многопутевого ввода-вывода в сценариях HyperMetro. Может иметь значение True или False.

SnapshotRollback-Speed

Значение по умолчанию: 3

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

  • 1 — низкая;

  • 2 — средняя;

  • 3 — высокая;

  • 4 — максимальная.

QosIgnoredParam

Значение по умолчанию: —

Параметры качества обслуживания фронтенда, которые бэкенд драйвера должен игнорировать. Можно указать несколько параметров, использовав точки с запятыми (;) как разделители.