1. Ceph 存储基础:发展历史、核心设计理念与分布式存储的关系
Ceph 是当前云原生存储领域最具影响力的开源分布式存储系统之一,也是 Rook 在 Kubernetes 上管理存储后端的主要目标。理解 Ceph 的起源、设计哲学及其在分布式存储生态中的定位,是掌握 Rook Ceph 控制平面调用的前提。
1.1 Ceph 发展历史
Ceph 的诞生源于 2004 年 Sage Weil 在加州大学圣克鲁兹分校(UCSC)的博士研究项目。其核心目标是设计一个无单点故障、可自愈、可线性扩展的分布式文件系统。2007 年,Ceph 正式开源并进入 Linux 内核主线。此后,Ceph 从文件系统逐步演变为统一存储平台,支持对象、块和文件三种接口。
| 时间 | 里程碑 | 关键意义 |
|---|---|---|
| 2004 | Sage Weil 启动 Ceph 博士项目 | 提出 CRUSH 算法与 RADOS 架构雏形 |
| 2007 | Ceph 开源并进入 Linux 内核 | 成为内核原生分布式文件系统选项 |
| 2012 | Inktank 公司成立 | 提供 Ceph 商业支持与产品化 |
| 2014 | Red Hat 收购 Inktank | Ceph 获得企业级生态与持续投入 |
| 2018 | Ceph 成为 CNCF 孵化项目 | 与 Kubernetes 生态深度整合 |
| 2022+ | Ceph Quincy / Reef 版本 | 强化 NVMe-oF、多站点、Rook 集成 |
关键认知:Ceph 从诞生之初就面向“无中心”设计,这与后来 Kubernetes 的声明式控制平面理念高度契合。Rook 正是利用这一特性,将 Ceph 的存储能力以 Operator 模式注入 K8s 集群。
1.2 核心设计理念
Ceph 的设计围绕三个核心理念展开,这些理念直接决定了其架构优势与运维特征:
- 完全去中心化(No Single Point of Failure):所有组件均支持多副本或纠删码部署,无主节点瓶颈。客户端直接与存储节点通信,不经过元数据服务器。
- CRUSH 算法(Controlled Replication Under Scalable Hashing):数据分布由客户端计算,无需查询中心化元数据表。CRUSH 将数据对象映射到 PG(Placement Group),再映射到 OSD(Object Storage Daemon),实现数据自管理。
- 统一存储(Unified Storage):同一集群同时提供对象存储(RADOS Gateway / S3/Swift)、块存储(RBD)和文件存储(CephFS),底层统一由 RADOS 层承载。
CRUSH 算法核心公式(简化示意):
CRUSH(pg_id, cluster_map) → [osd1, osd2, osd3]
// 输入:PG ID + 集群拓扑(机架/主机/OSD)
// 输出:一组目标 OSD 列表(用于数据放置)
客户端本地即可计算数据位置,无需与中心节点交互,这是 Ceph 线性扩展的根本保证。
1.3 Ceph 与分布式存储的关系
在分布式存储技术谱系中,Ceph 属于软件定义存储(SDS)和统一存储的典型代表。它与传统分布式存储的对比关系如下:
| 维度 | Ceph | 传统分布式存储(如 HDFS) |
|---|---|---|
| 元数据管理 | 无中心(CRUSH 算法) | 中心化 NameNode / Master |
| 数据接口 | 对象 / 块 / 文件 三合一 | 通常仅支持单一接口 |
| 扩展方式 | 在线水平扩展,数据自动再平衡 | 需手动 rebalance 或停机 |
| 自愈能力 | 自动检测 OSD 故障并恢复 PG | 依赖上层应用或手动介入 |
| K8s 集成 | 原生 CSI 驱动 + Rook Operator | 通常需额外适配层 |
Ceph 在分布式存储生态中的定位可以概括为:底层 RADOS 提供高可靠对象存储,上层 librados / RBD / CephFS / RGW 提供多协议访问,Rook 则作为 Kubernetes 上的控制平面,将 Ceph 集群的部署、配置、扩缩容、故障恢复全部声明式化。
常见误区:Ceph 不是“分布式文件系统”的简单替代品。它的核心是 RADOS 对象存储层,文件系统(CephFS)只是上层的一种访问协议。在 K8s 场景中,块存储(RBD)和对象存储(RGW)的使用频率远高于文件系统。
1.4 Ceph 逻辑架构概览
下图展示了 Ceph 的核心组件分层及其与 Rook 控制平面的关系。注意:Rook 本身不参与数据路径,仅管理 Ceph 组件的生命周期与配置。
1.5 本章小结
- Ceph 从 2004 年博士项目起步,历经开源、商业化、Red Hat 收购、CNCF 孵化,已成为云原生存储的事实标准之一。
- 其核心设计理念——去中心化、CRUSH 算法、统一存储——使其在扩展性、自愈性和接口多样性上优于传统分布式存储。
- Ceph 与分布式存储的关系:它是 SDS 和统一存储的代表,底层 RADOS 提供对象存储基础,上层多协议访问,Rook 则作为 K8s 控制平面管理 Ceph 集群。
- 在后续章节中,我们将深入 Rook 如何通过 CRD 和 Operator 模式调用 Ceph 控制平面接口,实现存储集群的声明式管理。