CN104123237A - 海量小文件分级存储方法及*** - Google Patents
海量小文件分级存储方法及*** Download PDFInfo
- Publication number
- CN104123237A CN104123237A CN201410290165.7A CN201410290165A CN104123237A CN 104123237 A CN104123237 A CN 104123237A CN 201410290165 A CN201410290165 A CN 201410290165A CN 104123237 A CN104123237 A CN 104123237A
- Authority
- CN
- China
- Prior art keywords
- small documents
- large file
- file
- storage pool
- level storage
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种海量小文件分级存储方法,包括如下创建一级存储池和二级存储池;合并海量小文件形成一个大文件;存储所述大文件至一级存储池,当所述大文件在设定时间内未进行读写操作,则迁移该大文件至二级存储池。当客户端请求访问某小文件时,首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。本发明还提供相应的***。本发明提高了分布式文件***处理海量小文件的效率,减少了存储空间;本发明通过分级存储进一步降低了存储成本。
Description
技术领域
本发明涉及文件存储,具体地,涉及一种海量小文件分级存储方法及***。
背景技术
在大数据时代,人们每天面临的工作和生活无不和数据信息相关,信息呈现***式增长趋势,存储需求急剧膨胀,根据研究显示,2020年数字宇宙将达到35.2ZB。传统的存储不足以支撑海量数据存储。云存储通过横向扩展技术,可支撑EB级的存储,提供高可靠性、高扩展性以及高可用性的存储空间。
假设一种场景:某个时刻有100万个用户在通过及时通信工具发信息,每条信息容量为1KB,在此应用场景下传统的分布式文件***将会面临严峻的问题。首先,处理如此庞大数量的文件,如果按照普通的存储方式,那么需要反复运行100万次存储命令才能完成任务,即便用程序来完成存储的工作,也会是费时费力的庞大工程;其次,分布式文件***每存入一个文件都需要建立相应的元数据,那么100万个文件对应的100万个元数据将造成十分巨大的空间占用,相比于每个文件仅仅1KB的体积,用传统的分布式文件***所带来的元数据空间开销使得存储效率降低。而即便刨除元数据空间的占用,由于文件***的特性,对于文件簇为4KB的文件***,1KB的文件也会占用4KB的空间,那么100万个小文件将占用额外的3GB空间。在这种情况下,提前对巨量的小文件进行处理就变得十分必要。同时分布式文件***多采用多副本策略通常副本数为3即有效存储容量与裸容量比为1:3。当考虑信息的可靠性、时效性(近期需要访问)以及读写响应时间时,该策略非常有必要能充分发挥分布式文件***的优势。但随着时间的推移当该信息成为历史信息时(信息极少被访问)还采用多副本策略就会对存储资源造成极大的浪费,造成高昂的保存成本。因此有必要采用分级存储策略。
经过对现有技术的检索,发现申请号为201410014559.X,发明名称为一种分布式文件***中海量小文件IO操作传输提速方法的发明,其在发送端将大量小文件IO操作缓存,执行流量汇集,打包成单一大文件一次性传输到接收端,在接收端对所述大文件进行解析,获得每一个小文件IO操作,并执行相关文件写入操作。所述方法大大降低了网络交互次数,提高了海量小文件IO操作的传输速度。但是该专利只对海量小文件进行预处理,未分层存储。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种海量小文件分级存储方法。
根据本发明的一个方面提供的海量小文件分级存储方法,包括如下步骤:
步骤1:创建一级存储池和二级存储池,其中一级存储池的访问速度大于二级存储池的访问速度;
步骤2:合并多个小文件形成一个大文件;
步骤3:存储所述大文件至一级存储池,当所述大文件在设定时间内未进行读写操作,则迁移该大文件至二级存储池。
优选地,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比。
优选地,所述步骤2包括如下步骤:
步骤2.1:将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录该小文件体积以及合并后大文件的起始位置;
步骤2.2:根据被合并的小文件和合成的大文件形成索引文件并删除小文件。
优选地,所述步骤3包括如下步骤:
步骤3.1:根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
步骤3.2:当感知到该大文件在该粒度下设定时间内从未被读写访问,则将所述大文件从一级存储池迁移到二级存储池以减少存储空间。
优选地,所述步骤3之后还包括如下步骤:
步骤4:当客户端请求访问其中一个小文件时,根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
根据本发明的另一个方面提供的海量小文件分级存储***,包括如下装置:
存储池创建装置,用于创建一级存储池和二级存储池;
大文件生成装置,用于合并多个小文件形成一个大文件;
大文件迁移装置,用于存储所述大文件至一级存储池后,当所述大文件在设定时间内未进行读写操作,迁移该大文件至二级存储池。
优选地,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比。
优选地,所述大文件生成装置包括如下装置:
小文件合并装置,用于将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录其体积以及合并后大文件的起始位置;
索引文件生成装置,用于根据被合并的小文件和合成的大文件形成索引文件并删除小文件。
优选地,所述大文件迁移装置包括如下装置:
读写操作感知装置,用于根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
迁移装置,用于当感知到该大文件在该粒度下设定时间内从未被读写访问,将所述大文件从一级存储池迁移到二级存储池。
优选地,还包括小文件访问装置,用于根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
与现有技术相比,本发明具有如下的有益效果:
本发明将多个小文件合并成一个大文件提高了分布式文件***处理海量小文件的效率,减少了存储空间;本发明通过分级存储进一步降低了存储成本。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的流程图;
图2为本发明中小文件合并的流程图;
图3为本发明中读取小文件的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
在本实施例中,如图1、图2、图3所示,本发明提供的海量小文件分级存储方法包括如下步骤:
步骤1:创建一级存储池和二级存储池,其中,一级存储池的访问速度大于二级存储池的访问速度,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比;
步骤2:合并多个小文件形成一个大文件;
步骤3:存储所述大文件至一级存储池,当所述大文件在设定时间内未进行读写操作,则迁移该大文件至二级存储池;
步骤4:当客户端请求访问其中一个小文件时,根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
其中,所述步骤1包括如下步骤:
步骤1.1:创建一个跨节点的三副本的一级存储池,即一级存储池有效容量与裸容量比为1:3;
步骤1.2:创建一个编解码方式的二级存储池,即二级存储池有效容量与裸容量比为1:1.5。
所述步骤2包括如下步骤:
步骤2.1:将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录其体积以及合并后大文件的起始位置;
步骤2.2:根据被合并的小文件和合成的大文件形成索引文件并删除小文件。
所述步骤3包括如下步骤:
步骤3.1:根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
步骤3.2:当感知到该大文件在该粒度下设定时间内从未被读写访问,则将所述大文件从一级存储池迁移到二级存储池以减少存储空间。
本发明提供的海量小文件分级存储***,包括如下装置:
存储池创建装置,用于创建一级存储池和二级存储池,其中,一级存储池的访问速度大于二级存储池的访问速度,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比;
大文件生成装置,用于合并多个小文件形成一个大文件;
大文件迁移装置,用于存储所述大文件至一级存储池后,当所述大文件在设定时间内未进行读写操作,迁移该大文件至二级存储池;
小文件访问装置,用于根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
其中,所述存储池创建装置包括如下装置:
一级存储池创建装置,用于创建一个跨节点的三副本的一级存储池,即一级存储池有效容量与裸容量比为1:3;
二级存储池创建装置,用于创建一个编解码方式的二级存储池,即二级存储池有效容量与裸容量比为1:1.5。
所述大文件生成装置包括如下装置:
小文件合并装置,用于将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录其体积以及合并后大文件的起始位置;
索引文件生成装置,用于根据被合并的小文件和合成的大文件形成索引文件删除小文件。
所述大文件迁移装置包括如下装置:
读写操作感知装置,用于根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
迁移装置,用于当感知到该大文件在该粒度下设定时间内从未被读写访问,将所述大文件从一级存储池迁移到二级存储池。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (10)
1.一种海量小文件分级存储方法,其特征在于,包括如下步骤:
步骤1:创建一级存储池和二级存储池,其中一级存储池的访问速度大于二级存储池的访问速度;
步骤2:合并多个小文件形成一个大文件;
步骤3:存储所述大文件至一级存储池,当所述大文件在设定时间内未进行读写操作,则迁移该大文件至二级存储池。
2.根据权利要求1所述的海量小文件分级存储方法,其特征在于,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比。
3.根据权利要求1或2所述的海量小文件分级存储方法,其特征在于,所述步骤2包括如下步骤:
步骤2.1:将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录该小文件体积以及合并后大文件的起始位置;
步骤2.2:根据被合并的小文件和合成的大文件形成索引文件并删除小文件。
4.根据权利要求3所述的海量小文件分级存储方法,其特征在于,所述步骤3包括如下步骤:
步骤3.1:根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
步骤3.2:当感知到该大文件在该粒度下设定时间内从未被读写访问,则将所述大文件从一级存储池迁移到二级存储池以减少存储空间。
5.根据权利要求4所述的海量小文件分级存储方法,其特征在于,所述步骤3之后还包括如下步骤:
步骤4:当客户端请求访问其中一个小文件时,根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
6.一种海量小文件分级存储***,其特征在于,包括如下装置:
存储池创建装置,用于创建一级存储池和二级存储池;
大文件生成装置,用于合并多个小文件形成一个大文件;
大文件迁移装置,用于存储所述大文件至一级存储池后,当所述大文件在设定时间内未进行读写操作,迁移该大文件至二级存储池。
7.根据权利要求6所述的海量小文件分级存储***,其特征在于,一级存储池有效容量与裸容量比小于二级存储池有效容量与裸容量比。
8.根据权利要求6或7所述的海量小文件分级存储***,其特征在于,所述大文件生成装置包括如下装置:
小文件合并装置,用于将多个小文件进行合并形成一个大文件,在合并的过程中,读取每个小文件的长度,记录其体积以及合并后大文件的起始位置;
索引文件生成装置,用于根据被合并的小文件和合成的大文件形成索引文件并删除小文件。
9.根据权利要求8所述的海量小文件分级存储***,其特征在于,所述大文件迁移装置包括如下装置:
读写操作感知装置,用于根据周、月、年不同的粒度来设置多级存储策略并感知在该粒度下该大文件是否进行读写操作;
迁移装置,用于当感知到该大文件在该粒度下设定时间内从未被读写访问,将所述大文件从一级存储池迁移到二级存储池。
10.根据权利要求9所述的海量小文件分级存储***,其特征在于,还包括小文件访问装置,用于根据索引文件和与多级存储策略相对应的多级存储调度策略首先判断该小文件所在的大文件存放的存储池;若所述大文件存放于一级存储池,则通过索引文件截取出该小文件并发送给客户端;若所述大文件存放于二级存储池,则首先通过索引文件解码出该小文件发送给客户端并把所述大文件迁移至一级存储池。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410290165.7A CN104123237A (zh) | 2014-06-24 | 2014-06-24 | 海量小文件分级存储方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410290165.7A CN104123237A (zh) | 2014-06-24 | 2014-06-24 | 海量小文件分级存储方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104123237A true CN104123237A (zh) | 2014-10-29 |
Family
ID=51768657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410290165.7A Pending CN104123237A (zh) | 2014-06-24 | 2014-06-24 | 海量小文件分级存储方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123237A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462389A (zh) * | 2014-12-10 | 2015-03-25 | 上海爱数软件有限公司 | 基于分级存储的分布式文件***实现方法 |
CN105975638A (zh) * | 2016-06-23 | 2016-09-28 | 中国民航大学 | 一种基于NoSQL的海量航空物流小文件存储结构及其存取方法 |
CN106294526A (zh) * | 2015-06-26 | 2017-01-04 | 华中科技大学 | 一种分级存储***中的海量小文件迁移方法 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106897391A (zh) * | 2017-01-24 | 2017-06-27 | 北京百悟科技有限公司 | 文件存储方法及装置 |
CN108647228A (zh) * | 2018-03-28 | 2018-10-12 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和*** |
CN109101508A (zh) * | 2017-06-20 | 2018-12-28 | 杭州海康威视数字技术股份有限公司 | 小文件归档、读取方法及装置、电子设备 |
CN109101197A (zh) * | 2018-08-15 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种文件存储和访问方法、装置、文件存储器及*** |
CN109947721A (zh) * | 2017-12-01 | 2019-06-28 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452465A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 大批量文件数据存放和读取方法 |
CN102411542A (zh) * | 2011-10-26 | 2012-04-11 | 上海文广互动电视有限公司 | 动态分级存储***和方法 |
CN103559229A (zh) * | 2013-10-22 | 2014-02-05 | 西安电子科技大学 | 基于MapFile的小文件管理服务SFMS***及其使用方法 |
-
2014
- 2014-06-24 CN CN201410290165.7A patent/CN104123237A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452465A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 大批量文件数据存放和读取方法 |
CN102411542A (zh) * | 2011-10-26 | 2012-04-11 | 上海文广互动电视有限公司 | 动态分级存储***和方法 |
CN103559229A (zh) * | 2013-10-22 | 2014-02-05 | 西安电子科技大学 | 基于MapFile的小文件管理服务SFMS***及其使用方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462389B (zh) * | 2014-12-10 | 2018-01-30 | 上海爱数信息技术股份有限公司 | 基于分级存储的分布式文件***实现方法 |
CN104462389A (zh) * | 2014-12-10 | 2015-03-25 | 上海爱数软件有限公司 | 基于分级存储的分布式文件***实现方法 |
CN106294526A (zh) * | 2015-06-26 | 2017-01-04 | 华中科技大学 | 一种分级存储***中的海量小文件迁移方法 |
CN106294526B (zh) * | 2015-06-26 | 2019-05-14 | 华中科技大学 | 一种分级存储***中的海量小文件迁移方法 |
CN105975638A (zh) * | 2016-06-23 | 2016-09-28 | 中国民航大学 | 一种基于NoSQL的海量航空物流小文件存储结构及其存取方法 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106528451B (zh) * | 2016-11-14 | 2019-09-03 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106897391A (zh) * | 2017-01-24 | 2017-06-27 | 北京百悟科技有限公司 | 文件存储方法及装置 |
CN109101508A (zh) * | 2017-06-20 | 2018-12-28 | 杭州海康威视数字技术股份有限公司 | 小文件归档、读取方法及装置、电子设备 |
CN109947721A (zh) * | 2017-12-01 | 2019-06-28 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
CN109947721B (zh) * | 2017-12-01 | 2021-08-17 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
CN108647228A (zh) * | 2018-03-28 | 2018-10-12 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和*** |
CN109101197A (zh) * | 2018-08-15 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种文件存储和访问方法、装置、文件存储器及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123237A (zh) | 海量小文件分级存储方法及*** | |
CN102332029B (zh) | 一种基于Hadoop 的海量可归类小文件关联存储方法 | |
CN102298641B (zh) | 一种基于键值库的文件与结构化数据统一存储方法 | |
CN105868286B (zh) | 基于分布式文件***小文件合并的并行追加方法及*** | |
CN103593436A (zh) | 文件合并方法和装置 | |
CN107045531A (zh) | 一种优化hdfs小文件存取的***及方法 | |
CN105005617A (zh) | 一种时间序列数据的存储方法及装置 | |
CN107045422A (zh) | 分布式存储方法和设备 | |
CN103198027A (zh) | 一种存储文件和提供文件的方法和装置 | |
CN105159915A (zh) | 可动态适应的lsm树合并方法及*** | |
CN104820714A (zh) | 基于hadoop的海量瓦片小文件存储管理方法 | |
CN103559229A (zh) | 基于MapFile的小文件管理服务SFMS***及其使用方法 | |
CN102906751A (zh) | 一种数据存储、数据查询的方法及装置 | |
CN104408163A (zh) | 一种数据分级存储方法和装置 | |
CN103731489A (zh) | 一种数据存储方法、***和设备 | |
CN103885887A (zh) | 用户数据存储方法、读取方法及*** | |
CN105630779A (zh) | 一种基于分布式文件***的小文件存储方法和装置 | |
CN104199784A (zh) | 一种基于分级存储的数据迁移方法及装置 | |
CN106648442A (zh) | 一种元数据节点的内存镜像方法、装置 | |
CN109274556A (zh) | 一种web日志的收集分析*** | |
CN105049524B (zh) | 一种基于hdfs的大规模数据集装载的方法 | |
CN101783740A (zh) | 消息文件管理方法及装置 | |
CN102523301A (zh) | 一种云存储中在客户端缓存数据的方法 | |
CN103279489A (zh) | 一种元数据的存储方法、装置 | |
CN101539884A (zh) | 数据存储方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141029 |
|
RJ01 | Rejection of invention patent application after publication |