CN108287869A - 一种基于快速存储设备的海量小文件解决方法 - Google Patents
一种基于快速存储设备的海量小文件解决方法 Download PDFInfo
- Publication number
- CN108287869A CN108287869A CN201711380587.3A CN201711380587A CN108287869A CN 108287869 A CN108287869 A CN 108287869A CN 201711380587 A CN201711380587 A CN 201711380587A CN 108287869 A CN108287869 A CN 108287869A
- Authority
- CN
- China
- Prior art keywords
- small documents
- metadata
- data information
- storage equipment
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于快速存储设备的海量小文件解决方法,其包括步骤为:(1)采集小文件,对大小在1KB‑1MB小文件进行采集;(2)将小文件拆分为元数据和数据信息;(3)小文件元数据写入数据库,数据信息写入快速存储设备;(4)基于快速存储设备进行数据归并。本发明不仅能够解决海量小文件元数据庞大,查找性能低下的问题,同时能够以较低的成本提升小文件读写性能问题,易于推广。
Description
技术领域
本发明属于计算机基础数据存储领域,具体是涉及一种基于快速存储设备的海量小文件解决方法。
背景技术
随着物联网的发展,全球信息化的加剧,海量小文件的存储性能问题越来越为业界所关注。例如交通系统的拍摄系统每天产生大量的图片小文件,社交网站上的网页表单每天产生成大量的日志小文件。随着数据量的增大,解决海量小文件存储所带来的存储性能问题也越来越迫切。
传统存储采用集中式的高性能的存储服务,如华为的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的元数据),无法被一次性加载到内存中,因此需要使用数据库管理元数据。通过数据库查找的方式,可以很容易找到加载小文件需要使用的元数据。
数据的数据信息远远大于元数据信息,同时为二进数据流形式,不适用于数据库,因此被直接存储在硬盘中。普通硬盘读写速率一般为200MB/s,小文件每次读写一次都需要硬盘进行一次IO操作,大规模的小文件频繁读写会严重影响读写性能。而快速存储设备如闪存盘,由于其自身存储特性,读写速率可以达到数万MB每秒,可以解决连续小文件写入带来的性能问题。
上述数据方案如图1所示,可以解决元数据存储带来文件系统树深的问题以及数据连续写入、性能低下的问题。但是依然有以下未解决的问题:
1)元数据信息庞大,持续写入会造成数据库的性能线性下降。
2)小数据每次读取都需要执行一次磁盘IO操作,读取性能不高。
3)使用快速存储设备存储数据,价格昂贵。
Step4:基于快速存储设备进行数据归并。对于业务存在关联性的小文件,通过关联业务合并方案合并为大文件。对于业务不存在关联性的小文件,通过非关联业务方案合并为大文件数据信息。合并后的大文件数据信息写入普通慢速存储设备,如SATA硬盘
为解决上述问题,本发明提出一种基于业务是业务数据的归并操作。将业务上具有关联的不同小文件(如社交软件里的针对单个用户的展示信息、大型网站固定页面的表单信息、监控系统中某一个节点的采集数据等)合并为整块数据。
具体的合并方案如下:
数据采集形成的小文件数据信息集合为(a1,a2,a3,a4,a5...an),其对应的元数据集合为(m1,m2,m3,m4,m5...mn),合并方案包括关联业务合并方案和非关联业务合并方案。
(1)关联业务合并方案。
步骤1:通过查找数据库中记录的关键字(如name=xx,name=yy等),得到多组元数据集(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:删除原来写在快速设备(如ssd)中的分散的小文件数据信息(a1,a2,a3,a4,a5...an),将新的数据信息(d1,d2,d3,d4...d(n/4))从内存中写入到慢速设备(如sata盘)中;
步骤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))。
上述操作如图2所示,海量小文件的体量缩小了4倍。由于小文件的大小一般为1KB~100KB,我们设定大文件的阈值为4MB时,小文件的体量可以缩小40~4000倍,大大缩小了小文件的体量。同时由于小文件是根据业务合并的,可以预读出一块大文件,提高读取的命中率,大大提高了文件读取性能。
(2)非关联业务合并方案。
非关联业务合并与上述关联业务和并方案类似,不同的地方在于合并时是按照存储的sequence(序列号)进行合并。在大文件合并时的阈值选择上弹性更大。同时由于业务没有关联性,会降低数据信息预读时用户读取的命中率,文件读取性能不如上述方案。
两种业务合并方案流程图见图3,可以很好的解决传统数据存储和分布式数据存储中遇到的元数据信息庞大、小文件读写性能、使用快速存储设备存储数据价格昂贵的问题。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的普通技术人员应该了解,上述实施例不以任何形式限制本发明的保护范围,凡采用等同替换等方式所获得的技术方案,均落于本发明的保护范围内。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (4)
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:根据元数据中记录的数据信息的位置,可以在快速设备读出数据信息集合(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))。
4.根据权利要求2所述的一种基于快速存储设备的海量小文件解决方法,其特征在于所述关联业务合并方案在数据库中使用关键字查找,得到元数据;所述非关联业务合并方案在数据库中根据顺序序号查找,得到元数据集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711380587.3A CN108287869A (zh) | 2017-12-20 | 2017-12-20 | 一种基于快速存储设备的海量小文件解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711380587.3A CN108287869A (zh) | 2017-12-20 | 2017-12-20 | 一种基于快速存储设备的海量小文件解决方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108287869A true CN108287869A (zh) | 2018-07-17 |
Family
ID=62832113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711380587.3A Pending CN108287869A (zh) | 2017-12-20 | 2017-12-20 | 一种基于快速存储设备的海量小文件解决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108287869A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656885A (zh) * | 2018-12-18 | 2019-04-19 | Oppo广东移动通信有限公司 | 存储空间监控方法及装置、电子终端、存储介质 |
CN109800184A (zh) * | 2018-12-12 | 2019-05-24 | 平安科技(深圳)有限公司 | 针对小块输入的缓存方法、系统、装置及可存储介质 |
CN110321349A (zh) * | 2019-06-13 | 2019-10-11 | 暨南大学 | 一种面向数据起源系统的自适应数据合并存储方法 |
CN112416880A (zh) * | 2021-01-22 | 2021-02-26 | 南京群顶科技有限公司 | 一种基于实时归并的海量小文件存储性能优化方法及装置 |
CN113448946A (zh) * | 2021-07-05 | 2021-09-28 | 星辰天合(北京)数据科技有限公司 | 数据迁移方法及装置、电子设备 |
CN114415954A (zh) * | 2022-01-04 | 2022-04-29 | 烽火通信科技股份有限公司 | 一种Ceph对象存储元数据处理的优化方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN104142937A (zh) * | 2013-05-07 | 2014-11-12 | 深圳中兴网信科技有限公司 | 一种分布式数据存取方法、装置和系统 |
CN104536959A (zh) * | 2014-10-16 | 2015-04-22 | 南京邮电大学 | 一种Hadoop存取海量小文件的优化方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
CN105183839A (zh) * | 2015-09-02 | 2015-12-23 | 华中科技大学 | 一种基于Hadoop的小文件分级索引的存储优化方法 |
CN107291915A (zh) * | 2017-06-27 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种小文件存储方法、小文件读取方法及系统 |
CN107391280A (zh) * | 2017-07-31 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种小文件的接收和存储方法及装置 |
-
2017
- 2017-12-20 CN CN201711380587.3A patent/CN108287869A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142937A (zh) * | 2013-05-07 | 2014-11-12 | 深圳中兴网信科技有限公司 | 一种分布式数据存取方法、装置和系统 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN104536959A (zh) * | 2014-10-16 | 2015-04-22 | 南京邮电大学 | 一种Hadoop存取海量小文件的优化方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
CN105183839A (zh) * | 2015-09-02 | 2015-12-23 | 华中科技大学 | 一种基于Hadoop的小文件分级索引的存储优化方法 |
CN107291915A (zh) * | 2017-06-27 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种小文件存储方法、小文件读取方法及系统 |
CN107391280A (zh) * | 2017-07-31 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种小文件的接收和存储方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800184A (zh) * | 2018-12-12 | 2019-05-24 | 平安科技(深圳)有限公司 | 针对小块输入的缓存方法、系统、装置及可存储介质 |
CN109656885A (zh) * | 2018-12-18 | 2019-04-19 | Oppo广东移动通信有限公司 | 存储空间监控方法及装置、电子终端、存储介质 |
CN109656885B (zh) * | 2018-12-18 | 2022-04-29 | Oppo广东移动通信有限公司 | 存储空间监控方法及装置、电子终端、存储介质 |
CN110321349A (zh) * | 2019-06-13 | 2019-10-11 | 暨南大学 | 一种面向数据起源系统的自适应数据合并存储方法 |
CN110321349B (zh) * | 2019-06-13 | 2021-11-12 | 暨南大学 | 一种面向数据起源系统的自适应数据合并存储方法 |
CN112416880A (zh) * | 2021-01-22 | 2021-02-26 | 南京群顶科技有限公司 | 一种基于实时归并的海量小文件存储性能优化方法及装置 |
CN113448946A (zh) * | 2021-07-05 | 2021-09-28 | 星辰天合(北京)数据科技有限公司 | 数据迁移方法及装置、电子设备 |
CN113448946B (zh) * | 2021-07-05 | 2024-01-12 | 北京星辰天合科技股份有限公司 | 数据迁移方法及装置、电子设备 |
CN114415954A (zh) * | 2022-01-04 | 2022-04-29 | 烽火通信科技股份有限公司 | 一种Ceph对象存储元数据处理的优化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287869A (zh) | 一种基于快速存储设备的海量小文件解决方法 | |
US11132336B2 (en) | Filesystem hierarchical capacity quantity and aggregate metrics | |
US9043540B2 (en) | Systems and methods for tracking block ownership | |
CN100483420C (zh) | 基于快照的细粒度文件与目录版本管理方法 | |
CN105574104B (zh) | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
CN103282899B (zh) | 文件系统中数据的存储方法、访问方法及装置 | |
CN102693286B (zh) | 一种对文件内容与元数据进行组织管理的方法 | |
CN102915278A (zh) | 重复数据删除方法 | |
CN105677826A (zh) | 一种针对海量非结构化数据的资源管理方法 | |
CN109522283B (zh) | 一种重复数据删除方法及系统 | |
CN107958079A (zh) | 聚合文件删除方法、系统、装置及可读存储介质 | |
WO2015007155A1 (zh) | 一种数据存储方法及装置 | |
CN107544873A (zh) | 一种存放备份数据的备份系统和方法 | |
CN110347852A (zh) | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
CN108984686A (zh) | 一种基于日志合并的分布式文件系统索引方法和装置 | |
US20170168735A1 (en) | Reducing time to read many files from tape | |
JP6008820B2 (ja) | WORM(WriteOnceReadMany)を実現するファイルシステム | |
CN104035993A (zh) | 电子书的存储检索方法、电子书管理系统、阅读系统 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN104298747A (zh) | 大数据量图片的存储方法、以及检索方法 | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN103116652B (zh) | 一种基于拉链信息的索引存储管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190320 Address after: 210006 Tongyu Building, 501 Zhongshan South Road, Nanjing City, Jiangsu Province Applicant after: Tianyi Smart Family Technology Co., Ltd. Address before: 210037 No. 260 Central Road, Xuanwu District, Nanjing City, Jiangsu Province Applicant before: Jiangsu Public Information Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180717 |