CN107168651B - 一种小文件聚合存储处理方法 - Google Patents

一种小文件聚合存储处理方法 Download PDF

Info

Publication number
CN107168651B
CN107168651B CN201710355383.8A CN201710355383A CN107168651B CN 107168651 B CN107168651 B CN 107168651B CN 201710355383 A CN201710355383 A CN 201710355383A CN 107168651 B CN107168651 B CN 107168651B
Authority
CN
China
Prior art keywords
ino
small
aggregation
array
cache
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.)
Active
Application number
CN201710355383.8A
Other languages
English (en)
Other versions
CN107168651A (zh
Inventor
张书扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201710355383.8A priority Critical patent/CN107168651B/zh
Publication of CN107168651A publication Critical patent/CN107168651A/zh
Application granted granted Critical
Publication of CN107168651B publication Critical patent/CN107168651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

本发明提供一种小文件聚合存储处理方法,在缓存中设置信息清单,信息清单用于记录小文件的ino和大小信息;小文件写入聚合对象的缓存中,将小文件的ino信息记录到信息清单中;当聚合对象缓存达到刷新条件时,从信息清单中取出小文件的ino记录到数组中;所有小文件的ino记录到数组中后,将数组插入到聚合对象的预设位置。通过对象头中存储的小文件ino,能清晰地表明当前对象中所包含的小文件。通过对象头中的位图信息,能表明当前对象中数据存储状态,在扫描时,能够根据位图计算出当前对象的缓存使用率。

Description

一种小文件聚合存储处理方法
技术领域
本发明涉及小文件处理领域,尤其涉及一种小文件聚合存储处理方法。
背景技术
随着云计算、云存储、物联网等技术的不断发展,数据呈现爆炸式增长的趋势。在一些海量小文件场景,如社交购物网站、广电、网络视频等,系统产生文本、图片、音乐等大量小文件,这些文件具有如下特点:数量多,大小一般在1M以下。流动快,操作频繁(一次写入,多次读取)。通过将小文件以紧密对齐的方式聚合成一个大的聚合文件,然后再进行存储,能实现小文件高效存储,提高磁盘使用率,在文件读写过程中,降低Rados调用次数、减轻读写数据压力,提高小文件读写性能提升。但是,小文件紧密对齐进行存储时,同一对象上存储多个小文件,在从对象中读取文件时,无法确定对象中所存储的文件信息。由于小文件在删除时并未真正释放磁盘空间,需要统计聚合文件各对象的磁盘使用率,根据聚合文件磁盘使用率来确定是否启动磁盘清理任务,因此,给磁盘管理带来麻烦,并且无法及时清除无用的小文件,浪费磁盘空间。
发明内容
为了克服上述现有技术中的不足,本发明提供一种小文件聚合存储处理方法,方法包括:
S1:在缓存中设置信息清单,信息清单用于记录小文件的ino和大小信息;
S2:小文件写入聚合对象的缓存中,将小文件的ino信息记录到信息清单中;
S3:当聚合对象缓存达到刷新条件时,从信息清单中取出小文件的ino记录到数组中;
S4:所有小文件的ino记录到数组中后,将数组插入到聚合对象的预设位置。
优选地,步骤S4还包括:
依据数组记录的小文件ino次序,提取数组中的小文件ino,数组中储存的小文件ino对应在聚合对象储存有该ino对应的小文件时,数组中的该小文件ino 置有;
数组中储存的小文件ino对应在聚合对象中未储存该ino对应的小文件时,数组中的该小文件ino 置无;
从聚合对象中依次提取每个小文件,并将各小文件的大小进行累加;
累加完成后,当数组中置有的小文件数量超过数组总位数的一半时,将该聚合对象设置为1;
当数组中置有的小文件数量少于数组总位数的一半时,将该聚合对象设置为0。
优选地,当聚合文件缓存达到刷新条件时,设置对象头位图信息。
优选地,对象头位图信息的位图大小为128B,共计1024位,位图中每一位对应对象中4KB存储空间。
优选地,在进行缓存扫描时,获取每个聚合对象中位图信息;
对每个设置为0的聚合对象进行小文件处理,对聚合对象的数组依次读取数组中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件;
当依据小文件的ino未查找到目标小文件时,将数组中小文件的ino删除,同时释放缓存空间;
对聚合对象缓存重新进行储存量计算。
优选地,设置聚合对象的容量,将聚合对象的容量设置为对象头储存区和数据储存区;
对象头储存区储存数组,数组储存当前聚合对象所存储的所有小文件的ino和小文件在聚合对象中的位图信息;
数据储存区储存小文件。
优选地,启动聚合对象缓存刷新条件包括:当聚合对象缓存使用率高于阈值时,启动聚合对象缓存清理任务,对聚合对象缓存进行清理。
优选地,读取小文件时,将聚合对象移到缓存中,依次读取聚合对象中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件,读取目标小文件。
优选地,数组大小为8KB,类型为uint64_t,共包含1024个元素,元素初始值为0。
从以上技术方案可以看出,本发明具有以下优点:
小文件聚合存储处理方法帮助存储系统快速确定对象中存储的文件;同时,在进行聚合对象缓存释放的过程中,能够根据对象头中的信息快速获取到当前聚合对象的缓存使用率。
小文件聚合存储处理方法通过对象头中存储的小文件ino,能清晰地表明当前对象中所包含的小文件。通过对象头中的位图信息,能表明当前对象中数据存储状态,在扫描时,能够根据位图计算出当前对象的缓存使用率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为小文件聚合存储处理方法的流程图;
图2为小文件聚合存储处理方法实施例的流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
本实施例提供一种小文件聚合存储处理方法,如图1所示,方法包括:
S1:在缓存中设置信息清单,信息清单用于记录小文件的ino和大小信息;
S2:小文件写入聚合对象的缓存中,将小文件的ino信息记录到信息清单中;
S3:当聚合对象缓存达到刷新条件时,从信息清单中取出小文件的ino记录到数组中;
S4:所有小文件的ino记录到数组中后,将数组插入到聚合对象的预设位置。
具体的,本实施例中,如图2所示,
S11:在缓存中设置信息清单,信息清单用于记录小文件的ino和大小信息;
S12:小文件写入聚合对象的缓存中,将小文件的ino信息记录到信息清单中;
S13:当聚合对象缓存达到刷新条件时,从信息清单中取出小文件的ino记录到数组中;
S14:所有小文件的ino记录到数组中后,将数组插入到聚合对象的预设位置。
S15:依据数组记录的小文件ino次序,提取数组中的小文件ino,数组中储存的小文件ino对应在聚合对象储存有该ino对应的小文件时,数组中的该小文件ino 置有;
S16:数组中储存的小文件ino对应在聚合对象中未储存该ino对应的小文件时,数组中的该小文件ino 置无;
S17:从聚合对象中依次提取每个小文件,并将各小文件的大小进行累加;
S18:累加完成后,当数组中置有的小文件数量超过数组总位数的一半时,将该聚合对象设置为1;
S19:当数组中置有的小文件数量少于数组总位数的一半时,将该聚合对象设置为0。
本实施例中,在进行缓存扫描时,获取每个聚合对象中位图信息;
对每个设置为0的聚合对象进行小文件处理,对聚合对象的数组依次读取数组中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件;
当依据小文件的ino未查找到目标小文件时,将数组中小文件的ino删除,同时释放缓存空间;
对聚合对象缓存重新进行储存量计算。
其中,启动聚合对象缓存刷新条件包括:当聚合对象缓存使用率高于阈值时,启动聚合对象缓存清理任务,对聚合对象缓存进行清理。
本实施例中,当聚合文件缓存达到刷新条件时,设置对象头位图信息。对象头位图信息的位图大小为128B,共计1024位,位图中每一位对应对象中4KB存储空间。
设置聚合对象的容量,将聚合对象的容量设置为对象头储存区和数据储存区;对象头储存区储存数组,数组储存当前聚合对象所存储的所有小文件的ino和小文件在聚合对象中的位图信息;数据储存区储存小文件。
本实施例中,读取小文件时,将聚合对象移到缓存中,依次读取聚合对象中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件,读取目标小文件。
本实施例中,数组大小为8KB,类型为uint64_t,共包含1024个元素,元素初始值为0。
此本实施例中,对每个聚合对象(大小为4MB),定义前12KB为对象头数据区域。对象头包含了当前对象所存储的所有小文件的ino和小文件在聚合对象中的位图信息。
数据存储时,每个存储对象的格式为对象头+数据。对象头位于对象起始8KB+4KB位置,其中前8KB存储区域用于存放当前对象中小文件的ino,后4KB中只有前128B有效,用于标记聚合对象中各数据存储状态。当有数据存储时,相应位图状态为有,当数据被删除时,相应位图状态被置为无。
在一些实施例中,所述设备中的一个或多个设备的部分或所有功能或处理由计算机程序实现或支持,计算机程序由计算机可读程序代码形成并且被包括在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频盘(DVD)、或任何其他类型的存储器。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种小文件聚合存储处理方法,其特征在于,方法包括:
S1:在缓存中设置信息清单,信息清单用于记录小文件的ino和大小信息;
S2:小文件写入聚合对象的缓存中,将小文件的ino信息记录到信息清单中;
S3:当聚合对象缓存达到刷新条件时,从信息清单中取出小文件的ino记录到数组中;
S4:所有小文件的ino记录到数组中后,将数组插入到聚合对象的预设位置;依据数组记录的小文件ino次序,提取数组中的小文件ino,数组中储存的小文件ino对应在聚合对象储存有该ino对应的小文件时,数组中的该小文件ino置有;
数组中储存的小文件ino对应在聚合对象中未储存该ino对应的小文件时,数组中的该小文件ino置无;
从聚合对象中依次提取每个小文件,并将各小文件的大小进行累加;
累加完成后,当数组中置有的小文件数量超过数组总位数的一半时,将该聚合对象设置为1;
当数组中置有的小文件数量少于数组总位数的一半时,将该聚合对象设置为0。
2.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,
当聚合文件缓存达到刷新条件时,设置对象头位图信息。
3.根据权利要求2所述的小文件聚合存储处理方法,其特征在于,
对象头位图信息的位图大小为128B,共计1024位,位图中每一位对应对象中4KB存储空间。
4.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,
在进行缓存扫描时,获取每个聚合对象中位图信息;
对每个设置为0的聚合对象进行小文件处理,对聚合对象的数组依次读取数组中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件;
当依据小文件的ino未查找到目标小文件时,将数组中小文件的ino删除,同时释放缓存空间;
对聚合对象缓存重新进行储存量计算。
5.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,设置聚合对象的容量,将聚合对象的结构设置为对象头储存区和数据储存区;对象头储存区储存数组,数组储存当前聚合对象所存储的所有小文件的ino和小文件在聚合对象中的位图信息;
数据储存区储存小文件。
6.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,
启动聚合对象缓存刷新条件包括:当聚合对象缓存使用率高于阈值时,启动聚合对象缓存清理任务,对聚合对象缓存进行清理。
7.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,
读取小文件时,将聚合对象移到缓存中,依次读取聚合对象中的小文件的ino,通过小文件的ino获取小文件在聚合对象中的位置信息,并依据小文件的ino查找目标小文件,读取目标小文件。
8.根据权利要求1所述的小文件聚合存储处理方法,其特征在于,
数组大小为8KB,类型为uint64_t,共包含1024个元素,元素初始值为0。
CN201710355383.8A 2017-05-19 2017-05-19 一种小文件聚合存储处理方法 Active CN107168651B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710355383.8A CN107168651B (zh) 2017-05-19 2017-05-19 一种小文件聚合存储处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710355383.8A CN107168651B (zh) 2017-05-19 2017-05-19 一种小文件聚合存储处理方法

Publications (2)

Publication Number Publication Date
CN107168651A CN107168651A (zh) 2017-09-15
CN107168651B true CN107168651B (zh) 2020-09-25

Family

ID=59815684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710355383.8A Active CN107168651B (zh) 2017-05-19 2017-05-19 一种小文件聚合存储处理方法

Country Status (1)

Country Link
CN (1) CN107168651B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729505A (zh) * 2017-10-23 2018-02-23 郑州云海信息技术有限公司 一种缓存中的小文件的获取方法、装置及可读存储介质
CN107958079A (zh) * 2017-12-14 2018-04-24 郑州云海信息技术有限公司 聚合文件删除方法、系统、装置及可读存储介质
CN108958659A (zh) * 2018-06-29 2018-12-07 郑州云海信息技术有限公司 一种分布式存储系统的小文件聚合方法、装置及介质
CN110532457B (zh) * 2019-07-30 2022-05-24 济南浪潮数据技术有限公司 一种获取网络段id方法及系统
CN112328549A (zh) * 2020-10-29 2021-02-05 无锡先进技术研究院 小文件的存储方法、电子设备及存储介质
CN113268456B (zh) * 2021-05-20 2023-12-08 济南浪潮数据技术有限公司 一种文件处理方法、系统、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854388A (zh) * 2010-05-17 2010-10-06 浪潮(北京)电子信息产业有限公司 一种集群存储中并行访问大量小文件的方法及系统
CN103179185A (zh) * 2012-12-25 2013-06-26 中国科学院计算技术研究所 一种分布式文件系统客户端缓存中文件创建方法及其系统
CN104133882A (zh) * 2014-07-28 2014-11-05 四川大学 一种基于hdfs的小文件处理方法
CN106649860A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种应用在聚合文件上的碎片整理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854388A (zh) * 2010-05-17 2010-10-06 浪潮(北京)电子信息产业有限公司 一种集群存储中并行访问大量小文件的方法及系统
CN103179185A (zh) * 2012-12-25 2013-06-26 中国科学院计算技术研究所 一种分布式文件系统客户端缓存中文件创建方法及其系统
CN104133882A (zh) * 2014-07-28 2014-11-05 四川大学 一种基于hdfs的小文件处理方法
CN106649860A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种应用在聚合文件上的碎片整理方法

Also Published As

Publication number Publication date
CN107168651A (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
CN107168651B (zh) 一种小文件聚合存储处理方法
CN107870973A (zh) 一种加快多路监控同时回放的文件存储系统
CN107291399B (zh) 一种基于spdk的后端存储方法、装置及系统
CN111651127B (zh) 一种基于叠瓦式磁记录盘的监控数据存储方法及装置
CN107402870B (zh) 一种元数据服务器中日志段的处理方法及装置
CN111309687A (zh) 一种对象存储小文件处理方法、装置、设备及存储介质
CN101872639B (zh) 在数字硬盘录像机上存储及检索图片数据的方法及装置
CN107704203B (zh) 聚合大文件的删除方法、装置、设备及计算机存储介质
CN112637616B (zh) 一种对象存储方法、系统及服务器
CN110888837B (zh) 对象存储小文件归并方法及装置
EP3944556B1 (en) Block data storage method and apparatus, and block data access method and apparatus
CN111880734A (zh) 一种数据处理方法、系统、电子设备及存储介质
CN102945679A (zh) 视频数据处理方法和视频数据读写设备
US10712943B2 (en) Database memory monitoring and defragmentation of database indexes
CN111177105B (zh) 分布式文件系统的海量文件写方法、装置、系统及介质
CN106844491B (zh) 一种临时数据的写入、读取方法及写入、读取装置
US20170269834A1 (en) Data storage device and data management method thereof
US9600415B1 (en) Method, apparatus, and computer program stored in computer readable medium for managing storage server in database system
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
US10353589B2 (en) Data storage device and data management method for data storage device
CN106469174B (zh) 数据读取方法和装置
CN110795034B (zh) 存储系统的数据迁移方法、装置、设备及可读存储介质
CN114003763A (zh) 存储视频数据的方法、装置及可读存储介质
CN110019507B (zh) 数据同步的方法及装置
CN111367462B (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

Effective date of registration: 20200827

Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province

Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant