Доступно с ограничениями в редакциях CSE Lite (1.73), CSE Pro (1.73)

Доступно без ограничений в редакциях:  EE

Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

Модуль предоставляет CSI для управления томами c использованием СХД Huawei. Модуль позволяет создавать StorageClass в Kubernetes через создание пользовательских ресурсов Kubernetes HuaweiStorageClass.

Создание StorageClass для CSI-драйвера csi.huawei.com пользователем запрещено.

На данный момент модулем поддерживаются СХД Huawei Dorado. Для поддержки других СХД Huawei, пожалуйста, свяжитесь с технической поддержкой.

Для снимков томов требуется модуль, поставляющий CRD группы snapshot.storage.k8s.io, — например snapshot-controller. Без него остальная функциональность модуля работает штатно, а VolumeSnapshotClass не создается.

Доступные режимы доступа для модуля: RWO, RWX — только в DVP.

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

Требования

  • Наличие развернутой и настроенной СХД Huawei.
  • Уникальные iqn в /etc/iscsi/initiatorname.iscsi на каждой из Kubernetes Nodes

Быстрый старт

Все команды следует выполнять на машине, имеющей доступ к API Kubernetes с правами администратора.

Включение модуля

  • Включите модуль csi-huawei. После этого на всех узлах кластера будет:

    • зарегистрирован CSI-драйвер;
    • запущены служебные поды компонентов csi-huawei.
    d8 k apply -f - <<EOF
    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: csi-huawei
    spec:
      enabled: true
      version: 1
    EOF
  • Дождитесь, когда модуль перейдёт в состояние Ready.

    d8 k get module csi-huawei -w

Создание StorageClass

Для создания StorageClass необходимо использовать ресурсы HuaweiStorageClass и HuaweiStorageConnection.

  • Примените команды для создания таких ресурсов, например:

    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: HuaweiStorageConnection
    metadata:
      name: huaweistorageconn
    spec:
      storageType: OceanStorSAN
      pools:
        - test
      urls: 
        - https://192.168.128.101:8088 
      login: "admin"
      password: "<your-password>"
      protocol: ISCSI
      portals:
        - 10.240.0.101
        - 10.250.0.101 
      maxClientThreads: 30
    
    EOF
    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: HuaweiStorageClass
    metadata:
      name: huaweisc
    spec:
      fsType: ext4
      pool: test
      reclaimPolicy: Delete
      storageConnectionName: huaweistorageconn
    EOF
  • Проверьте создание объекта (Phase должен быть Created):

    d8 k get huaweistorageconnections.storage.deckhouse.io <имя huaweistorageconnection>
    d8 k get huaweistorageclasses.storage.deckhouse.io <имя huaweistorageclass>

Подключение по Fibre Channel

Подключение по Fibre Channel настраивается тем же ресурсом HuaweiStorageConnection, что и подключение по iSCSI. Отличий два: protocol: FC и отсутствие portals — в этом поле указываются IP-адреса СХД для передачи данных (data-plane), и оно используется только IP-протоколами. Поле urls по-прежнему указывает на интерфейс управления, так как драйвер обращается к СХД по REST API, а по Fibre Channel передаются только данные.

  • Примените команды для создания таких ресурсов, например:

    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: HuaweiStorageConnection
    metadata:
      name: huawei-fc
    spec:
      storageType: OceanStorSAN
      pools:
        - prod
      urls:
        - https://192.168.128.101:8088
      login: "admin"
      password: "<your-password>"
      protocol: FC
      maxClientThreads: 30
    EOF
    d8 k apply -f -<<EOF
    apiVersion: storage.deckhouse.io/v1alpha1
    kind: HuaweiStorageClass
    metadata:
      name: huawei-fc-sc
    spec:
      fsType: ext4
      pool: prod
      reclaimPolicy: Delete
      storageConnectionName: huawei-fc
    EOF

Обратите внимание на следующее:

  • Поля storageType, protocol и maxClientThreads неизменяемы. Чтобы перевести существующее подключение с ISCSI на FC, пересоздайте ресурс HuaweiStorageConnection и ссылающиеся на него ресурсы HuaweiStorageClass.
  • Поддерживаются протоколы ISCSI, FC, ROCE, FC-NVME, DPC и SCSI. Для NVMe over Fibre Channel вместо FC используйте FC-NVME.
  • На стороне СХД должны быть заранее настроены zoning (зонирование фабрики) и host (хост — объект СХД, описывающий подключаемый сервер) или host group (группа хостов) с WWPN адаптеров HBA узлов. Драйвер находит хосты по их WWPN, но не создаёт зоны.
  • На узлах требуются пакеты multipath-tools (device-mapper-multipath) и sg3_utils. Их устанавливают ресурсы NodeGroupConfiguration модуля — те же, что используются для iSCSI.
  • Метку topology.kubernetes.io/protocol.fc контроллер модуля проставляет сам на узлах, попадающих под селектор узлов модуля, поэтому размечать их вручную не нужно.

Проверка работоспособности модуля

Проверьте работоспособность модуля по инструкции.