知识卡片
一致性哈希环定位数据存储位置
内容
分布式存储系统要回答”这份数据到底存在哪几台机器上”这个问题时,一种通用方案是预先构造一个虚拟的分区环:把可能的哈希空间划分成固定数量的分区(分区数是2的幂次,如2^18),每个分区再分配给几台物理存储设备,设备的”权重”决定它分到的分区比例。写入或查找数据时只需要对数据标识做哈希,定位到对应分区,再从环里查出这个分区当前落在哪些设备上,全程不需要维护一张不断增长的全局索引表。发散:这就是一致性哈希思想的具体实现——账户、容器、对象各自独立维护一份这样的环,是因为三者的访问模式和数量级差异很大,分开管理能各自独立扩缩容和再均衡,而不用共享同一份可能成为瓶颈的映射结构。
参考来源
《OpenStack云计算实战手册 第3版》第5章《Swift——OpenStack对象存储》