序言
ceph简介
Ceph 是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。底层的rados分布式存储是ceph的精华所在,ceph以rados为基础在上层封装了对象、块、文件存储接口。客户端可以通过ceph提供的librados库直连rados集群,待存对象通过计算获取指定机器,然后将数据发送到该机器上存储。因为都是通过计算的方式,所以rados不需要维护一个中心table来存储对象所在的位置,这种计算型的方式不仅快速,而且能够节省节点的资源。 下图为ceph的总体框架图:
数据如何映射
Ceph对集群中所有存储资源进行池化管理,对象通过计算直接映射到底层的osd中,为了更好的管理和映射数据,ceph有如下的概念。 - object: 用户需要存储的对象,可以是文档、视频、音频等等文件,用户在存储的时候需要指定唯一的对象名。 - pool:资源池,这是一个虚拟概念,一个集群可以分出多个pool,也可以使用单个pool,但是必须有一个pool。 用户可以针对不同的pool指定不同的CRUSH规则,也可以针对不同的pool指定不同的数据冗余策略。 - pg:全称 placement groups, 一个pool对应多个pg, 通过hash对象会存储到pool中的特定pg中。在创建pool的时候就要把pg数量规划好。pg数量只可以增大不可以缩小。 - osd:最终的数据都是存储在特定的osd上,一般情况下一个os

本文介绍了Ceph的PG(Placement Groups)哈希算法,用于对象的分布式存储映射。当PG数目不是2的幂时,直接取模会导致空穴,Ceph通过掩码方式避免此问题。在PG扩容时,分步扩容可以减少数据迁移影响。文章讨论了直接取模的弊端,并指出其在扩容时可能导致大量数据迁移。
最低0.47元/天 解锁文章
4774

被折叠的 条评论
为什么被折叠?



