一种分布式文件系统中海量小文件io操作传输提速方法

文档序号:6535608阅读:1206来源:国知局
一种分布式文件系统中海量小文件io操作传输提速方法
【专利摘要】本发明提供了一种分布式文件系统中海量小文件IO操作传输提速方法,在发送端将大量小文件IO操作缓存,执行流量汇集,打包成单一大文件一次性传输到接收端,在接收端对所述大文件进行解析,获得每一个小文件IO操作,并执行相关文件写入操作。所述方法大大降低了网络交互次数,提高了海量小文件IO操作的传输速度。
【专利说明】一种分布式文件系统中海量小文件IO操作传输提速方法
【技术领域】
[0001]本发明涉及计算机存储领域,具体涉及集群存储中,海量小文件传输加速的方法。【背景技术】
[0002]随着网络应用的迅速发展,网络信息数据量越来越大,PB级别的海量数据存储变得越来越重要。传统意义的文件系统已不能满足现有应用的大容量、高可靠性、高性能等要求,为满足这些新要求,基于分布式文件系统发展而来的集群NAS系统得到了广泛重视。
[0003]现有分布式文件系统的研究主要分为元数据与实际数据存储分开管理,通过元数据与实际数据的隔离实现了分布式文件系统的容量动态增减、性能现行扩展。然而,社会化网络、移动通信、网络视频音频、电子商务、传感器网络、科学实验等各种应用产生的数据,不仅存储容量巨大,而且还具有数据类型繁多、数据大小变化大、流动快等显著特点,往往能够产生千万级、亿级甚至十亿、百亿级的海量小文件,而且更多地是海量大小文件混合存储。由于在元数据管理、访问性能、存储效率等方面面临巨大的挑战性,因此海量小文件(LOSF, lots of small files)问题成为了工业界和学术界公认的难题。
[0004]通常我们认为大小在IMB以内的文件称为小文件,百万级数量及以上称为海量,由此量化定义海量小文件问题,以下简称LOSF。LOSF应用在目前实际中越来越常见,如社交网站、电子商务、广电、网络视频、高性能计算。
[0005]由于分布式文件系统的设计原理导致其在解决海量小文件传输问题时具有先天缺陷,使得现有集群NAS系统存在严重的小文件传输瓶颈,图1示出了现有集群NAS系统中小文件IO操作方式。

【发明内容】

[0006]为了充分利用分布式文件系统的高并发处理能力特性解决海量小文件传输问题,本发明设计了一种分布式文件系统中海量小文件IO操作传输提速方法,包括:
[0007]S1:在发送端将大量小文件IO操作缓存,并按照预定的格式进行流量合
[0008]并,打包为单一的大文件传输到接收端;
[0009]S2:在接收端对接收到的所述单一大文件进行解析,获得所述大量小文件IO操作,并执行文件写入操作。
[0010]本发明的有益效果是:该方法对海量小文件的操作利用多线程技术进行缓存和汇集,将大量的小文件操作转换为单一的大文件操作,大大降低了网络交互次数,提高了海量小文件IO操作的传输速度。
【专利附图】

