CN112540954B - 以目录单位的多级存储构建与在线迁移方法 - Google Patents

以目录单位的多级存储构建与在线迁移方法 Download PDF

Info

Publication number
CN112540954B
CN112540954B CN201910897716.9A CN201910897716A CN112540954B CN 112540954 B CN112540954 B CN 112540954B CN 201910897716 A CN201910897716 A CN 201910897716A CN 112540954 B CN112540954 B CN 112540954B
Authority
CN
China
Prior art keywords
file
directory
module
data object
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.)
Active
Application number
CN201910897716.9A
Other languages
English (en)
Other versions
CN112540954A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910897716.9A priority Critical patent/CN112540954B/zh
Publication of CN112540954A publication Critical patent/CN112540954A/zh
Application granted granted Critical
Publication of CN112540954B publication Critical patent/CN112540954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof

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

本发明公开了一种以目录单位的多级存储构建与在线迁移方法,包括以下步骤:作业对存储进行读写IO操作请求;Transparent模块接收来自数据库的存储文件状态信息,此存储文件状态信息包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间;以及发布待加速的目录;根据文件状态判断IO操作请求的文件数据对象是否在加速目录表中,去全局文件系统中读写文件数据对象;如果是,判断文件数据对象是否在透明缓存中,去透明缓存中读写文件数据对象;如果不是,去全局文件系统中读写文件数据对象,执行下一步;如果是读写存储于透明缓存的文件数据对象,读写后,进一步执行以下步骤。本发明满足高IO的性能要求,支持数据的在线迁移,以便于为用户提供更好的存储体验。

Description

