首页/新闻资讯/正文详情

Rook Ceph 外部管理工具支持:通过省略 Pool 配置让 Rook 只运行容器而不管理逻辑资源

发布时间:2026/9/23 7:21:04 来源:云帆数科 栏目:资讯中心
Rook Ceph 外部管理工具支持:通过省略 Pool 配置让 Rook 只运行容器而不管理逻辑资源
云原生存储容器编排运维【免费下载链接】rookStorage Orchestration for Kubernetes项目地址https://gitcode.com/gh_mirrors/roo/rook点击查看免费下载Rook 的 Ceph 存储编排通常会在创建CephFilesystem/CephObjectStore自定义资源CR时同步创建并管理底层的 Ceph pool、Ceph 文件系统CephFS等逻辑资源。但对于希望自行管理 pool 的团队Rook 提供了一种外部管理模式在FilesystemSpec与ObjectStoreSpec中省略 metadata/data pool 字段即可让 Rook 只负责运行守护进程容器MDS、RGW而把 pool 与文件系统的生命周期完全交给用户例如由管理员手工创建、或由外部工具编排。本文基于仓库中的设计文档 design/ceph/external-management.md结合当前版本的源码实现讲解这一特性的设计动机、使用方式与底层行为。设计背景为什么需要可选的 Pool 管理在设计文档发布时的 Rook 0.8 版本中创建一个Filesystem或ObjectStore会连带创建对应的 Ceph 文件系统与 pool删除 CR 也会连带删除这些逻辑资源。这种全权托管模型在以下场景成立Ceph 集群的配置完全处于 Rook 可配置的子集范围内且用户不会在带外out of band修改 pool 的配置。但该模型存在三类典型痛点需要使用 Rook 子集之外的 Ceph 功能用户希望先手工创建 pool再让 Rook 仅为文件系统运行守护进程容器MDS pod。需要保留带外修改用户外部修改了 pool 的配置例如副本数希望 Rook 尊重这一新配置而不是在 reconcile 时改回与CephFilesystem设置一致的值。风险规避诉求担心对 Rook 配置的误编辑会永久删除 Ceph pool希望 pool 只能通过带确认提示的命令式接口删除。核心提案pool 字段留空即跳过逻辑资源管理设计文档给出的方案非常简洁当FilesystemSpec以及ObjectStoreSpec中的 metadata 与 data pool 字段留空时Rook 将不对该文件系统/对象存储做任何 Ceph 逻辑资源pool 与 CephFS的管理。同时定义了三个配套语义动态切换pool 字段可以初始为非空、之后改为空。这种情况下即使 Rook 此前已经创建了逻辑资源在删除 Rook 文件系统时也不会删除这些逻辑资源。不可部分管理如果 metadata/data 字段中任意一个非空则两者都必须非空。Rook 不会对一个文件系统或对象存储部分管理其 pool。先决条件省略 pool 后名为myfs的 CephFS 必须已存在于 Ceph 集群中否则 Rook 不会启动任何 MDS pod。改动前后配置对比改动前pool 始终指定apiVersion: ceph.rook.io/v1 kind: Filesystem metadata: name: myfs namespace: rook-ceph spec: metadataPool: replicated: size: 3 dataPools: - erasureCoded: dataChunks: 2 codingChunks: 1 metadataServer: activeCount: 1 activeStandby: true改动后pool 可省略Rook 不创建任何 pool 或 CephFSapiVersion: ceph.rook.io/v1 kind: Filesystem metadata: name: myfs namespace: rook-ceph spec: metadataServer: activeCount: 1 activeStandby: true注意示例中的kind: Filesystem对应设计文档写作时的 CRD 命名在当前仓库中该 CRD 已演进为CephFilesystem见 pkg/apis/ceph.rook.io/v1/types.go实际使用时请以仓库中生成的 CRD 与示例文件为准。源码实现空 pool 判断如何贯穿整个生命周期该设计在当前仓库中已完全落地。以 CephFS 为例判断逻辑统一基于len(fs.Spec.DataPools) ! 0由于 metadata 与 data pool 不可部分指定dataPools 是否为空即可代表整体是否省略创建路径pkg/operator/ceph/file/filesystem.gocreateFilesystem中mds.NewCluster(...).Start()总是先执行MDS 容器照常运行随后仅当len(fs.Spec.DataPools) ! 0时才调用doFilesystemCreate去执行 pool 创建与fs new。删除路径pkg/operator/ceph/file/filesystem.godeleteFilesystem中仅当len(fs.Spec.DataPools) ! 0且PreserveFilesystemOnDelete未设置时才会调用cephclient.RemoveFilesystem从 Ceph 中移除文件系统省略 pool 的 CR 删除时不会触碰任何既有逻辑资源。校验路径pkg/operator/ceph/file/filesystem.govalidateFilesystem中注释明确写道 No data pool means that we expect the fs to exist already无 data pool 意味着我们预期该文件系统已存在直接返回 nil跳过 pool spec 校验与重名校验。这套逻辑经由控制器 pkg/operator/ceph/file/controller.go 的 reconcile 流程validateFilesystem→createFilesystem/deleteFilesystem分别见其中 L356、L502、L512 附近驱动构成校验-创建/删除闭环。对象存储侧的实现对称性设计文档要求ObjectStoreSpec也支持相同的省略语义当前仓库同样已实现ObjectStoreSpec中MetadataPool与DataPool均为可选的PoolSpec见 pkg/apis/ceph.rook.io/v1/types.go。校验时允许空 pool spec因为它们可能已由 ceph mgr 等外部途径创建pkg/operator/ceph/object/rgw.go空判断由EmptyPoolreflect.DeepEqual(pool, cephv1.PoolSpec{})见同文件 L353-L355完成。创建时若 data/metadata pool 为空则只检查 RGW 所需的一组池rgw.control、rgw.meta、rgw.buckets.data等见 pkg/operator/ceph/object/objectstore.go 与CreateObjectStorePools中EmptyPool分支 L799-L812是否已存在缺失即报错绝不代为创建。删除时若两个 pool 字段均为空则跳过 pool 删除pkg/operator/ceph/object/objectstore.go日志明确输出 skipping removal of pools since not specified in the object store。与相关特性的协同preservePoolsOnDelete/preserveFilesystemOnDelete这两组保留开关定义见 pkg/apis/ceph.rook.io/v1/types.go与省略 pool是互补的两条路径——前者在 Rook 已托管 pool 时保留它们后者从一开始就不托管 pool。典型示例见 deploy/examples/filesystem.yaml。外部集群external cluster模式仓库中file/mirror、file/subvolumegroup等控制器对 external 集群采取不删除、由管理员手工管理的策略见 pkg/operator/ceph/file/subvolumegroup/controller.go与本设计Rook 只跑容器、逻辑资源归用户的哲学一致。需要说明的是外部管理省略 pool与外部集群external cluster即 Rook 只编排一个既有 Ceph 集群是两个不同的概念前者关注单个 CR 是否托管逻辑资源后者关注整个集群是否由 Rook 引导创建。迁移与影响评估设计文档明确指出无需迁移。既有文件系统与对象存储在创建时总是显式设置了 pool 字段因此升级后它们仍由 Rook 继续托管行为不变。受影响面仅限于 Rook Operator需要在FilesystemSpec/ObjectStoreSpec的 pool 省略时跳过逻辑资源管理——如上文所示这一逻辑在当前源码的创建、删除、校验三条路径中均已实现。使用建议在配置外部管理模式时请遵循以下实践预先在 Ceph 侧创建好 pool 与 CephFS可用ceph fs new或radosgw-admin再提交省略 pool 字段的 CRmetadata 与 data pool 必须同时省略或同时指定避免出现 Rook 部分托管的情况若后续从托管切换为省略把 pool 字段置空Rook 将放弃对这些逻辑资源的删除权需确认这是预期行为结合PreservePoolsOnDelete、PreserveFilesystemOnDelete等开关可构建托管但保留与从不托管两种渐进式管理策略。通过该特性Rook 成功将运行守护进程容器与管理 Ceph 逻辑资源解耦使需要精细控制 pool 的团队如使用 Rook 子集之外的 Ceph 功能、需要保留带外配置、或要求命令式删除确认的团队也能安全使用 Rook 的编排能力。赞分享云原生存储容器编排运维【免费下载链接】rookStorage Orchestration for Kubernetes项目地址https://gitcode.com/gh_mirrors/roo/rook点击查看免费下载相关推荐Ceph mgr rook 编排器模块在 Kubernetes 中借助 Rook 统一管理 Ceph 集群Ceph mgr rook 编排器模块在 Kubernetes 中借助 Rook 统一管理 Ceph 集群 本指南讲解 Ceph 的 rook mgr 模块存储分布式文件系统对象存储后端高可用Rook 的 Ceph 配置管理演进从 ceph.conf 到 Ceph 集中式配置存储Rook 的 Ceph 配置管理演进从 ceph.conf 到 Ceph 集中式配置存储 本文基于 Rook 仓库中的设计文档 ceph config upd云原生存储容器编排运维Formula.js测试策略确保函数计算结果准确性的完整指南Formula.js测试策略确保函数计算结果准确性的完整指南 Formula.js作为JavaScript版的Excel公式函数库其 测试策略 对于保证函数数据分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

