Доступно с ограничениями в редакциях: 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 EOFd8 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 EOFd8 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контроллер модуля проставляет сам на узлах, попадающих под селектор узлов модуля, поэтому размечать их вручную не нужно.
Проверка работоспособности модуля
Проверьте работоспособность модуля по инструкции.