Rook CephFS PVC 在禁用认证时卡在 Pending 状态问题解析
问题背景
在使用 Rook 部署的 Ceph 集群中,当管理员尝试通过修改 Ceph 配置文件来禁用客户端认证时,可能会遇到 CephFS 类型的 Persistent Volume Claim (PVC) 无法正常创建的问题。具体表现为 PVC 长时间处于 Pending 状态,并报错"Operation not supported"。
问题现象
当在 Ceph 配置中将以下三个认证参数设置为 none 时:
auth_client_required = none
auth_cluster_required = none
auth_service_required = none
创建 CephFS PVC 会出现如下错误:
Warning ProvisioningFailed failed to provision volume with StorageClass "cephfs-show": rpc error: code = InvalidArgument desc = failed to get connection: connecting failed: rados: ret=-95, Operation not supported
根本原因
经过深入分析,发现这个问题主要由两个关键因素导致:
-
配置未正确传递:虽然管理员在 rook-config-override ConfigMap 中设置了认证参数为 none,但这些配置并未正确传递到 CSI 驱动使用的配置文件中。
-
CSI 驱动依赖:Rook 的 CephFS CSI 驱动在创建卷时会读取 /etc/ceph/ceph.conf 文件中的配置,如果该文件中仍然保持默认的 cephx 认证设置,就会导致连接失败。
解决方案
要解决这个问题,需要确保配置正确应用到所有相关组件:
-
创建正确的 ConfigMap:不仅需要创建 rook-config-override,还需要专门为 CSI 驱动创建 csi-ceph-conf-override ConfigMap。
-
重启相关组件:创建或修改 ConfigMap 后,需要重启 Rook Operator 以应用新的配置。
-
验证配置传播:通过以下方式确认配置已正确应用:
- 检查 mon 容器中的配置
- 检查 csi-cephfsplugin 容器中的 /etc/ceph/ceph.conf 文件
最佳实践
-
配置管理:对于 Ceph 集群的配置修改,建议同时更新 rook-config-override 和 csi-ceph-conf-override 两个 ConfigMap。
-
变更顺序:
- 先创建或更新 ConfigMap
- 然后重启 Rook Operator
- 最后验证 CSI 驱动是否加载了新配置
-
认证选择:除非有特殊需求,否则建议保持 cephx 认证启用状态,这是 Ceph 集群的安全最佳实践。
技术细节
当 Ceph 认证被禁用时,CSI 驱动需要能够正确处理无认证的连接请求。这涉及到 Rook 的配置管理机制和 CSI 驱动的实现细节:
- Rook Operator 负责将集群配置传播到各个组件
- CSI 驱动需要能够读取最新的配置信息
- 配置变更需要触发相关组件的重新加载
通过理解这些组件间的交互关系,可以更好地诊断和解决类似问题。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0212
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0137
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03