分布式文件系统、文件访问方法以及客户端的制作方法

文档序号:7981378阅读:175来源:国知局
分布式文件系统、文件访问方法以及客户端的制作方法
【专利摘要】本申请提供了分布式文件系统、文件访问方法以及客户端。其中,该方法包括:访问主服务器Master?Server存储的文件目录,并从Master?Server获取与需要访问的文件相关联的元信息服务器Meta?Server的路由信息;利用获取的路由信息访问Meta?Server,并从该Meta?Server中获取需要访问的文件的元信息,利用获取的元信息从多个节点服务器Node?Server上访问需要访问的文件。
【专利说明】分布式文件系统、文件访问方法以及客户端
【技术领域】
[0001]本申请涉及数据存储技术,特别涉及分布式文件系统、文件访问方法以及客户端。【背景技术】
[0002]目前,在工业界具有典型代表性的分布式文件系统是Google公司的分布式文件系统,简称GFS。该GFS主要由一个主服务器(Master Server)和众多块服务器(ChunkServer)。其中,Master Server主要负责存储文件目录、以及文件目录中各文件的元(meta)信息。这里,meta信息主要包括:文件的大小、文件被分成的数据块的数量、文件被分成的数据块所处的Chunk Server等;Chunk Server主要负责存储文件被分成的数据块。通常,一个文件会按照一定大小划分为多个数据块,每一个数据块称为一个Chunk,这些数据块分散存储在不同的Chunk Server。
[0003]但是,由于GFS只有一个Master Server提供文件目录和文件meta信息的查询,这会限制文件的并发访问,并且,因单一 Master Server的内存限制,也会限制GFS的文件数目。

【发明内容】

[0004]本申请提供了分布式文件系统、文件访问方法以及客户端,以提高单一集群的文件数目以及文件的并发访问量。
[0005]本申请提供的技术方案包括:
[0006]—种分布式文件系统,包括:
[0007]主服务器Master Server,用于存储文件目录、以及与文件目录中各文件相关联的Meta Server的路由信息;
[0008]Meta Server,用于存储相关联的文件的元信息,Meta Server的数量大于等于I ;
[0009]节点服务器Node Server,用于存储文件被划分成的数据块和/或数据块的备份,Node Server的数量大于等于I ;
[0010]所述Master Server在存储的文件目录中存在客户端需要访问的文件时,从存储的路由信息中找到与该文件相关联的Meta Server的路由信息并提供给客户端,以使客户端利用所述Master Server提供的路由信息访问Meta Server,所述Meta Server接收到客户端的访问时,提供该客户端需要访问的文件的元信息给客户端,以使客户端利用所述Meta Server提供的元信息从Node Server访问需要访问的文件。
[0011 ] 一种文件访问方法,包括:
[0012]访问主服务器Master Server存储的文件目录,并从Master Server获取与需要访问的文件相关联的元信息服务器Meta Server的路由信息;
[0013]利用获取的路由信息访问Meta Server,并从该Meta Server中获取需要访问的文件的元信息;
[0014]利用获取的元信息从多个节点服务器Node Server上访问需要访问的文件。[0015]一种应用于文件访问的客户端,包括:
[0016]第一访问单元,用于访问主服务器Master Server存储的文件目录,并从MasterServer获取与本客户端需要访问的文件相关联的元信息服务器Meta Server的路由信息;
[0017]第二访问单元,用于利用所述第一访问单元获取的路由信息访问Meta Server,并从该Meta Server中获取本客户端需要访问的文件的元信息;
[0018]第三访问单元,用于利用获取的元信息从多个节点服务器Node Server上访问需要访问的文件。
[0019]由以上技术方案可以看出,本发明中,文件目录和文件元信息分开存储,S卩,客户端只在Master Server访问文件目录和文件目录中各文件相关联的Meta Server的路由信息,而去Meta Server访问具体文件的元信息,这相比单个Master Server既要提供文件目录访问,又要提供文件元信息的访问而言,能提供更高的每秒访问次数(QPS),也能提供更高的并发访问,同时由于本发明中Master Server只存储文件目录,这能保证本发明中的分布式文件系统存储更多的文件数目。
【专利附图】

