码迷,mamicode.com
首页 > 其他好文 > 详细

ceph学习笔记之五 Pool与映射过程

时间:2017-07-26 18:12:54      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:ceph   sds   

Pool

  Pool是一个抽象的存储池,它规定了数据冗余的类型以及对应的副本分布策略。目前实现了两种Pool类型:

Replicated类型和Erasure Code类型。一个Pool由多个PG构成

对象映射过程

  对象映射过程指的是查找对象在集群中分布的位置信息,其过程分为两步:

A、对象到PG的映射。这个过程是静态HASH映射(加入PG Split后实际变成了动态HASH映射方式),通过Object_id计算出HASH值,

用该Pool的PG的总数量PG_Num对HASH值取模,就可以获得该对象所在的PG的ID号,其算法公式:

PG_id=Hash(Object_id)% PG_Num    
B、PG到OSD列表映射。指PG上对象的副本如何分布在OSD上。使用Ceph自己的CRUSH算法来实现。由PG映射到数据存储的实际单元OSD中,将PG_id作为算法的输入,获得包含N个OSD的集合,集合中第一个OSD被作为主OSD,其他的OSD则依次作为从OSD。N为该PG所在Pool下的副本数,在生产环境中N一般为3。

对象映射图:

技术分享

  通过HASH取模后计算,前3个对象分布在PG1上,后两个对象分布在PG2上;PG1通过CRUSH算法,计算出PG1分布在OSD1、OSD3上;PG2通过CRUSH算法分布在OSD2和OSD4上。

本文出自 “無詺IT小站” 博客,谢绝转载!

ceph学习笔记之五 Pool与映射过程

标签:ceph   sds   

原文地址:http://opencloud.blog.51cto.com/1041438/1951111

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!