以目录单位的多级存储构建与在线迁移方法
技术领域
本发明属于计算机多级存储方法技术领域,尤其涉及一种以目录单位的多级存储构建与在线迁移方法。
背景技术
在IO性能要求高的应用程序中,为了提升IO性能,一般有三种途径,一是优化底层文件系统,但是优化文件系统对系统开发者的要求较高,几乎已到瓶颈;二是采用例如NvmeSSD、3DXpoint等高速存储介质,但是在面对海量数据时,使用这些存储介质的成本就相当可观;三是采用分级存储方式,用户只跟高速存储设备交互,然后利用数据迁移工具将数据迁移到低性能的存储设备上,但是当用户想再次访问迁走的数据时,就要手动将数据迁回。高并发IO程序的性能要求对底层存储系统提出了相当大的挑战,分布式文件系统和高速存储介质的发展缓解了这一问题,但是性能和成本这个矛盾仍然存在。对于小企业而言,采用高速存储设备的陈本无疑是不可忽视的,分级存储的理念可以缓解了这一矛盾,但是用户仍需与更底层的低速设备交互。
发明内容
本发明目的在于提供一种以目录单位的多级存储构建与在线迁移方法,该多级存储构建与在线迁移方法满足高IO的性能要求,支持数据的在线迁移,以便于为用户提供更好的存储体验。
为达到上述目的,本发明采用的技术方案是:一种以目录单位的多级存储构建与在线迁移方法,其特征在于:所述多级存储构建与在线迁移方法基于客户端模块、服务端模块、透明缓存代理模块、数据库、第一POSIX模块、第二POSIX模块、透明缓存和全局文件系统,所述第一POSIX模块位于透明缓存代理模块和透明缓存模块之间,所述第二POSIX模块位于透明缓存代理模块和全局文件系统之间,所述数据库与透明缓存代理模块双向连接;所述全局文件系统由大量盘阵或存储服务器构建的一个大容量存储系统,支持数据分散存储和多客户端并发访问,所述透明缓存模块由高速存储介质构建的一个存储系统,对用户是无感的,用户只能看到全局文件系统;
客户端模块,用于作为通信连接的发起方,主动与服务端模块建立通信连接以完成数据传输,并提供一个挂载目录,以便用户使用远程文件系统;
服务端模块,用于接收客户端的连接请求,与客户端建立连接、用于存放加速目录表中有对应记录的请求的加速目录队列和用于存放加速目录表中无对应记录的请求的普通目录队列;数据库通过发布订阅机制将待加速的目录发布到一个频道中,各服务端模块订阅该频道,一旦该频道中有新的待加速的目录就将该目录放置到加速目录表中;
透明缓存代理模块,配置有加速目录表,接收来自解析来自服务端模块的用户请求,根据加速目录表对来自服务端模块的用户请求进行解析并分类,如果请求的目录在加速目录表中则放置到加速目录队列中;如果请求的目录不在加速目录表中放置普通目录队列中,并判断请求针对的文件数据对象是否需要迁移并对数据库的文件状态进行更新,文件的状态用于文件的迁移,主要包含就绪、迁移、中断、迁移完成四种状态,当用户关闭文件的时候,将文件状态变更为就绪状态,迁移线程开始文件迁移时,将文件状态变更为迁移状态,当迁移过程中迁移文件临时有文件操作时,将文件状态变更为中断状态,当文件再次关闭之后再将状态变更为就绪状态,数据迁移完成之后变更为迁移完成状态,等待删除;实时检查文件的状态并更新数据库中的文件状态信息;
数据库,用于存储位置、文件状态信息并发布来自用户的待加速的目录;
第一POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,输出透明缓存的目录;
第二POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,选择底层的输出全局文件系统的目录;
包括以下步骤:
S1、作业对存储进行读写IO操作请求;
S2、客户端接收到用户IO请求,根据目录长度、文件长度是否满足要求判断请求的合法性,如果合法则将请求发送到服务端,否则返回给用户程序相应的错误码;
S3、服务端接收到客户端发送过来的IO请求,转发到透明缓存代理模块;
S4、透明缓存代理模块接收来自数据库的存储文件状态信息,此存储文件状态信息包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间;以及订阅位于透明缓存代理模块的加速目录表;
S5、根据文件IO请求携带的目录信息状态判断IO操作请求的文件数据对象是否在加速目录表中,如果是,执行下一步,否则,去全局文件系统中读写文件数据对象;
S6、当用户请求的目录在加速目录表中,就查询数据库,获取位置信息,根据位置信息判断文件数据对象是否在透明缓存中,如果是,去透明缓存中读写文件数据对象;如果不是,去全局文件系统中读写文件数据对象;
S7、如果是读写存储于透明缓存的文件数据对象,读写后,进一步执行以下步骤:
S71、判断针对所述文件数据对象当前次被访问时间与上一次被访问时间的间隔是否超过阈值,如果未超过,维持当前该当前文件数据对象的当前存储状态,否则,执行下一步;
S72、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到全局文件系统内存储;
S8、如果是读写存储于全局文件系统的文件数据对象,读写后,进一步执行以下步骤:
S81、判断针对所述文件数据对象被连续访问两次以上,执行下一步,否则维持当前该当前文件数据对象的当前存储状态;
S82、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到透明缓存内存储。
上述技术方案中进一步改进的技术方案如下:
1. 上述方案中,所述文件数据对象为存储文件内容的数据,在并行文件系统中,通常分散存储在多个服务器上。
2. 上述方案中,所述S72和S82中的文件操作为对文件读写或者文件状态获取。
3. 上述方案中,所述文件的迁移状态包括就绪、迁移、中断、迁移完成。
4. 上述方案中,所述客户端模块和服务端模块之间的通信协议为tcp或者InfiniBand。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明以目录单位的多级存储构建与在线迁移方法,其根据指定的信息将用户的IO请求分发到高速缓存与全局文件系统,同时数据在高速缓存与全局文件系统之间相互迁移,力求做到热数据在高速存储上访问,有效降低了对高速存储设备的容量需要,不依赖于具体的底层文件系统,具有很强的通用性,而且系统稳定,IO开销小,开发难度较低,满足高IO的性能要求,支持数据的在线迁移,提高了缓存资源的利用率,以便于为用户提供更好的存储体验。
附图说明
附图1为本发明基本架构示意图;
附图2为本发明基本模块流程示意图;
附图3为本发明的工作流程图;
附图4为本发明文件的迁移状态示意图。
具体实施方式
下面结合实施例对本发明作进一步描述:
实施例1:一种以目录单位的多级存储构建与在线迁移方法,其特征在于:所述多级存储构建与在线迁移方法基于客户端模块、服务端模块、透明缓存代理模块、数据库、第一POSIX模块、第二POSIX模块、透明缓存和全局文件系统,所述第一POSIX模块位于透明缓存代理模块和透明缓存模块之间,所述第二POSIX模块位于透明缓存代理模块和全局文件系统之间,所述数据库与透明缓存代理模块双向连接;所述全局文件系统由大量盘阵或存储服务器构建的一个大容量存储系统,支持数据分散存储和多客户端并发访问,所述透明缓存模块由高速存储介质构建的一个存储系统,对用户是无感的,用户只能看到全局文件系统;
客户端模块,用于作为通信连接的发起方,主动与服务端模块建立通信连接以完成数据传输,并提供一个挂载目录,以便用户使用远程文件系统;
服务端模块,用于接收客户端的连接请求,与客户端建立连接、用于存放加速目录表中有对应记录的请求的加速目录队列和用于存放加速目录表中无对应记录的请求的普通目录队列;数据库通过发布订阅机制将待加速的目录发布到一个频道中,各服务端模块订阅该频道,一旦该频道中有新的待加速的目录就将该目录放置到加速目录表中;
透明缓存代理模块,配置有加速目录表,接收来自解析来自服务端模块的用户请求,根据加速目录表对来自服务端模块的用户请求进行解析并分类,如果请求的目录在加速目录表中则放置到加速目录队列中;如果请求的目录不在加速目录表中放置普通目录队列中,并判断请求针对的文件数据对象是否需要迁移并对数据库的文件状态进行更新,文件的状态用于文件的迁移,主要包含就绪、迁移、中断、迁移完成四种状态,当用户关闭文件的时候,将文件状态变更为就绪状态,迁移线程开始文件迁移时,将文件状态变更为迁移状态,当迁移过程中迁移文件临时有文件操作时,将文件状态变更为中断状态,当文件再次关闭之后再将状态变更为就绪状态,数据迁移完成之后变更为迁移完成状态,等待删除;实时检查文件的状态并更新数据库中的文件状态信息;
数据库,用于存储位置、文件状态信息并发布来自用户的待加速的目录;
第一POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,输出透明缓存的目录;
第二POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,选择底层的输出全局文件系统的目录;
包括以下步骤:
S1、作业对存储进行读写IO操作请求;
S2、客户端接收到用户IO请求,根据目录长度、文件长度是否满足要求判断请求的合法性,如果合法则将请求发送到服务端,否则返回给用户程序相应的错误码;
S3、服务端接收到客户端发送过来的IO请求,转发到透明缓存代理模块;
S4、透明缓存代理模块接收来自数据库的存储文件状态信息,此存储文件状态信息包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间;以及订阅位于透明缓存代理模块的加速目录表;
S5、根据文件IO请求携带的目录信息状态判断IO操作请求的文件数据对象是否在加速目录表中,如果是,执行下一步,否则,去全局文件系统中读写文件数据对象;
S6、当用户请求的目录在加速目录表中,就查询数据库,获取位置信息,根据位置信息判断文件数据对象是否在透明缓存中,如果是,去透明缓存中读写文件数据对象;如果不是,去全局文件系统中读写文件数据对象;
S7、如果是读写存储于透明缓存的文件数据对象,读写后,进一步执行以下步骤:
S71、判断针对所述文件数据对象当前次被访问时间与上一次被访问时间的间隔是否超过阈值,如果未超过,维持当前该当前文件数据对象的当前存储状态,否则,执行下一步;
S72、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到全局文件系统内存储;
S8、如果是读写存储于全局文件系统的文件数据对象,读写后,进一步执行以下步骤:
S81、判断针对所述文件数据对象被连续访问两次以上,执行下一步,否则维持当前该当前文件数据对象的当前存储状态;
S82、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到透明缓存内存储。
上述文件数据对象为存储文件内容的数据,在并行文件系统中,通常分散存储在多个服务器上。
上述文件的迁移状态包括就绪、迁移、中断、迁移完成。
上述客户端模块和服务端模块之间的通信协议为tcp。
实施例2:一种以目录单位的多级存储构建与在线迁移方法,其特征在于:所述多级存储构建与在线迁移方法基于客户端模块、服务端模块、透明缓存代理模块、数据库、第一POSIX模块、第二POSIX模块、透明缓存和全局文件系统,所述第一POSIX模块位于透明缓存代理模块和透明缓存模块之间,所述第二POSIX模块位于透明缓存代理模块和全局文件系统之间,所述数据库与透明缓存代理模块双向连接;所述全局文件系统由大量盘阵或存储服务器构建的一个大容量存储系统,支持数据分散存储和多客户端并发访问,所述透明缓存模块由高速存储介质构建的一个存储系统,对用户是无感的,用户只能看到全局文件系统;
客户端模块,用于作为通信连接的发起方,主动与服务端模块建立通信连接以完成数据传输,并提供一个挂载目录,以便用户使用远程文件系统;
服务端模块,用于接收客户端的连接请求,与客户端建立连接、用于存放加速目录表中有对应记录的请求的加速目录队列和用于存放加速目录表中无对应记录的请求的普通目录队列;数据库通过发布订阅机制将待加速的目录发布到一个频道中,各服务端模块订阅该频道,一旦该频道中有新的待加速的目录就将该目录放置到加速目录表中;
透明缓存代理模块,配置有加速目录表,接收来自解析来自服务端模块的用户请求,根据加速目录表对来自服务端模块的用户请求进行解析并分类,如果请求的目录在加速目录表中则放置到加速目录队列中;如果请求的目录不在加速目录表中放置普通目录队列中,并判断请求针对的文件数据对象是否需要迁移并对数据库的文件状态进行更新,文件的状态用于文件的迁移,主要包含就绪、迁移、中断、迁移完成四种状态,当用户关闭文件的时候,将文件状态变更为就绪状态,迁移线程开始文件迁移时,将文件状态变更为迁移状态,当迁移过程中迁移文件临时有文件操作时,将文件状态变更为中断状态,当文件再次关闭之后再将状态变更为就绪状态,数据迁移完成之后变更为迁移完成状态,等待删除;实时检查文件的状态并更新数据库中的文件状态信息;
数据库,用于存储位置、文件状态信息并发布来自用户的待加速的目录;
第一POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,输出透明缓存的目录;
第二POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,选择底层的输出全局文件系统的目录;
包括以下步骤:
S1、作业对存储进行读写IO操作请求;
S2、客户端接收到用户IO请求,根据目录长度、文件长度是否满足要求判断请求的合法性,如果合法则将请求发送到服务端,否则返回给用户程序相应的错误码;
S3、服务端接收到客户端发送过来的IO请求,转发到透明缓存代理模块;
S4、透明缓存代理模块接收来自数据库的存储文件状态信息,此存储文件状态信息包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间;以及订阅位于透明缓存代理模块的加速目录表;
S5、根据文件IO请求携带的目录信息状态判断IO操作请求的文件数据对象是否在加速目录表中,如果是,执行下一步,否则,去全局文件系统中读写文件数据对象;
S6、当用户请求的目录在加速目录表中,就查询数据库,获取位置信息,根据位置信息判断文件数据对象是否在透明缓存中,如果是,去透明缓存中读写文件数据对象;如果不是,去全局文件系统中读写文件数据对象;
S7、如果是读写存储于透明缓存的文件数据对象,读写后,进一步执行以下步骤:
S71、判断针对所述文件数据对象当前次被访问时间与上一次被访问时间的间隔是否超过阈值,如果未超过,维持当前该当前文件数据对象的当前存储状态,否则,执行下一步;
S72、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到全局文件系统内存储;
S8、如果是读写存储于全局文件系统的文件数据对象,读写后,进一步执行以下步骤:
S81、判断针对所述文件数据对象被连续访问两次以上,执行下一步,否则维持当前该当前文件数据对象的当前存储状态;
S82、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到透明缓存内存储。
上述S72和S82中的文件操作为对文件读写或者文件状态获取。
上述文件的迁移状态包括就绪、迁移、中断、迁移完成。
上述客户端模块和服务端模块之间的通信协议为InfiniBand。
本发明上述内容进一步解释如下:
全局文件系统:由大量盘阵或存储服务器构建的一个大容量存储系统,支持数据分散存储和多客户端并发访问;
透明缓存:由高速存储介质构建的一个存储系统,对用户是无感的,用户只能看到全局文件系统;
IO:对存储进行读写操作;
文件操作:对文件读写、文件状态获取等一系列操作的统称;
文件元数据:管理文件的命名空间的数据,如文件名、访问权限、访问时间、数据布局等;
文件数据对象:存储文件内容的数据,在并行文件系统中,通常分散存储在多个服务器上。
热数据:用户经常访问的数据;
以目录为单位:用户使用高速存储是以目录为单位开启与关闭缓存。
本发明是建立一个中间代理层,根据指定的信息将用户的IO请求分发到高速缓存与全局文件系统,同时数据在高速缓存与全局文件系统之间相互迁移,力求做到热数据在高速存储上访问。
在存储系统中,数据一般以树状结构存储,目录为中间节点,文件为叶子节点。不同用户使用的目录也不同,因此本发明的基础是以目录为加速单元,针对IO性能要求高的用户,将其用户目录通过提供透明缓存加速,这样有效降低了对高速存储设备的容量需求,基本架构如附图1所示。
本发明所述中间代理采用了模块化堆栈式的设模型,将分发、状态更新、访问盘的选择功能设计成功能模块,可随时添加或删除,代理的多种功能可通过模块的简单组合来实现,大大简化了程序的开发流程。基本模块流程如图2所示:
其中透明缓存代理模块即Transparent模块是本发明的主要设计模块,主要实现功能如下:
1、连接数据库,记录文件存储位置、迁移状态、读写状态,读写状态表示文件是否有操作,文件被关闭之后如果没有再被打开就认为是没有操作,否则有操作,等信息;
2、透明缓存代理模块与数据库之间一直保持连接关系,Transparent模块需要及时向数据库更新文件位置信息、读写状态信息、迁移状态信息;在读写文件时从数据库中获取位置信息,迁移文件时从数据库中获取读写状态信息,访问时间信息等,判断是否满足迁移条件;可通过POSIX模块连接多个存储系统,并根据数据库中的位置信息决定在哪个存储系统读写文件;
3、多线程实现高速缓存与全局文件系统的数据迁移,同时更新相关信息到数据库;
4、订阅用户发布的缓存目录信息,即想要加速的用户工作目录;本发明的工作流程如图3所示。
本发明利用数据库存储文件的状态信息,包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间等,Transparent模块首先根据加速目录表判断文件读写是否被加速,如果不是直接从全局文件系统访问,如果在加速目录表中,根据位置信息判断是从加速缓存读写还是从全局文件系统读写,文件的迁移状态如图4所示。
采用上述以目录单位的多级存储构建与在线迁移方法时,其根据指定的信息将用户的IO请求分发到高速缓存与全局文件系统,同时数据在高速缓存与全局文件系统之间相互迁移,力求做到热数据在高速存储上访问,有效降低了对高速存储设备的容量需要,不依赖于具体的底层文件系统,具有很强的通用性,而且系统稳定,IO开销小,开发难度较低,满足高IO的性能要求,支持数据的在线迁移,提高了缓存资源的利用率,以便于为用户提供更好的存储体验。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种以目录单位的多级存储构建与在线迁移方法,其特征在于:所述多级存储构建与在线迁移方法基于客户端模块、服务端模块、透明缓存代理模块、数据库、第一POSIX模块、第二POSIX模块、透明缓存和全局文件系统,所述第一POSIX模块位于透明缓存代理模块和透明缓存模块之间,所述第二POSIX模块位于透明缓存代理模块和全局文件系统之间,所述数据库与透明缓存代理模块双向连接;所述全局文件系统由大量盘阵或存储服务器构建的一个大容量存储系统,支持数据分散存储和多客户端并发访问,所述透明缓存模块由高速存储介质构建的一个存储系统,对用户是无感的,用户只能看到全局文件系统;
客户端模块,用于作为通信连接的发起方,主动与服务端模块建立通信连接以完成数据传输,并提供一个挂载目录,以便用户使用远程文件系统;
服务端模块,用于接收客户端的连接请求,与客户端建立连接、用于存放加速目录表中有对应记录的请求的加速目录队列和用于存放加速目录表中无对应记录的请求的普通目录队列;数据库通过发布订阅机制将待加速的目录发布到一个频道中,各服务端模块订阅该频道,一旦该频道中有新的待加速的目录就将该目录放置到加速目录表中;
透明缓存代理模块,配置有加速目录表,接收来自解析来自服务端模块的用户请求,根据加速目录表对来自服务端模块的用户请求进行解析并分类,如果请求的目录在加速目录表中则放置到加速目录队列中;如果请求的目录不在加速目录表中放置普通目录队列中,并判断请求针对的文件数据对象是否需要迁移并对数据库的文件状态进行更新,文件的状态用于文件的迁移,主要包含就绪、迁移、中断、迁移完成四种状态,当用户关闭文件的时候,将文件状态变更为就绪状态,迁移线程开始文件迁移时,将文件状态变更为迁移状态,当迁移过程中迁移文件临时有文件操作时,将文件状态变更为中断状态,当文件再次关闭之后再将状态变更为就绪状态,数据迁移完成之后变更为迁移完成状态,等待删除;实时检查文件的状态并更新数据库中的文件状态信息;
数据库,用于存储位置、文件状态信息并发布来自用户的待加速的目录;
第一POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,输出透明缓存的目录;
第二POSIX模块,用于与底层文件系统中的透明缓存代理模块交互,选择底层的输出全局文件系统的目录;
包括以下步骤:
S1、作业对存储进行读写IO操作请求;
S2、客户端接收到用户IO请求,根据目录长度、文件长度是否满足要求判断请求的合法性,如果合法则将请求发送到服务端,否则返回给用户程序相应的错误码;
S3、服务端接收到客户端发送过来的IO请求,转发到透明缓存代理模块;
S4、透明缓存代理模块接收来自数据库的存储文件状态信息,此存储文件状态信息包括文件的位置、文件的读写状态、文件的迁移状态、文件的访问时间;以及订阅位于透明缓存代理模块的加速目录表;
S5、根据文件IO请求携带的目录信息状态判断IO操作请求的文件数据对象是否在加速目录表中,如果是,执行下一步,否则,去全局文件系统中读写文件数据对象;
S6、当用户请求的目录在加速目录表中,就查询数据库,获取位置信息,根据位置信息判断文件数据对象是否在透明缓存中,如果是,去透明缓存中读写文件数据对象;如果不是,去全局文件系统中读写文件数据对象;
S7、如果是读写存储于透明缓存的文件数据对象,读写后,进一步执行以下步骤:
S71、判断针对所述文件数据对象当前次被访问时间与上一次被访问时间的间隔是否超过阈值,如果未超过,维持当前文件数据对象的当前存储状态,否则,执行下一步;
S72、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到全局文件系统内存储;
S8、如果是读写存储于全局文件系统的文件数据对象,读写后,进一步执行以下步骤:
S81、判断针对所述文件数据对象被连续访问两次以上,执行下一步,否则维持当前文件数据对象的当前存储状态;
S82、如果有针对当前文件数据对象的文件操作,则迁移中断,否则,将当前次被访问的文件数据对象迁移到透明缓存内存储。
2.根据权利要求1所述的以目录单位的多级存储构建与在线迁移方法,其特征在于:所述文件数据对象为存储文件内容的数据,在并行文件系统中,通常分散存储在多个服务器上。
3.根据权利要求1所述的以目录单位的多级存储构建与在线迁移方法,其特征在于:所述S72和S82中的文件操作为对文件读写或者文件状态获取。
4.根据权利要求1所述的以目录单位的多级存储构建与在线迁移方法,其特征在于:所述文件的迁移状态包括就绪、迁移、中断、迁移完成。
5.根据权利要求1所述的以目录单位的多级存储构建与在线迁移方法,其特征在于:所述客户端模块和服务端模块之间的通信协议为tcp或者InfiniBand。
CN201910897716.9A 2019-09-23 2019-09-23 以目录单位的多级存储构建与在线迁移方法 Active CN112540954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910897716.9A CN112540954B (zh) 2019-09-23 2019-09-23 以目录单位的多级存储构建与在线迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910897716.9A CN112540954B (zh) 2019-09-23 2019-09-23 以目录单位的多级存储构建与在线迁移方法

