CRUSH算法

ceph计算数据分布的过程:

//要存储的文件对象
file=data.txt
//将文件切分成多个除最后一个外的等大的小对象
objects = splits(file)
for (i = 0; i < length(objects); i++)
{
    //获取对象的哈希值
    obj_hash_value = hash(objects[i])
    //用对象的哈希值对pg_num取模,获取对应的pg_id
    pg_id = obj_hash_value % pg_num
    //通过crush算法计算该pg对应的一组osds
    osds = crush(pg_id...)
}

注:file-map->objects-map->pg-map->osd,pg是虚拟的概念,不会因为硬件的变化而变化。
ceph CRUSH中的层级结构:
http://way4ever.com/?p=122
http://www.cnblogs.com/shanno/p/3958298.html?utm_source=tuicool&utm_medium=referral

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值