CN111309687A - 一种对象存储小文件处理方法、装置、设备及存储介质 - Google Patents
一种对象存储小文件处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111309687A CN111309687A CN202010071635.6A CN202010071635A CN111309687A CN 111309687 A CN111309687 A CN 111309687A CN 202010071635 A CN202010071635 A CN 202010071635A CN 111309687 A CN111309687 A CN 111309687A
- Authority
- CN
- China
- Prior art keywords
- file
- small
- data
- aggregation
- writing
- 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
- 238000003672 processing method Methods 0.000 title claims description 21
- 230000002776 aggregation Effects 0.000 claims abstract description 123
- 238000004220 aggregation Methods 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 230000004931 aggregating effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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
-
- 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/18—File system types
- G06F16/182—Distributed file systems
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
本申请公开了一种对象存储小文件处理方法、装置、设备及计算机可读存储介质,方法包括:判断对象数据写入请求中包含的小文件是否小于或等于预设值;若是,判断是否是首次写入小文件,若是,将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中;判断聚合文件的容量是否超过设定容量,若是,将数据写入到新的聚合文件中,若否,返回执行接收对象写入请求的步骤;将达到设定容量的聚合文件写入到OSD中,将元数据存放在数据库中。本申请公开的上述技术方案,将多个小文件聚合成一个聚合文件的方式,以降低小文件写入次数,从而有效地降低小文件频繁读写对存储系统造成的负荷。
Description
技术领域
本申请涉及Ceph分布式文件系统技术领域,更具体地说,涉及一种对象存储小文件处理方法、装置、设备及计算机可读存储介质。
背景技术
Ceph是一种性能优秀、可靠性和扩展性均很强的分布式文件系统,其可以提供文件系统、块存储和对象存储这三种应用。
目前,对于Ceph存储系统中的对象存储而言,在进行小文件的写入时,通常是将单个小文件作为一个整体写入到OSD(Object Storage Device,对象存储设备,一种与实际存储设备存在映射关系的逻辑概念)中。但是,随着需要存储的数据越来越多,会出现大量的小文件频繁调用写入接口以将大量的小文件写入到OSD中的情况,而小文件的频繁写入会给Ceph存储系统造成比较大的负荷,降低小文件写性能,提高OSD读写压力。
综上所述,如何有效地降低对象存储中小文件的写入次数,以降低小文件频繁写入给Ceph存储系统所造成的负荷,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种对象存储小文件处理方法、装置、设备及计算机可读存储介质,用于有效地较低对象存储中小文件的写入次数,以降低小文件频繁写入给Ceph存储系统所造成的负荷。
为了实现上述目的,本申请提供如下技术方案:
一种对象存储小文件处理方法,包括:
接收对象数据写入请求,判断所述对象数据写入请求中包含的小文件的大小是否小于或等于预设值;
若小于或等于所述预设值,则判断是否是首次写入所述小文件,若是首次写入,则将所述小文件中的数据写入到聚合文件中,并将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中;
判断所述聚合文件的容量是否超过所述聚合文件的设定容量,若超过,则将所述数据写入到新的聚合文件中,若未超过,则返回执行所述接收对象数据写入请求的步骤;
将达到所述设定容量的聚合文件写入到OSD中,并将所述元数据存放在数据库中。
优选的,在确定所述对象数据请求中包含的小文件不为首次写入时,还包括:
将所述小文件中的数据作为普通文件写入到所述OSD中,并对所述小文件的元数据进行处理,以通过所述小文件的元数据标识所述小文件为非聚合文件;
从所述聚合文件中读取与所述小文件对应的源文件的数据,对所述源文件的元数据进行修改,以标识所述源文件在所述聚合文件中所占用的空间已被删除。
优选的,在将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中时,还包括:
记录所述聚合文件的生成时长;
判断所述聚合文件的生成时长是否大于预设时长,若是,则将所述聚合文件写入到所述OSD中,并将所述元数据存放在所述数据库中,若否,则执行所述判断所述聚合文件的容量是否超过所述聚合文件的设定容量的步骤。
优选的,在将所述小文件中的数据写入到聚合文件中之前,还包括:
根据所述聚合文件的设定容量将所述聚合文件划分成多个具有相同容量的写入空间;
相应地,将所述小文件中的数据写入到聚合文件,包括:
按照所述写入空间的排列顺序从所述聚合空间中选取一个新的且未写入数据的写入空间,并将所述小文件中的数据从所选取出的写入空间开始写入到所述聚合文件中。
优选的,在将所述聚合文件写入到OSD中之后,还包括:
向用户发出对象数据写入请求处理成功的提示。
一种对象存储小文件处理装置,包括:
第一判断模块,用于接收对象数据写入请求,判断所述对象数据写入请求中包含的小文件的大小是否小于或等于预设值;
第二判断模块,用于若小于或等于所述预设值,则判断是否是首次写入所述小文件,若是首次写入,则将所述小文件中的数据写入到聚合文件中,并将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中;
第三判断模块,用于判断所述聚合文件的容量是否超过所述聚合文件的设定容量,若超过,则将所述数据写入到新的聚合文件中,若未超过,则返回执行所述接收对象数据写入请求的步骤;
第一写入模块,用于将达到所述设定容量的聚合文件写入到OSD中,并将所述元数据存放在数据库中。
优选的,还包括:
第二写入模块,用于在确定所述对象数据请求中包含的小文件不为首次写入时,将所述小文件中的数据作为普通文件写入到所述OSD中,并对所述小文件的元数据进行处理,以通过所述小文件的元数据标识所述小文件为非聚合文件;
读取模块,用于从所述聚合文件中读取与所述小文件对应的源文件的数据,对所述源文件的元数据进行修改,以标识所述源文件在所述聚合文件中所占用的空间已被删除。
优选的,还包括:
记录模块,用于在将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中时,记录所述聚合文件的生成时长;
第四判断模块,用于判断所述聚合文件的生成时长是否大于预设时长,若是,则将所述聚合文件写入到所述OSD中,并将所述元数据存放在所述数据库中,若否,则执行所述判断所述聚合文件的容量是否超过所述聚合文件的设定容量的步骤。
一种对象存储小文件处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的对象存储小文件处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的对象存储小文件处理方法的步骤。
本申请提供了一种对象存储小文件处理方法、装置、设备及计算机可读存储介质,其中,该方法包括:接收对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值;若小于或等于预设值,则判断是否是首次写入小文件,若是首次写入,则将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中;判断聚合文件的容量是否超过聚合文件的设定容量,若超过,则将数据写入到新的聚合文件中,若未超过,则返回执行接收对象写入请求的步骤;将达到设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中。
本申请公开的上述技术方案,在小文件小于或等于预设值且为首次写入时,将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中,然后,将达到聚合文件的设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中,以通过聚合的方式有效地降低对象存储中的小文件向OSD写入的次数,从而降低小文件频繁写入对Ceph存储系统造成的负荷,提高小文件写性能,并便于减轻OSD读写压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种对象存储小文件处理方法的流程图;
图2为本申请实施例提供的一个文件数据组织的示意图;
图3为本申请实施例提供的另一种对象存储小文件处理方法的流程图;
图4为本申请实施例提供的又一对象存储小文件处理方法的流程图
图5为本申请实施例提供的一种对象存储小文件处理装置的结构示意图;
图6为本申请实施例提供的一种对象存储小文件处理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种对象存储小文件处理方法的流程图,本申请实施例提供的一种对象存储小文件处理方法,可以包括:
S11:接收对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值;若是,则执行步骤S12,若否,则将小文件作为普通文件写入。
接收用户发送的对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值,以确定该对象数据写入请求中包含的小文件是否为待聚合文件。
若对象数据写入请求中包含的小文件的大小不小于或等于预设值,则确定其所包含的小文件为非聚合文件,此时,可以将该小文件作为普通文件写入到OSD中,即不对该小文件进行聚合处理;若对象数据写入请求中包含的小文件的大小小于或等于预设值,则确定其所包含的小文件为待聚合文件,此时,则可以执行步骤S12。
其中,预设值的大小可以聚合文件的设定容量进行设置,例如:可以将聚合文件的设定容量设置为4M,并可以将预设值设置为512KB,当然,也可以根据需要对预设值的大小进行调整。
S12:判断是否是首次写入小文件;若是,则执行步骤S13。
当确定对象数据写入请求中包含的小文件为待聚合文件时,则可以判断是否是首次写入小文件,若是,则执行步骤S13。
S13:将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中。
若确定是首次写入小文件(即确定对该小文件是创建写时),则将小文件中的数据写入到聚合文件中,并记录小文件中数据的长度及数据在聚合文件中的位置,具体地,可以在聚合文件的头部设置索引信息,具体可以参见图2,其示出了本申请实施例提供的一个文件数据组织的示意图,包括索引信息和聚合文件这两部分内容,索引信息包括Ino和位图,其中,Ino为聚合文件的标识,每个聚合文件的Ino并不一样,以便于将聚合文件区别开来,位图用于存储聚合文件所包含的每个小文件的数据在聚合前的长度及在聚合文件中的位置。
当记录小文件中的数据的长度及数据在聚合文件中的位置之后,可以从图2所示的文件数据组织中获取聚合文件的标识、该小文件中数据的长度及数据在聚合文件中的位置,并将这些信息存储在小文件的元数据中,同时,可以在元数据中增加标识字段,以表明该元数据所属的小文件为聚合文件,以便于通过元数据快速且准确地找到与之对应的数据。
S14:判断聚合文件的容量是否超过聚合文件的设定容量;若是,则执行步骤S15,若否,则返回执行步骤S11;
在将小文件的数据写入到聚合文件中之后,判断聚合文件的容量是否超过聚合文件的设定容量,若否,则返回执行步骤S11,即继续接收对象数据写入请求等步骤,若是,则执行步骤S15。
S15:将数据写入到新的聚合文件中;
在将小文件的数据写入到聚合文件中之后,若聚合文件的容量超过聚合文件的设定容量,则可以将最后一个写入聚合文件的数据(即新写入聚合文件的数据)剔除此聚合文件,并将所剔除的数据写入到新的聚合文件中,同时,将新的聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中,以便于通过元数据快速且准确地找到与之对应的数据。
S16:将达到设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中。
在确定出聚合文件的容量超过聚合文件的设定容量时,可以将达到设定容量的聚合文件写入到OSD中,并将与聚合文件中的数据对应的元数据存放在数据库中,以提高元数据和数据的查找效率。其中,在将聚合文件写入到OSD的过程中,文件数据组织中包含的索引信息可以放置在数据库中,以提高查找效率。
通过将小文件聚合在聚合文件中,并待聚合文件的容量达到设定容量之后,将聚合文件写入OSD的方式可以降低小文件写入OSD的次数,从而可以降低小文件频繁写入OSD而给Ceph存储系统所造成的负荷,并可以提高小文件的写性能,降低OSD读写压力。例如:以聚合文件的设定容量为4M为例:对于4KB的小文件,则可以将1024个小文件聚合成一个聚合文件,以使得每1024个小文件调用一次OSD写入接口;对于16KB的小文件,则可以将256个小文件聚合成一个聚合文件,以使得每256个小文件调用一次OSD写入接口;对于32KB的小文件,则可以将128个小文件聚合成一个聚合文件,以使得每128个小文件调用一次OSD写入接口;对于64KB的小文件,则可以将64个小文件聚合成一个聚合文件,以使得每64个小文件调用一次OSD写入接口;对于128KB的小文件,则可以将32个小文件聚合成一个聚合文件,以使得每32个小文件调用一次OSD写入接口,由此可知,通过将多个小文件聚合成一个聚合文件的方式可以极大地降低小文件写入OSD的次数,从而可以有效地降低小文件频繁读写对Ceph存储系统造成的负荷。
本申请公开的上述技术方案,在小文件小于或等于预设值且为首次写入时,将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中,然后,将达到聚合文件的设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中,以通过聚合的方式有效地降低对象存储中的小文件向OSD写入的次数,从而降低小文件频繁写入对Ceph存储系统造成的负荷,提高小文件写性能,并便于减轻OSD读写压力。
参见图3,其示出了本申请实施例提供的另一种对象存储小文件处理方法的流程图。本申请实施例提供的一种对象存储小文件处理方法,在确定对象数据请求中包含的小文件不为首次写入时,还可以包括:
S17:将小文件中的数据作为普通文件写入到OSD中,并对小文件的元数据进行处理,以通过小文件的元数据标识小文件为非聚合文件;
S18:从聚合文件中读取与小文件对应的源文件的数据,对源文件的元数据进行修改,以标识源文件在聚合文件中所占用的空间已被删除。
在执行步骤S12时,若确定出并非是首次写入对象数据请求中包含的小文件时(即确定对该小文件是修改写时),则可以将对象数据请求中包含的小文件中的数据作为普通文件写入到OSD中,并对小文件的元数据进行处理,以通过小文件的元数据标识该小文件为非聚合文件,以便于用户可以通过元数据获知该信息。
另外,在确定出小文件不为首次写入的同时,可以从聚合文件中读取与该小文件对应的源文件的数据,并对源文件的元数据进行修改,以通过其元数据标识源文件的数据在聚合文件中所占用的空间已被删除。需要说明的是,为了避免对排列在该源文件的数据后面的数据造成影响,实际上该源文件的数据所占用的空间并未被删除,只是通过元数据标识其所占用的空间已被删除,以避免对该源文件的数据进行无效的操作。
参见图4,其示出了本申请实施例提供的又一对象存储小文件处理方法的流程图。本申请实施例提供的一种对象存储小文件处理方法,在将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中时,还可以包括:
S20:记录聚合文件的生成时长;
S21:判断聚合文件的生成时长是否大于预设时长;若是,则执行步骤S22,若否,则执行步骤S14;
S22:将聚合文件写入到所述OSD中,并将元数据存放在所述数据库中。
在将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中的同时,可以记录聚合文件的生成时长(从开始存储第一个小文件的数据到存储当前一个小文件的数据的时长),并判断聚合文件的生成时长是否大于预设时长(预先根据Ceph存储系统的性能或用户需求而设定的时长),若聚合文件的生成时长未大于预设时长,则可以步骤S14,以判断聚合文件的容量是否超过聚合文件的设定容量;若聚合文件的生成时长大于预设时长,则无论该聚合文件的容量是否达到聚合文件的设定容量,都直接将该聚合文件写入到OSD中,并将元数据存放在所述数据库中,以避免聚合文件的生成时长过长而降低小文件的写入速率,从而提高用户体验度。
本申请实施例提供的一种对象存储小文件处理方法,在将小文件中的数据写入到聚合文件中之前,还可以包括:
根据聚合文件的设定容量将聚合文件划分成多个具有相同容量的写入空间;
相应地,将小文件中的数据写入到聚合文件,可以包括:
按照写入空间的排列顺序从聚合空间中选取一个新的且未写入数据的写入空间,并将小文件中的数据从所选取出的写入空间开始写入到聚合文件中。
在将小文件中的数据写入到聚合文件中之前,可以根据聚合文件的设定容量将聚合文件划分成多个具有相同容量的写入空间,具体参见图2,可以将设定容量为4M的聚合文件划分成容量为4KB的1024个写入空间。然后,在将小文件写入聚合文件中时,可以按照写入空间的排列顺序(具体可以为从前往后的顺序)从聚合空间中选取一个新的且未写入数据的写入空间,并将小文件中的数据从所选取出的写入空间开始写入到聚合文件中,即在进行小文件写入时每次均按照写入空间的排列顺序从一个新的写入空间开始写入,也就是说,小文件的数据在聚合文件中按照写入空间的容量进行对齐,如果小文件的数据为写入空间的容量的整数倍,则聚合文件中的相邻两个小文件之间不存在空隙,如果小文件的数据不为写入空间的容量的整数倍,则聚合文件中的相邻两个小文件之间会存在空隙,例如:第一个小文件File1的数据(4KB)可以写入到第一个写入空间中,第二个小文件File2的数据(7KB)可以写入到第二个和第三个写入空间中,第三个小文件File3的数据可以从第四个写入空间开始写入。
通过上述写入方式可以便于对小文件的数据进行记录,并便于后续查找和读取小文件的数据。
本申请实施例提供的一种对象存储小文件处理方法,在将聚合文件写入到OSD中之后,还可以包括:
向用户发出对象数据写入请求处理成功的提示。
在将聚合文件写入到OSD中之后,可以向用户发出对象数据写入请求处理成功的提示,以便于用户可以及时获知到对象数据写入请求处理成功的消息,从而提高用户体验度。
本申请实施例还提供了一种对象存储小文件处理装置,参见图5,其示出了本申请实施例提供的一种对象存储小文件处理装置的结构示意图,可以包括:
第一判断模块51,用于接收对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值;
第二判断模块52,用于若小于或等于预设值,则判断是否是首次写入小文件,若是首次写入,则将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中;
第三判断模块53,用于判断聚合文件的容量是否超过聚合文件的设定容量,若超过,则将数据写入到新的聚合文件中,若未超过,则返回执行接收对象数据写入请求的步骤;
第一写入模块54,用于将达到设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中。
本申请实施例提供的一种对象存储小文件处理装置,还可以包括:
第二写入模块,用于在确定对象数据请求中包含的小文件不为首次写入时,将小文件中的数据作为普通文件写入到OSD中,并对小文件的元数据进行处理,以通过小文件的元数据标识小文件为非聚合文件;
读取模块,用于从聚合文件中读取与小文件对应的源文件的数据,对源文件的元数据进行修改,以标识源文件在聚合文件中所占用的空间已被删除。
本申请实施例提供的一种对象存储小文件处理装置,还可以包括:
记录模块,用于在将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中时,记录聚合文件的生成时长;
第四判断模块,用于判断聚合文件的生成时长是否大于预设时长,若是,则将聚合文件写入到OSD中,并将元数据存放在数据库中,若否,则执行判断聚合文件的容量是否超过聚合文件的设定容量的步骤。
本申请实施例提供的一种对象存储小文件处理装置,还可以包括:
划分模块,用于在将小文件中的数据写入到聚合文件中之前,根据聚合文件的设定容量将聚合文件划分成多个具有相同容量的写入空间;
相应地,第二判断模块52可以包括:
写入单元,用于按照写入空间的排列顺序从聚合空间中选取一个新的且未写入数据的写入空间,并将小文件中的数据从所选取出的写入空间开始写入到聚合文件中。
本申请实施例提供的一种对象存储小文件处理装置,还可以包括:
发出提示模块,用于在将聚合文件写入到OSD中之后,向用户发出对象数据写入请求处理成功的提示。
本申请实施例还提供了一种对象存储小文件处理设备,参见图6,其示出了本申请实施例提供的一种对象存储小文件处理设备的结构示意图,可以包括:
存储器61,用于存储计算机程序;
处理器62,用于执行存储器61存储的计算机程序时可实现如下步骤:
接收对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值;若小于或等于预设值,则判断是否是首次写入小文件,若是首次写入,则将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中;判断聚合文件的容量是否超过聚合文件的设定容量,若超过,则将数据写入到新的聚合文件中,若未超过,则返回执行接收对象数据写入请求的步骤;将达到设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
接收对象数据写入请求,判断对象数据写入请求中包含的小文件的大小是否小于或等于预设值;若小于或等于预设值,则判断是否是首次写入小文件,若是首次写入,则将小文件中的数据写入到聚合文件中,并将聚合文件的标识、数据的长度及数据在聚合文件中的位置存储在小文件的元数据中;判断聚合文件的容量是否超过聚合文件的设定容量,若超过,则将数据写入到新的聚合文件中,若未超过,则返回执行接收对象数据写入请求的步骤;将达到设定容量的聚合文件写入到OSD中,并将元数据存放在数据库中。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种对象存储小文件处理装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种对象存储小文件处理方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种对象存储小文件处理方法,其特征在于,包括:
接收对象数据写入请求,判断所述对象数据写入请求中包含的小文件的大小是否小于或等于预设值;
若小于或等于所述预设值,则判断是否是首次写入所述小文件,若是首次写入,则将所述小文件中的数据写入到聚合文件中,并将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中;
判断所述聚合文件的容量是否超过所述聚合文件的设定容量,若超过,则将所述数据写入到新的聚合文件中,若未超过,则返回执行所述接收对象数据写入请求的步骤;
将达到所述设定容量的聚合文件写入到OSD中,并将所述元数据存放在数据库中。
2.根据权利要求1所述的对象存储小文件处理方法,其特征在于,在确定所述对象数据请求中包含的小文件不为首次写入时,还包括:
将所述小文件中的数据作为普通文件写入到所述OSD中,并对所述小文件的元数据进行处理,以通过所述小文件的元数据标识所述小文件为非聚合文件;
从所述聚合文件中读取与所述小文件对应的源文件的数据,对所述源文件的元数据进行修改,以标识所述源文件在所述聚合文件中所占用的空间已被删除。
3.根据权利要求1所述的对象存储小文件处理方法,其特征在于,在将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中时,还包括:
记录所述聚合文件的生成时长;
判断所述聚合文件的生成时长是否大于预设时长,若是,则将所述聚合文件写入到所述OSD中,并将所述元数据存放在所述数据库中,若否,则执行所述判断所述聚合文件的容量是否超过所述聚合文件的设定容量的步骤。
4.根据权利要求要求1所述的对象存储小文件处理方法,其特征在于,在将所述小文件中的数据写入到聚合文件中之前,还包括:
根据所述聚合文件的设定容量将所述聚合文件划分成多个具有相同容量的写入空间;
相应地,将所述小文件中的数据写入到聚合文件,包括:
按照所述写入空间的排列顺序从所述聚合空间中选取一个新的且未写入数据的写入空间,并将所述小文件中的数据从所选取出的写入空间开始写入到所述聚合文件中。
5.根据权利要求1至4任一项所述的对象存储小文件处理方法,其特征在于,在将所述聚合文件写入到OSD中之后,还包括:
向用户发出对象数据写入请求处理成功的提示。
6.一种对象存储小文件处理装置,其特征在于,包括:
第一判断模块,用于接收对象数据写入请求,判断所述对象数据写入请求中包含的小文件的大小是否小于或等于预设值;
第二判断模块,用于若小于或等于所述预设值,则判断是否是首次写入所述小文件,若是首次写入,则将所述小文件中的数据写入到聚合文件中,并将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中;
第三判断模块,用于判断所述聚合文件的容量是否超过所述聚合文件的设定容量,若超过,则将所述数据写入到新的聚合文件中,若未超过,则返回执行所述接收对象数据写入请求的步骤;
第一写入模块,用于将达到所述设定容量的聚合文件写入到OSD中,并将所述元数据存放在数据库中。
7.根据权利要求6所述的对象存储小文件处理装置,其特征在于,还包括:
第二写入模块,用于在确定所述对象数据请求中包含的小文件不为首次写入时,将所述小文件中的数据作为普通文件写入到所述OSD中,并对所述小文件的元数据进行处理,以通过所述小文件的元数据标识所述小文件为非聚合文件;
读取模块,用于从所述聚合文件中读取与所述小文件对应的源文件的数据,对所述源文件的元数据进行修改,以标识所述源文件在所述聚合文件中所占用的空间已被删除。
8.根据权利要求6所述的对象存储小文件处理装置,其特征在于,还包括:
记录模块,用于在将所述聚合文件的标识、所述数据的长度及所述数据在所述聚合文件中的位置存储在所述小文件的元数据中时,记录所述聚合文件的生成时长;
第四判断模块,用于判断所述聚合文件的生成时长是否大于预设时长,若是,则将所述聚合文件写入到所述OSD中,并将所述元数据存放在所述数据库中,若否,则执行所述判断所述聚合文件的容量是否超过所述聚合文件的设定容量的步骤。
9.一种对象存储小文件处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的对象存储小文件处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的对象存储小文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010071635.6A CN111309687A (zh) | 2020-01-21 | 2020-01-21 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010071635.6A CN111309687A (zh) | 2020-01-21 | 2020-01-21 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309687A true CN111309687A (zh) | 2020-06-19 |
Family
ID=71158202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010071635.6A Pending CN111309687A (zh) | 2020-01-21 | 2020-01-21 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309687A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035065A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种数据写入方法、装置、设备及计算机可读存储介质 |
CN112149026A (zh) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | 基于web端的分布式数据存储系统 |
CN112286948A (zh) * | 2020-11-18 | 2021-01-29 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN112463730A (zh) * | 2020-12-02 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种存储海量小文件分级优化的方法、系统及介质 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN113031871A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 数据追加聚合方法、装置、电子设备及可读存储介质 |
CN113687783A (zh) * | 2021-07-31 | 2021-11-23 | 济南浪潮数据技术有限公司 | 一种对象聚合方法、系统、装置及计算机存储介质 |
CN113704027A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN106709025A (zh) * | 2016-12-28 | 2017-05-24 | 郑州云海信息技术有限公司 | 更新聚合对象的方法及装置 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
CN107506466A (zh) * | 2017-08-30 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种小文件存储方法及系统 |
CN108763473A (zh) * | 2018-05-29 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种分布式存储的本地对象存储方法及装置 |
-
2020
- 2020-01-21 CN CN202010071635.6A patent/CN111309687A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
CN106709025A (zh) * | 2016-12-28 | 2017-05-24 | 郑州云海信息技术有限公司 | 更新聚合对象的方法及装置 |
CN107506466A (zh) * | 2017-08-30 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种小文件存储方法及系统 |
CN108763473A (zh) * | 2018-05-29 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种分布式存储的本地对象存储方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035065B (zh) * | 2020-08-28 | 2022-06-07 | 北京浪潮数据技术有限公司 | 一种数据写入方法、装置、设备及计算机可读存储介质 |
CN112035065A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种数据写入方法、装置、设备及计算机可读存储介质 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN112149026A (zh) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | 基于web端的分布式数据存储系统 |
CN112149026B (zh) * | 2020-10-20 | 2021-04-02 | 北京天华星航科技有限公司 | 基于web端的分布式数据存储系统 |
CN112286948A (zh) * | 2020-11-18 | 2021-01-29 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112286948B (zh) * | 2020-11-18 | 2023-05-23 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
CN112463730A (zh) * | 2020-12-02 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种存储海量小文件分级优化的方法、系统及介质 |
CN112463730B (zh) * | 2020-12-02 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种存储海量小文件分级优化的方法、系统及介质 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN112637616B (zh) * | 2020-12-08 | 2024-02-23 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN113031871A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 数据追加聚合方法、装置、电子设备及可读存储介质 |
CN113687783A (zh) * | 2021-07-31 | 2021-11-23 | 济南浪潮数据技术有限公司 | 一种对象聚合方法、系统、装置及计算机存储介质 |
CN113687783B (zh) * | 2021-07-31 | 2024-02-13 | 济南浪潮数据技术有限公司 | 一种对象聚合方法、系统、装置及计算机存储介质 |
CN113704027A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309687A (zh) | 一种对象存储小文件处理方法、装置、设备及存储介质 | |
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
EP3796182A1 (en) | Data processing method and apparatus, and computer-readable storage medium | |
CN107168651B (zh) | 一种小文件聚合存储处理方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN111143290A (zh) | 一种内存管理方法、系统、设备及计算机可读存储介质 | |
CN111651127A (zh) | 一种基于叠瓦式磁记录盘的监控数据存储方法及装置 | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
CN111159130A (zh) | 一种小文件合并方法及电子设备 | |
CN111399765B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112463026A (zh) | 分布式对象存储系统中追加数据的重复删除的方法和设备 | |
CN113641630A (zh) | 一种flash存储器 | |
CN112463734A (zh) | 一种文件检索方法、系统及相关装置 | |
US20110107056A1 (en) | Method for determining data correlation and a data processing method for a memory | |
CN108459925B (zh) | 私有云设备及其数据库的修复方法、具有存储功能的装置 | |
CN108021562B (zh) | 应用于分布式文件系统的存盘方法、装置及分布式文件系统 | |
US20230025135A1 (en) | Method, Apparatus and Device for Deleting Distributed System File, and Storage Medium | |
CN109284237B (zh) | 一种全闪存储阵列中的垃圾回收方法及系统 | |
CN113626382A (zh) | 分布式文件系统中聚合对象的索引方法、系统及相关装置 | |
CN113032348A (zh) | 一种空间数据管理方法、系统及计算机可读存储介质 | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
CN107301073B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |