官网
介绍
Ceph 是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。Ceph 项目最早起源于 Sage 就读博士期间的工作(最早的成果于 2004 年发表),并随后贡献给开源社区。
Ceph 的架构包括几个不同的守护进程,每个守护进程负责 Ceph 的一个独特功能。这些守护进程包括:
RADOS(Reliable Autonomic Distributed Object Store):Ceph 存储集群的基础,负责存储对象并确保数据一致性和可靠性。
OSD(Object Storage Device):实际存储数据的进程,通常一个 OSD 守护进程绑定一个物理磁盘。
Monitor:维护整个集群的状态,是 Ceph 集群中最重要的组件之一。
MDS(Ceph Metadata Server):跟踪文件层次结构并存储只供 CephFS 使用的元数据。
Librados:简化访问 RADOS 的一种方法,支持多种语言。
RBD(RADOS block device):对外提供块设备服务。
RGW(RADOS gateway):对外提供对象存储服务,接口与 S3 和 Swift 兼容。
CephFS(Ceph File System):对外提供文件系统服务。
特点
高性能:摒弃了传统的集中式存储元数据寻址的方案,采用 CRUSH 算法,数据分布均衡,并行度高。能够支持上千个存储节点的规模,支持 TB 到 PB 级的数据。
高可用性:副本数可以灵活控制。支持故障域分隔,数据强一致性。多种故障场景自动进行修复自愈。没有单点故障,自动管理。
高可扩展性:去中心化。扩展灵活。随着节点增加而线性增长。
特性丰富:支持三种存储接口:块存储、文件存储、对象存储。支持自定义接口,支持多种语言驱动。
适用场景
块存储:Ceph 可以提供块设备服务,支持精简配置、快照、克隆等功能。可以用于 Docker 容器、虚拟机磁盘存储分配、日志存储和文件存储等场景。
文件存储:Ceph 可以提供文件系统服务,支持 POSIX 接口和快照功能。可以用于日志存储和有目录结构的文件存储等场景。
对象存储:Ceph 可以提供对象存储服务,支持原生 API 以及兼容 Swift 和 S3 的 API。适合用于更新变动较少的数据,例如图片存储和视频存储等场景。