【附图说明】
[0011]图1示出的是现有技术中的海量小文件IO操作传输方案。
[0012]图2示出的是本发明提出的分布式文件系统中海量小文件IO操作传输提速方法流程图。【具体实施方式】
[0013]下面参照附图1详细描述本发明提出的分布式文件系统中海量小文件传输提速方法,所述方法涉及如下几个主要步骤
[0014]1,客户端的IO调用截取。该步骤通过在客户端安装专门的软件,实现对客户端操作系统IO操作的重定向,通过对文件体积的获取,区分小文件与大文件,对于大文件使用系统默认的IO路径进行传输,对于小文件则进行拦截处理。
[0015]2,海量小文件的流量合并。在客户端进行了小文件IO操作的拦截之后,对小文件的文件名、文件长度、文件内容、文件属性进行读取和编码,写入到预设的网络路径中。此时大量的小文件的IO被合并为单一的大文件的10。对于海量小文件从客户端写入集群NAS的情况,这一步骤在客户端进行小文件操作的缓存和汇集,实现流量合并;对于海量小文件从集群NAS写入客户端的情况,这一步骤在集群NAS服务端进行处理,通过多线程并发访问分布式文件系统的元数据和数据,实现高速的小文件操作的缓存和汇集,实现流量合并。
[0016]3,数据解析及文件写入。上一步骤中进行了流量合并后,在IO对端一侧,对于接收到的合并后的单一大文件IO操作进行分解,对分解得到的大量小文件的操作在本地进行并行处理。对于海量小文件从客户端写入集群NAS的情况,这一步在集群NAS的服务端运行,通过多线程的并行处理进行海量小文件的数据写入、文件属性更新等操作;对于海量小文件从集群NAS写入到客户端的情况,则在客户端进行处理,并根据客户端的资源情况进行一定的并发处理。
[0017]参照图2,本发明体系结构包括:客户端IO截取模块和集群NAS服务端数据处理模块。
[0018]再一个典型的配置环境里,客户端IO截取模块作为一般应用软件安装到客户端操作系统中,当客户进行文件传输操作时,客户端IO截取模块(I)能够拦截到文件传输的IO调用,并根据文件体积进行判断,对于体积大于IMB的文件判定为大文件,调用系统默认IO流程进行处理。对于体积小于IMB的文件判定为小文件,不使用系统的默认IO流程,而是使用本发表明定义的数据格式进行缓存。
[0019]对于小文件从客户端写入集群NAS,客户端IO截取模块缓存小文件IO操作的文件属性和文件内容,待积累的小文件IO操作将缓存填满后,客户端IO截取模块将缓存内容按照预定的格式进行流量合并,打包为单一的大文件传输到集群NAS服务端数据处理模块,由集群NAS服务端数据处理模块进行数据解包,并将相关文件内容、文件属性利用多线程并发直接写入到分布式文件系统的元数据和数据中。
[0020]对于小文件从集群NAS写入客户端,客户端IO截取模块将小文件IO操作指令缓存起来,缓存满后将指令打包发给集群NAS服务端数据处理模块进行处理。集群NAS服务端数据处理模块根据打包的指令利用多线程技术并发直接从分布式文件系统的元数据和数据中获取相关文件的文件属性、文件内容,进行流量汇聚,打包成单一的大文件传送给客户端IO截取模块,客户端IO截取模块接收到该打包后的大文件后进行数据解析和文件内容、文件属性的写入,完成IO流程。
[0021]至此,已经完成了传统海量小文件传输模式到本发明设计的海量小文件加速模式的转换,实现了分布式文件系统作为集群NAS系统场景下海量小文件的高速传输。[0022]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
【权利要求】
1.一种分布式文件系统中海量小文件IO操作传输提速方法,其特征在于包括: S1:在发送端将大量小文件IO操作缓存,并按照预定的格式进行流量合并,打包为单一的大文件传输到接收端; S2:在接收端对接收到的所述单一大文件进行解析,获得所述大量小文件IO操作,并执行文件写入操作。
2.如权利要求1所述的方法,其特征在于: 所述发送端为客户端IO截取模块,所述接收端为集群NAS服务端数据处理模块; 所述步骤SI具体为:客户端IO截取模块拦截所述大量小文件IO操作,并缓存每一个小文件IO操作的文件属性和文件内容,待积累的小文件IO操作将缓存填满后,客户端IO截取模块将缓存内容按照预定的格式进行流量合并,打包为单一的大文件传输到集群NAS服务端数据处理模块; 所述步骤S2具体为:由集群NAS服务端数据处理模块对接收到的所述单一大文件进行数据解析,获得每一个小文件IO操作的文件内容和文件属性,并利用多线程并发方式将所述文件内容和文件属性直接写入到分布式文件系统的元数据和数据中。
3.如权利要求1所述的方法,其特征在于: 所述发送端为集群NAS服务端数据处理模块,所述接收端为客户端IO截取模块; 所述步骤SI之前还包括步骤:客户端IO截取模块将大量小文件IO操作指令缓存起来,当缓存填满后,将所述缓存中的指令打包一次性发送给所述集群NAS服务端数据处理模块; 所述步骤SI具体为:集群NAS服务端数据处理模块根据所述指令利用多线程技术并发方式直接从分布式文件系统的元数据和数据中获取相关小文件IO操作的文件属性和文件内容,进行流量汇聚,打包成单一的大文件传送给客户端IO截取模块; 所述步骤S2具体为:客户端IO截取模块接收到该打包后的大文件后进行数据解析,获得每一个小文件IO操作的文件内容和文件属性并执行写入操作。
【文档编号】G06F17/30GK103716413SQ201410014559
【公开日】2014年4月9日 申请日期:2014年1月13日 优先权日:2014年1月13日
【发明者】孟圣智 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1