基于兰姆波的航空航天结构健康监测技术解析
基于兰姆波的航空航天结构健康监测技术解析

1. 项目背景与核心价值在航空航天领域,结构健康监测(SHM)就像给飞机装上了"智能体检系统"。传统检测需要停机拆解,而我们的方法让飞机在飞行中就能完成"体检"。这项技术的突破性在于:通过兰姆波响应分析,能在… · 2026/9/23 7:21:04

搞懂1019报错:面试必问的环境坑,3步修复不再卡半天
搞懂1019报错:面试必问的环境坑,3步修复不再卡半天

搞懂1019报错:面试必问的环境坑,3步修复不再卡半天 配置环境就卡半天?遇到 1019 报错直接懵圈?别急,这不只是个简单的数字,它是后端面试里的“隐形杀手”,也是项目上线前的“拦路虎”。很多开发者以为只要代码跑通就行,结果一到生产环境或… · 2026/9/23 7:20:58

双有源桥DAB变换器热仿真与闭环控制实践
双有源桥DAB变换器热仿真与闭环控制实践

1. 项目背景与核心价值双有源桥(Dual Active Bridge, DAB)作为隔离型直流变换器的典型拓扑,在新能源发电、电动汽车充电、数据中心供电等领域具有广泛应用。这个项目实现了三大核心技术模块的完整闭环验证:热仿真与损耗分析&#… · 2026/9/23 7:20:58

