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

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

    (出自 吖Sool-社区)网络

相关文章
相关标签/搜索