Publications (2)

Publication Number Publication Date
CN112540954A CN112540954A (zh) 2021-03-23
CN112540954B true CN112540954B (zh) 2022-07-12

Family

ID=75012934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910897716.9A Active CN112540954B (zh) 2019-09-23 2019-09-23 以目录单位的多级存储构建与在线迁移方法

Country Status (1)

Country Link
CN (1) CN112540954B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416690A (zh) * 2021-12-22 2022-04-29 新华三大数据技术有限公司 文件存储到对象存储的数据迁移装置、方法和存储介质
CN114726835B (zh) * 2022-03-28 2022-12-02 慧之安信息技术股份有限公司 基于缓存技术的网关目录信息发送方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190005065A1 (en) * 2017-06-30 2019-01-03 Vmware, Inc. Cloud-scale file-based filesystem for hybrid cloud storage
CN109783438A (zh) * 2018-12-05 2019-05-21 南京华讯方舟通信设备有限公司 基于librados的分布式NFS系统及其构建方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190005065A1 (en) * 2017-06-30 2019-01-03 Vmware, Inc. Cloud-scale file-based filesystem for hybrid cloud storage
CN109783438A (zh) * 2018-12-05 2019-05-21 南京华讯方舟通信设备有限公司 基于librados的分布式NFS系统及其构建方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Mass Storage System Construction Method in a High Performance Computing Center》;YUNWEN GE 等;《2012 International Conference on Industrial Control and Electronics Engineering》;20121231;全文 *
《海量数据存储系统的高效数据分级机制》;李曼;《淮海工学院学报(自然科学版)》;20121231;第21卷(第4期);全文 *

