一种基于快速存储设备的海量小文件解决方法技术

技术编号:18458761 阅读:365 留言:0更新日期:2018-07-18 12:41
本发明专利技术公开了一种基于快速存储设备的海量小文件解决方法,其包括步骤为:(1)采集小文件,对大小在1KB‑1MB小文件进行采集;(2)将小文件拆分为元数据和数据信息;(3)小文件元数据写入数据库,数据信息写入快速存储设备;(4)基于快速存储设备进行数据归并。本发明专利技术不仅能够解决海量小文件元数据庞大,查找性能低下的问题,同时能够以较低的成本提升小文件读写性能问题,易于推广。

A solution of massive small files based on fast storage device

The invention discloses a mass small file solution method based on fast storage device, which includes: (1) collecting small files, collecting small files of 1KB 1MB; (2) the small files are divided into metadata and data information; (3) the small file metadata is written into the database, and the data information is written to the fast storage device; (4 ) data merging is based on fast storage devices. The invention can not only solve the large amount of small file metadata, find the problem of low performance, but also can improve the performance problem of small file reading and writing at a lower cost, and is easy to popularize.

【技术实现步骤摘要】
一种基于快速存储设备的海量小文件解决方法
本专利技术属于计算机基础数据存储领域,具体是涉及一种基于快速存储设备的海量小文件解决方法。
技术介绍
随着物联网的发展,全球信息化的加剧,海量小文件的存储性能问题越来越为业界所关注。例如交通系统的拍摄系统每天产生大量的图片小文件,社交网站上的网页表单每天产生成大量的日志小文件。随着数据量的增大,解决海量小文件存储所带来的存储性能问题也越来越迫切。传统存储采用集中式的高性能的存储服务,如华为的OceanStor系统存储产品,可以解决一部分文件频繁读写磁盘带来的性能问题,但价格昂贵,无法被普及。同时由于这种集中式的存储服务本身是基于传统文件系统基础上的,如ext4、xfs。这些传统文件系统基于二叉树的数据结构,根据二叉树特性树的深度决定树的搜索、插入、删除性能。采用这种方式进行小文件存储时,每个小文件都需要一个inode节点在文件系统中标志,1亿个小文件就需要1亿个inode节点。文件系统单目录存储的文件数量过大会导致展示时无法全部加载到内存,因此需要建立多层目录,导致目录树深的增加,严重影响查找性能。同时传统文件系统受到inode总数的限制,一般为32000个,海量小文件的存储会导致inode节点用完,进一步导致磁盘空间还未满,却因无可用inode节点无法继续存储文件的现象,浪费磁盘空间。分布式存储相对传统存储,在解决海量小文件的性能上有着天然的优势:由于分布式、高容错和可伸缩的特性,使得普通PC服务器即可支撑起大规模的数据存储集群,较集中式的专业存储更易于推广。按照分布式存储的对象化特征,将海量小文件的元数据信息和数据信息进行分离:元数据信息使用数据库管理、数据信息直接在磁盘中存储。小文件的元数据,比如目录信息(a/b/c/d/e),在数据库中以字符串的形式存储,通过hash算法将元数据信息的查询效率提高为О(1)消耗时间,很好解决查询性能缓慢的问题。小文件被对象化存储在分布式系统中,分布式系统按照每个对象文件占用4MB空间,保证了inode节点数量充足,不会出现存储大量大小不一的小文件导致的inode节点占满的情况。但随着分布式存储中数据量的增加,元数据数据库承受的压力会线性增加。同时每次读取小文件都要进行一次耗时的数据库磁盘IO读写操作,分布式存储在小文件读写方面依然存在短板,性能不够理想。
技术实现思路
本专利技术结合传统集中式存储和分布式存储两种方式的特点,提出一种基于快速存储设备的海量小文件分布式存储的解决方法,不仅能够解决海量小文件元数据庞大,查找性能低下的问题,同时能够以较低的成本提升小文件读写性能问题,易于推广。本专利技术采取的技术方案是:1.一种基于快速存储设备的海量小文件解决方法,其特征在于包括如下步骤:步骤一:采集小文件,对大小在1KB-1MB小文件进行采集;步骤二:将小文件拆分为元数据和数据信息;步骤三:小文件元数据写入数据库,数据信息写入快速存储设备;步骤四:基于快速存储设备进行数据归并;对于业务存在关联性的小文件,通过关联业务合并方案合并为大文件,对于业务不存在关联性的小文件,通过非关联业务方案合并为大文件数据信息,合并后的大文件数据信息写入普通慢速存储设备。进一步的,所述步骤四中合并方案为:数据采集形成的小文件数据信息集合为(a1,a2,a3,a4,a5...an),其对应的元数据集合为(m1,m2,m3,m4,m5...mn);合并方案包括关联业务合并方案和非关联业务合并方案。进一步的,所述关联业务合并方案步骤如下:步骤1:通过查找数据库中记录的关键字,得到多组元数据集(m1,m3,m5,m7)(m2,m4,m6,m8)...;步骤2:根据元数据中记录的数据信息的位置,可以在快速设备读出数据信息集合(a1,a3,a5,a7)(a2,a4,a6,a8)...;步骤3:将新得到的数据信息集在内存中合并为大文件,得到新的数据信息集(d1,d2,d3,d4...d(n/4));步骤4:删除原来写在快速设备中的分散的小文件数据信息(a1,a2,a3,a4,a5...an),将新的数据信息(d1,d2,d3,d4...d(n/4))从内存中写入到慢速设备中;步骤5:对于原有元数据(m1,m2,m3,m4,m5...mn)进行和并操作:保留原有每个小文件的位置信息、合并时间信息、删除guid非关键信息,得到新的元数据集合(_m1,_m2,_m3,_m4..._m(n/4));步骤6:删除数据库中原来记录的元数据信息(m1,m2,m3,m4,m5...mn),写入新合并的元数据信息(_m1,_m2,_m3,_m4..._m(n/4))。进一步的,所述关联业务合并方案在数据库中使用关键字查找,得到元数据;所述非关联业务合并方案在数据库中根据顺序序号查找,得到元数据集。本专利技术的有益效果如下:1、解决了传统集中式存储所遇到的目录树深度过大和inode资源易被消耗光的问题。2、解决了分布式存储中小文件元数据体量过大,造成小文件连续写入性能低下问题。3、提出了基于关联业务和基于非关联业务的合并方案,适用范围广泛。4、使用快速存储盘读写小文件,慢速存储盘固化合并后的大文件的方案,数据信息存储在慢速存储盘,具有成本低廉、可扩展性强、性能较高、稳健性强、易于推广特点。本专利技术适用的业务场景如下:1、采集的数据为1KB-1MB的小文件;2、每天存储的小文件数量在千万级以上;3、存储的数据需要保留3个月以上。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明图1是未使用快速存储盘的元数据和数据信息分离存储示意图。图2是使用快速盘进行文件归并示意图。图3是合并方案流程图。图4是小文件数据存储实施示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。一种基于快速存储设备的海量小文件解决方法,其包括如下步骤:Step1:采集小文件。对大小在1KB-1MB小文件进行采集。Step2:将小文件拆分为元数据和数据信息。通过文件拆分模块,将采集到的小文件的元数据信息和数据信息分离。通过元数据信息中记录小文件的位置进行数据关联。小文件是由元数据和数据信息组成的。元数据是一种描述数据的数据结构,主要用来记录小文件的属性信息,例如小文件的创建时间、小文件的修改时间、小文件的数据结构、小文件的guid,小文件的所属目录等。数据信息是小文件的实际内容,以二进制数据流的形式进行存储。通过在元数据中记录小文件存储位置的方式,可以轻松让元数据关联数据信息。由于元数据和数据信息只有关联性,没有耦合性,因此可以轻松将两者拆分,分开存储。Step3:小文件元数据写入数据库,数据信息写入快速存储设备。将小文件元数据写入数据库,数据信息写入快速存储设备。其中数据库可采用mysql,db2,oracle等,快速存储设备可使用固态闪存盘(如SSD硬盘)。由于元数据信息庞大(如果一个小文件有1KB的元数据,则1亿个小文件拥有1TB的元数据),无法被一次性加载到内存中,因此需要使用数据库管理元数据。通过数据库查找的方式,可以很容易找到加载小文件需要使用的元数据。数据的数据信息远远大于元数据信息,同时为二进数据流形式,不适用于数据库,因此被直接本文档来自技高网
...

