CSM:适用于 PowerStore 的 CSI 驱动程序“无法将块设备与提供的 HCTL 匹配”
摘要: 容器存储模块 (CSM) 容器存储接口 (CSI) 驱动程序显示它无法将块设备与提供的主机通道目标 LUN (HCTL) 匹配。在 OpenShift 中,CoreOS 主机上基于光纤通道 (FC) 的 PowerStore 阵列会发生这种情况。由于 CoreOS 限制,逻辑单元号 (LUN) 标识号 (ID) 大于 255 时,会发生这种情况。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
在 LUN ID 超过 255 后,用户无法装载,并显示以下错误:
Kubernetes Pod error:
>MountVolume.MountDevice failed for volume "csivol-837d8735a7" : rpc error: code = Internal desc = unable to find device after multiple discovery attempts: wwn for FC device not found
dmesg/Journal logs管理此进程:
kernel: scsi: host X channel Y id Z lun<nnn> has a LUN larger than allowed by the host adapter
CSI 驱动程序节点日志
{"ID":"36634f4a-ff50-40f5-8c6d-384aef677f4e","Lun":"288","StagingPath":"/var/lib/kubelet/plugins/kubernetes.io/csi/csi-powerstore.dellemc.com/53bb9c3360084159a88e3325b93e3635f525b9fb528c00e391aceb56fa9a5a17/globalmount/36634f4a-ff50-40f5-8c6d-384aef677f4e","Targets":null,"WWN":"68ccf0980011601b6037197dd0b3248d","level":"error","msg":"can't match block device with provided HCTL, 11 0 0 288","time":"2023-12-14T15:29:45.070156092Z"}
原因
适用于 PowerStore 的 CSI 驱动程序使用表述性状态转移 (REST) 应用程序编程接口 (API) 调用从 PowerStore 阵列获取 LUN ID。
LUN ID 将继续递增,直至达到主机类型的最大 LUN ID。达到此值后,阵列将开始重复使用较小的数字。
Red Hat CoreOS (RHCOS) 和 Red Hat Enterprise Linux 中的默认 LUN ID 限制为 255 (0-255)。PowerStore 提供的 LUN ID 超过了此数字。
解决方案
分辨率:
由于 CoreOS 是一个不可变的操作系统,因此无法使用典型 Linux 过程在 CoreOS 上更改最大 LUN。
主机不是存储区域网络 (SAN),也不使用 iDRAC。
这允许在 RHCOS 中增加主机总线适配器 (HBA) 允许的最大 LUN ID 数。
Red Hat 提供了以下文章 (KB 26017),以使用 MachineConfig管理此进程:
如何在 RHCOS 中增加 HBA 允许的 LUN ID 数量?(外部链接)
解决 方案:
- 封锁并释放 有问题的 Kubernetes 节点
- 在 PowerStore UI 中,删除节点(假设没有掩蔽的卷)。
- 重新启动 Kubernetes 节点
- Kubernetes 节点
autoregisters启动时再次出现在 PowerStore UI 中 - 取消隔离 Kubernetes 节点,然后将 PVC 重新装载到同一节点
产品
Container Storage Modules Family, Container Storage Modules文章属性
文章编号: 000221980
文章类型: Solution
上次修改时间: 14 5月 2026
版本: 5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。