Ceph架构简介及使用场景介绍
1.1 Ceph简介
Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。CentOS、RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。中网通技术为客户提供的Ceph高性能分布式存储便是利用这一开源技术,存储使用NFS协议的开源NAS(下图为使用普通SATA硬盘搭建的ceph用NBU软件备份数据截图)。
1.2 Ceph特点
-
高性能
a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。
-
高可用性
a. 副本数可以灵活控制。
b. 支持故障域分隔,数据强一致性。
c. 多种故障场景自动进行修复自愈。
d. 没有单点故障,自动管理。
-
高可扩展性
a. 去中心化。
b. 扩展灵活。
c. 随着节点增加而线性增长。
-
特性丰富
a. 支持三种存储接口:块存储、文件存储、对象存储。
b. 支持自定义接口,支持多种语言驱动。
1.3 Ceph架构
支持三种接口:
-
Object:有原生的API,而且也兼容Swift和S3的API。
-
Block:支持精简配置、快照、克隆。
-
File:Posix接口,支持快照。rados
1.4 Ceph核心组件及概念介绍
-
Monitor
一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
-
OSD
OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
-
MDS
MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
-
Object
Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
-
PG
PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
-
RADOS
RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
-
Libradio
Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
-
CRUSH
CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
-
RBD
RBD全称RADOS block device,是Ceph对外提供的块设备服务。
-
RGW
RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
-
CephFS
CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。