存储文件的方法及分布式存储系统的制作方法

文档序号:7979370阅读:227来源:国知局
存储文件的方法及分布式存储系统的制作方法
【专利摘要】本发明公开了一种存储文件的方法,应用在一分布式存储系统中,获得来自第一客户端的第一待存储文件的第一级别,在从所述分布式存储系统中设置的M个级别存储服务器组中确定一个与所述第一级别对应的第一级别存储服务器组,再基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组,再基于一预设规则,从所述第一存储服务器组中确定一个第一服务器,再获取所述第一级别的第一待存储文件,并将所述第一待存储文件存储到所述第一服务器中,其中,所述第一服务器能够将所述第一待存储文件同步到所述第一存储服务器组的其它服务器中的每个服务器上。
【专利说明】存储文件的方法及分布式存储系统
【技术领域】
[0001]本发明涉及文件存储领域,尤其涉及一种存储文件的方法及分布式文件存储系统。
【背景技术】
[0002]现有的分布式文件存储系统的设计一般都基于以下原则:CAP理论:一个分布式存储系统不可能同时满足一致性、可用性和分区容忍性这三个需求,最多能够同时满足两个,其中,c Consistency在分布式环境中,多点的数据是一致的;A:Availability每个操作总能在确定的时间返回,即系统随时都是可用的;P:Tolerance of networkPartition (分区容忍性)在出现网络分区(如断网)的情况下,分离的系统也能正常运行。
[0003]现有的分布式存储系统,分区容忍性时基本需求,因此,只有CP和AP两种选择。CP模式用于保证分布在网络上不同节点数据的一致性;AP模式主要实现“最终一致性”来确保可用性和分区容忍性。
[0004]但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
[0005]其一:现有分布式存储系统在存储文件过程中并没有对所述待存储文件以及存储服务器组进行区分,但是在所述待存储文件中有些文件对用户来说是重要的,而有些文件是不太重要的,导致所述现有分布式存储系统不能将所述待存储文件进行区分存储。
[0006]其二:现有的分布式存储系统在存储文件的时候,一般采用一致性哈希算法来分配一个第一存储服务器组来存储所述存储文件,一旦所述第一存储服务器组出现故障,就会存储到所述第一存储服务器组的所有数据存储到第一个与所述第一存储服务器组顺时针相连的第二存储服务器组中,,如此,就会导致所述第二存储服务器组中存储的数据增多以及所述第二存储服务器组的存储压力增大,不仅促使所述分布式存储系统中每个存储服务器组中存储的数据不均衡,还可能到导致数据丢失。
[0007]其三:现有的分布式存储系统是通过Tracker (分配器)记录所有存储文件所在位置及路径的,导致Tracker中大量的存储空间被占用,一旦Tracker中存储的数据达到一定的数量时,会促成Tracker的工作效率降低。
[0008]其四:现有的分布式存储系统一般都对存储的文件进行分片处理之后再进行存储,如果用户想要查看该文件,所述分布式存储系统会将该文件的每个分片进行组装完成后,用户才能查看该文件,但在分布式存储系统中存储小文件时,会降低分布式存储系统的性能。

【发明内容】