【技术保护点】
1.一种基于快速存储设备的海量小文件解决方法,其特征在于包括如下步骤:步骤一:采集小文件,对大小在1KB‑1MB小文件进行采集;步骤二:将小文件拆分为元数据和数据信息;步骤三:小文件元数据写入数据库,数据信息写入快速存储设备;步骤四:基于快速存储设备进行数据归并;对于业务存在关联性的小文件,通过关联业务合并方案合并为大文件,对于业务不存在关联性的小文件,通过非关联业务方案合并为大文件数据信息,合并后的大文件数据信息写入普通慢速存储设备。

【技术特征摘要】
1.一种基于快速存储设备的海量小文件解决方法,其特征在于包括如下步骤:步骤一:采集小文件,对大小在1KB-1MB小文件进行采集;步骤二:将小文件拆分为元数据和数据信息;步骤三:小文件元数据写入数据库,数据信息写入快速存储设备;步骤四:基于快速存储设备进行数据归并;对于业务存在关联性的小文件,通过关联业务合并方案合并为大文件,对于业务不存在关联性的小文件,通过非关联业务方案合并为大文件数据信息,合并后的大文件数据信息写入普通慢速存储设备。2.根据权利要求1所述的一种基于快速存储设备的海量小文件解决方法,其特征在于所述步骤四中合并方案为:数据采集形成的小文件数据信息集合为(a1,a2,a3,a4,a5...an),其对应的元数据集合为(m1,m2,m3,m4,m5...mn);合并方案包括关联业务合并方案和非关联业务合并方案。3.根据权利要求2所述的一种基于快速存储设备的海量小文件解决方法,其特征在于所述关联业务合并方案步骤如下:步骤1:通过查找数据库中记录的关键字,得到多组元数据集(m1,m3,m5,m7)(m2,m4,m6,m8)...;步骤2:根据元数据中记录的...

【专利技术属性】
技术研发人员:曹靖城陆涛高丽华吕超王霄雨
申请(专利权)人:江苏省公用信息有限公司
类型:发明
国别省市:江苏,32

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

1