您的位置:首页 > 其它

关于Glusterfs为何采用哈希分布式算法

2013-12-22 22:19 417 查看
最近同事问过我这样一个问题:若要实现文件均匀分布,用最简单的线性哈希算法--取模运算(根据文件名获取整数,然后根据节点数取模)就可以将文件均匀分布,为何Glusterfs为何还要用这么复杂的哈希算法实现文件的分布式存储呢?
关于这么问题,要从负载均衡说起吧。就拿分布式存储来说,简单的取模运算也可以将文件均匀分布在各个节点之中。但若节点数改变,节点增删的话,这种方法就不可取了,节点增删,文件的取模全部发生变化,导致各个节点上的文件需要全部迁移。这就是Glusterfs要采用哈希分布式存储而不直接采用取模的原因。
为每个节点均匀划分哈希区间,根据文件名计算哈希值,将文件存储到哈希值所在哈希区间对应的存储节点上。若节点有增删,每个节点的哈希区间会增大或变小。只是部分文件需要迁移,这就大大减少了文件的移动。
哈希均衡广泛应用于P2P网络、分布式存储等领域,上述只是Glusterfs采用该算法的一个原因,更多负载均衡的内容,请参照http://baike.baidu.com/link?url=NgfVb_i4nsdkZYKODM8R_VHOHDMk9aelogOANMkx7f6-Pl-kwxgEzYi0Fg-CdRQw

(出自 吖Sool-社区)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息