CN109101197A - 一种文件存储和访问方法、装置、文件存储器及系统 - Google Patents

一种文件存储和访问方法、装置、文件存储器及系统 Download PDF

Info

Publication number
CN109101197A
CN109101197A CN201810931029.XA CN201810931029A CN109101197A CN 109101197 A CN109101197 A CN 109101197A CN 201810931029 A CN201810931029 A CN 201810931029A CN 109101197 A CN109101197 A CN 109101197A
Authority
CN
China
Prior art keywords
file
storage
accessed
data
aggregated
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
Application number
CN201810931029.XA
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810931029.XA priority Critical patent/CN109101197A/zh
Publication of CN109101197A publication Critical patent/CN109101197A/zh
Pending legal-status Critical Current

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种文件存储和访问方法、装置、文件存储器及系统。通过将待存储的文件存储至第一存储池中,提高了文件的写入速度;此外,在文件迁移时对待存储的文件进行聚合,进而在访问文件时能够读取整个聚合文件到缓存中,当再次读取聚合文件中的任意文件时即可从缓存中直接读取文件数据,由此提升了缓存命中率和文件访问速度。相比于现有技术,文件的读写性能得到明显提高。

Description

一种文件存储和访问方法、装置、文件存储器及系统
技术领域
本申请涉及分布式存储系统数据传输技术领域,特别是涉及一种文件存储和访问方法、装置、文件存储器及系统。
背景技术
进入数字化信息时代以来,数据的生产速度越来越快。大数据时代对数据存储和访问速度的要求也越来越高,传统的存储方式显然不能满足对数据存储和访问速度的高要求,分布式存储系统应运而生。
目前,互联网信息以海量小文件居多。小文件的存储规模大,文件访问频繁,并发高,因此,如何提高小文件的存储和访问速度逐渐成为当前分布式存储系统数据传输领域急需解决的技术难题。
发明内容
有鉴于以上问题,本申请提供了一种文件存储和访问方法、装置、文件存储器及系统,以提高文件的存储和访问速度。
本申请实施例公开了如下技术方案:
本申请第一方面,提供一种文件存储方法,所述方法包括:
获取客户端发送的文件存储请求;所述文件存储请求中包含待存储文件的文件类型和文件大小;
根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;
判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;
将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息。
可选的,所述确定所述待存储文件待迁移至第二存储池,具体包括:
将所述待存储文件加入迁移队列中;所述迁移队列中的文件为待迁移至第二存储池的文件。
可选的,所述将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池,具体包括:
将所述迁移队列中的所述待存储文件与其它文件的数据读取到缓存中,在缓存中将所述数据进行聚合,以聚合后的数据作为聚合文件的数据,将所述聚合文件的数据下刷到所述第二存储池中;所述待存储文件的文件大小与所述其它文件的文件大小之和小于或等于预设聚合容量阈值,所述预设聚合容量阈值为所述聚合文件的文件大小上限。
本申请第二方面,提供一种文件访问方法,所述方法包括:
获取客户端发送的文件访问请求;所述文件访问请求中包含待访问文件的存储路径;
根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;
根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;
判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;
将所述待访问文件的数据发送至客户端。
可选的,所述从所述缓存中读取所述待访问文件的数据,具体包括:
根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。
本申请第三方面,提供一种文件存储装置,所述装置包括:
存储请求获取单元,用于获取客户端发送的文件存储请求;所述文件存储请求中包含待存储文件的文件类型和文件大小;
第一存储单元,用于根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;
存储时间判断单元,用于判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;
第二存储单元,用于将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息。
本申请第四方面,提供一种文件访问装置,所述装置包括:
访问请求获取单元,用于获取客户端发送的文件访问请求;所述文件访问请求中包含待访问文件的存储路径;
第一元数据获取单元,用于根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;
第二元数据获取单元,用于根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;
判断与数据读取单元,用于判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;
文件发送单元,用于将所述待访问文件的数据发送至客户端。
可选的,所述判断与数据读取单元,包括:
数据读取子单元,用于根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。
本申请第五方面,提供一种文件存储器,所述文件存储器包括:第一存储池、第二存储池、存储模块和访问模块;
所述存储模块,用于获取客户端发送的文件存储请求,所述文件存储请求中包含待存储文件的文件类型和文件大小;根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息;
所述访问模块,用于获取客户端发送的文件访问请求,所述文件访问请求中包含待访问文件的存储路径;根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;将所述待访问文件的数据发送至客户端。
本申请第六方面,提供一种文件存储和访问系统,其特征在于,所述文件存储和访问系统,包括:客户端,和本申请第五方面提供的文件存储器。
系统中,所述客户端,用于向所述文件存储器发送文件存储请求,
和/或,
向所述文件存储器发送文件访问请求,并接收所述文件存储器发送的待访问文件的数据。
相较于现有技术,本申请具有以下有益效果:
本申请通过将待存储的文件存储至第一存储池中,提高了文件的写入速度;此外,在文件迁移时对待存储的文件进行聚合,进而在访问文件时能够读取整个聚合文件到缓存中,当再次读取聚合文件中的任意文件时即可从缓存中直接读取文件数据,由此提升了缓存命中率和文件访问速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请第一实施例提供的文件存储方法流程图;
图2为本申请第二实施例提供的文件存储方法流程图;
图3为本申请第三实施例提供的文件访问方法流程图;
图4为本申请第四实施例提供的文件存储装置结构示意图;
图5为本申请第五实施例提供的文件访问装置结构示意图;
图6为本申请第六实施例提供的文件存储器结构示意图;
图7为本申请第七实施例提供的文件存储和访问系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为提高文件的存储和访问速度,发明人经过研究,提出了一种文件存储和访问方法、装置、文件存储器及系统。下面结合附图分别进行详细说明。
第一实施例
参见图1,该图为本申请实施例提供的文件存储方法流程图。
如图1所示,本实施例提供的文件存储方法,包括:
步骤101:获取客户端发送的文件存储请求。
需要说明的是,本实施例中,文件存储请求中包含待存储文件的相关信息,例如:待存储文件的文件类型和文件大小。
步骤102:根据分层存储策略,将所述待存储文件存储至第一存储池。
作为本实施例的实现前提,应用本实施例提供的文件存储方法的文件存储系统中,包含两种由不同存储介质构成的存储池:第一存储池和第二存储池。第一存储池,又称快速存储池,该存储池由固态硬盘(Solid State Disk,SSD)构成,文件存储速度较快但存储容量较小,可用于存储短期内文件读写概率较大的文件,或文件读写速度要求较高的文件。第二存储池,又称普通存储池,该存储池由机械硬盘构成,文件存储速度较慢但存储容量较大。
在本实施例中,分层存储策略包含容许存入所述第一存储池的文件类型(文件扩展名)、文件大小和存储时间限值。
作为一具体示例,分层存储策略支持单个策略(文件类型或文件大小),指定大小低于1M的文件,或者txt格式文本文件和jpeg格式图片文件,才能存入第一存储池,否则,直接存入第二存储池中。由此,实现了对文件的分层存储。
作为另一具体示例,分层存储策略支持多个策略(文件类型和文件大小)组合,制定大小低于1M的txt格式文本文件才能存入第一存储池,否则,直接存入第二存储池中。由此,实现了对文件的分层存储。
步骤103:判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池。
分层存储策略的存储时间限值规定了文件存储于第一存储池的存储时间,进而可以根据文件的实际存储时间及存储时间限值,确定文件是否需要从第一存储池迁移出。若文件在第一存储池中的存储时间尚未达到该类型文件的存储时间限值,则可以继续在第一存储池存储。需要说明的是,在本实施例中,分层存储策略中的存储时间限值可依据具体业务进行设定或实时调整。
作为示例,分层存储策略中规定,txt格式文本文件存储时间限值为12小时,则当该格式文件在第一存储池中存储达到12小时,需从第一存储池迁移到第二存储池;分层存储策略中规定,jpeg格式图片存储时间限值为18小时,则当该格式文件在第一存储池中存储达到18小时,需从第一存储池迁移到第二存储池。
步骤104:将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池。
为便于后续访问该待存储文件时,访问性能的快速便捷,本实施例中,待存储文件是以聚合文件的形式迁移至第二存储池的。
具体地,将待存储文件与其它一个或多个因存储于第一存储池的时间达到存储时间限值而需迁移到第二存储池的文件进行聚合,形成聚合文件。然后,将聚合了待存储文件与其它待迁移至第二存储池的文件的聚合文件迁移至第二存储池进行存储。
在文件聚合过程中,聚合文件中各个文件添加携带上了聚合文件的标识信息。进而,当需要访问聚合文件中任意文件时,可根据该标识信息,唯一地确定出其所属的聚合文件。
以上,为本申请实施例提供的文件存储方法。该方法根据分层存储策略将文件分层存储,对于存储至第一存储池的待存储文件,当其于第一存储池中的时间达到存储时间限值时,需将其转移至文件存储速度较慢的第二存储池中,并在转移时对待存储文件进行聚合,形成聚合文件,最终将聚合文件转移到第二存储池中。对文件进行分层存储的方式能够有效提高小文件或特定类型文件的文件存储速度。另外,文件聚合时各个文件携带了其所属的聚合文件的标识信息,进而当需要访问聚合文件中任意文件时,可利用此标识信息,唯一地确定出其所属的聚合文件。由此可见,根据本实施例提供的方法对文件进行存储,有利于后续快速便捷地对文件进行访问。
在第一实施例的基础上,本申请还提供了另一种文件存储方法。下面结合附图和第二实施例对该方法进行说明。
第二实施例
参见图2,该图为本申请实施例提供的文件存储方法流程图。
如图2所示,本实施例提供的文件存储方法,包括:
本实施例中,步骤201和步骤202分别于第一实施例步骤101和步骤102相同,相关描述可参见第一实施例,在此不再加以赘述。
步骤203:判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,将待存储文件加入迁移队列中。
步骤203的具体实施过程可以为:
由系统存储模块的扫描线程扫描第一存储池中的文件,将达到存储时间限值的文件加入迁移队列中。迁移队列中的文件为待迁移至第二存储池中的文件。
步骤204:将所述迁移队列中的所述待存储文件与其它文件的数据读取到缓存中,在缓存中将所述数据进行聚合,以聚合后的数据作为聚合文件的数据,将所述聚合文件的数据下刷到所述第二存储池中。
步骤204的具体实施过程可以为:
由系统存储模块的迁移线程检查迁移队列,查看迁移队列中是否有待迁移的文件,如果有,迁移线程将迁移队列中的文件迁移到第二存储池。
在具体迁移和聚合过程中,首先需要将迁移队列中文件的数据读取到缓存中,对缓存中的数据进行聚合。本实施例中预先设置了聚合文件的文件大小上限,即预设聚合容量阈值,如果多个待聚合的文件容量超出预设聚合容量阈值,则需要重新建立一个聚合文件。
例如,迁移队列中待迁移并进行聚合的文件包括:待存储文件、文件A、文件B、文件C和文件D,其文件大小分别为0.5M、0.8M、0.2M、1M和1M。如果预设聚合容量阈值为2.5M,表明聚合文件的大小最高为2.5M,将待存储文件、文件A、文件B、文件C和文件D的数据读取到缓存中进行聚合时,由于待存储文件、文件A、文件B和文件C的大小累计已经达到2.5M,因此可以将待存储文件、文件A、文件B和文件C聚合为同一个聚合文件,而文件D则需与其它的文件建立一个新的聚合文件。
文件聚合后,聚合文件中的数据下刷到第二存储池中,具体下刷到第二存储池的机械硬盘中。进而,实现了待存储文件从第一存储池到第二存储池的迁移。
以上,为本实施例提供的文件存储方法。该方法通过存储模块的扫描线程确定文件在第一存储池中的存储时间是否以达到存储时间限值,并利用存储模块的迁移线程实现文件从第一存储池至第二存储池的迁移。对文件进行分层存储的方式能够有效提高小文件或特定类型文件的文件存储速度。另外,文件聚合时各个文件携带了其所属的聚合文件的标识信息,进而当需要访问聚合文件中任意文件时,可利用此标识信息,唯一地确定出其所属的聚合文件。由此可见,根据本实施例提供的方法对文件进行存储,有利于后续快速便捷地对文件进行访问。
基于前述实施例提供的文件存储方法,对应地,本申请还提供了一种文件访问方法。下面结合第三实施例与附图对该方法进行详细说明。
第三实施例
参见图3,该图为本申请实施例提供的文件访问方法流程图。
如图3所述,本实施例提供的文件访问方法,包括:
步骤301:获取客户端发送的文件访问请求。
其中,文件访问请求中包含待访问文件的存储路径。
步骤302:根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息。
需要说明的是,文件的元数据信息为描述文件数据的数据,包含例如:文件的创建时间、创建者和修改时间等描述数据属性的信息。
步骤303:根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息。
如果元数据信息中携带聚合文件的标识信息,表明该待访问文件是以聚合文件的形式存储的。由于该标识信息可用于唯一地确定出待访问文件所属的聚合文件,因此,根据该标识信息,可对应地获取该聚合文件的元数据信息。在本实施例中,标识信息可以是索引节点号ino。ino为索引节点inode表示,在文件系统中,每个文件的ino是唯一的,根据ino可获取对应文件的索引节点inode。
步骤304:判断所述聚合文件的数据是否已读取到缓存中,如果是,则执行步骤305;如果否,则执行步骤306。
对于待访问文件所属的聚合文件,其可能有两种读取状况:
第一种,由于构成聚合文件的文件曾被访问,因此,在其被访问时,聚合文件被读取到缓存中。也就是说,缓存中留有聚合文件的数据。
第二种,构成聚合文件的文件未曾被访问,聚合文件未曾读取到缓冲中,则在访问聚合文件中的待访问文件时,需要将聚合文件的数据读取到缓存中。
步骤305:从所述缓存中读取所述待访问文件的数据,并将数据发送至客户端。
对于步骤304提及的第一种读取状况,本次访问待访问文件并非对聚合文件的首次访问,可以直接从缓存中读取待访问文件的数据。不但如此,由于缓存中留有聚合文件的数据,需要访问聚合文件中任一文件时,均可从缓存中直接获取文件对应的数据。
步骤306:根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据,并将数据发送至客户端。
对于步骤304提及的第二种读取状况,本次访问待访问文件为对聚合文件的首次访问。聚合文件是存储于第二存储池的,关于第二存储池的概念和描述可参见第一实施例。在访问待访问文件时,需要将聚合文件的数据从第二存储池读取到缓存中,再从缓存中读取待访问文件的数据。
对于步骤305和步骤306所述的,从缓存中读取待访问文件的数据时,具体地,可以根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。读取待访问文件的数据时,可以从偏移量位置开始读取,根据由客户端接口传入的读取长度,读取客户端指定的长度,即可获得待访问文件的数据。
需要说明的是,如果客户端指定的读取长度大于待访问文件的实际大小,则按照待访问文件的实际大小进行读取。
以上为本申请实施例提供的文件访问方法。该方法在获取客户端发送的文件访问请求后,根据待访问文件的存储路径,获取待访问文件的元数据信息;其后,根据待访问文件的元数据信息中,携带的待访问文件所属的聚合文件的标识信息,获取聚合文件的元数据信息;判断聚合文件的数据是否已读取到缓存中,如果是,则从缓存中读取待访问文件的数据;如果否,则根据聚合文件的元数据信息,将聚合文件的数据从第二存储池读取到缓存中,再从缓存中读取待访问文件的数据;最终,将待访问文件的数据发送至客户端。
由于待访问文件是以聚合文件的形式存储的,如果聚合文件的数据曾被读取到缓存中,则在访问待访问文件时,可以直接从缓存中读取待访问文件的数据,而无需从存储池中读取。可见,该方法中,这种文件的聚合形式能够在文件访问时,大大提高了缓存命中率,提升文件的读取速度。
基于前述实施例提供的文件存储方法,本申请还提供一种文件存储装置,下面结合附图和实施例对该装置进行详细描述。
第四实施例
参见图4,该图为本申请实施例提供的文件存储装置的结构示意图。
如图4所示,本实施例提供的文件存储装置40,包括:存储请求获取单元401、第一存储单元402、存储时间判断单元403和第二存储单元404。
其中,存储请求获取单元401,用于获取客户端发送的文件存储请求;所述文件存储请求中包含待存储文件的文件类型和文件大小;
第一存储单元402,用于根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;
存储时间判断单元403,用于判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;
第二存储单元404,用于将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息。
以上,为本实施例提供的文件存储装置。该装置通过存储模块的扫描线程确定文件在第一存储池中的存储时间是否以达到存储时间限值,并利用存储模块的迁移线程实现文件从第一存储池至第二存储池的迁移。对文件进行分层存储的方式能够有效提高小文件或特定类型文件的文件存储速度。另外,文件聚合时各个文件携带了其所属的聚合文件的标识信息,进而当需要访问聚合文件中任意文件时,可利用此标识信息,唯一地确定出其所属的聚合文件。由此可见,根据本实施例提供的装置对文件进行存储,有利于后续快速便捷地对文件进行访问。
作为一种可能的实现方式,本实施例中,存储时间判断单元403包括迁移确定子单元,迁移确定子单元用于将所述待存储文件加入迁移队列中。
需要说明的是,所述迁移队列中的文件为待迁移至第二存储池的文件。
作为一种可能的实现方式,本实施例中,第二存储单元404包括迁移与聚合子单元,所述迁移与聚合子单元,用于将所述迁移队列中的所述待存储文件与其它文件的数据读取到缓存中,在缓存中将所述数据进行聚合,以聚合后的数据作为聚合文件的数据,将所述聚合文件的数据下刷到所述第二存储池中。
需要说明的是,所述待存储文件的文件大小与所述其它文件的文件大小之和小于或等于预设聚合容量阈值,所述预设聚合容量阈值为所述聚合文件的文件大小上限。
基于前述实施例提供的文件访问方法,本申请还提供一种文件访问装置,下面结合附图和实施例对该装置进行详细描述。
第五实施例
参见图5,该图为本申请实施例提供的文件访问装置的结构示意图。
如图5所示,本实施例提供的文件访问装置50包括:访问请求获取单元501、第一元数据获取单元502、第二元数据获取单元503、判断与数据读取单元504和文件发送单元505。
其中,访问请求获取单元501,用于获取客户端发送的文件访问请求;所述文件访问请求中包含待访问文件的存储路径;
第一元数据获取单元502,用于根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;
第二元数据获取单元503,用于根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;
判断与数据读取单元504,用于判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;
文件发送单元505,用于将所述待访问文件的数据发送至客户端。
以上为本申请实施例提供的文件访问装置。该装置能够具备以下功能:在获取客户端发送的文件访问请求后,根据待访问文件的存储路径,获取待访问文件的元数据信息;根据待访问文件的元数据信息中,携带的待访问文件所属的聚合文件的标识信息,获取聚合文件的元数据信息;判断聚合文件的数据是否已读取到缓存中,如果是,则从缓存中读取待访问文件的数据;如果否,则根据聚合文件的元数据信息,将聚合文件的数据从第二存储池读取到缓存中,再从缓存中读取待访问文件的数据;将待访问文件的数据发送至客户端。
由于待访问文件是以聚合文件的形式存储的,如果聚合文件的数据曾被读取到缓存中,则在访问待访问文件时,可以直接从缓存中读取待访问文件的数据,而无需从存储池中读取,大大提高了缓存命中率。可见,该装置在文件访问时,能够利用这种文件的聚合形式,快速访问文件数据,文件读取性能得到有效提高。
作为一种可能的实现方式,本实施例中,所述判断与数据读取单元504,可以包括:数据读取子单元,用于根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。
基于前述实施例提供的文件存储和访问方法,以及文件存储和访问装置,本申请还进一步提出一种文件存储器。下面结合实施例和附图对该存储器的结构和功能进行详细描述。
第六实施例
参见图6,该图为本申请实施例提供的文件存储器的结构示意图。
如图6所示,本市实施例提供的文件存储器60,包括:存储模块601、访问模块602、第一存储池603和第二存储池604。
其中,存储模块601,用于获取客户端发送的文件存储请求,所述文件存储请求中包含待存储文件的文件类型和文件大小;根据分层存储策略,将所述待存储文件存储至第一存储池603;所述分层存储策略包含容许存入所述第一存储池603的文件类型、文件大小和存储时间限值;判断所述待存储文件在所述第一存储池603的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池604;所述第二存储池604的文件存储速度低于所述第一存储池603的文件存储速度;将所述待存储文件与其它待迁移至所述第二存储池604的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池604;所述聚合文件中各个文件携带所述聚合文件的标识信息。
访问模块602,用于获取客户端发送的文件访问请求,所述文件访问请求中包含待访问文件的存储路径;根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池604读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;将所述待访问文件的数据发送至客户端。
以上为本申请实施例提供的文件存储器。该文件存储器,通过将待存储的文件存储至第一存储池中,提高了文件的写入速度;此外,在文件迁移时对待存储的文件进行聚合,进而在访问文件时能够读取整个聚合文件到缓存中,当再次读取聚合文件中的任意文件时即可从缓存中直接读取文件数据,由此提升了缓存命中率和文件访问速度。
基于前述实施例提供的文件存储和访问方法,以及文件存储器,本申请还提供以中文件存储和访问系统。下面结合附图和实施例对该系统的结构和功能进行说明。
第七实施例
参见图7,该图为本申请实施例提供的文件存储和访问系统的结构示意图。
如图7所示,本实施例提供的文件存储和访问系统70,包括:
客户端701,以及文件存储器60。
其中,所述客户端701,用于向所述文件存储器60发送文件存储请求,和/或,向所述文件存储器60发送文件访问请求,并接收所述文件存储器60发送的待访问文件的数据。
关于文件存储器60的结构和功能详细可参见第六实施例,本系统描述中不再加以赘述。
以上,为本实施例提供的文件存储和访问系统。该系统中,当客户端需要存储文件时,文件存储器的存储模块根据分层存储策略将文件分层存储,对于存储至第一存储池的待存储文件,当其于第一存储池中的时间达到存储时间限值时,需将其转移至文件存储速度较慢的第二存储池中,并在转移时对待存储文件进行聚合,形成聚合文件,最终将聚合文件转移到第二存储池中。待存储文件上携带了聚合文件的标识信息。
当客户端需要访问文件时,若待访问文件所属的聚合文件曾被读取到缓存中,则文件存储器的访问模块可根据待访问文件的元数据信息中携带的所属聚合文件的标识信息,从缓存中直接读取待访问文件的数据,再将待访问文件的数据发送至客户端。
由此可见,本申请提供的文件存储和访问系统,通过将待存储的文件存储至第一存储池中,提高了文件的写入速度;此外,在文件迁移时对待存储的文件进行聚合,进而在访问文件时能够读取整个聚合文件到缓存中,当再次读取聚合文件中的任意文件时即可从缓存中直接读取文件数据,由此提升了缓存命中率和文件访问速度。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种文件存储方法,其特征在于,所述方法包括:
获取客户端发送的文件存储请求;所述文件存储请求中包含待存储文件的文件类型和文件大小;
根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;
判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;
将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待存储文件待迁移至第二存储池,具体包括:
将所述待存储文件加入迁移队列中;所述迁移队列中的文件为待迁移至第二存储池的文件。
3.根据权利要求2所述的方法,其特征在于,所述将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池,具体包括:
将所述迁移队列中的所述待存储文件与其它文件的数据读取到缓存中,在缓存中将所述数据进行聚合,以聚合后的数据作为聚合文件的数据,将所述聚合文件的数据下刷到所述第二存储池中;所述待存储文件的文件大小与所述其它文件的文件大小之和小于或等于预设聚合容量阈值,所述预设聚合容量阈值为所述聚合文件的文件大小上限。
4.一种文件访问方法,其特征在于,所述方法包括:
获取客户端发送的文件访问请求;所述文件访问请求中包含待访问文件的存储路径;
根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;
根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;
判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;
将所述待访问文件的数据发送至客户端。
5.根据权利要求4所述的方法,其特征在于,所述从所述缓存中读取所述待访问文件的数据,具体包括:
根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。
6.一种文件存储装置,其特征在于,所述装置包括:
存储请求获取单元,用于获取客户端发送的文件存储请求;所述文件存储请求中包含待存储文件的文件类型和文件大小;
第一存储单元,用于根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;
存储时间判断单元,用于判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;
第二存储单元,用于将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息。
7.一种文件访问装置,其特征在于,所述装置包括:
访问请求获取单元,用于获取客户端发送的文件访问请求;所述文件访问请求中包含待访问文件的存储路径;
第一元数据获取单元,用于根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;
第二元数据获取单元,用于根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;
判断与数据读取单元,用于判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;
文件发送单元,用于将所述待访问文件的数据发送至客户端。
8.根据权利要求7所述的装置,其特征在于,所述判断与数据读取单元,包括:
数据读取子单元,用于根据所述标识信息中包含的所述待访问文件在所述聚合文件中的偏移量,从所述缓存中读取所述待访问文件的数据。
9.一种文件存储器,其特征在于,所述文件存储器包括:第一存储池、第二存储池、存储模块和访问模块;
所述存储模块,用于获取客户端发送的文件存储请求,所述文件存储请求中包含待存储文件的文件类型和文件大小;根据分层存储策略,将所述待存储文件存储至第一存储池;所述分层存储策略包含容许存入所述第一存储池的文件类型、文件大小和存储时间限值;判断所述待存储文件在所述第一存储池的存储时间是否达到所述存储时间限值,如果是,确定所述待存储文件待迁移至第二存储池;所述第二存储池的文件存储速度低于所述第一存储池的文件存储速度;将所述待存储文件与其它待迁移至所述第二存储池的文件进行聚合,得到聚合文件,并将所述聚合文件迁移至所述第二存储池;所述聚合文件中各个文件携带所述聚合文件的标识信息;
所述访问模块,用于获取客户端发送的文件访问请求,所述文件访问请求中包含待访问文件的存储路径;根据所述待访问文件的存储路径,获取所述待访问文件的元数据信息;根据所述待访问文件的元数据信息中,携带的所述待访问文件所属的聚合文件的标识信息,获取所述聚合文件的元数据信息;判断所述聚合文件的数据是否已读取到缓存中,如果是,则从所述缓存中读取所述待访问文件的数据;如果否,则根据所述聚合文件的元数据信息,将所述聚合文件的数据从第二存储池读取到所述缓存中,再从所述缓存中读取所述待访问文件的数据;将所述待访问文件的数据发送至客户端。
10.一种文件存储和访问系统,其特征在于,所述文件存储和访问系统,包括:客户端,和如权利要求9所述的文件存储器;其中,
所述客户端,用于向所述文件存储器发送文件存储请求,
和/或,
向所述文件存储器发送文件访问请求,并接收所述文件存储器发送的待访问文件的数据。
CN201810931029.XA 2018-08-15 2018-08-15 一种文件存储和访问方法、装置、文件存储器及系统 Pending CN109101197A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810931029.XA CN109101197A (zh) 2018-08-15 2018-08-15 一种文件存储和访问方法、装置、文件存储器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810931029.XA CN109101197A (zh) 2018-08-15 2018-08-15 一种文件存储和访问方法、装置、文件存储器及系统

