CN107506466A - 一种小文件存储方法及系统 - Google Patents
一种小文件存储方法及系统 Download PDFInfo
- Publication number
- CN107506466A CN107506466A CN201710765907.0A CN201710765907A CN107506466A CN 107506466 A CN107506466 A CN 107506466A CN 201710765907 A CN201710765907 A CN 201710765907A CN 107506466 A CN107506466 A CN 107506466A
- Authority
- CN
- China
- Prior art keywords
- file
- aggregate
- original document
- small documents
- backup
- 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.)
- Granted
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/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
-
- 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/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种小文件存储方法及系统,该方法包括:元数据服务器获取文件元数据;判断原始文件的大小是否小于第一阈值;若是,则依次判断原始文件与每个聚合文件的相似度是否大于第二阈值;若原始文件与任一聚合文件的相似度大于第二阈值,则数据服务器将原始文件备份到对应的聚合文件;本发明通过元数据服务器依次判断原始文件与每个聚合文件的相似度是否大于第二阈值,可以利用原始文件与每个聚合文件更加灵活的相似度计算,对原始文件进行聚合,提高了小文件聚合的灵活度;通过数据服务器保存原始文件和聚合文件中的备份文件的两份数据,可以根据用户的不同操作,选择或更新提供对应的数据,为提升小文件的操作速度提供基础。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种小文件存储方法及系统。
背景技术
小文件在各种存储系统中普遍存在。能源、天文、生物、气象等领域产生很多小文件。尤其是科学计算会生成很多小文件。小文件的大小不等,总体来说小于系统数据存取时一次读取的最小大小。由于小文件小于一次硬件读取的大小,小文件的每次读写都不能完全利用系统的资源。小文件具有如下的缺点:占用大量的inode(information node,信息节点),空间利用率低,读、写效率往往低于正常文件的读写效率。虽然很多分布式文件系统、集群文件系统的inode数量有了很大程度的提高,但是小文件的读写效率一直是小文件面临的很重要的问题。
现有技术中,对小文件的优化有把指定目录下的小文件写入到同一个大文件中的方式,使用一个大文件的inode和每个小文件的偏移表来查找小文件的具体数据存放位置。这种方法局限于目录。如果对大文件中的小文件进行写操作,并且写的大小超过了分配给小文件的块大小时,要么给小文件重新分块,要么把小文件恢复成独立的文件,不再聚合成大文件的一部分。无论哪种方法都会降低写效率。还有的文件系统根据日志中文件的读写顺序,把读写相邻的小文件放在一个大文件中,这种方法虽然能提高小文件的处理速度,但是他属于文件生成后的再处理。也就是说需要对已存在的读写效率低的文件进行整理再生成大文件,这样加大了管理的复杂度;而且频繁的分析日志也会加重服务器的负担。
综上所述,现有的小文件的聚合优化都使用较单一的聚合方法,不能灵活配置,且只保存一份数据,不能很好的处理小文件频繁读写的操作,尤其是小文件通过写操作改变块大小,甚至变成大文件的操作。因此,如何更加灵活的聚合小文件,且保留已生成的小文件,为提升小文件的操作速度提供基础,是现今亟需解决的问题。
发明内容
本发明的目的是提供一种小文件存储方法及系统,以通过相似度的方式更加灵活的聚合小文件,并且保留已生成的小文件,为提升小文件的操作速度提供基础。
为解决上述技术问题,本发明提供一种小文件存储方法,包括:
S101:元数据服务器获取文件元数据;其中,所述文件元数据为存储至数据服务器的原始文件对应的信息;
S102:判断所述原始文件的大小是否小于第一阈值;若是,则进入S103;
S103:依次判断所述原始文件与每个聚合文件的相似度是否大于第二阈值;若是,则进入S104;若否,则进入S105;
S104:所述数据服务器将所述原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;
S105:所述数据服务器建立备份所述原始文件的新的聚合文件,并在所述小文件索引表中记录所述备份文件在新的聚合文件中的偏移。
可选的,该方法还包括:
所述数据服务器接收第一客户端发送的读数据请求;
判断所述读数据请求对应的文件是否在聚合文件中;
若否,则读取所述读数据请求对应的文件的原始文件,并发送给所述第一客户端;
若是,则读取所述读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给所述第一客户端。
可选的,该方法还包括:
所述数据服务器接收第二客户端发送的写数据请求;
判断所述写数据请求对应的文件是否在聚合文件中;
若否,则将所述写数据请求对应的文件的原始文件发送给所述第二客户端;
若是,则将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端。
可选的,所述将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端之后,还包括:
所述数据服务器接收所述第二客户端发送的更新文件;
判断所述更新文件的大小是否小于所述第一阈值;
若是,则更新所述更新文件对应的聚合文件中的备份文件;
若否,则更新所述更新文件对应的原始文件,并将所述更新文件对应的聚合文件中的备份文件置为无效。
此外,本发明还提供了一种小文件存储系统,包括:
元数据服务器,用于获取文件元数据;其中,所述文件元数据为存储至数据服务器的原始文件对应的信息;判断所述原始文件的大小是否小于第一阈值;若是,则依次判断所述原始文件与每个聚合文件的相似度是否大于第二阈值;若所述原始文件与任一聚合文件的相似度大于第二阈值,则向所述数据服务器发送第一备份信号;若所述原始文件与每个聚合文件的相似度均不大于第二阈值,则向所述数据服务器发送第二备份信号;
所述数据服务器,用于根据所述第一备份信号,将所述原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;根据所述第二备份信号,建立备份所述原始文件的新的聚合文件,并在所述小文件索引表中记录所述备份文件在新的聚合文件中的偏移。
可选的,所述数据服务器,还包括:
第一接收模块,用于接收第一客户端发送的读数据请求;
第一判断模块,用于判断所述读数据请求对应的文件是否在聚合文件中;
第一读取模块,用于若所述读数据请求对应的文件不在聚合文件中,则读取所述读数据请求对应的文件的原始文件,并发送给所述第一客户端;
第一读取模块,用于若所述读数据请求对应的文件在聚合文件中,则读取所述读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给所述第一客户端。
可选的,所述数据服务器,还包括:
第二接收模块,用于接收第二客户端发送的写数据请求;
第二判断模块,用于判断所述写数据请求对应的文件是否在聚合文件中;
第一发送模块,用于若所述写数据请求对应的文件不在聚合文件中,则将所述写数据请求对应的文件的原始文件发送给所述第二客户端;
第二发送模块,若所述写数据请求对应的文件在聚合文件中,则将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端。
可选的,所述数据服务器,还包括:
第三接收模块,用于接收所述第二客户端发送的更新文件;
第三判断模块,用于判断所述更新文件的大小是否小于所述第一阈值;
第一更新模块,用于若所述更新文件的大小小于所述第一阈值,则更新所述更新文件对应的聚合文件中的备份文件;
第二更新模块,用于若所述更新文件的大小不小于所述第一阈值,则更新所述更新文件对应的原始文件,并将所述更新文件对应的聚合文件中的备份文件置为无效。
本发明所提供的一种小文件存储方法,包括:元数据服务器获取文件元数据;其中,文件元数据为存储至数据服务器的原始文件对应的信息;判断原始文件的大小是否小于第一阈值;若是,则依次判断原始文件与每个聚合文件的相似度是否大于第二阈值;若原始文件与任一聚合文件的相似度大于第二阈值,则数据服务器将原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;若原始文件与每个聚合文件的相似度均不大于第二阈值,则数据服务器建立备份原始文件的新的聚合文件,并在小文件索引表中记录备份文件在新的聚合文件中的偏移;
可见,本发明通过元数据服务器依次判断原始文件与每个聚合文件的相似度是否大于第二阈值,可以利用原始文件与每个聚合文件更加灵活的相似度计算,对原始文件进行聚合,提高了小文件聚合的灵活度;通过数据服务器保存原始文件和聚合文件中的备份文件的两份数据,可以根据用户的不同操作,选择或更新提供对应的数据,为提升小文件的操作速度提供基础。此外,本发明还提供了一种小文件存储系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种小文件存储方法的流程图;
图2为本发明实施例所提供的一种小文件存储方法的数据块的示意图;
图3为本发明实施例所提供的一种小文件存储系统的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种小文件存储方法的流程图。该方法可以包括:
S101:元数据服务器获取文件元数据;其中,文件元数据为存储至数据服务器的原始文件对应的信息。
其中,原始文件可以为用户写到数据服务器的数据,文件元数据(inode信息)可以为元数据服务器中保存的数据服务器中的原始文件对应的信息。如用户写数据到数据服务器后,更新元数据服务器(Mds)。
具体的,本步骤之前还可以包括Mds根据用户发送的文件创建请求,判断是否允许创建,允许则创建文件inode信息,返回给用户,在用户写数据到数据服务器创建原始文件并更新Mds后,Mds获取该原始文件对应的文件元数据。
S102:判断原始文件的大小是否小于第一阈值;若是,则进入S103。
其中,第一阈值可以为系统数据存取时一次读取的最小大小的数值,也就是最小的大文件的数值。对于第一阈值的具体设置,可以由用户或设计人员根据使用场景和用户需求自行设置,本实施例对此不做任何限制。
可以理解的是,本步骤的目的可以为元数据服务器判断原始文件的大小是否为小文件。若原始文件的大小不小于第一阈值,则可以证明原始文件为大文件,无需对其进行聚合,则可以结束本次流程。
S103:依次判断原始文件与每个聚合文件的相似度是否大于第二阈值;若是,则进入S104;若否,则进入S105。
其中,本步骤的目的可以为元数据服务器对作为小文件的原始文件与已有小文件聚合的聚合文件(大文件)的相似度比较,判断原始文件是否可以聚合到现有的聚合文件中。
可以理解的是,本步骤之前还可以包括原始文件与每个聚合文件的相似度计算的步骤。对于具体的相似度计算方式,可以通过目录的层次、元数据相似性、数据内容的相似性、读写顺序的相似性等角度单独或组合进行计算,如可以使用目录相似性,例如同一目录下,同几层目录下,也可以使用元数据属性的距离,还可以使用读写的相关性。只要保证大量小文件都能聚合到聚合文件中,不出现大量小文件都独立的存储在单独的聚合文件中。本实施例对此不做任何限制。
需要说明的是,本步骤中的第二阈值可以为小文件与该小文件可聚合的聚合文件的相似度最低标准。若原始文件与每个聚合文件的相似度均小于第二阈值,则原始文件不可以聚合到已有的聚合文件中;若原始文件与某个聚合文件的相似度大于第二阈值,则原始文件可以聚合到该聚合文件中。具体的,第二阈值的具体数值,可以由设计人员或用户根据实用场景或用户需求自行设置,本实施例对此不做任何限制。
S104:数据服务器将原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移。
其中,聚合文件的大小可以由设计人员或用户自行设置,如可以设置大小为M的聚合文件,聚合文件可以分成N块大小为T(第一阈值)的块,N=M/T。可以使用小文件索引表来存放备份文件在聚合的偏移,使用bitmap存放聚合文件的块的使用情况。原始文件的inode记录备份文件在小文件索引表的位置。
可以理解的是,数据服务器中的聚合文件中备份文件的数据块如图2所示,均包含了数据头和数据尾,数据头包含了数据的属性,数据尾包含了下一个数据块的位置。一个备份文件的所有数据块必须在同一个聚合内,不能跨文件使用。数据头只有备份文件的第一个数据块的数据头包含了具体属性信息,其他数据块的数据头只包含了本数据块是第几块的索引信息。一个备份文件的数据块不必须是连续的,避免每次对备份文件的操作,都会将整个大文件的数据取出,而是只需将该备份文件的数据在拷贝到缓存中即可。
具体的,本步骤之前可以包括元数据服务器计算原始文件备份到对应聚合文件的备份位置,并将原始文件备份到聚合文件的请求发送到数据服务器的步骤。对应的,本步骤中的数据服务器可以根据该请求将原始文件备份到对应的聚合文件的该备份位置。只要可以将原始文件备份到对应的聚合文件,对于具体的备份方式和过程,本实施例不做任何限制。
S105:数据服务器建立备份原始文件的新的聚合文件,并在小文件索引表中记录备份文件在新的聚合文件中的偏移。
可以理解的是,若不存在与原始文件的相似度大于第二阈值的聚合文件,则数据服务器可以重新创建一个可以备份原始文件的新的聚合文件,并在小文件索引表中记录该原始文件的备份文件在新的聚合文件中的偏移。
具体的,本实施例所提供的方法可以为当创建小文件f1时,文件系统根据客户的要求,正常创建文件及inode。并数据服务器将大小小于T的文件重新建立一个大小为M的大文件G1。大文件分成N块大小为T的块,N=M/T。使用小文件索引表来存放小文件在大文件的偏移,使用bitmap存放大文件的块的使用情况。小文件的inode记录该小文件在索引表的位置。
当创建小文件f2时,元数据服务器计算f2与f1的相似度,相似度高于L(第二阈值)则数据服务器将f2加入到f1存放的大文件中,相似度低于L则数据服务器再次生成一个独立的大文件G2,并加入小文件索引表。
以此类推,小文件fn创建时,元数据服务器计算其与f1的相似度,如果不相似,则计算与f2的相似度,一直到计算与f(n-1)的相似度。数据服务器将fn写入合适的大文件中,并添加到小文件索引表中。
需要说明的是,本实施例所提供的方法可以在原始文件为小文件时,数据服务器将其备份到聚合文件中,可以保存原始文件和聚合文件中的备份文件的两份数据,数据服务器可以利用聚合文件提供读操作和不大于第一阈值大小的写操作,利用原始文件提供大于第一阈值大小的写操作,进一步提升小文件的操作速度。
也就是说,本实施例所提供的方法还可以包括:数据服务器接收第一客户端发送的读数据请求;判断读数据请求对应的文件是否在聚合文件中;若否,则读取读数据请求对应的文件的原始文件,并发送给第一客户端;若是,则读取读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给第一客户端。
具体的,当文件读操作时,客户端向元数据服务器(Mds)发送读请求。Mds根据查找到的inode信息返回给客户端,客户端将读数据请求发送给数据服务器。当读数据请求对应的是大文件时,数据服务器直接读取。当读数据请求对应的是小文件时,则数据服务器读取对应的聚合文件,将该聚合文件中的对应的小文件返回给客户端。
本实施例所提供的方法还可以包括:数据服务器接收第二客户端发送的写数据请求;判断写数据请求对应的文件是否在聚合文件中;若否,则将写数据请求对应的文件的原始文件发送给第二客户端;若是,则将写数据请求对应的文件在对应的聚合文件中的备份文件发送给第二客户端。
具体的,文件写操作时,客户端向元数据服务器(Mds)发送写请求。Mds根据查找到的inode信息返回给客户端,客户端将写数据请求发送给数据服务器。当写数据请求对应的是大文件时,数据服务器直接将原始文件返回给客户端。当写数据请求对应的是小文件时,则数据服务器读取对应的聚合文件,将该聚合文件中的对应的小文件返回给客户端。
对应的,数据服务器将写数据请求对应的文件在对应的聚合文件中的备份文件发送给第二客户端之后,本实施例所提供的方法还可以包括:数据服务器接收第二客户端发送的更新文件;判断更新文件的大小是否小于第一阈值;若是,则更新更新文件对应的聚合文件中的备份文件;若否,则更新更新文件对应的原始文件,并将更新文件对应的聚合文件中的备份文件置为无效。
也就是,在用户更新小文件后,数据服务器判断写大小是否超过第一阈值,不超过则直接写聚合文件中的小文件;否则写独立的小文件,并置聚合件中同样的小文件置为无效。
优选的,本实施例所提供的方法还可以包括:数据服务器判断聚合文件中的无效备份文件的个数是否大于第四阈值,若是,则对该聚合文件中的备份文件进行重新聚合的步骤。也就是,当一个聚合件中的无效块超过H(第四阈值)个时,可以该聚合文件进行回收。
具体的,对于第四阈值的设置数值,可以由设计人员或用户自行设置,本实施例对此不做任何限制。同样的,对于判断聚合文件中的无效备份文件的个数是否大于第四阈值的具体时间点,也可以由设计人员自行设置,如数据服务器可以按预设时间间隔进行本步骤,也可以在将聚合文件中的备份文件置为无效后,进行本步骤。本实施例对此同样不做任何限制。
本实施例中,本发明实施例通过元数据服务器依次判断原始文件与每个聚合文件的相似度是否大于第二阈值,可以利用原始文件与每个聚合文件更加灵活的相似度计算,对原始文件进行聚合,提高了小文件聚合的灵活度;通过数据服务器保存原始文件和聚合文件中的备份文件的两份数据,可以根据用户的不同操作,选择或更新提供对应的数据,为提升小文件的操作速度提供基础。
请参考图3,图3为本发明实施例所提供的一种小文件存储系统的结构图。该系统可以包括:
元数据服务器100,用于获取文件元数据;其中,文件元数据为存储至数据服务器200的原始文件对应的信息;判断原始文件的大小是否小于第一阈值;若是,则依次判断原始文件与每个聚合文件的相似度是否大于第二阈值;若原始文件与任一聚合文件的相似度大于第二阈值,则向数据服务器发送第一备份信号;若原始文件与每个聚合文件的相似度均不大于第二阈值,则向数据服务器200发送第二备份信号;
数据服务器200,用于根据第一备份信号,将原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;根据第二备份信号,建立备份原始文件的新的聚合文件,并在小文件索引表中记录备份文件在新的聚合文件中的偏移。
可选的,数据服务器200,还可以包括:
第一接收模块,用于接收第一客户端发送的读数据请求;
第一判断模块,用于判断读数据请求对应的文件是否在聚合文件中;
第一读取模块,用于若读数据请求对应的文件不在聚合文件中,则读取读数据请求对应的文件的原始文件,并发送给第一客户端;
第一读取模块,用于若读数据请求对应的文件在聚合文件中,则读取读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给第一客户端。
可选的,数据服务器200,还可以包括:
第二接收模块,用于接收第二客户端发送的写数据请求;
第二判断模块,用于判断写数据请求对应的文件是否在聚合文件中;
第一发送模块,用于若写数据请求对应的文件不在聚合文件中,则将写数据请求对应的文件的原始文件发送给第二客户端;
第二发送模块,若写数据请求对应的文件在聚合文件中,则将写数据请求对应的文件在对应的聚合文件中的备份文件发送给第二客户端。
可选的,数据服务器200,还可以包括:
第三接收模块,用于接收第二客户端发送的更新文件;
第三判断模块,用于判断更新文件的大小是否小于第一阈值;
第一更新模块,用于若更新文件的大小小于第一阈值,则更新更新文件对应的聚合文件中的备份文件;
第二更新模块,用于若更新文件的大小不小于第一阈值,则更新更新文件对应的原始文件,并将更新文件对应的聚合文件中的备份文件置为无效。
本实施例中,本发明实施例通过元数据服务器100依次判断原始文件与每个聚合文件的相似度是否大于第二阈值,可以利用原始文件与每个聚合文件更加灵活的相似度计算,对原始文件进行聚合,提高了小文件聚合的灵活度;通过数据服务器200保存原始文件和聚合文件中的备份文件的两份数据,可以根据用户的不同操作,选择或更新提供对应的数据,为提升小文件的操作速度提供基础。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的小文件存储方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种小文件存储方法,其特征在于,包括:
S101:元数据服务器获取文件元数据;其中,所述文件元数据为存储至数据服务器的原始文件对应的信息;
S102:判断所述原始文件的大小是否小于第一阈值;若是,则进入S103;
S103:依次判断所述原始文件与每个聚合文件的相似度是否大于第二阈值;若是,则进入S104;若否,则进入S105;
S104:所述数据服务器将所述原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;
S105:所述数据服务器建立备份所述原始文件的新的聚合文件,并在所述小文件索引表中记录所述备份文件在新的聚合文件中的偏移。
2.根据权利要求1所述的小文件存储方法,其特征在于,还包括:
所述数据服务器接收第一客户端发送的读数据请求;
判断所述读数据请求对应的文件是否在聚合文件中;
若否,则读取所述读数据请求对应的文件的原始文件,并发送给所述第一客户端;
若是,则读取所述读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给所述第一客户端。
3.根据权利要求1所述的小文件存储方法,其特征在于,还包括:
所述数据服务器接收第二客户端发送的写数据请求;
判断所述写数据请求对应的文件是否在聚合文件中;
若否,则将所述写数据请求对应的文件的原始文件发送给所述第二客户端;
若是,则将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端。
4.根据权利要求3所述的小文件存储方法,其特征在于,所述将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端之后,还包括:
所述数据服务器接收所述第二客户端发送的更新文件;
判断所述更新文件的大小是否小于所述第一阈值;
若是,则更新所述更新文件对应的聚合文件中的备份文件;
若否,则更新所述更新文件对应的原始文件,并将所述更新文件对应的聚合文件中的备份文件置为无效。
5.一种小文件存储系统,其特征在于,包括:
元数据服务器,用于获取文件元数据;其中,所述文件元数据为存储至数据服务器的原始文件对应的信息;判断所述原始文件的大小是否小于第一阈值;若是,则依次判断所述原始文件与每个聚合文件的相似度是否大于第二阈值;若所述原始文件与任一聚合文件的相似度大于第二阈值,则向所述数据服务器发送第一备份信号;若所述原始文件与每个聚合文件的相似度均不大于第二阈值,则向所述数据服务器发送第二备份信号;
所述数据服务器,用于根据所述第一备份信号,将所述原始文件备份到对应的聚合文件,并在小文件索引表中记录备份文件在对应的聚合文件中的偏移;根据所述第二备份信号,建立备份所述原始文件的新的聚合文件,并在所述小文件索引表中记录所述备份文件在新的聚合文件中的偏移。
6.根据权利要求5所述的小文件存储系统,其特征在于,所述数据服务器,还包括:
第一接收模块,用于接收第一客户端发送的读数据请求;
第一判断模块,用于判断所述读数据请求对应的文件是否在聚合文件中;
第一读取模块,用于若所述读数据请求对应的文件不在聚合文件中,则读取所述读数据请求对应的文件的原始文件,并发送给所述第一客户端;
第一读取模块,用于若所述读数据请求对应的文件在聚合文件中,则读取所述读数据请求对应的文件在对应的聚合文件中的备份文件,并发送给所述第一客户端。
7.根据权利要求5所述的小文件存储系统,其特征在于,所述数据服务器,还包括:
第二接收模块,用于接收第二客户端发送的写数据请求;
第二判断模块,用于判断所述写数据请求对应的文件是否在聚合文件中;
第一发送模块,用于若所述写数据请求对应的文件不在聚合文件中,则将所述写数据请求对应的文件的原始文件发送给所述第二客户端;
第二发送模块,若所述写数据请求对应的文件在聚合文件中,则将所述写数据请求对应的文件在对应的聚合文件中的备份文件发送给所述第二客户端。
8.根据权利要求7所述的小文件存储系统,其特征在于,所述数据服务器,还包括:
第三接收模块,用于接收所述第二客户端发送的更新文件;
第三判断模块,用于判断所述更新文件的大小是否小于所述第一阈值;
第一更新模块,用于若所述更新文件的大小小于所述第一阈值,则更新所述更新文件对应的聚合文件中的备份文件;
第二更新模块,用于若所述更新文件的大小不小于所述第一阈值,则更新所述更新文件对应的原始文件,并将所述更新文件对应的聚合文件中的备份文件置为无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710765907.0A CN107506466B (zh) | 2017-08-30 | 2017-08-30 | 一种小文件存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710765907.0A CN107506466B (zh) | 2017-08-30 | 2017-08-30 | 一种小文件存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107506466A true CN107506466A (zh) | 2017-12-22 |
CN107506466B CN107506466B (zh) | 2020-08-04 |
Family
ID=60694459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710765907.0A Active CN107506466B (zh) | 2017-08-30 | 2017-08-30 | 一种小文件存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506466B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958659A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种分布式存储系统的小文件聚合方法、装置及介质 |
CN111309687A (zh) * | 2020-01-21 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
CN113704027A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
CN114780042A (zh) * | 2022-05-06 | 2022-07-22 | 江苏安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332029A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量可归类小文件关联存储方法 |
CN103605726A (zh) * | 2013-11-15 | 2014-02-26 | 中安消技术有限公司 | 一种小文件的存取方法、系统及控制节点和存储节点 |
US20150379024A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | File storage processing in hdfs |
CN105404691A (zh) * | 2015-12-14 | 2016-03-16 | 曙光信息产业股份有限公司 | 一种文件存储的方法及装置 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
-
2017
- 2017-08-30 CN CN201710765907.0A patent/CN107506466B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332029A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量可归类小文件关联存储方法 |
CN103605726A (zh) * | 2013-11-15 | 2014-02-26 | 中安消技术有限公司 | 一种小文件的存取方法、系统及控制节点和存储节点 |
US20150379024A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | File storage processing in hdfs |
CN105404691A (zh) * | 2015-12-14 | 2016-03-16 | 曙光信息产业股份有限公司 | 一种文件存储的方法及装置 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
Non-Patent Citations (1)
Title |
---|
宋亚龙: "小文件存取优化方法的研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958659A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种分布式存储系统的小文件聚合方法、装置及介质 |
CN111309687A (zh) * | 2020-01-21 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
CN113704027A (zh) * | 2021-10-29 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 文件聚合兼容方法、装置、计算机设备和存储介质 |
CN114780042A (zh) * | 2022-05-06 | 2022-07-22 | 江苏安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107506466B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103635900B (zh) | 基于时间的数据分割 | |
CN106662981B (zh) | 存储设备、程序和信息处理方法 | |
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
CN107315547A (zh) | 一种读取分布式元数据文件的方法及装置 | |
CN107562915A (zh) | 读取小文件的方法、装置和设备及计算机可读存储介质 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN106911743B (zh) | 小文件的写聚合、读聚合方法及系统和客户端 | |
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
CN103399823B (zh) | 业务数据的存储方法、设备和系统 | |
CN106775446A (zh) | 基于固态硬盘加速的分布式文件系统小文件访问方法 | |
CN107239569A (zh) | 一种分布式文件系统子树存储方法及装置 | |
CN103176754A (zh) | 一种海量小文件读取存储方法 | |
CN103020255A (zh) | 分级存储方法和装置 | |
CN103186554A (zh) | 分布式数据镜像方法及存储数据节点 | |
CN104281717B (zh) | 一种建立海量id映射关系的方法 | |
CN109471843A (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN110007870A (zh) | 一种存储设备写请求处理方法及相关装置 | |
CN109144406A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN109558456A (zh) | 一种文件迁移方法、装置、设备及可读存储介质 | |
CN103412929A (zh) | 一种海量数据的存储方法 | |
CN102253985B (zh) | 一种文件系统数据的管理方法及系统 | |
CN104079600B (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
CN102122284B (zh) | 一种复合文档存储、读写方法和装置 | |
CN113568582A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |