一种对于海量小文件在分布式存储系统中上载的方法技术方案

技术编号:14849195 阅读:146 留言:0更新日期:2017-03-18 09:10
本发明专利技术涉及一种对于海量小文件在分布式存储系统中上载的方法,该方法包括:客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;元数据服务器对文件进行预创建,建立文件池;利用元数据服务器聚合管理文件元数据;经内核模块对文件排序后批量同步上载。解决了小文件创建延迟大、数目少的问题,大大提高了上载速率,且减少了硬件资源浪费,节约了成本。

【技术实现步骤摘要】

本专利技术涉及一种上载方法,具体涉及一种对于海量小文件在分布式存储系统中上载的方法
技术介绍
数字化时代的今天,随着需要存储的数据量日益增长,单一的存储硬件设备已经难以在容量和性能上满足数目众多的行业的存储需求。为了满足数目繁多的行业对非结构化数据的存储需求,一批分布式文件系统应运而生,这其中的代表者如PNFS、GPFS、Lustre、GoogleFS、HDFS等。这些分布式文件系统都是通过软件来将硬件集群进行统一管理,对外展现一个统一的存储池,从而达到对硬件资源进行虚拟化整合的目的。对于目前分布式结构数据存储来说,根据其存储性,大致可分为大文件存储和小文件存储。大文件存储例如:视频存储、高性能计算等,小文件存储例如:数字图书馆、网上商城等。对于目前成熟的分布式文件系统,对大文件的存储可谓是得心应手,而当面临海量小文件时,却往往显得力不从心。为了减少小文件存储对分布式文件系统的压力,很多专用接口的文件系统,如GoogleFS、HDFS、TBFS,均采用将多个小文件聚合成大文件的方式,来减缓频繁访问对于底层磁盘件的压力,从而达到提供服务能力的效果。而提供通用接口的分布式文件系统,对于小文件存储则没有对应的优化策略,导致在数字图书馆、网上商城等小文件应用的表现不容乐观。数字图书馆和网上商城这类应用的访问模式是集中上载,然后进行随机读取。上载时,通常需要在短时间内创建和写入上亿个小文件;上载完毕后,这些小文件会随时被读取。据用户测试反应,通常一个TB的小文件上载需要的时间往往大于48小时,这样的性能令人无法忍受。对于分布式文件系统的小文件上载压力可归为以下两个方面:其一是上载时元数据和数据的创建压力,即需要在短时间内创建上亿个文件;其二是上载时数据的写压力,即需要在短时间内将上亿个小文件写入磁盘。为了解决第一个问题,GPFS等文件系统采用了多元数据服务器的方法,其不足在于对于硬件资源比较浪费,成本相对较高;对于第二个问题,GoogleFS等文件系统采用了多个小文件聚合成大文件的方式来提高硬盘的IO带宽,不足之处在于需要增加额外的管理数据,复杂度较高。
技术实现思路
针对现有技术的不足,本专利技术提出一种对于海量小文件在分布式存储系统中上载的方法,根据操作系统的标准POSIX语义,合并文件的查找和创建动作;该方法操作简单,克服了小文件上载速率不足的缺陷,提高了整体上载的性能,从而减少了硬件资源浪费,降低了成本。本专利技术的目的是采用下述技术方案实现的:针对现有技术的不足,本专利技术提出一种对于海量小文件在分布式存储系统中上载的方法,所述上载方法包括下述步骤:(1)客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;(2)元数据服务器对文件进行预创建,建立文件池;(3)利用元数据服务器聚合管理文件元数据;(4)经内核模块对文件排序后批量同步上载。优选的,所述步骤(1)中,所述客户端为分布式文件系统的入口,根据文件系统的标准POSIX语义,合并文件的查找和创建动作;如果检测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带回。优选的,所述步骤(2)中,所述元数据服务器对文件进行预创建步骤如下:2-1为待创建文件分配唯一标识;2-2向数据服务器发起对象创建请求,并等待处理完成;2-3进行元数据创建操作;2-4返回客户端。进一步地,所述步骤2-3中,所述进行元数据创建操作,包括在元数据服务器上预先创建一定数目的文件,并放入备用文件池中;当客户端有创建请求到来时,从文件池中分配一个文件,返回给客户端即可;当空闲文件池中没有可用文件时,元数据服务器直接向数据服务器发起对象创建请求,同时,唤醒后台线程向文件池填充空闲文件。优选的,所述步骤(3)中,所述聚合管理是将文件的元数据存放在一个元数据文件中。进一步地,如果一个元数据文件管理N个元数据,此时操作磁盘的次数将由原来的N次减小为1次。优选的,所述步骤(4)中,所述批量同步上载的方法包括下述步骤:步骤4-1.将多个小文件同时写入操作系统的文件缓存,由系统后台线程回写,回写时按批聚合,不进行单次操作的磁盘同步;步骤4-2.引入内核模块,按照文件在磁盘上的数据块排列顺序,从小到大并发同步,使得磁盘访问按顺序进行,减少磁头跳动,提高磁盘性能;步骤4-3.对由元数据发起的创建对象请求进行批量聚合处理,完成同步上载。与最接近的现有技术比,本专利技术的优异效果为:本专利技术针对海量小文件在分布式存储系统中上载的方法,结合分布式文件系统客户端、元数据服务器和数据服务器各个组件的特性,对客户端、元数据服务器和数据服务器三个组件进行同时优化。一方面大大提高了海量小文件上载性能,优化了系统总文件上载过程中创建速率,另一方面,减少了磁盘访问频率和硬件资源浪费,降低了成本,对于保护硬盘、延长其硬盘使用寿命也大有裨益。附图说明如图1所示为本专利技术中元数据服务器创建请求的流程图。具体实施方式下面结合附图对本专利技术作进一步详细说明。如图1所示,所述上载方法包括下述步骤:(1)客户端根据操作系统的标准POSIX(PortableOperatingSystemInterface表示可移植操作系统接口)语义,查找带有创建请求的目标文件;其中,所述客户端为分布式文件系统的入口,根据文件系统的标准POSIX(PortableOperatingSystemInterface表示可移植操作系统接口)语义,合并文件的查找和创建动作;如果检测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带回。(2)元数据服务器对文件进行预创建,建立文件池;其中,所述元数据服务器对文件进行预创建步骤如下:2-1为待创建文件分配唯一标识;2-2向数据服务器发起对象创建请求,并等待处理完成;2-3进行元数据创建操作;其中,所述进行元数据创建操作,包括在元数据服务器上预先创建一定数目的文件,并放入备用文件池中;当客户端有创建请求到来时,从文件池中分配一个文件,返回给客户端即可;当空闲文件池中没有可用文件时,元数据服务器直接向数据服务器发起对象创建请求,同时,唤醒后台线程向文件池填充空闲文件。2-4返回客户端。(3)利用元数据服务器聚合管理文件元数据;其中,所述聚合管理是将文件的元数据存放在一个元数据文件中;如果一个元数据文件管理N个元数据,此时操作磁盘的次数将由原来的N次减小为1次。...

