知识卡片
对象寻址的两级映射设计
内容
Ceph 定位一个对象分两步:先用 hash(object_id) % pg_num 把对象静态映射到某个 [[pool与PG的抽象关系|PG]],再用 CRUSH 算法把 PG 伪随机地映射到一组 OSD。两级映射的好处是解耦对象数量和集群拓扑的变化:对象到 PG 的映射几乎不变(除非 PG 分裂),集群扩容缩容只影响第二级 PG 到 OSD 的映射,不需要为每个对象重新计算位置,也不需要中心化的元数据服务器记录每个对象具体存在哪——这是 Ceph 能去中心化寻址、避免单点元数据瓶颈的关键设计。
参考来源
《Ceph源码分析》第1章《Ceph整体架构》