一种小文件的定位方法及系统的制作方法

文档序号:9249245阅读:423来源:国知局
一种小文件的定位方法及系统的制作方法
【技术领域】
[0001]本发明涉及互联网领域,特别涉及一种小文件的定位方法及系统。
【背景技术】
[0002]随着互联网、物联网、云计算等高速发展,大量的互联网企业涌入人们的生活,很多互联网企业都会遇到海量小文件(Lost of Small Files,L0SF)的问题,例如,文本、图片以及音乐等,如此海量的小文件必然会要求更高的系统存取性能,以及会面临小文件的备份与恢复困难等问题。另外,社会化网络、移动通信、网络视频音频、传感器网络等各种应用产生的数据量很大,往往能够产生千万级、亿级甚至十亿、百亿级的海量小文件,而且大多海量小文件都是混合存储,因此,在元数据管理、访问性能、存储效率等方面面临着巨大的挑战。
[0003]目前,小文件的存储方法主要是采用多副本的方式进行备份并存储,对于海量的小文件来说,主要特点就是数据量大,同时存在大量的元数据,因此,在此种情况下,小文件的存储会占用大量的存储空间。另外,为了提供标准的文件目录结构,还需配备一个目录服务器,目录服务器多采用数据库或者目录树进行管理。
[0004]下面以现有技术中两种小文件系统为例,介绍现有技术中的小文件的存取方法。
[0005]第一种小文件系统主要通过将海量的小文件(如图片、文本等)打包进大文件进行存储,并通过多副本的方式来解决数据的可靠性,其中,用于存储多个小文件的大文件可称作一个Block,通常64MB大小,Block内部存储的每个文件用一个File id标识,下面将TFS中小文件存储的过程分两个步骤进行介绍。
[0006]小文件写的过程:
[0007]客户端向名称服务器(称为Name Server)发送写请求;
[0008]Name Server根据Block的负载情况,向客户端提供可用的Block、File id以及该Block所属的数据服务器(称为Data Server);
[0009]客户端向相应的Data Server发送数据,Data Server通过管道运输(即pipeline)模式将数据复制到其他的Data Server。
[0010]小文件读的过程:
[0011]客户端通过编码将文件名转换为Block id和File id,然后向名称服务器(即Name Server)索要数据服务器(即Data Server);
[0012]Data Server收到请求后,通过接收到的Block id和File id定位到Block的具体位置,并读取数据,将读取的数据返回客户端。
[0013]第二种小文件系统以Haystack为例,其针对存储图片的数量巨大的网站,Haystack的主要架构主要有三个部分:Haystack目录(即Haystack Directory), Haystack存储(即 Haystack Store)以及 Haystack 存区(即 Haystack Cache)。其中,HaystackStore是物理存储节点,以物理卷轴的形式组织存储空间,每个物理卷轴一般很大(例如100GB),每一个物理卷轴对应一个物理文件,因此,每个存储节点上的物理文件的元数据信息都很小,多个物理存储节点上的物理卷轴组成一个逻辑卷轴,用于备份,HaystackDirectory用于存放逻辑卷轴和物理卷轴的对应关系。
[0014]下面将Haystack中小文件存储的流程分两个步骤进行介绍。
[0015]小文件写的过程(例如图片上传的过程)为:
[0016]网页服务器(称为Web Server)首先请求Haystack Directory获取图片的id和可写的逻辑卷轴,接着将数据写入对应的每一个物理卷轴,一般备份数为3 ;
[0017]小文件读的过程(例如图片下载或浏览的过程)为:
[0018]当用户访问一个页面时,Web Server请求Haystack Directory构造一个URL:http: //<CDN>/<Cache>/<Machine id>/〈Logical Volume,Photo〉,后续根据各个部分的信息一次访问内容分发网络(Content Delivery Network, CDN),Cache 和后端的 HaystackStore存储节点。
[0019]Haystack Directory的实现米用Replicated Database做持久化存储,前面增加一个Memcache集群满足查询需求。
[0020]综上所述,现有技术中,在进行小文件存储时,多采用多副本的方式,这样,会占用很大的内存,增加系统开销,从而导致存储空间利用率很低。另外,目录服务采用数据库作底层架构时,虽然数据库很灵活,可以实现目录服务的增删改查功能,但是,在对海量小文件进行记录时,数据库的性能会很差,同时,整个系统的稳定性非常依赖于数据库的稳定性,随着系统规模的扩大,数据库必将成为整个系统的瓶颈。

【发明内容】

[0021]本发明实施例提供一种小文件的定位方法及系统,用以提高小文件的定位能力,以及提高空间存储利用率。
[0022]本发明实施例提供的具体技术方案如下:
[0023]一种小文件的定位方法,包括:
[0024]文件管理平台接收客户端发送的小文件读取请求后,确定所述小文件的目录对应的元数据文件;
[0025]所述文件管理平台根据所述小文件的标识信息,以及预设的所述小文件的索引信息,确定所述小文件的元数据信息在所述元数据文件中的存储位置,并基于所述存储位置获取所述小文件的元数据信息;其中,所述小文件的索引信息用于描述所述小文件的标识信息和所述存储位置之间的映射关系,所述元数据信息中至少包括小文件的切片数据和检验码所属的容器和小文件的切片数据和校验码在容器中的偏移量;
[0026]所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码。
[0027]这样,可以提高小文件的定位能力,降低索引的复杂度,并提高系统的索引及存储性能。
[0028]较佳地,在接收到所述小文件读取请求之前,进一步包括:
[0029]所述文件管理平台接收到客户端发送的小文件存储请求时,为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令客户端将小文件的切片数据和校验码分别发送至相应的存储节点,并指示所述相应的存储节点分别将接收到的小文件的切片数据和校验码存储至本地对应所述容器的存储文件中;
[0030]所述文件管理平台根据所述小文件的目录以及预设的目录与元数据文件的一一对应关系,确定所述小文件对应的元数据文件,并根据客户端反馈的存储结果,将所述小文件的元数据信息在所述元数据文件中进行更新,以及建立所述小文件的索引信息,其中,所述小文件的索引信息用于描述所述小文件的标识信息与所述小文件元数据信息的存储位置之间的映射关系。
[0031]较佳地,所述文件管理平台为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令所述客户端将小文件的切片数据和校验码分别发送至相应的存储节点,具体包括:
[0032]所述文件管理平台为所述小文件分配可用的容器,并将所述容器中各个存储文件分别关联相应的存储节点,令所述客户端将小文件进行切片处理并按预设的容错方法计算校验码后,按照容器中各个存储文件与相应的存储节点的对齐顺序将各个切片数据和校验码分别向相应的存储节点发送,其中,各个切片数据及相应检验码,与各个存储文件之间的对应关系是由所述文件管理平台预先配置的容器。
[0033]这样,能够大大提升存储空间利用率,降低了系统的存储开销,提升了系统的存储性能。
[0034]较佳地,所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码,具体包括:
[0035]所述文件管理平台基于所述小文件的元数据信息,确定小文件的各个切片数据和校验码所属的容器,以及小文件的各个切片数据和校验码在容器中的偏移量;
[0036]所述文件管理平台按照所述容器中的各个存储文件与各个存储节点的对齐顺序,分别确定小文件的各个切片数据和校验码对应的存储节点;其中,各个切片数据及相应检验码,与各个存储文
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1