【技术保护点】
一种对于海量小文件在分布式存储系统中上载的方法,所述上载方法包括下述步骤:(1)客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;(2)元数据服务器对文件进行预创建,建立文件池;(3)利用元数据服务器聚合管理文件元数据;(4)经内核模块对文件排序后批量同步上载。

【技术特征摘要】
1.一种对于海量小文件在分布式存储系统中上载的方法,所述上载方法包括下述步骤:
(1)客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;
(2)元数据服务器对文件进行预创建,建立文件池;
(3)利用元数据服务器聚合管理文件元数据;
(4)经内核模块对文件排序后批量同步上载。
2.如权利要求1所述的上载方法,其特征在于,所述步骤(1)中,所述客户端为分布
式文件系统的入口,根据文件系统的标准POSIX语义,合并文件的查找和创建动作;如果检
测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带
回。
3.如权利要求1所述的上载方法,其特征在于,所述步骤(2)中,所述元数据服务器
对文件进行预创建步骤如下:
2-1为待创建文件分配唯一标识;
2-2向数据服务器发起对象创建请求,并等待处理完成;
2-3进行元数据创建操作;
2-4返回客户端。
4.如权利要求3所述的上载方法,其特征在于,所述步骤2-3中,所述进行元数据创建<...

【专利技术属性】
技术研发人员:杨浩马照云王利虎苗艳超刘新春邵宗有
申请(专利权)人:曙光信息产业股份有限公司
类型:发明
国别省市:天津;12

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

1