[发明专利]确定存储服务器的方法及分布式存储系统在审
申请号: | 201210247856.X | 申请日: | 2012-07-17 |
公开(公告)号: | CN103546522A | 公开(公告)日: | 2014-01-29 |
发明(设计)人: | 赵云涛;何高 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 100085 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 存储 服务器 方法 分布式 存储系统 | ||
技术领域
本发明涉及分布式存储领域,尤其涉及一种确定存储服务器的方法及分布式存储系统。
背景技术
随着移动通信网、互联网和广电网之间的飞速发展和不断融合,人们越来越依赖网络,如此,网络中需要存储的数据量越来越大,需要进行大规模存储网络中数据,为了满足大规模存储应用的需要,一般通过分布式存储系统来存储网络中需要存储的数据。现有的分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,并采用一致性哈希算法来将所述需要存储的数据分布到相应的存储服务器中,能够有效提高了系统的可靠性、可用性和存取效率,还易于扩展。
但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
在分布存储系统中采用一致性哈希算法来给需要存储的数据分配存储服务器时,一旦所述多台存储服务器中有一台第一存储服务器出现故障,就会导致存储到所述第一存储服务器中所有数据存储到第一个与所述第一存储服务器顺时针相连的第二存储服务器中,如此,就会促使所述第二存储服务器中需要存储的数据增多以及所述第二存储服务器的存储压力增大,在进行大量数据存储时,会导致存储到所述第二存储服务器的数据达到或超过所述第二存储服务器的极限,导致存储到所述第二存储服务器的存储数据会出现丢失的问题,此外,存储到所述第二存储服务器的存储数据增多,其他存储服务器的存储服务器不会进行改变,导致所述多台存储服务器每个存储服务器中存储的数据不均衡的问题。比如:如图1所示,一个互联网论坛设置有存储服务器A、存储服务器B、存储服务器C和存储服务器D这4个存储服务器来存储用户数据,采用一致性哈希算法为每个存储服务器分配一个数值,假设为上述4个存储服务器的哈希函数的值的空间为0-400,且所述存储服务器A的哈希值(hash值)为0,所述存储服务器B的hash值为100,所述存储服务器C的hash值为200,所述存储服务器D的hash值为300,然后在存储所述用户数据时对用户的Key值进行哈希,将获取的数值作为所述用户数据的哈希值(hash值),在根据所述用户数据hash值的在0-400之间的取值范围,确定所述用户数据该存储到哪个存储服务器中。假设所述存储服务器B出现故障不能工作,那么应该存储到所述存储服务器B中的所有用户数据都会存储到所述存储服务器C中,即用户数据的hash值在0-100之内的用户数据都会存储到所述存储服务器C中,一旦当前存储的用户数据量过大,就会导致所述存储服务器C存储压力变大,会出现丢失用户数据的问题。
发明内容
本申请实施例通过提供一种确定存储服务器的方法及分布式存储系统,能够进一步提高分布式存储系统中每个存储服务器中存储数据的分布均衡且还能降低丢失用户数据的概率,提高所述分布式存储系统的稳定性。
本申请实施例提供了一种确定存储服务器的方法,应用于包括至少两个存储服务器的分布式存储系统中,所述方法包括:
当基于第一存储数据的第一哈希值从所述至少两个存储服务器中确定的第一存储服务器处于非工作状态时;
基于一预设策略,获取所述第一存储数据的第二哈希值,其中,所述第二哈希值与所述第一哈希值不相同;
基于所述第二哈希值,从所述至少两个存储服务器中确定一个与所述第一存储服务器不同的第二存储服务器;
将所述第一存储数据存储到所述第二存储服务器中。
可选的,所述当基于第一存储数据的第一哈希值从所述至少两个存储服务器中确定的第一存储服务器处于非工作状态时,具体包括:获取所述第一存储数据的第一哈希值;基于所述第一哈希值,从所述至少两个存储服务器中确定一个与所述第一存储数据对应的第一存储服务器;在所述第一存储数据未存储到所述第一存储服务器时,确定所述第一存储服务器处于非工作状态。
可选的,所述基于一预设策略,获取所述第一存储数据的第二哈希值,具体包括:获取所述第一存储数据的第一Key值;基于一预设规则,获取所述第一存储数据的第二Key值,其中,所述第二Key值与所述第一Key值不相同;
基于所述第二Key值,获取所述第一存储数据的第二哈希值。
可选的,所述基于一预设规则,获取所述第一存储数据的第二Key值,具体包括:基于所述第一Key值,获取所述第一存储数据的第二Key值。
可选的,所述基于所述第一Key值,获取所述第一存储数据的第二Key值,具体包括:增加或减少所述第一Key值的位数,获得第一数据;将所述第一数据作为所述第一存储数据的第二Key值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210247856.X/2.html,转载请声明来源钻瓜专利网。