y9.第一章 Ceph企业级存储实战进阶 -- Ceph 集群应用基础(九)

4.6 存储池、PG 与CRUSH

副本池:replicated,定义每个对象在集群中保存为多少个副本,默认为三个副本,一主两备,实现高可用,副本池是ceph 默认的存储池类型。

纠删码池(erasure code): 把各对象存储为N=K+M 个块,其中K 为数据块数量,M 为编码快数量,因此存储池的尺寸为K+M。

即数据保存在K 个数据块,并提供M 个冗余块提供数据高可用,那么最多能故障的块就是M 个,实际的磁盘占用就是K+M 块,因此相比副本池机制比较节省存储资源,一般采用8+4机制,即8 个数据块+4 个冗余块,那么也就是12 个数据块有8 个数据块保存数据,有4 个实现数据冗余,即1/3 的磁盘空间用于数据冗余,比默认副本池的三倍冗余节省空间,但是不能出现大于一定数据块故障。

但是不是所有的应用都支持纠删码池,RBD 只支持副本池而radosgw 则可以支持纠删码池。

4.6.1 副本池IO

将一个数据对象存储为多个副本

在客户端写入操作时,ceph 使用CRUSH 算法计算出与对象相对应的PG ID 和primary OSD主OSD 根据设置的副本数、对象名称、存储池名称和集群运行图(cluster map)计算出PG 的各辅助OSD,然后由OSD 将数据再同步给辅助OSD。

读取数据:
1. 客户端发送读请求,RADOS 将请求发送到主OSD。
2. 主OSD 从本地磁盘读取数据并返回数据,最终完成读请求。

写入数据:
1. 客户端APP 请求写入数据ÿ

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/123857663