Publications (1)

Publication Number Publication Date
CN109101197A true CN109101197A (zh) 2018-12-28

Family

ID=64849991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810931029.XA Pending CN109101197A (zh) 2018-08-15 2018-08-15 一种文件存储和访问方法、装置、文件存储器及系统

Country Status (1)

Country Link
CN (1) CN109101197A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764708A (zh) * 2019-10-25 2020-02-07 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及存储介质
CN114415977A (zh) * 2022-03-29 2022-04-29 阿里云计算有限公司 访问存储池的方法以及分布式存储系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101563A (zh) * 2007-07-23 2008-01-09 清华大学 基于海量数据分级存储系统的迁移管理方法
CN102004783A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 网管性能非粒度数据快速存储的方法及装置
CN103020255A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 分级存储方法和装置
CN103838681A (zh) * 2012-11-27 2014-06-04 联想(北京)有限公司 存储装置和数据文件存取方法
CN104123237A (zh) * 2014-06-24 2014-10-29 中电科华云信息技术有限公司 海量小文件分级存储方法及系统
US9032403B1 (en) * 2010-05-06 2015-05-12 Dell Software Inc. Systems and methods for instant provisioning of virtual machine files
CN105404691A (zh) * 2015-12-14 2016-03-16 曙光信息产业股份有限公司 一种文件存储的方法及装置
CN105760114A (zh) * 2016-02-05 2016-07-13 浪潮(北京)电子信息产业有限公司 一种并行文件系统资源管理方法、装置和系统
CN106709025A (zh) * 2016-12-28 2017-05-24 郑州云海信息技术有限公司 更新聚合对象的方法及装置
CN107391280A (zh) * 2017-07-31 2017-11-24 郑州云海信息技术有限公司 一种小文件的接收和存储方法及装置
CN107562915A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 读取小文件的方法、装置和设备及计算机可读存储介质
CN107844271A (zh) * 2017-10-27 2018-03-27 郑州云海信息技术有限公司 一种分级存储的方法、装置及计算机可读存储介质
CN108021702A (zh) * 2017-12-26 2018-05-11 百度在线网络技术(北京)有限公司 基于LSM-tree的分级存储方法、装置、OLAP数据库系统及介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101563A (zh) * 2007-07-23 2008-01-09 清华大学 基于海量数据分级存储系统的迁移管理方法
US9032403B1 (en) * 2010-05-06 2015-05-12 Dell Software Inc. Systems and methods for instant provisioning of virtual machine files
CN102004783A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 网管性能非粒度数据快速存储的方法及装置
CN103838681A (zh) * 2012-11-27 2014-06-04 联想(北京)有限公司 存储装置和数据文件存取方法
CN103020255A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 分级存储方法和装置
CN104123237A (zh) * 2014-06-24 2014-10-29 中电科华云信息技术有限公司 海量小文件分级存储方法及系统
CN105404691A (zh) * 2015-12-14 2016-03-16 曙光信息产业股份有限公司 一种文件存储的方法及装置
CN105760114A (zh) * 2016-02-05 2016-07-13 浪潮(北京)电子信息产业有限公司 一种并行文件系统资源管理方法、装置和系统
CN106709025A (zh) * 2016-12-28 2017-05-24 郑州云海信息技术有限公司 更新聚合对象的方法及装置
CN107391280A (zh) * 2017-07-31 2017-11-24 郑州云海信息技术有限公司 一种小文件的接收和存储方法及装置
CN107562915A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 读取小文件的方法、装置和设备及计算机可读存储介质
CN107844271A (zh) * 2017-10-27 2018-03-27 郑州云海信息技术有限公司 一种分级存储的方法、装置及计算机可读存储介质
CN108021702A (zh) * 2017-12-26 2018-05-11 百度在线网络技术(北京)有限公司 基于LSM-tree的分级存储方法、装置、OLAP数据库系统及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764708A (zh) * 2019-10-25 2020-02-07 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及存储介质
CN114415977A (zh) * 2022-03-29 2022-04-29 阿里云计算有限公司 访问存储池的方法以及分布式存储系统

