新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/5 8:40:37来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/4 15:56:54

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/4 22:55:41

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/4 17:01:23

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/5 4:24:57

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/5 4:24:57

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