从Ceph俯瞰分布式文件系统

Ceph

Ceph 是一个分布式存储系统,提供块、文件和对象存储三个层次的抽象,并已部署在大规模生产集群中。

1
2
3
4
5
6
7
8
9
10
+------------------------+
| 应用层 / 客户端 |
+------------------------+
| 对象存储(API访问) | <-- 最高抽象
+------------------------+
| 文件存储(路径访问) | <-- 中等抽象
+------------------------+
| 块存储(原始块设备) | <-- 最底层
+------------------------+
| 物理磁盘、SSD 等 |
特性块存储(Block)文件存储(File)对象存储(Object)
访问方式以块为单位(如磁盘)以路径访问(/dir/file)以对象+ID 访问(API)
协议/APIiSCSI、RBD、NVMe-oFNFS、CIFS、CephFSS3、Swift、HTTP REST
元数据支持基本文件属性支持丰富自定义元数据
扩展性中到强(如 CephFS)极强(对象存储优于其他)
并发能力中(锁机制有时成瓶颈)
应用场景数据库、VM、K8S 卷文件共享、工程文件存储云应用、日志、备份、AI
文件系统支持客户端自己创建无(扁平结构)

Ceph的历史比Hadoop更久远。Hadoop的HDFS是文件存储层的抽象,并且由于块粒度为128MB,所以只适合大数据应用。MinIO使用兼容Amazon S3 API的对象存储,抽象层次更高,MinIO也可以使用Ceph作为底层存储。

2004 - Sage Weil 开始 Ceph 项目2006 - 博士论文发布,设计 CRUSH 算法2010 - Ceph 开源发布2011 - 创建 Inktank 公司,商业化支持2014 - Red Hat 收购 Inktank2015~2020 - 云原生集成(如 Rook)、功能日趋成熟2020~至今 - 聚焦云原生与多租户、Cephadm 成熟

Ceph本身三个层次的抽象都支持,块存储(RBD)、文件存储(CephFS)、对象存储(RGW)

Ceph架构图

抽象层级Ceph 组件对应场景说明
块存储RBD(RADOS Block Device)VM磁盘、数据库持久卷、Kubernetes PVC提供类似于裸盘或云硬盘(如 AWS EBS)的能力
文件存储CephFS文件共享、POSIX 文件系统、高性能计算提供类似 NFS 的 POSIX 文件系统语义
对象存储RGW(RADOS Gateway)云原生应用、备份归档、大数据存储提供兼容 S3、Swift 的对象接口

在K8S中使用Ceph

目前在K8S中使用Ceph有两种方式:

  • 直接使用 Ceph(你自己搭建、管理 Ceph 集群,再通过 Ceph-CSI 接入 K8S)
  • 使用 Rook-Ceph(通过 Kubernetes Operator 部署和管理 Ceph,完全云原生)

Rook架构图

使用Ceph-CSI插件自己搭建的有几种模式:

本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载时请注明原文链接:https://blog.hufeifei.cn/2025/04/Distribution/ceph/

鼓励一下
支付宝微信