Also Published As

Publication number Publication date
CN112540954A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
Yuan et al. A data dependency based strategy for intermediate data storage in scientific cloud workflow systems
CN102136003A (zh) 大规模分布式存储系统
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
CN106775446A (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
CN103338242B (zh) 一种基于多级缓存的混合云存储系统和方法
CN104317736B (zh) 一种分布式文件系统多级缓存实现方法
CN103020315A (zh) 一种基于主从分布式文件系统的海量小文件存储方法
CN102317926A (zh) 将高速存储装置作为缓存使用的存储系统
CN104184812B (zh) 一种基于私有云的多点数据传输方法
WO2006116571A2 (en) Conditional message delivery to holder of locks relating to a distributed locking manager
CN101375241A (zh) 集群文件系统中的有效数据管理
CN101616174A (zh) 一种存储系统io处理路径动态跟踪实现优化系统性能的方法
JPWO2011108695A1 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
US20120290595A1 (en) Super-records
US20120323851A1 (en) Distributed, asynchronous and fault-tolerant storage system
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
CN102521419A (zh) 分级存储的实现方法和系统
CN112540954B (zh) 以目录单位的多级存储构建与在线迁移方法
CN111309266B (zh) 一种基于ceph的分布式存储元数据系统日志优化系统与方法
CN103491155A (zh) 一种实现移动计算和获取移动数据的云计算方法及系统
CN111159176A (zh) 一种海量流数据的存储和读取的方法和系统
CN112860186A (zh) 一种千亿级别的对象存储桶的扩容方法
CN104158863A (zh) 基于事务级别全程高速缓冲的云存储机制
US10146833B1 (en) Write-back techniques at datastore accelerators
CN107346209B (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