[0009]本申请实施例通过提供一种存储文件的方法及分布式文件存储系统,用于实现对存储文件和存储服务器组进行分级处理,实现不同级别的存储文件存储到不同级别的存储服务器组中,以及同一级别的文件只会放入同一级别的存储服务器组中。[0010]本申请实施例提供了一种存储文件的方法,应用在一分布式存储系统中,所述方法包括:
[0011]获得来自第一客户端的第一待存储文件的第一级别;
[0012]获得所述分布式存储系统中设置的M个级别存储服务器组,其中,所述M为不小于I的整数;
[0013]从所述M个级别存储服务器组中确定一个与所述第一级别对应的第一级别存储服务器组,其中,所述第一级别存储服务器组包括至少一个存储服务器组;
[0014]基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组,其中,所述第一存储服务器组包括至少一个服务器;
[0015]基于一预设规则,从所述第一存储服务器组中确定一个第一服务器;
[0016]获取所述第一级别的第一待存储文件,并将所述第一待存储文件存储到所述第一服务器中,其中,所述第一服务器能够将所述第一待存储文件同步到所述第一存储服务器组的其它服务器中的每个服务器上。
[0017]可选的,所述获得来自第一客户端的第一待存储文件的第一级别,具体包括:获取所述第一待存储文件相关的参数信息;基于所述参数信息,确定所述第一待存储文件的第一级别。
[0018]可选的,所述获得所述分布式存储系统中设置的M个级别存储服务器组,具体包括:获取所述分布式系统中每个存储服务器组中服务器的数量;基于所述每个存储服务器组中服务器的数量,确定所述每个存储服务器的级别;基于所述每个存储服务器的级别,获得所述分布式存储系统中设置的所述M个级别存储服务器组。
[0019]可选的,所述基于一预设策略,从所述第一级别存储服务器组中确定第一存储服务器组,具体包括:获取所述第一级别存储服务器组的每个存储服务器组的权重;基于所述权重,从所述第一级别存储服务器组中确定一个第一存储服务器组。
[0020]可选的,所述获取所述第一级别存储服务器组的每个存储服务器组的权重,具体包括:获取所述第一级别存储服务器组的每个存储服务器组可用的存储空间参数;基于所述可用的存储空间参数,来确定所述每个存储服务器组的权重。
[0021]可选的,在将所述第一待存储文件存储到所述第一服务器中之后,所述方法还包括:生成所述第一待存储文件的文件名,并将所述文件名传输到所述第一客户端,以供所述第一客户端进行存储,其中,所述文件名包括所述第一服务器位置和所述第一服务器归属的第一存储服务器组的位置。
[0022]可选的,在将所述第一待存储文件获取之后,所述方法还包括:将所述第一待存储文件作为一个整体进行存储。
[0023]可选的,所述基于一预设规则,从所述第一存储服务器组中确定一个第一服务器,具体为:在所述第一存储服务器组中随机选择一个第二服务器,将所述第二服务器确定为所述第一服务器。
[0024]在上述方法的基础上,本申请实施例还提供了一种分布式文件的存储系统,所述系统包括:M个级别存储服务器组,其中,所述M个级别存储服务器组中每个级别存储服务器组包括至少一个存储服务器组,所述一个存储服务器组包括至少一个服务器,M为不小于I的整数;[0025]分配器,与所述M个级别存储服务器组中每个服务器组相连,用于获得来自第一客户端的第一待存储文件的第一级别,从所述M个级别存储服务器组中确定一个与所述第一级别对应的第一级别存储服务器组,再基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组,并基于一预设规则,从所述第一存储服务器组中确定一个第一服务器;
[0026]存储器,用于获取所述第一级别的第一待存储文件,并将所述第一待存储文件存储到所述第一服务器中,其中,所述第一服务器能够将所述第一待存储文件同步到所述第一存储服务器组的每个服务器上。
[0027]可选的,所述系统还设置有存储文件级别确定模块,设置在所述第一客户端中,用于获取所述第一待存储文件相关的参数信息,并基于所述参数信息,确定所述第一待存储文件的第一级别。
[0028]可选的,所述系统还包括服务器级别设置模块,获取所述分布式系统中每个存储服务器组中服务器的数量,并基于所述每个存储服务器组中服务器的数量,确定所述每个存储服务器组的级别,基于所述每个存储服务器组的级别,获取所述M个级别存储服务器组。
[0029]可选的,所述系统还设置有权重获取模块,用于获取所述第一级别存储服务器组的每个存储服务器组的权重,从所述第一级别存储服务器组中确定一个第一存储服务器组是基于所述权重来确定的。
[0030]可选的,所述权重获取模块还包括存储空间获取子模块,用于获取所述第一级别存储服务器组的每个存储服务器组可用的存储空间参数,所述每个存储服务器组的权重是基于所述可用的存储空间参数来确定的。
[0031]可选的,所述系统还包括:文件名生成单元,在将所述第一待存储文件存储到所述第一服务器后,用于生成所述第一待存储文件的文件名,并将所述文件名传输到所述第一客户端进行存储,其中,所述文件名包括所述第一服务器位置和所述第一服务器归属的第一存储服务器组的位置。
[0032]可选的,所述系统还包括:存储文件整理单元,在获取所述第一待存储文件之后,用于将所述第一待存储文件作为一个整体进行存储。
[0033]可选的,所述分配器还设置有选择模块,用于在所述第一存储服务器组中随机选择一个第二服务器,将所述第二服务器确定为所述第一服务器。
[0034]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0035]其一、由于本申请实施例对分布式存储系统中的每个存储服务器组以及每一个待存储文件都进行分级,并且将不同级别的待存储文件对应到不同级别存储服务器组,如此,有效解决了现有分布式系统因对待存储文件以及存储服务器组没有进行区分,从而导致不能将所述待存储文件进行区分存储的问题,实现了将不同级别的存储文件存储到不同级别的存储服务器组中,以及同一级别的文件只会放入同一级别的存储服务器组中。
[0036]其二、由于本发明是通过获取所述第一级别存储服务器组的每个存储服务器组的存储空间来确定每个存储服务器组的权重,再基于所述权重,从所述第一级别存储服务器组中确定一个第一存储服务器组来存储所述第一待存储文件,因此,能够有效解决所述分布式存储系统中每个存储服务器组中存储的数据不均衡和丢失数据的问题,从而实现所述分布式存储系统中每个存储服务器组中存储的数据均衡分布,并减少了数据丢失。
[0037]其三、由于本发明分布式存储系统的每个存储文件的文件名是存储到对应客户端的,并且所述文件名包括所述每个存储文件所在的对应服务器位置及其路径,所以,能够有效解决所述存储文件名占用所述分配器大量的存储空间以及降低所述分配器的工作效率,促使所述分配器只对文件名进行解析,提高了所述分配器的工作效率。
[0038]其四、由于本发明将所述第一待存储文件不进行分片,而是直接将所述第一待存储文件作为一个整体来存储,因此,能够有效解决现有分布式存储系统在还原存储文件时,需要把多个分片重新组装在一起的复杂度和开销的问题,实现了在进行小文件存储时,提高了本发明分布式系统的存储性能。
【专利附图】

