一种节点管理方法及装置的制造方法_2

文档序号:9931370阅读:来源:国知局
果;代理服务器根据预先配置的数值范围,将数值范围中的所有数值按照预设排序规则进行排序后,生成线型空间,将该线型空间中的最小值和最大值首尾相连,生成环形数值空间。
[0035]其中,该环形数值空间范围与一致性哈希算法所采用的具体参数相关,例如,当采用一致性哈希算法为MD5,CRC32时,该环形数值空间大小即为232数量,此时,该环形数值空间范围即为O?232-1。将获取的数值空间范围中的最大值和最小值首位相连,构成一个圆环,该圆环即为环形数值空间,参阅图3所示。
[0036]本发明实施例中,代理服务器针对每一个存储服务器,均执行如下操作:代理服务器根据存储服务器的权重值,获取存储服务器的虚拟节点数目;其中,存储服务器的虚拟节点数目与该存储服务器的权重值成正比;代理服务器为存储服务器配置相应数目个虚拟节点。其中,虚拟节点(virtual node)为实际节点(即存储服务器)在哈希空间中的复制品(replica),一个实际节点可以对应多个虚拟节点。
[0037]可选的,可以通过如下公式获取任意一存储服务器的虚拟节点数目:
[0038]C = WXS;
[0039]其中,C为任意一存储服务器的虚拟节点数目;胃为任意一存储服务器的权重值;S为常量,为根据具体应用场景预先配置的值,针对同一个代理服务器管辖下的所有存储服务器,该S值相同。
[0040]例如,P2P系统中包含存储服务器A,存储服务器B,以及存储服务器C,其中,存储服务器A的数据处理能力大于存储服务器B的数据处理能力,存储服务器B的数据处理能力大于存储服务器C的数据处理能力,基于此,为存储服务器A配置的权重值为3,为存储服务器B配置的权重值为2,为存储服务器C配置的权重值为1,则代理服务器为存储服务器A配置3S个虚拟节点,为存储服务器B配置2S个虚拟节点,为存储服务器C配置S个虚拟节点。
[0041]采用本发明技术方案,根据每一个存储服务器的数据处理能力为该存储服务器配置虚拟节点数目,使数据处理能力更佳的存储服务器能够分配到更多的虚拟节点,从而使数据处理能力更佳的存储服务器能够处理更多的数据,避免了数据处理能力差的存储服务器所需要处理的数据量大,而数据处理能力更佳的存储服务器所需要处理的数据量少的问题,提高了数据处理效率,并均衡了每一个存储服务器的负荷。
[0042]进一步的,代理服务器针对每一个虚拟节点,根据该虚拟节点所属的存储服务器的属性信息,为该虚拟节点配置UUID。
[0043]步骤210:代理服务器对上述虚拟节点的唯一识别码进行一致性哈希运算,将哈希运算结果按照预设规则映射到预设的环形数值空间。
[0044]本发明实施例中,代理服务器针对每一个虚拟节点,根据该虚拟节点所属的存储服务器的属性信息,采用一致性哈希算法对该虚拟节点的UUID进行计算,获取该虚拟节点对应的哈希运算结果;代理服务器根据每一个虚拟节点的哈希运算结果,分别将每一个虚拟节点按照预设规则映射到环形数值空间上。其中,每一个虚拟节点映射到环形数值空间上后,即为该环形数值空间上的一个点,即一个虚拟节点对应于环形数值空间上唯一的一个点。其中,虚拟节点的UUID根据该虚拟节点所属的存储服务器的UUID配置;该预设规则为从小到大顺时针或从小到大逆时针。
[0045]具体的,代理服务器对环形数值空间进行划分,每一个值对应于环形数值空间中的一个点;根据每一个虚拟节点的哈希运算结果,分别将每一个虚拟节点按照预设规则映射到环形数值空间上即为,将每一个虚拟节点的哈希运算结果与上述环形数值空间中的点进行匹配,将每一个虚拟节点的哈希运算结果添加至环形数值空间中与匹配到的点对应的位置。
[0046]例如,P2P系统中包含存储服务器A,存储服务器B,以及存储服务器C,代理服务器为存储服务器A配置3个虚拟节点(分别为虚拟节点a、虚拟节点b和虚拟节点c),为存储服务器B配置2个虚拟节点(分别为虚拟节点d和虚拟节点e),为存储服务器C配置I个虚拟节点(虚拟节点f);环形数值空间对应的数值空间范围为O?9,针对每一个虚拟节点,采用一致性哈希算法,计算该虚拟节点UUID对应的哈希运算结果,如虚拟节点a对应的哈希运算结果为1,虚拟节点b对应的哈希运算结果为3,虚拟节点c对应的哈希运算结果为5,虚拟节点d对应的哈希运算结果为2,虚拟节点e对应的哈希运算结果为8,虚拟节点f对应的哈希运算结果为9,将上述虚拟节点a?f按照从小到大顺时针的顺序依次映射至环形数值空间上,此时虚拟节点在环形数值空间中的顺序依次为虚拟节点a、虚拟节点d、虚拟节点b、虚拟节点C、虚拟节点e、虚拟节点f,参阅图4所示。
[0047]采用上述技术方案,为每一个存储服务器配置相应数目的虚拟节点,并根据一致性哈希算法将配置的虚拟节点映射到环形数值空间上,能保证虚拟节点均匀分布在环形数值空间上,从而避免了直接将存储服务器直接映射到环形数值空间上,且存储服务器数量较少时,存储服务器对应的点在环形数值空间上分布不均匀而导致的节点标识与存储服务器标识之间映射关系存储量不均衡的问题,保证了每一个虚拟节点上保存的节点标识与存储服务器标识之间映射关系量大致相当。在将为所述存储服务器配置的虚拟节点映射到环形数值空间上时,可以将所述哈希运算的结果按照从小到大的顺序排列,并顺时针或逆时针将该运算结果对应的虚拟节点依次插入到环形数值空间的相应位置。
[0048]步骤220:当代理服务器接收对节点进行管理的指令时,对该节点的唯一识别码进行一致性哈希运算,将哈希运算结果按照预设规则映射到环形数值空间上,并根据该节点对应的哈希运算结果在该环形数值空间上的位置确定与该节点对应的虚拟节点。
[0049]本发明实施例中,任意一节点向代理服务器发送对节点进行管理的指令之前,需要先获取该代理服务器的地址,具体包括:当任意一节点向域名服务器发送代理服务器地址获取请求时,域名服务器会根据该代理服务器地址获取请求中携带的调度服务器的域名,获取该调度服务器的地址;域名服务器根据该调度服务器的地址,将该代理服务器地址获取请求转发至调度服务器;调度服务器根据当前时刻该调度服务器管辖的各个代理服务器的负荷,确定将该节点信息管理任务调度至哪一个代理服务器;调度服务器将确定的代理服务器的地址通过域名服务器返回至节点。
[0050]节点根据调度服务器返回的代理服务器的地址,向代理服务器发送对节点进行管理的指令;代理服务器获取该指令中携带的该节点的标识,该节点的标识中包含节点的UUID ;代理服务器采用一致性哈希算法,对该节点的UUID进行运算,获取该节点对应的哈希运算结果。
[0051]基于上述节点对应的哈希运算结果,代理服务器确定上述节点对应的哈希运算结果在环形存储空间上的位置;代理服务器根据节点对应的哈希运算结果所在的位置,选择该位置相邻的下一位置的虚拟节点,并将该确定的虚拟节点确定为该节点对应的虚拟节点;并且,由于每一个虚拟节点均拥有唯一对应的存储服务器,因此,根据确定的虚拟节点,即可确定该虚拟节点所对应的存储服务器标识;代理服务器将确定的存储服务器标识确定为上述节点对应的存储服务器标识。
[0052]例如,参阅图4所示,环形数值空间上包含虚拟节点a?f,其中,虚拟节点a对应的哈希运算结果为1,虚拟节点b对应的哈希运算结果为3,虚拟节点c对应的哈希运算结果为5,虚拟节点d对应的哈希运算结果为2,虚拟节点e对应的哈希运算结果为8,虚拟节点f对应的哈希运算结果为9,当节点I对应的哈希运算结果为4时,该节点的哈希运算节点映射至环形数值空间中的位置参阅图5所示,该位置所在的下一个位置(此处的下一个位置可以按照顺时针方向或逆时针方向确定,优选与将虚拟节点映射到环形数值空间上采用相同的规则)即为虚拟节点C,而虚拟节点C对应于存储服务器A,因此,节点I对应的存储服务器标识为存储服务器A的标识。
[0053]代理服务器针对请求节点信息管理的每一个节点均执行上述操作,以获取每一个节点对应的哈希运算结果,以及根据获取的哈希运算结果,确定每一个节点对应的存储服务器标识。
[0054]进一步的,代理服务器还可以根据每一个虚拟节点对应的哈希运算结果,为每一个虚拟节点配置相应的哈希运算结果范围;例如,虚拟节点a对应的哈希运算结果为1,虚拟节点a对应的哈希运算结果范围可以配置为O?I。其中,代理服务器为每一个虚拟节点配置的哈希运算结果范围不存在交叠区域;并且,每一个虚拟节点所配置的哈希运算结果范围大小可以根据该虚拟节点所属的存储服务器的权重值确定,也可以为每一个虚拟节点配置相同大小的哈希运算结果范围。
[0055]代理服务器根据节点对应的哈希运算结果,以及虚拟节点对应的哈希运算结果范围,确定节点对应的虚拟节点,具体为:基于上述节点对应的哈希运算结果,代理服务器确定上述节点对应的哈希运算结果所述的哈希运算结果范围;由于每一个哈希运算结果范围均对应唯一的虚拟节点,因此,代理服务器能够根据节点对应的哈希运算结
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1