本着一以贯之的精神,我再次打开了编辑页面,今天就主要和大家感性的聊聊ceph这个概念吧!毕竟我对它也只有些许感性的认识,别要求太多嗷,因为没用。
主要特点
在上一篇文章中我也简单提到过ceph的一些特点,现在再次总结一次,对此展开的各种思考各位可自行上网谷歌,边查边学吸收更佳哟~
1.高性能
a,摒弃了传统的集中式存储元数据的方案,采用CRUSH算法(该算法本人已经了解一二,在后续的分享中我try - try 简单给大家解释一波),数据分布均衡,并行高;
b,考虑了容灾的隔离,能够实现各类负载的副本放置规则;
c, 能够支持上千个存储节点的规模,支持TB至PB级的数据。
2.高可用性
a,副本数(size)可灵活控制;
b,支持故障域分隔,数据强一致性;
c,多种故障场景自动进行修复自愈;
d,没有单点故障,自动管理。
3.高扩展性
a,去中心化(也可对应crush算法去理解);
b,扩展灵活;
c,随着节点的增长而线性增长。
ceph架构
ceph的生态系统可以大致划分为四部分:
客户端(数据用户)
元数据服务器(缓存和同步分布式元数据)
对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)
集群监视器(执行监视功能)
贴一张图:
一些概念
&>>monnitor
一个ceph集群需要多个monitor组成的小集群,他们通过Paxos同步数据,用来保存OSD的元数据;
&>>OSD
OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个ceph集群一般都有很多个OSD;
&>>MDS
MDS全称Ceph Metadata Server, 是CephFS服务依赖的元数据服务;
&>>Object
Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据;
&>>RADOS
RADOS全称Reliable Autonomic Distributed Object Store, 是Ceph集群的精华,用户实现数据分配、Failover等集群操作;
&>>Libradio
Libradio是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RDB/RGW/CephFS都是通过librados访问的;
&>>CRUSH
CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方;
&>>RBD
RBD全称RADOS block device,是Ceph对外提供的块设备服务;
&>>RGW
RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容;
&>>CephFS
CephFS全称Ceph File System,是Ceph对外提供的文件系统服务;
&>>PG
PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
最后贴一张图,上下文结合理解更佳, 以下: