首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Ceph使用对象散列而不是CRUSH算法来计算PG ID?

为什么Ceph使用对象散列而不是CRUSH算法来计算PG ID?
EN

Stack Overflow用户
提问于 2020-11-30 00:35:09
回答 1查看 78关注 0票数 0

Ceph使用CRUSH算法进行PG->OSD映射,它可以很好地增加/减少OSD节点。

但是对于obj->PG映射,Ceph仍然使用传统的散列,即pgid = hash(obj_name) % pg_num。如果我们改变PG的数量,这种方法可能会导致大量的数据迁移,甚至会降低系统的可用性。

为什么Ceph不使用CRUSH algirhtm (比如straw2)来进行obj->PG映射,当PG的数量发生变化时,这种映射可以获得最佳的数据迁移量?

EN

回答 1

Stack Overflow用户

发布于 2020-12-12 14:00:34

有不同的场景,我认为CRUSH不是灵丹妙药。

  1. PG ->OSD是一对多的功能,而obj->PG是一对一的function.
  2. Additions,并且OSD的删除相当频繁,而PG被认为是相当稳定的。
  3. OSD组可能部分不可用,而PG则不能。

这是我的看法,欢迎批评或讨论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65062478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档