ceph架构图01
ceph架构图02
目前来说,ceph在开源社区还是比较热门的,但是更多的是应用于云计算的后端存储。官方推荐使用ceph的对象式存储,速度和效率都比较高,而cephfs官方并不推荐直接在生产中使用。以上介绍的只是ceph的沧海一粟,ceph远比上面介绍的要复杂,而且支持很多特性,比如使用纠删码就行寻址,所以大多数在生产环境中使用ceph的公司都会有专门的团队对ceph进行二次开发,ceph的运维难度也比较大。但是经过合理的优化之后,ceph的性能和稳定性都是值得期待的。
ceph各层级架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fpr7b0tK-1597820399982)(https://upload-images.jianshu.io/upload_images/16952149-90a390178b733ed3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
全称Reliable Autonomic Distributed Object Store,即可靠的、自动化的、分布式对象存储系统。RADOS是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
Crush算法是Ceph的两大创新之一,通过Crush算法的寻址操作,Ceph得以摒弃了传统的集中式存储元数据寻址方案。而Crush算法在一致性哈希基础上很好的考虑了容灾域的隔离,使得Ceph能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时,Crush算法有相当强大的扩展性,理论上可以支持数千个存储节点,这为Ceph在大规模云环境中的应用提供了先天的便利。
Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,默认存储3份副本;支持两种类型:副本(replicated)和 纠删码( Erasure Code);
PG( placement group)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略,简单点说就是相同PG内的对象都会放到相同的硬盘上,PG是 ceph的逻辑概念,服务端数据均衡和恢复的最小粒度就是PG,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据;
简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利于共享的出来呢。于是就有了对象存储。最底层的存储单元,包含元数据和原始数据。
ceph资源划分
ceph对象元数据
OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;
Pool、PG和OSD的关系:
pool PG
OSD PG pool
一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。负责监视整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权;生产中建议最少要用3个Monitor,基数个的Monitor组成组件来做高可用。
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
共享给大家!
给大家整理的视频资料:
[外链图片转存中…(img-Vt7QWkOY-1725745278694)]
给大家整理的电子书资料:
[外链图片转存中…(img-sElxK1My-1725745278695)]
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
因篇幅问题不能全部显示,请点此查看更多更全内容