Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Ceph 使用 CRUSH 算法进行 PG->OSD 映射,它适用于增加/减少 OSD 节点。
但是对于 obj->PG 映射,Ceph 仍然使用传统的哈希,即pgid = hash(obj_name) % pg_num. 如果我们改变 PG 的数量,这种方法可能会导致大量的数据迁移,甚至会降低系统的可用性。
pgid = hash(obj_name) % pg_num
为什么 Ceph 不使用 CRUSH algirhtm(比如稻草 2)进行 obj->PG 映射,当 PG 的数量发生变化时,它可能具有最佳的数据迁移量?
有不同的场景,我认为 CRUSH 不是灵丹妙药。
这是我的看法,欢迎批评或讨论。