【附图说明】
[0039]图1为本申请实施例中存储文件的方法的流程图;
[0040]图2为本申请实施例中分布式存储系统的系统构架图。
具体实施例
[0041]本申请实施例通过提供一种存储文件的方法及分布式文件存储系统,解决了现有分布式存储系统因没有对待存储文件以及存储服务器组进行区分,导致不能将所述待存储文件进行区分存储的问题,实现了不同级别的存储文件存储到不同级别的存储服务器组中,以及同一级别的文件只会放入同一级别的存储服务器组中。
[0042]本申请实施例的技术方案为解决上述区分存储问题,总体思路如下:
[0043]通过将分布式存储系统中每个存储服务器组进行分级,并对第一客户端的第一待存储文件也进行分级,基于所述第一待存储文件的级别,从所述分布式存储系统中的存储服务器组的级别中确定一个与所述第一待存储文件的级别对应的第一级别存储服务器组;再基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组;再基于一预设规则,从所述第一存储服务器组中选择一个第一服务器来存储所述第一待存储文件,并将所述第一待存储文件同步到所述第一存储服务器组中其它服务器中的每个服务器上。
[0044]上述的所述第一待存储文件在进行存储时,是基于所述第一待存储文件的级别来确定所述第一待存储文件该存入哪个级别的存储服务器组中,实现了将不同级别的文件存储到不同级别的存储服务器组中,以及同一级别的文件只会放入同一级别的存储服务器组中。
[0045]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0046]本发明提供了一种存储文件的方法,应用在一分布式存储系统中,如图1所示,包括以下步骤:
[0047]S101、获得来自第一客户端的第一待存储文件的第一级别:
[0048]具体来讲,当所述第一客户端需要存储数据时就会向所述分布式存储系统的服务器发送一第一存储请求,所述第一存储请求包含有所述第一待存储文件的大小和所述第一待存储文件的第一级别等信息;在所述服务器接收到所述第一存储请求之后,解析所述第一存储请求,就能获得来自第一客户端的第一待存储文件的第一级别。
[0049]具体来讲,所述第一待存储文件的第一级别是由所述第一客户端来确定。在所述第一客户端要将所述第一待存储文件进行存储时,所述第一客户端会获取所述第一待存储文件相关的参数信息;再基于所述参数信息,确定所述第一待存储文件的第一级别。
[0050]在具体实现中,所述第一客户端会对所述第一待存储文件的内容进行分析,基于预先的设置,确定所述第一待存储文件所属的业务以及所述第一待存储文件的重要性,如此,就获得了所述第一待存储文件的内容、所述第一待存储文件的业务以及所述第一待存储文件的重要性等相关的参数信息。比如:若客户端A需要存储的文件B的内容为一些风景图片或者精美壁纸等零散信息,基于预先的设置,可以确定所述文件B为个人业务,且重要性较低;若客户端A需要存储的文件C的内容为客户的姓名、年龄和电话号码等个人信息,基于预先的设置,可以确定所述文件C为个人隐私业务,且重要性最高;若客户端A需要存储的文件D的内容为客户的工作文件,基于预先的设置,可以确定所述文件D为个人工作业务,且重要性较高;若客户端A需要存储的文件E的内容为客户的工作安排的信息,基于预先的设置,可以确定所述文件E为个人工作业务,且重要性高。如此,基于所述第一待存储文件的内容以及所述预先的设置,必然可以确定所述第一待存储文件的业务以及所述第一待存储文件的重要性。
[0051]表1
[0052]
【权利要求】
1.一种存储文件的方法,应用在一分布式存储系统中,其特征在于,所述方法包括: 获得来自第一客户端的第一待存储文件的第一级别; 获得所述分布式存储系统中设置的M个级别存储服务器组,其中,所述M为不小于I的整数; 从所述M个级别存储服务器组中确定一个与所述第一级别对应的第一级别存储服务器组,其中,所述第一级别存储服务器组包括至少一个存储服务器组; 基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组,其中,所述第一存储服务器组包括至少一个服务器; 基于一预设规则,从所述第一存储服务器组中确定一个第一服务器; 获取所述第一级别的第一待存储文件,并将所述第一待存储文件存储到所述第一服务器中,其中,所述第一服务器能够将所述第一待存储文件同步到所述第一存储服务器组的其它服务器中的每个服务器上。
2.如权利要求1所述的方法,其特征在于,所述获得来自第一客户端的第一待存储文件的第一级别,具体包括: 获取所述第一待存储文件相关的参数信息; 基于所述参数信息,确定所述第一待存储文件的第一级别。
3.如权利要求1所述的方法,其特征在于,所述获得所述分布式存储系统中设置的M个级别存储服务器组,具体包括:` 获取所述分布式系统中每个存储服务器组中服务器的数量; 基于所述每个存储服务器组中服务器的数量,确定所述每个存储服务器的级别; 基于所述每个存储服务器的级别,获得所述分布式存储系统中设置的所述M个级别存储服务器组。
4.如权利要求1所述的方法,其特征在于,所述基于一预设策略,从所述第一级别存储服务器组中确定第一存储服务器组,具体包括: 获取所述第一级别存储服务器组的每个存储服务器组的权重; 基于所述权重,从所述第一级别存储服务器组中确定一个第一存储服务器组。
5.如权利要求4所述的方法,其特征在于,所述获取所述第一级别存储服务器组的每个存储服务器组的权重,具体包括: 获取所述第一级别存储服务器组的每个存储服务器组可用的存储空间参数; 基于所述可用的存储空间参数,来确定所述每个存储服务器组的权重。
6.如权利要求1所述的方法,其特征在于,在将所述第一待存储文件存储到所述第一服务器中之后,所述方法还包括: 生成所述第一待存储文件的文件名,并将所述文件名传输到所述第一客户端,以供所述第一客户端进行存储,其中,所述文件名包括所述第一服务器位置和所述第一服务器归属的第一存储服务器组的位置。
7.如权利要求1所述的方法,其特征在于,在将所述第一待存储文件获取之后,所述方法还包括:将所述第一待存储文件作为一个整体进行存储。
8.如权利要求1所述的方法,其特征在于,所述基于一预设规则,从所述第一存储服务器组中确定一个第一服务器,具体为:在所述第一存储服务器组中随机选择一个第二服务器,将所述第二服务器确定为所述第一服务器。
9.一种分布式文件的存储系统,其特征在于,所述系统包括: M个级别存储服务器组,其中,所述M个级别存储服务器组中每个级别存储服务器组包括至少一个存储服务器组,所述一个存储服务器组包括至少一个服务器,M为不小于I的整数; 分配器,与所述M个级别存储服务器组中每个服务器组相连,用于获得来自第一客户端的第一待存储文件的第一级别,从所述M个级别存储服务器组中确定一个与所述第一级别对应的第一级别存储服务器组,再基于一预设策略,从所述第一级别存储服务器组中确定一个第一存储服务器组,并基于一预设规则,从所述第一存储服务器组中确定一个第一服务器; 存储器,用于获取所述第一级别的第一待存储文件,并将所述第一待存储文件存储到所述第一服务器中,其中,所述第一服务器能够将所述第一待存储文件同步到所述第一存储服务器组的每个服务器上。
10.如权利要求9所述的系统,其特征在于,所述系统还设置有存储文件级别确定模块,设置在所述第一客户端中,用于获取所述第一待存储文件相关的参数信息,并基于所述参数信息,确定所述第一待存储文件的第一级别。
11.如权利要求9所述的系统,其特征在于,所述系统还包括服务器级别设置模块,获取所述分布式系统中每个存储服务器组中服务器的数量,并基于所述每个存储服务器组中服务器的数量,确定所 述每个存储服务器组的级别,基于所述每个存储服务器组的级别,获取所述M个级别存储服务器组。
12.如权利要求9所述的系统,其特征在于,所述分配器还设置有权重获取模块,用于获取所述第一级别存储服务器组的每个存储服务器组的权重,从所述第一级别存储服务器组中确定一个第一存储服务器组是基于所述权重来确定的。
13.如权利要求10所述的系统,其特征在于,所述权重获取模块还包括存储空间获取子模块,用于获取所述第一级别存储服务器组的每个存储服务器组可用的存储空间参数,所述每个存储服务器组的权重是基于所述可用的存储空间参数来确定的。
14.如权利要求9所述的系统,其特征在于,所述系统还包括: 文件名生成单元,在将所述第一待存储文件存储到所述第一服务器后,用于生成所述第一待存储文件的文件名,并将所述文件名传输到所述第一客户端进行存储,其中,所述文件名包括所述第一待存储文件存储的所述第一服务器位置和所述第一服务器归属的第一存储服务器组的位置。
15.如权利要求9所述的系统,其特征在于,所述系统还包括:存储文件整理单元,在获取所述第一待存储文件之后,用于将所述第一待存储文件作为一个整体进行存储。
16.如权利要求9所述的系统,其特征在于,所述分配器还设置有选择模块,用于在所述第一存储服务器组中随机选择一个第二服务器,将所述第二服务器确定为所述第一服务器。
【文档编号】H04L29/08GK103457963SQ201210170213
【公开日】2013年12月18日 申请日期:2012年5月28日 优先权日:2012年5月28日
【发明者】赵云涛, 何高, 邓唐生, 陆洋 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1