Ceph / RADOS 存储内核:从 Map 到 BlueStore

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

本文介绍Ceph RADOS内核系列,共18篇,涵盖Map传播、OSD Messenger、CRUSH、PG Peering、BlueStore读写、恢复、EC路径及RBD/CephFS/RGW接入。旨在帮助工程师理解延迟与失败点,提供阅读路径和选型建议,对比MinIO、云块和SPDK,明确何时使用Ceph。

🔎

延伸解读

阅读路径设计:按需取用而非通读

系列提供多条阅读路径,如核心必读(1→2→5→6→8→10→16)和本地落盘(7→8→9),便于不同需求的工程师快速定位。这种模块化设计避免了线性通读的负担,适合已有分布式存储基础、希望深入特定环节(如BlueStore或接入层)的读者。

版本锚定与内容边界

系列明确锚定Ceph Squid v19.2.5,并声明不覆盖安装、编排、性能实测等主题,避免与站内其他文章重复。这种严谨的边界设定有助于读者预期内容深度,同时提示Tentacle(20.x)特性需显式标注,避免混淆。

选型视角:何时不选Ceph

系列不仅讲解Ceph内部机制,还专门对比MinIO、云块和SPDK,明确何时分布式对象栈的税不值得付。这种选型导向的内容对架构师尤为实用,帮助在自建Ceph与替代方案间做出理性决策,而非盲目推崇Ceph。

Q&A

Ceph RADOS 内核系列文章主要覆盖哪些内容?

该系列共18篇文章,涵盖Map传播、OSD Messenger、CRUSH、PG Peering、BlueStore读写、恢复、EC路径以及RBD/CephFS/RGW接入,旨在帮助工程师理解延迟与失败点,提供阅读路径和选型建议。

Ceph 中一次客户端写的延迟和失败点可能出现在哪些层?

延迟和失败点可能出现在MON/MGR map传播、OSD Messenger、CRUSH映射、PG Peering、BlueStore写入等环节,具体可参考系列第1-9和16篇。

PG peering 和 recovery/backfill 各自保证什么?

PG peering 保证PG内副本的一致性,确定权威日志和活动集;recovery/backfill 负责在故障后恢复数据副本,backfill 用于新OSD或缺失数据,recovery 用于副本间差异修复,两者都有限速机制。

BlueStore 相比 FileStore 消除了什么?小写如何落到 WAL?

BlueStore 消除了FileStore的双写问题(数据先写文件系统再写日志),直接管理裸设备。小写(小于min_alloc_size)会先写入BlueFS上的WAL(预写日志),再异步刷入数据区,以提高小写性能。

RBD、CephFS、RGW 分别如何将数据映射到 RADOS 对象?

RBD将image按striping规则切分为多个对象;CephFS通过MDS将文件元数据存储在RADOS对象中,数据也按对象存储;RGW将S3对象映射为RADOS对象,使用索引池和数据池,支持multipart上传。

何时应该选择 Ceph 而不是 MinIO、云块存储或本机 SPDK?

当需要统一存储平台、支持多种接口(块、文件、对象)、要求高可靠性和可扩展性时,选择Ceph;若仅需简单对象存储且规模小,MinIO更轻量;若追求极致低延迟且数据量小,本机SPDK更合适;云块存储适合公有云环境。

Ceph 系列文章推荐的快速建立坐标系的阅读路径是什么?

推荐路径为:1 → 2 → 5 → 6 → 8 → 10 → 16,即从概述、Map传播、PG Peering、客户端写路径、BlueStore写路径、恢复到排障,快速建立整体认知。

🏷️

标签

➡️

继续阅读