业务战略可视化工具:动态评估与决策优化
业务战略可视化工具:动态评估与决策优化

1. 项目概述"VTC战略与落地②:战略规划层的革命——一张图看清所有业务的生死位置"这个标题揭示了企业战略管理领域的一个关键痛点:如何直观、清晰地评估各项业务在整体战略布局中的位置和价值。作为从业15年的战略咨询顾问,我深知… · 2026/9/23 8:02:44

GPT-6时代提示词做减法:瘦身与Skills封装实战
GPT-6时代提示词做减法:瘦身与Skills封装实战

给提示词做减法这件事,我是怎么从“叠 buff”到被官方打脸的如果你最近刷过 OpenAI 的技术博客,大概会注意到一个反常识的信号:官方在 GPT-6 的模型卡里明确建议,提示词要“做减法”,尤其是当你在用模型自带的 Skills … · 2026/9/23 8:02:37

2025年AI论文辅助工具全测评与本科生写作指南
2025年AI论文辅助工具全测评与本科生写作指南

1. 项目背景与核心价值作为一名在学术写作领域摸爬滚打多年的老手,我深知本科生撰写毕业论文时的三大痛点:文献检索效率低、写作规范不熟悉、查重降重耗时长。2025年最新一代AI论文辅助平台的出现,正在彻底改变这一局面。这次受导师委托系统测… · 2026/9/23 8:02:31

SSM+MySQL志愿者服务平台源码:毕业设计快速跑通与二次开发指南
SSM+MySQL志愿者服务平台源码:毕业设计快速跑通与二次开发指南

简介:本资源为基于SSMMySQL的志愿者服务平台毕业设计完整资料包,面向计算机相关专业正在做毕设的学生及需要Java项目实战练习的学习者,也可用于课程设计与期末大作业。项目采用Java语言与SpringBoot框架,运行于JDK1.8、Tomcat7及M… · 2026/9/23 8:02:31

美业门店利润隐形杀手:五个效率黑洞与优化策略
美业门店利润隐形杀手:五个效率黑洞与优化策略

美业门店不比其他生意,流水看着漂亮,月底一算利润总是差一口气。很多店长跟我聊天的时候都有同一个困惑:项目没少做,人也没闲着,钱却不知道漏在了哪里。做美业运营这些年,我越来越确信一件事——绝大多数门… · 2026/9/23 8:02:31

Claude Code知识工作插件实战:slash command自动化文档处理
Claude Code知识工作插件实战:slash command自动化文档处理

1. 从"knowledge-work-plugins"这个名字说起:它到底在解决什么问题第一次看到knowledge-work-plugins这个仓库名,很多人会以为是某个插件市场的聚合列表,或者是一堆零散脚本的堆砌。实际翻进去看结构就会发现,它更像是一… · 2026/9/23 8:02:31

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码