CN104503924B - 一种分层存储***中的区域分配方法及装置 - Google Patents
一种分层存储***中的区域分配方法及装置 Download PDFInfo
- Publication number
- CN104503924B CN104503924B CN201410784622.8A CN201410784622A CN104503924B CN 104503924 B CN104503924 B CN 104503924B CN 201410784622 A CN201410784622 A CN 201410784622A CN 104503924 B CN104503924 B CN 104503924B
- Authority
- CN
- China
- Prior art keywords
- data block
- buffer area
- capacity
- storage system
- period
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分层存储***中的区域分配方法,用于解决没有较好的能够应对突发事件的存储方式的技术问题。所述方法包括:确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。本发明还公开了相应的装置。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种分层存储***中的区域分配方法及装置。
背景技术
自动分层存储(AST)技术,是在混合存储池中,按照一定的数据块粒度,对数据块进行周期性IO(Input Output)统计监控(例如统计每个数据块的访问次数等信息),当一个周期到达时,根据各个数据块上的统计信息,确定各数据块的冷热程度,并据此发起内部后台迁移操作,使得数据块在存储***中进行重排布。
自动分层存储基于统计信息,监控着数据块的访问情况,能够较为准确的在长期业务模型下正确的将数据放置在正确的介质中。
然而,由于自动分层存储的统计周期较长,导致该技术应对突发热点的能力较弱。例如,在统计过程中,若有数据块在短时间内突然访问次数增多,按照自动分层存储技术的统计方式,是凸显不出来这种变化的,可能也就导致这类数据块不能得到正确的处理。
而传统的SSD(Solid State Drives,固态硬盘)写cache(缓存)技术能够较好地应对突发热点。该技术额外增加独立的SSD作为持久化的缓存介质,一般将额外增加的SSD作为RAM(Random-Access Memory,随机存取存储器)cache的扩充,作为二级缓存。这些SSD按照一定的粒度(如8K)对主机数据进行映射管理,数据写入时先写入SSD,之后再将数据写入存储***,从而降低了数据写入的时延。
而该技术需要额外的SSD作为缓存来存放突发热点的副本,这部分存储介质对用户来说是不可见容量,成本较高。另外增加的SSD一般会使用RAID(Redundant Array ofIndependent Disks,独立硬盘冗余阵列)做可靠性保证,因此冗余空间也较大。
可见,现有技术中没有较好的能够应对突发热点的存储方式。
发明内容
本发明实施例提供一种分层存储***中的区域分配方法及装置,用于解决没有较好的能够应对突发事件的存储方式的技术问题。
本发明的第一方面,提供一种分层存储***中的区域分配方法,包括:
确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;
在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
结合第一方面,在第一方面的第一种可能的实现方式中,在所述第一存储层级中划分出缓冲区域之后,还包括:
按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在重新确定所述缓冲区域的容量之前,还包括:
将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第一方面的第三种可能的实现方式或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,每当所述第一周期到达时,重新确定所述缓冲区域的容量,包括:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,判断所述缓冲区域的最大可使用容量是否合适,包括:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第七种可能的实现方式中,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第一方面或第一方面的第一种可能的实现方式至第七种可能的实现方式中的任一种可能的实现方式,在第一方面的第八种可能的实现方式中,在所述第一存储层级中划分出缓冲区域之后,还包括:
接收到主机下发的、需写入所述分层存储***的第一数据块;
根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
结合第一方面或第一方面的第一种可能的实现方式至第八种可能的实现方式中的任一种可能的实现方式,在第一方面的第九种可能的实现方式中,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
本发明的第二方面,提供一种分层存储***中的区域分配装置,包括:
第一确定模块,用于确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;
划分模块,用于在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括统计模块,用于:在所述划分模块在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置还包括第二确定模块和迁移模块;
所述第二确定模块用于:在所述统计模块按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括第二确定模块、第三确定模块和迁移模块;
所述第三确定模块用于:每当所述第一周期到达时,重新确定所述缓冲区域的容量;
所述第二确定模块用于:根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述迁移模块还用于:在所述第三确定模块重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第二方面的第三种可能的实现方式或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第三确定模块具体用于:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第三确定模块具体用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第二方面的第七种可能的实现方式中,所述装置还包括第二确定模块和迁移模块;
所述第二确定模块用于:在所述统计模块按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第二方面或第二方面的第一种可能的实现方式至第七种可能的实现方式中的任一种可能的实现方式,在第二方面的第八种可能的实现方式中,所述装置还包括接收模块、判断模块、第一处理模块和第二处理模块;
所述接收模块用于:在所述划分模块在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
所述判断模块用于:根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
所述第一处理模块用于:若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
所述第二处理模块用于:若否,则将所述第一数据块重定向到所述缓冲区域。
结合第二方面或第二方面的第一种可能的实现方式至第八种可能的实现方式中的任一种可能的实现方式,在第二方面的第九种可能的实现方式中,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
本发明的第三方面,提供一种分层存储***中的区域分配装置,包括连接到同一总线的存储器和处理器;其中:
所述存储器,用于存储指令;
所述处理器,用于执行所述指令,确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器还用于:执行所述指令,在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器还用于:
执行所述指令,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第三方面的第一种可能的实现方式或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器还用于:执行所述指令,在重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
结合第三方面的第三种可能的实现方式或第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理器还用于每当所述第一周期到达时,重新确定所述缓冲区域的容量,具体为:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述处理器还用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
结合第三方面的第一种可能的实现方式或第二种可能的实现方式,在第三方面的第七种可能的实现方式中,所述处理器还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
结合第三方面或第三方面的第一种可能的实现方式至第七种可能的实现方式中的任一种可能的实现方式,在第三方面的第八种可能的实现方式中,所述装置还包括连接到所述总线的接收单元;
所述接收单元用于:在所述处理器在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
所述处理器还用于:
执行所述指令,根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
结合第三方面或第三方面的第一种可能的实现方式至第八种可能的实现方式中的任一种可能的实现方式,在第三方面的第九种可能的实现方式中,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
本发明实施例中在所述第一存储层级中划分出了一个缓冲区域,这样,当有突发事件时,若按照所述分层存储***本身的统计周期(即所述第一周期),本来可能是将突发事件对应的数据放在较低物理性能的存储层级中,这些存储层级的物理性能较差,在访问时速度较慢,不利于用户的访问。而在所述第一存储层级中划分出所述缓冲区域后,可以将突发事件对应的数据放到所述缓冲区域中,所述第一存储层级的物理性能较高,提高了访问处理速度,提高用户体验,也提高了分层存储***对突发事件的处理能力。
并且,本发明实施例中无需采用额外的存储介质来存储突发热点数据,节省存储空间,也节约***成本。
附图说明
图1为本发明实施例中分层存储***中的区域分配方法的主要流程图;
图2为本发明实施例中分层存储***中的区域分配装置的主要结构框图;
图3为本发明实施例中分层存储***中的区域分配装置的主要结构示意图。
具体实施方式
本发明实施例提供一种分层存储***中的区域分配方法,包括:确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
本发明实施例中在所述第一存储层级中划分出了一个缓冲区域,这样,当有突发事件时,若按照所述分层存储***本身的统计周期(即所述第一周期),本来可能是将突发事件对应的数据放在较低物理性能的存储层级中,这些存储层级的物理性能较差,在访问时速度较慢,不利于用户的访问。而在所述第一存储层级中划分出所述缓冲区域后,可以将突发事件对应的数据放到所述缓冲区域中,所述第一存储层级的物理性能较高,提高了访问处理速度,提高用户体验,也提高了分层存储***对突发事件的处理能力。
并且,本发明实施例中无需采用额外的存储介质来存储突发热点数据,节省存储空间,也节约***成本。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明实施例作进一步详细描述。
请参见图1,本发明实施例提供一种分层存储***中的区域分配方法,所述方法的主要流程描述如下。
步骤101:确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能。
所述分层存储***中可以包括多个存储层级,每个存储层级的物理性能可能都不同,有高有低。那么较佳的,可以从所述分层存储***中确定出物理性能最高的存储层级,本发明实施例中将其称为所述第一存储层级。当然,所述第一存储层级也可以不是所述分层存储***中物理性能最高的层级,只要确定出的所述第一存储层级的物理性能高于所述分层存储***中各存储层级中的最低物理性能即可。
例如,所述分层存储***共有3个存储层级,分别为存储层级1、存储层级2和存储层级3,其中,存储层级1的物理性能高于存储层级2的物理性能,存储层级2的物理性能高于存储层级3的物理性能。那么,确定出的所述第一存储层级可以是物理性能最高的存储层级1,或者也可以是物理性能位于中间的存储层级2,只要不是存储层级3即可。
步骤102:在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
具体的,可以选择用户设定的方式来划分所述缓冲区域,即根据用户的设定来划分所述缓冲区域,例如可以根据用户的设定来确定所述缓冲区域的大小、位置等,或者,也可以按照自适应方式设定并划分所述缓冲区域,例如可以根据历史经验来设定,或者可以根据处理过程中的数据来设定。
本发明实施例中,在***初始化时,或者在***首次使用时,可以在所述第一存储层级出首次划分出所述缓冲区域。之后,在使用过程中,还可以对所述缓冲区域的大小进行调整,这个调整也可以理解为是重新划分所述缓冲区域。例如,所述缓冲区域若是由***按照自适应方式自行设定并划分的,那么,***可以在每次所述第一周期到达时重新划分所述缓冲区域。
进一步的,本发明实施例中,在所述第一存储层级中划分出所述缓冲区域之后,还包括:
按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU(Least Recently Used,近期最少使用)算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
所述第一周期,是所述分层存储***的原有统计周期,即,AST技术会在混合存储池中,按照一定的数据块粒度,对数据块进行周期性IO(输入输出)统计监控(例如统计每个数据块的访问次数、每个数据块的大小等信息),本发明实施例中将这个周期称为所述第一周期。当一个第一周期到达时,所述分层存储***可以根据各存储层级中存储的各个数据块的统计信息,确定各数据块的冷热程度,并据此发起内部后台迁移操作,使得数据块在所述分层存储***中进行重排布。
所述第二周期,是指按照LRU算法对所述缓冲区域中存储的数据块进行统计的周期,一般来说,所述第二周期小于所述第一周期。那么,所述第一周期统计的信息可以看做是长线统计信息,也就是在较长时间内的整体信息,而所述第二周期较短,且也是针对所述缓冲区域进行的统计,那么所述第二周期统计的信息就可以看作是对突发事件的统计信息。综合考虑这两种情况下的统计信息来确定究竟哪些数据块需要迁移,既考虑到了突发事件,又考虑到了数据块在较长时间内的整体访问情况,能够使确定出的结果更为准确,使数据块尽量都能够分布在所述***中的较为合适的位置。
进一步的,本发明实施例中,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
本发明实施例中,根据所述缓冲区域的剩余容量可以发起所述缓冲区域中的数据块的迁移,以使所述缓冲区域能够存储更多需要的数据。且在确定需要迁移的数据块时,可以按照所述第二周期来确定所述缓冲区域中各数据块的访问信息,同时也可以参考按照所述第一周期统计的所述分层存储***中各数据块的访问信息,一般来说,所述第二周期小于所述第一周期,按照所述第二周期确定的访问信息可以看作是针对突发热点的访问信息,而按照所述第一周期确定的访问信息可以看作是长线访问信息,综合考虑这两者来确定需要迁移的数据块,不仅考虑了突发热点,也考虑到了每个数据块在较长时间内的整体访问情况,使最终迁移的数据块较为符合需求。
在确定出需要迁移的数据块后,可以发起数据块的迁移,将所述缓冲区域中需要迁移的数据块迁移到其他存储层级中,具体的,数据块要迁移到的存储层级的物理性能低于所述第一存储层级的物理性能,也就是说,要将所述缓冲区域中需要迁移的数据块迁移到低性能的存储层级中。
例如,对于缓冲区域中的一个数据块,若按照所述第二周期统计,该数据块可能是需要迁移的数据块,而若按照所述第一周期统计,该数据块可能在较长时间内也算是一个热点数据块,那么可以将该数据块留在所述缓冲区域中,不将其进行迁移,从而更方便用户的访问。
在将需要迁移的数据块进行迁移之后,也就释放出了所述缓冲区域中的空间,相当于所述缓冲区域的剩余容量就会有所增加。较佳的,本发明实施例中,可以持续进行数据块迁移,直到所述缓冲区域的剩余容量大于等于所述最高容量阈值时为止。相当于,在所述缓冲区域中释放出足够的剩余空间来应对随时而来的突发热点,避免新来的数据块无法存储。
可选的,本发明实施例中,一个数据块的访问信息,可以包括该数据块的访问次数、该数据块的大小、该数据块的随机顺序度中的一种或几种,当然也可以包括针对该数据块的其他访问信息。
进一步的,本发明实施例中,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
也就是说,本发明实施例中,除了在所述缓冲区域的剩余容量较少时可以发起数据块的迁移之外,还可以在每个第一周期到达时发起数据块的迁移。在所述缓冲区域的剩余容量较少时发起的数据块的迁移,可以只涉及到将所述缓冲区域中的数据块迁移到低性能的存储层级中,而在每个第一周期到达时发起的数据块的迁移,可以涵盖所述分层存储***中各存储层级中存储的数据块的迁移,这可能包括将高性能存储层级中的数据块迁移到低性能存储层级中,也可能包括将低性能存储层级中的数据块迁移到高性能存储层级中。
在每个第一周期到达要发起数据块迁移时,首先也会先确定需要迁移的数据块,具体的,可以根据所述第一周期的统计信息来确定,使各数据块尽量能够迁移到合适的位置。
若所述缓冲区域的容量是由所述***按照自适应方式自行设定,那么,每当所述第一周期到达时,可以重新确定所述缓冲区域的容量,之后再根据重新确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块。
本发明实施例中,可以直接确定所述缓冲区域的容量,或者也可以在清空所述缓冲区域之后重新确定所述缓冲区域的容量。即,在重新确定所述缓冲区域的容量之前,还可以包括:
将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
即,在重新确定所述缓冲区域的容量之前,可以选择清空所述缓冲区域,当然也可以不清空所述缓冲区域。若清空所述缓冲区域,那么所述缓冲区域整个可以重新划分,若不清空所述缓冲区域,那么,如果所述缓冲区域的容量需要增加,可以将所述第一存储层级中的其他区域直接划分给所述缓冲区域,如果所述缓冲区域的容量需要减少,可以将所述缓冲区域中多余的区域划分给所述第一存储层级中的其他区域。
并且,如果清空所述缓冲区域,那么可以是将所述缓冲区域中的数据全部迁移到所述分层存储层级中的其他存储层级,且数据迁入的存储层级的物理性能低于所述第一存储层级的物理性能。如果不清空所述缓冲区域,那么所述缓冲区域中的数据是否需要迁移,可以按照所述第一周期的统计信息来确定。
可选的,本发明实施例中,每当所述第一周期到达时,重新确定所述缓冲区域的容量,可以包括:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
即,若所述缓冲区域的容量是由所述***按照自适应方式自行设定,那么,每当所述第一周期到达时,可以先判断一下所述缓冲区域的所述最大可使用容量是否合适,如果合适的话,就可以不必调整所述缓冲区域的容量,而直接可以根据按照所述第一周期确定的统计信息来进行数据迁移,减少调整所述缓冲区域的容量所需的步骤,节省***操作时间和资源。
若所述缓冲区域的容量不合适,那么需要对所述缓冲区域的容量进行调整,从而可以根据确定出的所述缓冲区域的所述最大可使用容量、以及所述第一周期的统计信息来确定需要迁移的数据块。
可选的,本发明实施例中,判断所述缓冲区域的最大可使用容量是否合适,包括:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第二预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第三预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
若在所述第一周期内,所述缓冲区域的剩余容量有多次都小于所述最低容量阈值,那么说明留出的所述缓冲区域的空间不足,需要增加所述缓冲区域的容量,也就是需要将所述第一存储层级中更多的存储空间划分给所述缓冲区域。那在这种情况下,如果所述第一存储层级中的其他存储区域中存储了过多的数据块,没有足够的空间拿来划分给所述缓冲区域,就需要将所述第一存储层级中其他存储区域中存储的数据块进行迁移,直到有足够的空间划分给所述缓冲区域。
若在所述第一周期内,所述缓冲区域的容量很少小于所述最低容量阈值,说明给所述缓冲区域留出的空间过多,可能已经造成了空间的浪费,需要减少所述缓冲区域的容量,也就是需要将所述缓冲区域的容量划出一部分还给所述第一存储层级的固有存储区域。
可选的,本发明实施例中,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
若所述缓冲区域的容量不是按照自适应方式设定,例如是按照用户设定方式,由用户进行设定,那么,每当所述第一周期到达时,可以无需重新确定所述缓冲区域的容量,直接根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息确定所述分层存储***中需要迁移的数据块即可。
进一步的,本发明实施例中,在所述第一存储层级中划分出缓冲区域之后,还可以包括:
接收到主机下发的、需写入所述分层存储***的第一数据块;
根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
具体的,该过程可以发生在所述缓冲区域划分之后,即,***在划分出所述缓冲区域后,即可接收所述主机下发的数据。
例如,所述主机向所述分层存储***共下发了四个数据块,分别为数据块1、数据块2、数据块3和数据块4。所述***在接收到各数据块后,可以首先确定各数据块的地址,其中,所述数据块1的地址为2,所述数据块2的地址为3,所述数据块3的地址为4,所述数据块4的地址为0。若在所述数据块1之前,所述***接收的最后一个数据块的地址为1,那么所述***可以确定,所述数据块1、所述数据块2和所述数据块3的地址是顺序递增的,可以将所述数据块1、所述数据块2和所述数据块3均写入所述第二存储层级,即重定向到所述第二存储层级,也就是将这些数据块写入物理性能较低的存储层级,因为这些存储层级的性能已经足以处理按顺序写入的数据,无需浪费更高性能的存储资源。
而所述***确定,所属数据块4的地址与之前的数据块的地址不连续,属于随机数据块,那么,所述***可以将所述数据块4写入所述缓冲区域,因较高性能的存储层级处理随机数据的能力较强,则由较高性能的存储层级来处理随机数据块,尽量避免误处理情况。
可见,设置所述缓冲区域,可以更有效地处理随机事件。这样,地址按照顺序递增的数据块可以重定向到较低性能的存储层级,尽量使各个存储层级都得到利用,且尽量避免较高物理性能的存储资源的浪费,而随机事件的数据块可以写入所述缓冲区域,以得到较好的处理。
请参见图2,基于同一发明构思,本发明实施例提供一种分层存储***中的区域分配装置,所述装置可以包括第一确定模块201和划分模块202。所述装置可以是所述分层存储***本身,或者可以是所述分层存储***中的一个模块,或者也可以与所述分层存储***是两个相互独立的设备,但所述装置能够对所述分层存储***进行操作,本发明不作限制。
第一确定模块201,用于确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;
划分模块202,用于在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
可选的,本发明实施例中,所述装置还包括统计模块,用于:在划分模块202在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
可选的,本发明实施例中,所述装置还包括第二确定模块和迁移模块;
所述第二确定模块用于:在所述统计模块按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述缓冲区域中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
可选的,本发明实施例中,所述装置还包括所述第二确定模块、第三确定模块和所述迁移模块;
所述第三确定模块用于:每当所述第一周期到达时,重新确定所述缓冲区域的容量;
所述第二确定模块用于:根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
可选的,本发明实施例中,所述迁移模块还用于:在所述第三确定模块重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
可选的,本发明实施例中,所述第三确定模块具体用于:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
可选的,本发明实施例中,所述第三确定模块具体用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
可选的,本发明实施例中,所述装置还包括所述第二确定模块和所述迁移模块;
所述第二确定模块用于:在所述统计模块按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
可选的,本发明实施例中,所述装置还包括接收模块、判断模块、第一处理模块和第二处理模块;
所述接收模块用于:在划分模块202在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
所述判断模块用于:根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
所述第一处理模块用于:若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
所述第二处理模块用于:若否,则将所述第一数据块重定向到所述缓冲区域。
可选的,本发明实施例中,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
请参见图3,基于同一发明构思,本发明实施例提供一种分层存储***中的区域分配装置,所述装置与图2所述的装置可以是同一装置。所述装置可以包括连接到总线300的存储器301和处理器302。
存储器301,用于存储处理器302执行任务所需的指令;
处理器302,用于执行存储器301存储的指令,确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
可选的,本发明实施例中,处理器302还用于:执行所述指令,在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
可选的,本发明实施例中,处理器302还用于:
执行所述指令,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述缓冲区域中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
可选的,本发明实施例中,处理器302还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
可选的,本发明实施例中,处理器302还用于:执行所述指令,在重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
可选的,本发明实施例中,处理器302还用于每当所述第一周期到达时,重新确定所述缓冲区域的容量,具体为:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
可选的,本发明实施例中,处理器302还用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
可选的,本发明实施例中,处理器302还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
可选的,本发明实施例中,所述装置还包括连接到总线300的接收单元;
所述接收单元用于:在处理器302在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
处理器302还用于:
执行所述指令,根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
可选的,本发明实施例中,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
本发明实施例提供一种分层存储***中的区域分配方法,包括:确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量。
本发明实施例中在所述第一存储层级中划分出了一个缓冲区域,这样,当有突发事件时,若按照所述分层存储***本身的统计周期(即所述第一周期),本来可能是将突发事件对应的数据放在较低物理性能的存储层级中,这些存储层级的物理性能较差,在访问时速度较慢,不利于用户的访问。而在所述第一存储层级中划分出所述缓冲区域后,可以将突发事件对应的数据放到所述缓冲区域中,所述第一存储层级的物理性能较高,提高了访问处理速度,提高用户体验,也提高了分层存储***对突发事件的处理能力。
并且,本发明实施例中无需采用额外的存储介质来存储突发热点数据,节省存储空间,也节约***成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (27)
1.一种分层存储***中的区域分配方法,其特征在于,包括:
确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;
在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量;
接收到主机下发的、需写入所述分层存储***的第一数据块;
根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
2.如权利要求1所述的方法,其特征在于,在所述第一存储层级中划分出缓冲区域之后,还包括:
按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
3.如权利要求2所述的方法,其特征在于,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
4.如权利要求2或3所述的方法,其特征在于,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
5.如权利要求4所述的方法,其特征在于,在重新确定所述缓冲区域的容量之前,还包括:
将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
6.如权利要求4所述的方法,其特征在于,每当所述第一周期到达时,重新确定所述缓冲区域的容量,包括:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
7.如权利要求6所述的方法,其特征在于,判断所述缓冲区域的最大可使用容量是否合适,包括:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
8.如权利要求2或3所述的方法,其特征在于,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,还包括:
每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
9.如权利要求1-3任一所述的方法,其特征在于,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
10.一种分层存储***中的区域分配装置,其特征在于,包括:
第一确定模块,用于确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;
划分模块,用于在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量;
接收模块用于:在所述划分模块在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
判断模块用于:根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
第一处理模块用于:若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
第二处理模块用于:若否,则将所述第一数据块重定向到所述缓冲区域。
11.如权利要求10所述的装置,其特征在于,所述装置还包括统计模块,用于:在所述划分模块在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
12.如权利要求11所述的装置,其特征在于,所述装置还包括第二确定模块和迁移模块;
所述第二确定模块用于:在所述统计模块按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
13.如权利要求11或12所述的装置,其特征在于,所述装置还包括第二确定模块、第三确定模块和迁移模块;
所述第三确定模块用于:每当所述第一周期到达时,重新确定所述缓冲区域的容量;
所述第二确定模块用于:根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
14.如权利要求13所述的装置,其特征在于,所述迁移模块还用于:在所述第三确定模块重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
15.如权利要求13所述的装置,其特征在于,所述第三确定模块具体用于:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
16.如权利要求15所述的装置,其特征在于,所述第三确定模块具体用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
17.如权利要求11或12所述的装置,其特征在于,所述装置还包括第二确定模块和迁移模块;
所述第二确定模块用于:在所述统计模块按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
所述迁移模块用于:将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
18.如权利要求10-12任一所述的装置,其特征在于,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
19.一种分层存储***中的区域分配装置,其特征在于,包括连接到同一总线的存储器、处理器和接收单元;其中:
所述存储器,用于存储指令;
所述处理器,用于执行所述指令,确定分层存储***中的第一存储层级;其中,所述第一存储层级的物理性能为所述分层存储***中所包括的各存储层级中的最高物理性能,或,所述第一存储层级的物理性能高于所述分层存储***中所包括的各存储层级中的最低物理性能;在所述第一存储层级中划分出缓冲区域,所述缓冲区域的容量小于所述第一存储层级的总容量;
所述接收单元,用于在所述处理器在所述第一存储层级中划分出缓冲区域之后,接收到主机下发的、需写入所述分层存储***的第一数据块;
所述处理器还用于:
执行所述指令,根据所述第一数据块的写入地址,判断所述第一数据块与在所述第一数据块之前接收的数据块是否是按照写入地址顺序递增的数据块;
若是,则将所述第一数据块重定向到第二存储层级;其中,所述第二存储层级的物理性能低于所述第一存储层级的物理性能;
若否,则将所述第一数据块重定向到所述缓冲区域。
20.如权利要求19所述的装置,其特征在于,所述处理器还用于:执行所述指令,在所述第一存储层级中划分出缓冲区域之后,按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过近期最少使用LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息。
21.如权利要求20所述的装置,其特征在于,所述处理器还用于:
执行所述指令,在按照第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,当所述缓冲区域的剩余容量小于最低容量阈值时,根据通过LRU算法按照所述第二周期确定的所述缓冲区域中存储的各数据块的访问信息,以及根据按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述缓冲区域中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的其他存储层级,以使所述缓冲区域的剩余容量大于等于最高容量阈值;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
22.如权利要求20或21所述的装置,其特征在于,所述处理器还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,重新确定所述缓冲区域的容量;
根据确定的所述缓冲区域的容量、以及按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
23.如权利要求22所述的装置,其特征在于,所述处理器还用于:执行所述指令,在重新确定所述缓冲区域的容量之前,将所述缓冲区域中的所有数据块均迁移到所述分层存储***中的其他存储层级;其中,数据块迁入的存储层级的物理性能低于所述第一存储层级的物理性能。
24.如权利要求22所述的装置,其特征在于,所述处理器还用于每当所述第一周期到达时,重新确定所述缓冲区域的容量,具体为:
每当所述第一周期到达时,判断所述缓冲区域的最大可使用容量是否合适;
若所述最大可使用容量不合适,则重新确定所述缓冲区域的容量。
25.如权利要求24所述的装置,其特征在于,所述处理器还用于判断所述缓冲区域的最大可使用容量是否合适,具体为:
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否大于第一预设次数阈值;其中,若大于,则确定所述最大可使用容量需要增加;和/或
判断在所述第一周期内,所述缓冲区域的剩余容量小于所述最低容量阈值的次数是否小于第二预设次数阈值;其中,若小于,则确定所述最大可使用容量需要减少。
26.如权利要求20或21所述的装置,其特征在于,所述处理器还用于:
执行所述指令,在按照所述第一周期统计所述分层存储***中存储的各数据块的访问信息,及,通过LRU算法按照第二周期确定所述缓冲区域中存储的数据块的访问信息之后,每当所述第一周期到达时,按照所述第一周期统计的所述分层存储***中存储的各数据块的访问信息,确定所述分层存储***中需要迁移的数据块;
将需要迁移的数据块迁移到所述分层存储***中的相应存储层级。
27.如权利要求19-21任一所述的装置,其特征在于,所述访问信息包括数据块的访问次数、数据块的大小、数据块的随机顺序度中的一种或几种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410784622.8A CN104503924B (zh) | 2014-12-16 | 2014-12-16 | 一种分层存储***中的区域分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410784622.8A CN104503924B (zh) | 2014-12-16 | 2014-12-16 | 一种分层存储***中的区域分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503924A CN104503924A (zh) | 2015-04-08 |
CN104503924B true CN104503924B (zh) | 2018-02-13 |
Family
ID=52945323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410784622.8A Active CN104503924B (zh) | 2014-12-16 | 2014-12-16 | 一种分层存储***中的区域分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503924B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073636A (zh) * | 2016-11-15 | 2018-05-25 | ***通信集团公司 | 一种数据管理的方法及装置、数据库一体机 |
CN108092910B (zh) * | 2016-11-23 | 2021-07-20 | 腾讯科技(深圳)有限公司 | 数据流量调度方法和装置 |
CN108519862B (zh) * | 2018-03-30 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 区块链***的存储方法、装置、***和存储介质 |
CN112214169B (zh) * | 2020-09-28 | 2021-08-10 | 深圳大学 | 一种数据存储装置及存储数据的迁移方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311911A (zh) * | 2007-05-23 | 2008-11-26 | 株式会社日立制作所 | 分级存储***及其数据迁移方法 |
CN102411542A (zh) * | 2011-10-26 | 2012-04-11 | 上海文广互动电视有限公司 | 动态分级存储***和方法 |
CN102467352A (zh) * | 2010-11-08 | 2012-05-23 | Lsi公司 | 减少存储***请求的响应延迟 |
CN102999442A (zh) * | 2012-11-16 | 2013-03-27 | 成都索贝数码科技股份有限公司 | 面向媒体应用的存储***及方法 |
CN103314363A (zh) * | 2010-08-17 | 2013-09-18 | 回忆***公司 | 用于设计分级存储器***的高速存储器***和方法 |
CN103631729A (zh) * | 2013-12-06 | 2014-03-12 | 浪潮(北京)电子信息产业有限公司 | 一种基于块级的分级存储方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008094455A2 (en) * | 2007-01-26 | 2008-08-07 | Cheriton David R | Hierarchical immutable content-addressable memory processor |
-
2014
- 2014-12-16 CN CN201410784622.8A patent/CN104503924B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311911A (zh) * | 2007-05-23 | 2008-11-26 | 株式会社日立制作所 | 分级存储***及其数据迁移方法 |
CN103314363A (zh) * | 2010-08-17 | 2013-09-18 | 回忆***公司 | 用于设计分级存储器***的高速存储器***和方法 |
CN102467352A (zh) * | 2010-11-08 | 2012-05-23 | Lsi公司 | 减少存储***请求的响应延迟 |
CN102411542A (zh) * | 2011-10-26 | 2012-04-11 | 上海文广互动电视有限公司 | 动态分级存储***和方法 |
CN102999442A (zh) * | 2012-11-16 | 2013-03-27 | 成都索贝数码科技股份有限公司 | 面向媒体应用的存储***及方法 |
CN103631729A (zh) * | 2013-12-06 | 2014-03-12 | 浪潮(北京)电子信息产业有限公司 | 一种基于块级的分级存储方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104503924A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10049040B2 (en) | Just in time garbage collection | |
CN104503924B (zh) | 一种分层存储***中的区域分配方法及装置 | |
CN107870732B (zh) | 从固态存储设备冲刷页面的方法和设备 | |
CN105117180B (zh) | 一种数据存储方法和装置以及固态硬盘 | |
US7733892B2 (en) | Buffer management method based on a bitmap table | |
US20140304452A1 (en) | Method for increasing storage media performance | |
CN102156738A (zh) | 数据块处理方法、数据块存储设备及*** | |
CN108984429A (zh) | 具有缓冲器占有期管理的数据存储设备 | |
KR102538126B1 (ko) | 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘 | |
CN105573682B (zh) | 一种san存储***及其数据读写方法 | |
CN107885456A (zh) | 减少io命令访问nvm的冲突 | |
CN110018788A (zh) | 分级存储方法、装置、电子设备及计算机可读存储介质 | |
CN106484330A (zh) | 一种混合磁盘分层数据优化方法和装置 | |
CN107209714A (zh) | 分布式存储***及分布式存储***的控制方法 | |
CN103761051A (zh) | 一种基于持续数据多输入输出流并发写入性能优化方法 | |
CN110688256B (zh) | 一种元数据上电恢复方法、装置、电子设备及存储介质 | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
CN108874324A (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN106293497B (zh) | 瓦记录感知文件***中垃圾数据的回收方法和装置 | |
US20170123975A1 (en) | Centralized distributed systems and methods for managing operations | |
CN104111896A (zh) | 大数据处理中的虚拟内存管理方法及其装置 | |
CN106293953B9 (zh) | 一种访问共享显示数据的方法及*** | |
CN109101194A (zh) | 一种刷写性能优化方法和存储*** | |
CN109189336A (zh) | 一种存储***线程调整方法、***及电子设备和存储介质 | |
CN106502591B (zh) | 一种基于混合存储产品的存储控制方法和存储控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |