一种小文件的定位方法及系统技术方案

技术编号:12175330 阅读:86 留言:0更新日期:2015-10-08 12:52
本发明专利技术涉及互联网领域,具体公开了一种小文件的定位方法及系统,用以提高小文件的定位能力。该方法为:接收客户端发送的小文件读取请求后,确定该小文件的目录对应的元数据文件,根据小文件的标识信息,以及预设的小文件的索引信息,确定小文件的元数据信息在元数据文件中的存储位置,并基于存储位置获取小文件的元数据信息,基于小文件的元数据信息,向该客户端通知保存有该容器的相关存储节点的位置,令该客户端从相关存储节点读取该小文件的切片数据和校验码。这样,可以提高小文件的定位能力,降低索引的复杂度,并提高系统的索引及存储性能。

【技术实现步骤摘要】
一种小文件的定位方法及系统
本专利技术涉及互联网领域,特别涉及一种小文件的定位方法及系统。
技术介绍
随着互联网、物联网、云计算等高速发展,大量的互联网企业涌入人们的生活,很多互联网企业都会遇到海量小文件(LostofSmallFiles,LOSF)的问题,例如,文本、图片以及音乐等,如此海量的小文件必然会要求更高的系统存取性能,以及会面临小文件的备份与恢复困难等问题。另外,社会化网络、移动通信、网络视频音频、传感器网络等各种应用产生的数据量很大,往往能够产生千万级、亿级甚至十亿、百亿级的海量小文件,而且大多海量小文件都是混合存储,因此,在元数据管理、访问性能、存储效率等方面面临着巨大的挑战。目前,小文件的存储方法主要是采用多副本的方式进行备份并存储,对于海量的小文件来说,主要特点就是数据量大,同时存在大量的元数据,因此,在此种情况下,小文件的存储会占用大量的存储空间。另外,为了提供标准的文件目录结构,还需配备一个目录服务器,目录服务器多采用数据库或者目录树进行管理。下面以现有技术中两种小文件系统为例,介绍现有技术中的小文件的存取方法。第一种小文件系统主要通过将海量的小文件(如图片、文本等)打包进大文件进行存储,并通过多副本的方式来解决数据的可靠性,其中,用于存储多个小文件的大文件可称作一个Block,通常64MB大小,Block内部存储的每个文件用一个Fileid标识,下面将TFS中小文件存储的过程分两个步骤进行介绍。小文件写的过程:客户端向名称服务器(称为NameServer)发送写请求;NameServer根据Block的负载情况,向客户端提供可用的Block、Fileid以及该Block所属的数据服务器(称为DataServer);客户端向相应的DataServer发送数据,DataServer通过管道运输(即pipeline)模式将数据复制到其他的DataServer。小文件读的过程:客户端通过编码将文件名转换为Blockid和Fileid,然后向名称服务器(即NameServer)索要数据服务器(即DataServer);DataServer收到请求后,通过接收到的Blockid和Fileid定位到Block的具体位置,并读取数据,将读取的数据返回客户端。第二种小文件系统以Haystack为例,其针对存储图片的数量巨大的网站,Haystack的主要架构主要有三个部分:Haystack目录(即HaystackDirectory),Haystack存储(即HaystackStore)以及Haystack贮存区(即HaystackCache)。其中,HaystackStore是物理存储节点,以物理卷轴的形式组织存储空间,每个物理卷轴一般很大(例如100GB),每一个物理卷轴对应一个物理文件,因此,每个存储节点上的物理文件的元数据信息都很小,多个物理存储节点上的物理卷轴组成一个逻辑卷轴,用于备份,HaystackDirectory用于存放逻辑卷轴和物理卷轴的对应关系。下面将Haystack中小文件存储的流程分两个步骤进行介绍。小文件写的过程(例如图片上传的过程)为:网页服务器(称为WebServer)首先请求HaystackDirectory获取图片的id和可写的逻辑卷轴,接着将数据写入对应的每一个物理卷轴,一般备份数为3;小文件读的过程(例如图片下载或浏览的过程)为:当用户访问一个页面时,WebServer请求HaystackDirectory构造一个URL:http://<CDN>/<Cache>/<Machineid>/<LogicalVolume,Photo>,后续根据各个部分的信息一次访问内容分发网络(ContentDeliveryNetwork,CDN),Cache和后端的HaystackStore存储节点。HaystackDirectory的实现采用ReplicatedDatabase做持久化存储,前面增加一个Memcache集群满足查询需求。综上所述,现有技术中,在进行小文件存储时,多采用多副本的方式,这样,会占用很大的内存,增加系统开销,从而导致存储空间利用率很低。另外,目录服务采用数据库作底层架构时,虽然数据库很灵活,可以实现目录服务的增删改查功能,但是,在对海量小文件进行记录时,数据库的性能会很差,同时,整个系统的稳定性非常依赖于数据库的稳定性,随着系统规模的扩大,数据库必将成为整个系统的瓶颈。
技术实现思路
本专利技术实施例提供一种小文件的定位方法及系统,用以提高小文件的定位能力,以及提高空间存储利用率。本专利技术实施例提供的具体技术方案如下:一种小文件的定位方法,包括:文件管理平台接收客户端发送的小文件读取请求后,确定所述小文件的目录对应的元数据文件;所述文件管理平台根据所述小文件的标识信息,以及预设的所述小文件的索引信息,确定所述小文件的元数据信息在所述元数据文件中的存储位置,并基于所述存储位置获取所述小文件的元数据信息;其中,所述小文件的索引信息用于描述所述小文件的标识信息和所述存储位置之间的映射关系,所述元数据信息中至少包括小文件的切片数据和检验码所属的容器和小文件的切片数据和校验码在容器中的偏移量;所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码。这样,可以提高小文件的定位能力,降低索引的复杂度,并提高系统的索引及存储性能。较佳地,在接收到所述小文件读取请求之前,进一步包括:所述文件管理平台接收到客户端发送的小文件存储请求时,为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令客户端将小文件的切片数据和校验码分别发送至相应的存储节点,并指示所述相应的存储节点分别将接收到的小文件的切片数据和校验码存储至本地对应所述容器的存储文件中;所述文件管理平台根据所述小文件的目录以及预设的目录与元数据文件的一一对应关系,确定所述小文件对应的元数据文件,并根据客户端反馈的存储结果,将所述小文件的元数据信息在所述元数据文件中进行更新,以及建立所述小文件的索引信息,其中,所述小文件的索引信息用于描述所述小文件的标识信息与所述小文件元数据信息的存储位置之间的映射关系。较佳地,所述文件管理平台为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令所述客户端将小文件的切片数据和校验码分别发送至相应的存储节点,具体包括:所述文件管理平台为所述小文件分配可用的容器,并将所述容器中各个存储文件分别关联相应的存储节点,令所述客户端将小文件进行切片处理并按预设的容错方法计算校验码后,按照容器中各个存储文件与相应的存储节点的对齐顺序将各个切片数据和校验码分别向相应的存储节点发送,其中,各个切片数据及相应检验码,与各个存储文件之间的对应关系是由所述文件管理平台预先配置的容器。这样,能够大大提升存储空间利用率,降低了系统的存储开销,提升了系统的存储性能。较佳地,所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码,具体包括:所本文档来自技高网
...
一种小文件的定位方法及系统

【技术保护点】
一种小文件的定位方法,其特征在于,包括:文件管理平台接收客户端发送的小文件读取请求后,确定所述小文件的目录对应的元数据文件;所述文件管理平台根据所述小文件的标识信息,以及预设的所述小文件的索引信息,确定所述小文件的元数据信息在所述元数据文件中的存储位置,并基于所述存储位置获取所述小文件的元数据信息;其中,所述小文件的索引信息用于描述所述小文件的标识信息和所述存储位置之间的映射关系,所述元数据信息中至少包括小文件的切片数据和检验码所属的容器和小文件的切片数据和校验码在容器中的偏移量;所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码。

【技术特征摘要】
1.一种小文件的定位方法,其特征在于,包括:文件管理平台接收客户端发送的小文件读取请求后,确定所述小文件的目录对应的元数据文件;所述文件管理平台根据所述小文件的标识信息,以及预设的所述小文件的索引信息,确定所述小文件的元数据信息在所述元数据文件中的存储位置,并基于所述存储位置获取所述小文件的元数据信息;其中,所述小文件的索引信息用于描述所述小文件的标识信息和所述存储位置之间的映射关系,所述元数据信息中至少包括小文件的切片数据和检验码所属的容器和小文件的切片数据和校验码在容器中的偏移量;所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码;在接收到所述小文件读取请求之前,进一步包括:所述文件管理平台接收到客户端发送的小文件存储请求时,为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令所述客户端将小文件的切片数据和校验码分别发送至相应的存储节点,并指示所述相应的存储节点分别将接收到的小文件的切片数据和校验码存储至本地对应所述容器的存储文件中;所述文件管理平台根据所述小文件的目录以及预设的目录与元数据文件的一一对应关系,确定所述小文件对应的元数据文件,并根据客户端反馈的存储结果,将所述小文件的元数据信息在所述元数据文件中进行更新,以及建立所述小文件的索引信息,其中,所述小文件的索引信息用于描述所述小文件的标识信息与所述小文件元数据信息的存储位置之间的映射关系。2.如权利要求1所述的方法,其特征在于,所述文件管理平台为所述小文件分配可用的容器,并通过所述容器关联相应的存储节点,令所述客户端将小文件的切片数据和校验码分别发送至相应的存储节点,具体包括:所述文件管理平台为所述小文件分配可用的容器,并将所述容器中各个存储文件分别关联相应的存储节点,令所述客户端将小文件进行切片处理并按预设的容错方法计算校验码后,按照容器中各个存储文件与相应的存储节点的对齐顺序将各个切片数据和校验码分别向相应的存储节点发送,其中,各个切片数据及相应检验码,与各个存储文件之间的对应关系是由所述文件管理平台预先配置的。3.如权利要求1或2所述的方法,其特征在于,所述文件管理平台基于所述小文件的元数据信息,向所述客户端通知保存有所述容器的相关存储节点的位置,令所述客户端从所述相关存储节点读取所述小文件的切片数据和校验码,具体包括:所述文件管理平台基于所述小文件的元数据信息,确定小文件的各个切片数据和校验码所属的容器,以及小文件的各个切片数据和校验码在容器中的偏移量;所述文件管理平台按照所述容器中的各个存储文件与各个存储节点的对齐顺序,分别确定小文件的各个切片数据和校验码对应的存储节点;其中,各个切片数据及相应检验码,与各个存储文件之间的对应关系是由所述文件管理平台预先配置的;所述文件管理平台向所述客户端通知所述对应的存储节点的位置,令所述客户端根据小文件的各个切片数据和校验码在容器中的偏移量,分别从所述对应的存储节点中读取各个切片数据和校验码。4.如权利要求1或2所述的方法,其特征在于,进一步包括:在建立小文件的索引信息之前,建立每一个元数据文件对应的头文件,所述头文件至少包括小文件的元数据信息在对应元数据文件中的存储位置信息,以及小文件数据的状态信息,所述状态信息用于指示小文件的元数据是否可读。5.如权利要求4所述的方法,其特征在于,进一步包括:在接收到客户端发送的删除小文件的请求后,获取小文件所在元数据文件对应的头...

【专利技术属性】
技术研发人员:许焰周明伟江文龙
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1