ceph架构简介
在测试OpenStack的后端存储时,看到了ceph作为后端存储时的各种优势 ,于是查询资料,总结了这篇ceph架构的博客,介绍了ceph的架构和ceph的核心组件。ceph整体十分庞大,本文只是介绍了整体架构和概念,想要详细查看ceph请看博文:Ceph介绍及原理架构分享
1.1 Ceph简介
Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
1.2 Ceph架构
支持三种接口:
- Object:有原生的API,而且也兼容Swift和S3的API。
- Block: 支持精简配置、快照、克隆。
- File:Posix接口,支持快照。
1.2.1 架构介绍
1、ceph架构最底层是RADOS对象存储系统(Ceph最底层的存储单元是Object对象),外部想要访问该系统需要librados库。
2、ceph对外提供四种存储:应用直接访问RADOS、对象存储接口、块存储接口、文件系统接口;分别对应:代码直接访问、radosgw(rgw)、librbd(rbd)、元数据服务器(MDS)
1.3 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 Groups,是一个逻辑的概念,一个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对外提供的文件系统服务。