Similar Documents

Publication Publication Date Title
CN107169083B (zh) 公安卡口海量车辆数据存储与检索方法及装置、电子设备
CN113296696B (zh) 一种数据的访问方法、计算设备及存储介质
US11347443B2 (en) Multi-tier storage using multiple file sets
US8510499B1 (en) Solid state drive caching using memory structures to determine a storage space replacement candidate
CN110647497A (zh) 一种基于hdfs的高性能文件存储与管理系统
EP3869316A1 (en) Hybrid storage
US10884926B2 (en) Method and system for distributed storage using client-side global persistent cache
WO2020098654A1 (zh) 基于云存储的数据存储方法、装置和存储介质
US9727479B1 (en) Compressing portions of a buffer cache using an LRU queue
CN107817946B (zh) 用于混合存储设备读写数据的方法以及装置
CN109522283A (zh) 一种重复数据删除方法及系统
US11449256B2 (en) Method for accelerating image storing and retrieving differential latency storage devices based on access rates
CN107704203A (zh) 聚合大文件的删除方法、装置、设备及计算机存储介质
CN106528451A (zh) 针对小文件的二级缓存预取的云存储框架及构建方法
CN103501319A (zh) 一种低延迟的面向小文件的分布式存储系统
CN109101197A (zh) 一种文件存储和访问方法、装置、文件存储器及系统
CN106844491B (zh) 一种临时数据的写入、读取方法及写入、读取装置
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
CN115114232A (zh) 一种历史版本对象列举方法、装置及其介质
CN113448946B (zh) 数据迁移方法及装置、电子设备
CN111078143A (zh) 基于段映射进行数据布局和调度的混合存储方法及系统
CN101783814A (zh) 海量存储系统的元数据存储方法
CN113778341A (zh) 遥感数据分布式存储方法和装置及遥感数据读取方法
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
CN115904263B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181228