码迷,mamicode.com
首页 > 编程语言 > 详细

云存储的那些事(2)——数据分布算法CRUSH

时间:2016-12-18 12:14:13      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:src   alt   合数   分布   map   云存储   体系   方便   映射   

在分布式系统中,数据最终还是要存储到物理设备上的,ceph的底层设备抽象角色是OSD,那么数据是如何被决定放在哪块OSD上的,答案就是CRUSH算法。

关键字:CRUSH、一致性hash、ceph数据分布

总体来说,数据存储分为2个阶段

  1,首先根据一般的hash算法,对数据x的hash数值进行PG数取模运算

    PG是ceph中由OSD再进一步抽象出来的资源池pool中的虚拟存储单元

    为什么要抽象出这一层呢,其实可以类比LVM的作用,即为了让一切资源都能够变得“不那么硬“,

    方便在故障发生时,系统扩容时,可以迅速的调整,并且对整体系统影响最小

    PG的存在让节点的增加和减少变为了逻辑层面的调整,对物理层的OSD起到了封装的作用

  2,确定了PG后,再根据monitor节点中的全局拓扑cluster map,结合数据规则(副本数),再次映射到具体的OSD节点上

    此时需要注意选择的OSD节点可能是多个,算法会保证不在同一个故障域

    故障域的大小可以是(从小到大级别):host-rack-row-root

 

下面照例总结一张图:

 技术分享

 

云存储的那些事(2)——数据分布算法CRUSH

标签:src   alt   合数   分布   map   云存储   体系   方便   映射   

原文地址:http://www.cnblogs.com/zhaogang99/p/6193863.html

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