【附图说明】
[0020]图1为本发明实施例提供的分布式文件系统结构图;
[0021]图2为本发明实施例提供的文件访问方法流程图;
[0022]图3为本发明实施例提供的客户端结构图。
【具体实施方式】
[0023]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0024]本发明提供的分布式文件系统具有图1所示的结构,其包括:一个主服务器(Master Server)、至少一个元信息服务器(Meta Server)、以及至少一个节点服务器(NodeServer)o其中,Meta Server、以及Node Server的数量可根据集群规模设置,本发明并不具体限定。
[0025]从图1所示的分布式系统可以看出,本发明提供的分布式系统采用了三层架构,其中,最上层为Master Server,次上层为至少一个Meta Server,最下层为至少一个NodeServer,基于此,本发明提供的分布式系统可称为三层架构的分布式文件系统。
[0026]另外,由于本发明提供的分布式文件系统中,Meta Server、以及Node Server的数量可根据集群规模设置,当根据需求需要扩展集群规模时,该Meta Server,以及NodeServer的数量也需要扩展,基于此,还可将本发明提供的分布式系统称为扩展的分布式文件系统,简称 XFS (extensible File System)。
[0027]正常情况下,文件元信息的存储量会比文件目录的存储量大很多,为了扩展分布式文件系统,本发明将文件目录和文件元信息分开存储,具体为:将文件目录单独用MasterServer存储,而将文件元信息用Meta Server存储,其中,为了将文件目录中的文件与MetaServer存储的该文件的元信息关联起来,还需要在Master Server中存储与文件目录中各文件相关联的Meta Server的路由信息。
[0028]下面对图1所示分布式文件系统中各个功能单元进行描述:[0029]Master Server,用于存储文件目录、以及与文件目录中各文件相关联的MetaServer的路由信息;
[0030]而每一 Meta Server,用于存储其相关联的文件的元信息,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文件被划分成的各数据块、以及各数据块的备份所处的Node Server ;优选地,本发明中,所述文件的元信息还可进一步包括:文件创建时间、文件创建者、文件被划分成的各个数据块的摘要信息等,本发明并不具体限定。
[0031]而每一 Node Server,用于存储数据块和/或数据块的备份。
[0032]其中,每一Node Server可以仅存储同一文件被划分成的一个或多个数据块,但禁止同时存储同一文件被划分成的某一数据块和该数据块的备份。也就是说,一个数据块不能和其备份同时存储在同一 Node Server上。
[0033]以图1所示分布式文件系统为例,则,针对Master Server存储的文件目录中的文件(记为文件I ),如果该文件I被划分成5个数据块,其中,文件I如何被划分成数据块可依据现有划分方式,本发明不赘述,则为了提高系统的容错能力,还需要针对这5个数据块进行备份,基于上面描述的Node Server存储数据块及数据块的备份的特点,本发明中,可将该5个数据块和其备份分散放在不同的Node Server上即可。
[0034]本发明中,一个数据块可存在多个备份,针对一个数据块的多个备份,为了提高系统容错能力,优选地,本发明并不将该多个备份同时存放在同一个Node Server,而是分散存放在不同的Node Server上,即同一数据块的所有备份不存放在同一 Node Server。并且,针对同一文件被划分成的不同数据块的备份,基于容错能力的考虑,也不存放在同一个Node Server。
[0035]基于上述Master Server^Meta Server以及Node Server存储的信息,则,当客户端需要访问一文件时,Master Server在存储的文件目录中存在客户端需要访问的文件时,从存储的路由信息中找到与该文件相关联的Meta Server的路由信息并提供给客户端,以使客户端利用所述Master Server提供的路由信息访问Meta Server ;而当Meta Server接收到客户端的访问时,提供该客户端需要访问的文件的元信息给客户端,以使客户端利用所述Meta Server提供的元信息访问需要访问的文件。
[0036]如此,即可完成客户端的文件访问。可以看出,客户端只在Master Server访问文件目录和文件目录中各文件相关联的Meta Server的路由信息,而去Meta Server访问具体文件的元信息,这相比单个Master Server既要提供文件目录访问,又要提供文件元信息的访问而言,能提供更高的每秒访问次数(QPS),也能提供更高的并发访问,同时由于Master Server进存储文件目录,这能够扩展该Master Server存储的文件目录,保证本发明提供的分布式文件系统存储更多的文件。
[0037]需要说明的是,本发明中,由于Master Server仅存储文件目录和文件目录中各文件相关联的Meta Server的路由信息,并不存储文件的元信息,这相比单个Master Server既要提供文件目录,又要提供文件元信息而言,不再因单一Master Server的内存有限而限制集群的文件数目,而是可以灵活扩展文件数目,也可相应灵活扩展Meta Server和NodeServer的数量。
[0038]以根据需求需要扩展Meta Server的数量为例,该扩展的每一 Meta Server与分布式文件系统原有的Meta Server功能类似,比如,假如当前扩展的Meta Server记为Serverl 和 Server2,以 Serverl 为例,Server2 原理类似,则,
[0039]该Serverl可以存储其相关联的文件的元信息,其中,Serverl相关联的文件可为Master Server的文件目录中已存在的文件,以Serverl相关联的文件为Master Server的文件目录中已存在的一文件(记为文件I)为例,则Serverl存储文件I的元信息,其中,Serverl存储文件I的元信息,能够为已存储了文件I元信息的Meta Server提供备份,以提闻系统容错能力。
[0040]当然,作为本发明实施例的扩展,该Serverl相关联的文件也为Master Server的文件目录中不存在的一文件,而是根据需求需要扩展的文件。基于此,Serverl就存储该需要扩展的文件的元信息。相应地,Master Server还用于在文件目录中添加与扩展的MetaServer比如Serverl相关联的文件,以及接收并存储该新添加的文件与该扩展的MetaServer比如Serverl之间的路由信息。
[0041]至于本发明中根据需求扩展的每一 Node Server,其与分布式文件系统已有的Node Server功能类似,用于存储文件被划分的数据块和/或数据块的备份。其中,扩展的每一 Node Server存储的数据块可为Master Server的文件目录中已存在的一文件被划分的数据块或数据块备份,也可为新扩展的一文件被划分的数据块或数据块备份,具体如何存放数据块,可依据当前实际情况设定,这里不再赘述。
[0042]还有,本发明中,由于Master Server只存储文件目录和与文件目录中各个文件相关联的Meta Server的路由信息,而该文件目录和与文件目录中各个文件相关联的MetaServer的路由信息占用的存储空间不大,尤其是当文件目录中文件的名称简短比如为简短的数字或字符编码时,这能够保证Master Server存储更多的文件目录和与文件相关联的Meta Server的路由信息,扩展集群规模。另外,作为本发明实施例的一个扩展,本发明中,还可将Master Server上的文件目录、以及与文件目录中各文件相关联的Meta Server的路由信息存储至其他可快速访问的分布系统上,该分布系统的存储空间远大于MasterServer,这保证更多的文件目录、以及更多与文件相关联的Meta Server的路由信息存储,整个集群的并发访问能力将进一步提升。
[0043]另外,本发明中,因Meta Server的数量并非唯一,这样,若其中一个或多个MetaServer出现故障,不影响其他正常Meta Server,部分文件仍能读写,容错能力更强。
[0044]至此,完成图1所示分布式文件系统的描述。
[0045]下面对本发明提供的方法进行描述:
[0046]基于图1所示的分布式文件系统,本发明提供了一种文件访问方法。参见图2,图2为本发明实施例提供的文件访问方法流程图。该图2所示的流程可由客户端执行,具体如图2所示,包括以下步骤:
[0047]步骤201,访问Master Server存储的文件目录,并从Master Server获取与需要访问的文件相关联的Meta Server的路由信息;
[0048]步骤202,利用获取的路由信息访问Meta Server,并从该Meta Server中获取需要访问的文件的元信息。
[0049]优选地,本发明中,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文件被划分成的各数据块、以及各数据块的备份所处的Node Server0[0050]步骤203,利用获取的元信息从多个Node Server上访问需要访问的文件。
[0051]至此,完成图2所示方法的描述。从图2所示流程可以看出,客户端只在MasterServer访问文件目录和文件目录中各文件相关联的Meta Server的路由信息,而去MetaServer访问具体文件的元信息,这相比单个Master Server既要提供文件目录访问,又要提供文件元信息的访问而言,能提供更高的每秒访问次数(QPS),也能提供更高的并发访问。
[0052]优选地,本发明还提供了 一种应用于文件访问的客户端。
[0053]参见图3,图3为本发明实施例提供的客户端结构图。如图3所示,所述客户端包括:
[0054]第一访问单元,用于访问Master Server存储的文件目录,并从Master Server获取与本客户端需要访问的文件相关联的Meta Server的路由信息;
[0055]第二访问单元,用于利用所述第一访问单元获取的路由信息访问Meta Server,并从该Meta Server中获取本客户端需要访问的文件的元信息。其中,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文件被划分成的各数据块、以及各数据块的备份所处的Node Server ;
[0056]第三访问单元,用于利用获取的元信息从多个Node Server上访问需要访问的文件。
[0057]至此,完成图3所示的客户端描述。
[0058]由以上技术方案可以看出,本发明中,文件目录和文件元信息分开存储,即,客户端只在Master Server访问文件目录和文件目录中各文件相关联的Meta Server的路由信息,而去Meta Server访问具体文件的元信息,这相比单个Master Server既要提供文件目录访问,又要提供文件元信息的访问而言,能提供更高的QPS,也能提供更高的并发访问。
[0059]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种分布式文件系统,其特征在于,所述分布式文件系统包括: 主服务器Master Server,用于存储文件目录、以及与文件目录中各文件相关联的元信息服务器Meta Server的路由信息; Meta Server,用于存储相关联的文件的元信息,Meta Server的数量大于等于I ; 节点服务器Node Server,用于存储文件被划分成的数据块和/或数据块的备份,NodeServer的数量大于等于I ; 所述Master Server在存储的文件目录中存在客户端需要访问的文件时,从存储的路由信息中找到与该文件相关联的Meta Server的路由信息并提供给客户端,以使客户端利用所述Master Server提供的路由信息访问Meta Server,所述Meta Server接收到客户端的访问时,提供该客户端需要访问的文件的元信息给客户端,以使客户端利用所述MetaServer提供的元信息从Node Server访问需要访问的文件。
2.根据权利要求1所述的系统,其特征在于,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文件被划分成的各数据块、以及各数据块的备份所处的Node Server。
3.根据权利要求1所述的系统,其特征在于,每一Node Server禁止同时存储数据块和该数据块的备份;和/或, 每一 Node Server禁止同时存储同一数据块的所有备份。
4.根据权利要求1至3任一所述的系统,其特征在于,所述分布式文件系统进一步包括根据需求扩展的Meta Server和/或Node Server ; Master Server还用于在文件目录中添加与扩展的Meta Server相关联的文件,以及接收并存储该新添加的文件与该扩展的Meta Server之间的路由信息; 扩展的每一 Meta Server用于存储相关联的文件的元信息; 扩展的每一 Node Server用于根据需求存放数据块和/或数据块的备份。
5.一种文件访问方法,其特征在于,该方法包括: 访问主服务器Master Server存储的文件目录,并从Master Server获取与需要访问的文件相关联的元信息服务器Meta Server的路由信息; 利用获取的路由信息访问Meta Server,并从该Meta Server中获取需要访问的文件的元信息; 利用获取的元信息从多个节点服务器Node Server上访问需要访问的文件。
6.根据权利要求5所述的方法,其特征在于,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文件被划分成的各数据块、以及各数据块的备份所处的Node Server。
7.根据权利要求5所述的方法,其特征在于,每一NodeServer禁止同时存储数据块和该数据块的备份;和/或, 每一 Node Server禁止同时存储同一数据块的所有备份。
8.一种应用于文件访问的客户端,其特征在于,所述客户端包括: 第一访问单元,用于访问主服务器Master Server存储的文件目录,并从MasterServer获取与本客户端需要访问的文件相关联的元信息服务器Meta Server的路由信息; 第二访问单元,用于利用所述第一访问单元获取的路由信息访问Meta Server,并从该Meta Server中获取本客户端需要访问的文件的元信息; 第三访问单元,用于利用获取的元信息从多个节点服务器Node Server上访问需要访问的文件。
9.根据权利要求8所述的客户端,其特征在于,所述文件的元信息至少包括:文件的长度、文件被划分成的数据块的数量、文 件被划分成的各数据块、以及各数据块的备份所处的Node Server。
【文档编号】H04L29/08GK103581229SQ201210261331
【公开日】2014年2月12日 申请日期:2012年7月26日 优先权日:2012年7月26日
【发明者】伍海君, 朱会灿, 邓大付, 李锐, 邹永强, 董乘宇, 阙太富, 王磊, 杨绍鹏, 张书鑫, 赵大勇, 刘畅, 陈晓东, 张银锋 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1