一种分层存储管理方法、装置及存储系统的制作方法

文档序号:6630792阅读:203来源:国知局
一种分层存储管理方法、装置及存储系统的制作方法
【专利摘要】本发明实施例公开了一种分层存储管理方法、装置及存储系统,其中方法包括:在一个统计周期T1内,根据每个数据块被访问的次数,更新各个数据块的热度值;x按照从大到小的顺序依次从N取到2,逐层对第x中间层中虚拟块的热度值进行更新;y按照从小到大的顺序依次从2取到N且y取整数,逐层从目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块;对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等级,采用本方案可以提高对所述多个目标数据块中每一目标数据块的热度等级进行更新的效率,从而减小存储系统的内存开销和时间开销。
【专利说明】-种分层存储管理方法、装置及存储系统

【技术领域】
[0001] 本发明涉及数据存储【技术领域】,尤其涉及一种分层存储管理方法、装置及存储系 统。

【背景技术】
[0002] 在存储领域中,一个存储系统可能含有多种因存储介质不同和/或接口不同而导 致访问速度存在差异的存储器。为了避免非重要数据在高性能的存储设备上占用较多空 间,增强系统的存储性能,以降低系统成本,通常将存储系统中存储的数据划分成多个数据 块,并将热度值较高的数据块迁移到访问速度较快的存储层、将热度值较低的数据块迁移 到访问速度较慢的存储层,其中数据块的热度值需结合该数据块的访问次数、访问频率和/ 或访问间隔等元信息来计算得到,其中,数据块的热度值与该数据块被访问的频率相关,被 访问频率越高的数据块的热度值越大,被访问频率越低的数据块的热度值越小。
[0003] 现有的分层存储管理方法主要是:每次进行数据迁移时遍历整个存储系统所有数 据块,确定所有数据块中每一数据块的热度值,根据该所有数据块中每一数据块的热度值, 确定出需要进行升级的数据块。这种方式的缺点在于:由于一般存储系统中数据块数量极 多,若每次进行数据迁移时都对所有的数据块进行统计,将会导致非常大的内存开销。


【发明内容】

[0004] 本发明所要解决的技术问题在于,提供一种分层存储管理方法、装置和存储系统, 可减小存储系统的内存开销和时间开销。
[0005] 为了解决上述技术问题,本发明实施例第一方面提供了一种分层存储管理方法, 应用于存储系统,所述存储系统包括至少L个数据块且所述存储系统包括N个中间层,N为 整数,其中,L彡3且L为整数,所述L个数据块被分配到位于第N中间层的an个第N虚拟 块中,所述an个第N虚拟块中每一第N虚拟块包括至少一个数据块,其中,2 <an <L且an 为整数;X按照从大到小的顺序依次从N取到2,且所述X取整数,对于所述X的每一个取值 对应的第X中间层的ax个第X虚拟块,被分配到位于第x-1中间层的个第x-1虚拟块 中,所述个第x-1虚拟块中每一第x-1虚拟块包括至少一个第X虚拟块,an> 2且ax_i 为整数,ax > 且ax为整数;
[0006] 所述方法包括:
[0007] 当N彡2时,
[0008] 在一个统计周期T1内,根据所述L个数据块中每个数据块被访问的次数,更新所 述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块中每 个数据块的热度值,对所述第N中间层的所述an个第N虚拟块的热度值进行更新;对于X 的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax个第X虚拟块中每个第 X虚拟块的热度值,对所述第x-1中间层中的所述ay个第x-1虚拟块的热度值进行更新;
[0009] 根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一个目标第一虚拟 块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;y按照 从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值对应的第y中 间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含的多个第y虚拟 块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大于或者等 于所述第y中间层的阈值;
[0010] 对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块按照热度值的 大小进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等级, 所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器的种 类;
[0011] 或者,当N = 1时,
[0012] 在所述T1内,根据所述L个数据块中每个数据块被访问的次数,更新所述L个数 据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块中每个数据 块的热度值,对所述第一中间层中的所述^个第一虚拟块的热度值进行更新;根据所述第 一中间层的阈值,从所述%个第一虚拟块中确定出至少一个目标第一虚拟块,所述至少一 个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;对确定出的所述至少一 个目标第一虚拟块包含的多个目标数据块按照热度值的大小进行排序,并按照排序结果更 新所述多个目标数据块中每一目标数据块的热度等级,所述热度等级的数目大于或者等于 2,且小于或者等于所述存储系统内包括的存储器的种类,所述存储系统包括至少两种存储 器。
[0013] 结合第一方面,在第一种可行的实施方式中,所述方法还包括:
[0014] 比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度等级,并确 定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块中的且更新 后热度等级1?于原热度等级的数据块;
[0015] 在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升级处理。
[0016] 结合第一方面以及第一方面的第一种可行的实施方式,在第二种可行的实施方式 中,
[0017] 比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度等级,并确 定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块中的且更新 后热度等级1?于原热度等级的数据块;
[0018] 在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升级处理。
[0019] 结合第一方面的第二种可行的实施方式,在第三种可行的实施方式中:
[0020] 所述第一中间层的阈值A1 = U1为所述个第一虚拟块包括的数据 块的热度值平均值,〇 i为所述%个第一虚拟块包括的数据块的热度值标准差,h为〇 :的 系数,其中,O1不等于零,h G [0, U1/01)。
[0021] 结合第一方面及第一方面的第一至三种可行的实施方式,在第四种可行的实施方 式中:
[0022] 所述第一中间层的阈值A1 = U1为所述个第一虚拟块包括的数据 块的热度值平均值,〇 i为所述%个第一虚拟块包括的数据块的热度值标准差,h为〇 :的 系数,其中,O1不等于零,h G [0, U1/01)。
[0023] 结合第一方面的第四种可行的实施方式,在第五种可行的实施方式中:
[0024] 所述第y中间层的阈值Ay = ii y-ty* 〇 y, ii y为所述至少一个目标第y_l虚拟块包 含的多个第y虚拟块对应的数据块的热度值平均值,〇 y为所述至少一个目标第y-1虚拟块 包含的多个第y虚拟块对应的数据块的热度值标准差,ty为〇 y的系数,ty随着y的递增而 递减,其中,0y不等于零,& elf),/"/cr,,)。
[0025] 结合第一方面及第一方面的第一至五种可行的实施方式,在第六种可行的实施方 式中:
[0026] 在所述存储系统内包括两种存储器,所述两种存储器包括第一存储器和第二存储 器,且所述第一存储器的访问速度大于所述第二存储器的访问速度,
[0027]所述方法还包括:
[0028] 在时间间隔T2内,将位于所述第一存储器内的需要降级的数据块迁移到所述第二 存储器,所述T 2用于进行降级迁移且所述T2的长度是固定的;
[0029] 在Nfreel <第一阈值时,对位于所述第一存储器内的数据块按照热度值的 大小进行排序,所述需要降级的数据块是指从所述排序结果中选出的热度值比较小的 min (Nfree2, C)个数据块,其中,所述第一阈值是由确定出的需要升级的数据块的数目确定 的,或者,所述第一阈值是由平均每时间间隔T2内需要从所述第一存储器降级迁移到所述 第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述第一存储器内包含 的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的数值确定的;
[0030] 其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存 储器内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T2内, 所述第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。 [0031] 结合第一方面的第六种可行的实施方式,在第七种可行的实施方式中:
[0032] 在所述第一阈值< Nfreel <第二阈值时,所述方法还包括:所述需要降级的数据 块是指从所述排序结果中选出的热度值比较小的min (Nfree2,C, ANfreel)个数据块;
[0033] 其中,ANfreel = Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第 一存储器内的空闲物理块的数量,且ANfreel的值为大于0的整数,所述第二阈值是根据 在所述T 2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被 所述T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
[0034] 结合第一方面及第一方面的第一至五种可行的实施方式,在第八种可行的实施方 式中:
[0035] 在所述存储系统内包括K种存储器,其中K>3且K为整数,所述K种存储器包括 第i存储器、第i_l存储器和第i_2存储器,且所述第i存储器的访问速度大于所述第i_l 存储器的访问速度,所述第i_l存储器的访问速度大于所述第i_2存储器的访问速度,其 中,i按照从大到小的顺序依次从K取到3且i取整数;
[0036] 所述方法还包括:
[0037] 在所述T2内,将位于所述第i存储器内的需要降级的数据块迁移到所述第i_2存 储器,将位于所述第i_l存储器内的需要降级的数据块迁移到所述第i_2存储器,以及将位 于所述第i存储器内的需要降级的数据块迁移到所述第i_l存储器。
[0038] 结合第一方面的第八种可行的实施方式,在第九种可行的实施方式中,
[0039] 所述将位于所述第i存储器内的需要降级的数据块迁移到所述第i_2存储器,将 位于所述第i_l存储器内的需要降级的数据块迁移到所述第i_2存储器,以及将位于所述 第i存储器内的需要降级的数据块迁移到所述第i-1存储器,包括:
[0040] 将位于所述第i存储器的数据块按照热度值的大小进行排序,将位于所述第 i-1存储器的数据块也按照热度值的大小进行排序,并从所述第i存储器包括的数据块 的排序结果和所述第i-1存储器包括的数据块的排序结果中共同选择出热度值比较小的 Nfree (i-2)个数据块,将所述Nfree (i-2)个数据块降级迁移到所述第i-2存储器,所述 Nfree (i-2)为所述第i-2存储器包括的空闲物理块的数量;
[0041] 将位于所述第i存储器的数据块按照热度值的大小进行排序,并从所述第i存 储器包括的数据块的排序结果中选择出热度值比较小的Nfree(i-l)个数据块,将所述 Nfree (i-1)个数据块降级迁移到所述第i-1存储器,所述Nfree (i-1)为所述第i-1存储器 包括的空闲物理块的数量。
[0042] 本发明实施例第二方面提供了一种分层存储管理装置,可应用于存储系统,
[0043] 所述存储系统包括至少L个数据块且所述存储系统包括N个中间层,N为整数,其 中,L > 3且L为整数,所述L个数据块被分配到位于第N中间层的an个第N虚拟块中,所 述8"个第N虚拟块中每一第N虚拟块包括至少一个数据块,其中,2 < an< L且&"为整数; X按照从大到小的顺序依次从N取到2,且所述X取整数,对于所述X的每一个取值对应的 第X中间层的a x个第X虚拟块,被分配到位于第x-1中间层的ay个第x-1虚拟块中,所述 个第x-1虚拟块中每一第x-1虚拟块包括至少一个第X虚拟块,an > 2且为整数, ax > 且ax为整数;
[0044] 所述装置包括:
[0045] 当N彡2时,
[0046] 热度值更新单元,用于在一个统计周期T1内,根据所述L个数据块中每个数据块 被访问的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根 据所述L个数据块中每个数据块的热度值,对所述第N中间层的所述a n个第N虚拟块的热 度值进行更新;对于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax个 第X虚拟块中每个第X虚拟块的热度值,对所述第x-1中间层中的所述ay个第x-1虚拟 块的热度值进行更新;
[0047] 确定单元,用于根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一 个目标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层 的阈值;y按照从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值 对应的第y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含的 多个第y虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度 值大于或者等于所述第y中间层的阈值;
[0048] 第一排序单元,用于对确定出的所述至少一个目标第N虚拟块包含的多个目标数 据块按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目标 数据块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内 包括的存储器的种类;
[0049]当 N = 1 时,
[0050] 所述热度值更新单元,还用于在所述T1内,根据所述L个数据块中每个数据块被 访问的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据 所述L个数据块中每个数据块的热度值,对所述第一中间层中的所述 ai个第一虚拟块的热 度值进行更新;
[0051] 所述确定单元,还用于根据所述第一中间层的阈值,从所述&1个第一虚拟块中确 定出至少一个目标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述 第一中间层的阈值;
[0052] 所述第一排序单元,还用于对确定出的所述至少一个目标第一虚拟块包含的多个 目标数据块按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每 一目标数据块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储 系统内包括的存储器的种类,所述存储系统包括至少两种存储器。
[0053] 结合第二方面,在第一种可行的实施方式中,所述装置还包括:
[0054] 比较单元,用于比较所述多个目标数据块中每一数据块的原热度等级和更新后的 热度等级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数 据块中的且更新后热度等级高于原热度等级的数据块;
[0055] 升级单元,用于在所述需要升级的数据块被访问时,将所述需要升级的数据块进 行升级处理。
[0056] 结合第二方面及第二方面的第一种可行的实施方式,在第二种可行的实施方式 中,所述第一中间层的阈值是根据所述%个第一虚拟块包括的数据块的热度值平均值和热 度值标准差计算得到的。
[0057] 结合第二方面的第二种可行的实施方式,在第三种可行的实施方式中:
[0058] 所述第一中间层的阈值A1 = ii ^t1* 〇 ii丨为所述B1个第一虚拟块包括的数据 块的热度值平均值,〇 i为所述%个第一虚拟块包括的数据块的热度值标准差,h为〇 :的 系数,其中,O1不等于零,h G [0, U1/01)。
[0059] 结合第二方面及第二方面的第一至三种可行的实施方式,在第四种可行的实施方 式中:
[0060] 所述第y中间层的阈值是根据所述至少一个目标第y_l虚拟块包含的多个第y虚 拟块对应的数据块的热度值平均值和热度值标准差计算得到的。
[0061] 结合第二方面的第四种可行的实施方式,在第五种可行的实施方式中:
[0062] 所述第y中间层的阈值Ay= i!y-ty*〇y,Uy为所述至少一个目标第y-1虚拟块包 含的多个第y虚拟块对应的数据块的热度值平均值,〇 y为所述至少一个目标第y-1虚拟块 包含的多个第y虚拟块对应的数据块的热度值标准差,ty为〇 y的系数,ty随着y的递增而 递减,其中,〇 y不等于零,f
[0063] 结合第二方面及第二方面的第一至五种可行的实施方式,在第六种可行的实施方 式中,在所述存储系统内包括两种存储器,所述两种存储器包括第一存储器和第二存储器, 且所述第一存储器的访问速度大于所述第二存储器的访问速度,
[0064] 所述装置还包括:
[0065] 第一降级单元,用于在时间间隔T2内,将位于所述第一存储器内的需要降级的数 据块迁移到所述第二存储器,所述T2用于进行降级迁移且所述T2的长度是固定的;
[0066] 第二排序单元,用于在Nfreel <第一阈值时,对位于所述第一存储器内的数据块 按照热度值的大小进行排序,所述需要降级的数据块是指从所述排序结果中选出的热度值 比较小的min (Nfree2,C)个数据块,其中,所述第一阈值是由确定出的需要升级的数据块 的数目确定的,或者,所述第一阈值是由平均每时间间隔T2内需要从所述第一存储器降级 迁移到所述第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述第一存 储器内包含的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的数值确 定的;
[0067]其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存 储器内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T2内, 所述第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。 [0068] 结合第二方面的第六种可行的实施方式,在第七种可行的实施方式中,在所述第 一阈值< Nfreel <第二阈值时,所述需要降级的数据块是指从所述排序结果中选出的热 度值比较小的min(Nfree2,C, ANfreel)个数据块;
[0069] 其中,ANfreel = Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第 一存储器内的空闲物理块的数量,且ANfreel的值为大于0的整数,所述第二阈值是根据 在所述T 2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被 所述T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
[0070] 结合第二方面及第二方面的第一至五种可行的实施方式,在第八种可行的实施方 式中:
[0071] 在所述存储系统内包括K种存储器,其中K > 3且K为整数,所述K种存储器包括 第i存储器、第i_l存储器和第i_2存储器,且所述第i存储器的访问速度大于所述第i_l 存储器的访问速度,所述第i_l存储器的访问速度大于所述第i_2存储器的访问速度时,其 中,i按照从大到小的顺序依次从K取到3且i取整数;
[0072] 所述装置还包括:
[0073] 第二降级单元,用于在所述T2内,将位于所述第i存储器内的需要降级的数据块 迁移到所述第i_2存储器,将位于所述第i_l存储器内的需要降级的数据块迁移到所述第 i_2存储器,以及将位于所述第i存储器内的需要降级的数据块迁移到所述第i_l存储器。 [0074]结合第二方面的第八种可行的实施方式,在第九种可行的实施方式中,所述第二 降级单元包括:
[0075] 第三排序单元,用于将位于所述第i存储器的数据块按照热度值的大小进行排 序,将位于所述第i_l存储器的数据块也按照热度值的大小进行排序;
[0076] 第一选择单元,用于从所述第i存储器包括的数据块的排序结果和所述第i_l存 储器包括的数据块的排序结果中共同选择出热度值比较小的Nfree(i-2)个数据块,将所 述Nfree (i-2)个数据块降级迁移到所述第i-2存储器,所述Nfree (i-2)为所述第i-2存 储器包括的空闲物理块的数量;
[0077] 第四排序单元,用于将位于所述第i存储器的数据块按照热度值的大小进行排 序;
[0078] 第二选择单元,用于从所述第i存储器包括的数据块的排序结果中选择出热度值 比较小的Nfree (i-1)个数据块,将所述Nfree (i-1)个数据块降级迁移到所述第i-1存储 器,所述Nfree (i-1)为所述第i-1存储器包括的空闲物理块的数量。
[0079] 本发明实施例第三方面提供了一种存储系统,可包括R种存储器和如第二方面及 第二方面的第一至九种可行的实施方式所述的分层存储管理装置,R为大于或者等于2的 整数,
[0080] 所述R种存储器内存储有至少L个数据块,
[0081] 所述分层存储管理装置用于从所述至少L个数据块中确定出多个目标数据块,根 据所述多个目标数据块中每一目标数据块的热度值,将所述多个目标数据块划分为R个热 度等级。
[0082] 本发明实施例,在一个统计周期T1内,根据每个数据块被访问的次数,更新各个数 据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中间层中包含的虚拟块 的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层从第y-1层的目标第 y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块;当确定出至少一个 目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度 值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等 级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块,最终从整个存储系 统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系统进行管理(例如 数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的数据量,从而可减 少管理存储系统时的内存开销和时间开销。

【专利附图】

【附图说明】
[0083] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的 附图。
[0084]图1是本发明的分层存储管理方法的一实施例的流程示意图;
[0085] 图2是本发明的分层存储管理方法的另一实施例的流程示意图;
[0086] 图3是本发明的分层存储管理方法的又一实施例的流程示意图;
[0087]图4是本发明的分层存储管理装置的一实施例的结构示意图;
[0088] 图5是本发明的分层存储管理装置的另一实施例的结构示意图;
[0089] 图6是本发明的分层存储管理装置的又一实施例的结构示意图;
[0090]图7是图6所示分层存储管理装置的第二降级单元的一实施例的结构示意图;[0091]图8是本发明的分层存储管理装置的又一实施例的结构示意图;
[0092]图9是本发明的存储系统的一实施例的结构示意图。

【具体实施方式】
[0093] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0094] 本发明实施例提供的分层存储管理方法、装置及存储系统,能够减小存储系统的 内存开销并降低存储系统的管理成本。本发明实施例的存储系统包括至少L个数据块且包 括N个中间层,N为整数,其中,L > 3且L为整数,所述L个数据块被分配到位于第N中间 层的an个第N虚拟块中,所述an个第N虚拟块中每一第N虚拟块包括至少一个数据块,其 中,2 < an < L且an为整数;X按照从大到小的顺序依次从N取到2,且所述X取整数,对于 所述X的每一个取值对应的第X中间层的a x个第X虚拟块,被分配到位于第x-1中间层的 个第x-1虚拟块中,所述ay个第x-1虚拟块中每一第x-1虚拟块包括至少一个第X虚 拟块,彡2且为整数,a x > ay且ax为整数。下面结合附图对本发明实施例进行详 细说明。
[0095] 参见图1,为本发明的分层存储管理方法的一实施例的流程示意图。如图1所示, 当N > 2时,该分层存储管理方法可以包括以下步骤:
[0096] SlOl,在一个统计周期T1内,根据所述L个数据块中每个数据块被访问的次数,更 新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块 中每个数据块的热度值,对所述第N中间层的所述an个第N虚拟块的热度值进行更新;对 于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述a x个第X虚拟块中每 个第X虚拟块的热度值,对所述第x-1中间层中的所述个第x-1虚拟块的热度值进行 更新。
[0097] 具体地,热度值可以根据数据块在一定时间内被访问的次数、数据块被访问的频 率和/或数据块被访问的时间间隔计算得到。其中,上述的一定时间可包括统计周期[0098] 可选地,可在每次一个数据块被访问时,更新该数据块的热度值并根据该数据块 的热度值从X = N到X = 1逐层更新第X层中包含该数据块的虚拟块的热度值;或者,也可 在每次一个数据块被访问时,先更新该数据块的热度值,等到某个特定时间,例如统计周期 T1的周期末,再根据L个数据块的热度值从X = N到X = 1逐层更新第X层中各虚拟块的 热度值。
[0099] S102,根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一个目标第 一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;y 按照从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值对应的第 y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含的多个第y 虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大于或 者等于所述第y中间层的阈值。
[0100] 本发明实施例中,每个中间层的阈值是自适应的,其中第一中间层的阈值是根据 第一中间层%个第一虚拟块中包含的数据块的热度值平均值和热度值标准差计算得到的; 对于y从2到N的每一个取值,第 y中间层的阈值为根据所述至少一个目标第y-1虚拟块 所包含多个第y虚拟块对应的数据块的热度值平均值和热度值标准差计算得到的。
[0101] 为避免热度值较高的数据块被漏选,第y-1中间层中目标第y-1虚拟块所占的比 例应高于第y中间层中目标第y虚拟块所占的比例。
[0102] S103,对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块按照热度 值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目标数据块的热度 等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器 的种类。
[0103] 可选地,对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度值 的大小进行排序时,可采用桶排序算法。
[0104] 可选地,若存储系统包括第一存储器和第二存储器,且第一存储器的访问速度大 于第二存储器的访问速度,热度等级包括与第一存储器对应的第一等级和与第二存储层对 应的第二等级。那么可以把热度值较高的第一数量的目标数据块的热度等级更新为第一等 级,把剩下的目标数据块的热度等级更新为第二等级,其中第一数量不大于第一存储器包 含的物理块的数量,剩下的目标数据块的数量不大于第二存储器包含的物理块的数量。
[0105] 可选地,若存储系统中包括多于两种存储器,可将该多于两种存储器按照访问速 度的快慢可分成至少两个级别,例如:存储系统中可包括固态硬盘(Solid State Drive, SSD)和硬盘驱动器(Hard Disk Drive,HDD)两种存储器,HDD按照接口不同可以包括光纤 通道(Fibre Channel,FC)硬盘、串行连接 SCSI (Serial Attached SCSI,SAS)硬盘、串行 高级技术附件(Serial Advanced Technology Attachment,SATA)硬盘等多种存储器,其 中SSD可以是第一级别,FC硬盘和SAS硬盘可以是第二级别,SATA硬盘可以是第三级别。 此时,可使热度等级的数量等于存储器的级别数并使每一热度等级对应于一种存储器的级 另IJ。更新各目标数据块的热度等级时,可根据每个热度等级对应的存储器包含的物理块数 量以及各目标数据块的热度值来更新。例如:将热度值较高的第三数量的目标数据块的热 度等级更新为第一等级;将其他目标数据块中热度值较高的第四数量的目标数据块的热度 等级更新为第二等级;将剩下的目标数据块的热度等级更新为第三等级,其中第三数量小 于或等于第一级别的存储器中包含的物理块数量;第四数量小于或等于第二级别的存储器 中包含的物理块数量;剩下的目标数据块的数量小于或等于第三级别的存储器中包含的物 理块数量。
[0106] 作为一种可行的实施方式,当N = 1时,该分层存储管理方法可以包括以下步骤:
[0107] S104,在所述T1内,根据所述L个数据块中每个数据块被访问的次数,更新所述L 个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块中每个 数据块的热度值,对所述第一中间层中的所述S 1个第一虚拟块的热度值进行更新。
[0108] 可选地,可在每次一个数据块被访问时更新该数据块的热度值并根据该数据块的 热度值更新第一中间层中包含该数据块的虚拟块的热度值;也可在每次一个数据块被访问 时,先更新该数据块的热度值,等到某个特定时间,例如统计周期T 1的周期末,再根据L个 数据块的热度值更新第一中间层中各虚拟块的热度值。
[0109] S105,根据所述第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一个目 标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈 值。
[0110] S106,对确定出的所述至少一个目标第一虚拟块包含的多个目标数据块按照热度 值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等 级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器的 种类。
[0111] 具体地,步骤S105和步骤S106与步骤S102和步骤S103类似,在此不赘述。
[0112] 更新完目标数据块的热度等级后,可将更新后热度等级高于原热度等级的数据块 确定为需要升级的数据块。随后当这些需要升级的数据块被访问时,将会触发对该被访问 的数据块的升级操作。
[0113] 可知,图1所示的分层存储管理方法,在一个统计周期T1内,根据每个数据块被访 问的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中 间层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层 从第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块; 当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块, 最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系 统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的 数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0114] 参见图2,为本发明的分层存储管理方法的另一实施例的流程示意图。图2以存储 系统内包括第一存储器和第二存储器,且第一存储器的访问速度大于第二存储器的访问速 度为例进行说明。如图2所示,该分层存储管理方法可以包括以下步骤:
[0115] S201,在一个统计周期T1内,根据所述L个数据块中每个数据块被访问的次数,更 新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块 中每个数据块的热度值,对所述第N中间层的所述a n个第N虚拟块的热度值进行更新;对 于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax个第X虚拟块中每 个第X虚拟块的热度值,对所述第x-1中间层中的所述个第x-1虚拟块的热度值进行 更新。
[0116] 可选地,可在每次一个数据块被访问时,更新该数据块的热度值并根据该数据块 的热度值从X = N到X = 1逐层更新第X层中包含该数据块的虚拟块的热度值;或者,也可 在每次一个数据块被访问时,先更新该数据块的热度值,等到某个特定时间,例如统计周期 T 1的周期末,再根据L个数据块的热度值从X = N到X = 1逐层更新第X层中各虚拟块的 热度值。
[0117] 可选地,当N= 1时,在一个统计周期T1内,只需更新所述L个数据块的热度值以 及第一中间层的B1个第一虚拟块的热度值。此时,可在每次一个数据块被访问时更新该数 据块的热度值并根据该数据块的热度值更新第一中间层中包含该数据块的虚拟块的热度 值;也可在每次一个数据块被访问时,先更新该数据块的热度值,等到某个特定时间,例如 统计周期T 1的周期末,再根据L个数据块的热度值更新第一中间层中各虚拟块的热度值。
[0118] S202,根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一个目标第 一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;y 按照从小到大的顺序依次从2取到N且所述 y取整数,对于所述y的每一个取值对应的第 y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含的多个第y 虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大于或 者等于所述第y中间层的阈值。
[0119] 本发明实施例中,每个中间层的阈值是自适应的,其中第一中间层的阈值是根据 第一中间层%个第一虚拟块中包含的数据块的热度值平均值和热度值标准差计算得到的; 可选地,可取第一中间层的阈值A1= ,其中U1为所述&1个第一虚拟块包括的数 据块的热度值平均值,O1为所述%个第一虚拟块包括的数据块的热度值标准差,^为 〇1 的系数,而且,0 i不等于零,h G [0, ii i/ 0 i)。
[0120] 对于y从2到N的每一个取值,第y中间层的阈值为根据所述至少一个目标第y-1 虚拟块所包含多个第y虚拟块对应的数据块的热度值平均值和热度值标准差计算得到的; 可选地,可取第y中间层的阈值A y= i!y-ty*〇y,其中Uy为所述至少一个目标第y-1虚拟 块包含的多个第y虚拟块对应的数据块的热度值平均值,〇 y为所述至少一个目标第y-1虚 拟块包含的多个第y虚拟块对应的数据块的热度值标准差,ty为〇 y的系数,ty随着y的递 增而递减,而且,。y不等于零,Z1. e [0, /a,.)。
[0121] 根据切比雪夫定律,第y中间层的虚拟块的热度值Xy大于第y中间层的阈值A y 的概率?%>117-&*〇7)彡1-1/\2,即第7中间层中选出的目标第7虚拟块的比例至少是 l-1/ty 2。为避免热度值较高的数据块被漏选,第y-1中间层中目标第y-1虚拟块所占的比 例应高于第y中间层中目标第y虚拟块所占的比例。因此使t y随着y的递增而递减。
[0122] S203,对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块按照热度 值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目标数据块的热度 等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器 的种类。
[0123] 可选地,对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度值 的大小进行排序时,可采用桶排序算法。
[0124] 本实施例中,存储系统包括第一存储器和第二存储器,且第一存储器的访问速度 大于第二存储器的访问速度,热度等级包括与第一存储器对应的第一等级和与第二存储层 对应的第二等级。可以把热度值较高的第一数量的目标数据块的热度等级更新为第一等 级,把剩下的目标数据块的热度等级更新为第二等级,其中第一数量不大于第一存储器包 含的物理块的数量,剩下的目标数据块的数量不大于第二存储器包含的物理块的数量。
[0125] S204,比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度等 级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块中 的且更新后热度等级高于原热度等级的数据块。
[0126] S205,在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升级处 理。
[0127] S206,在时间间隔T2内,将位于所述第一存储器内的需要降级的数据块迁移到所 述第二存储器,所述T 2用于进行降级迁移且所述T2的长度是固定的。
[0128] 具体地,在统计周期T1内确定出需要升级的数据块后,可以连续在多个时间间隔 T 2内对数据块进行降级。在该多个时间间隔T2中,如果被访问的数据块是在统计周期T1内 确定出需要升级的数据块,则将被访问的数据块升级。
[0129] 在一种可行的实施方式中,当Nfreel <第一阈值时,对位于所述第一存储器内的 数据块按照热度值的大小进行排序,所述需要降级的数据块是指从所述排序结果中选出的 热度值比较小的min (Nfree2, C)个数据块,其中,所述第一阈值是由确定出的需要升级的 数据块的数目确定的,或者,所述第一阈值是由平均每时间间隔T2内需要从所述第一存储 器降级迁移到所述第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述 第一存储器内包含的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的 数值确定的;
[0130] 其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存 储器内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T 2内, 所述第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。
[0131] 当Nfreel <第一阈值时,认为第一存储器中空闲的物理块数量较少,如果第二存 储器还能接收数据块,应尽量将第一存储器中的数据块降级。将第一存储器中的数据块迁 移到第二存储器时,不仅要考虑第二存储器还能容纳多少个数据块,还要考虑根据第一存 储器的负载和第二存储器的负载在第一存储器和第二存储器之间能传输多少个数据块,因 此使需要降级的数据块数量为1^11(财代62,〇,1^11(财代62,〇指财代62和(:中的最小值。 可选地,还可使需要降级的数据块数量小于min (Nfree2, C)。
[0132]在另一种可行的实施方式中,当所述第一阈值< Nfreel <第二阈值时,所述需要 降级的数据块是指从所述排序结果中选出的热度值比较小的min(Nfree2,C, ANfreel)个 数据块;
[0133] 其中,ANfreel = Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第 一存储器内的空闲物理块的数量,且ANfreel的值为大于0的整数,所述第二阈值是根据 在所述T 2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被 所述T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
[0134] 当所述第一阈值< Nfreel <第二阈值时,认为第一存储器中空闲物理块的数量 既不多也不过少,在决定要降级的数据块数量时,除了考虑第二存储器还能容纳的数据块 数量以及根据第一存储器的负载和第二存储器的负载在第一存储器和第二存储器之间能 传输的数据块数量外,还可以结合第一存储器中空闲物理块的减少量来决定应降级的数据 块的数量。ANfreel =Nfreel'_Nfreel,为从上一次进行降级迁移到本次降级迁移之间 第一存储器中空闲物理块的减少量。如果ANfreel >0,可以使要降级的数据块数量为 min(Nfree2,C, ANfreel),min(Nfree2,C, ANfreel)表不 Nfree2、C 和 ANfreel 中的最小 值。
[0135]在又一种可行的实施方式中,当Nfreel >第一阈值时,可不降级第一存储器中的 数据块。
[0136] 参见图3,为本发明的分层存储管理方法的另一实施例的流程示意图。图3以存储 系统内包括K种存储器为例进行说明,其中所述K种存储器包括第i存储器、第i-1存储器 和第i-2存储器,且所述第i存储器的访问速度大于所述第i-1存储器的访问速度,所述第 i_l存储器的访问速度大于所述第i_2存储器的访问速度,i按照从大到小的顺序依次从K 取到3且i取整数。如图3所示,该分层存储管理方法可以包括以下步骤:
[0137] S301,在一个统计周期T1内,根据所述L个数据块中每个数据块被访问的次数,更 新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块 中每个数据块的热度值,对所述第N中间层的所述a n个第N虚拟块的热度值进行更新;对 于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax个第X虚拟块中每 个第X虚拟块的热度值,对所述第x-1中间层中的所述个第x-1虚拟块的热度值进行 更新。
[0138] S302,根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少一个目标第 一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;y 按照从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值对应的第 y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含的多个第y 虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大于或 者等于所述第y中间层的阈值。
[0139] 具体实施中,步骤S301和步骤S302分别与图2所示实施例的步骤S201和步骤 S202相同,在此不赘述。
[0140] S303,对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块按照热度 值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目标数据块的热度 等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器 的种类。
[0141] 可选地,对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度值 的大小进行排序时,可采用桶排序算法。
[0142] 本实施例中,存储系统中包括多于两种存储器,可将该多于两种存储器按照访问 速度的快慢可分成至少两个级别,例如:存储系统中可包括固态硬盘(Solid State Drive, SSD)和硬盘驱动器(Hard Disk Drive,HDD)两种存储器,HDD按照接口不同可以包括光纤 通道(Fibre Channel,FC)硬盘、串行连接 SCSI (Serial Attached SCSI,SAS)硬盘、串行 高级技术附件(Serial Advanced Technology Attachment,SATA)硬盘等多种存储器,其 中SSD可以是第一级别,FC硬盘和SAS硬盘可以是第二级别,SATA硬盘可以是第三级别。 此时,可使热度等级的数量等于存储器的级别数并使每一热度等级对应于一种存储器的级 另IJ。更新各目标数据块的热度等级时,可根据每个热度等级对应的存储器包含的物理块数 量以及各目标数据块的热度值来更新。例如:将热度值较高的第三数量的目标数据块的热 度等级更新为第一等级;将其他目标数据块中热度值较高的第四数量的目标数据块的热度 等级更新为第二等级;将剩下的目标数据块的热度等级更新为第三等级,其中第三数量小 于或等于第一级别的存储器中包含的物理块数量;第四数量小于或等于第二级别的存储器 中包含的物理块数量;剩下的目标数据块的数量小于或等于第三级别的存储器中包含的物 理块数量。
[0143] S304,比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度等 级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块中 的且更新后热度等级高于原热度等级的数据块。
[0144] S305,在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升级处 理。
[0145] S306,在时间间隔T2内,将位于所述第i存储器内的需要降级的数据块迁移到所 述第i-2存储器,将位于所述第i-1存储器内的需要降级的数据块迁移到所述第i-2存储 器,以及将位于所述第i存储器内的需要降级的数据块迁移到所述第i_l存储器。
[0146] 具体地,在统计周期T1内确定出需要升级的数据块后,可以连续在多个时间间隔 T 2内对数据块进行降级。在该多个时间间隔T2中,如果被访问的数据块是在统计周期T1内 确定出需要升级的数据块,则将被访问的数据块升级。
[0147] 具体实施中,步骤S306可包括:
[0148] 将位于所述第i存储器的数据块按照热度值的大小进行排序,将位于所述第 i_l存储器的数据块也按照热度值的大小进行排序,并从所述第i存储器包括的数据块 的排序结果和所述第i_l存储器包括的数据块的排序结果中共同选择出热度值比较小的 Nfree (i-2)个数据块,将所述Nfree (i-2)个数据块降级迁移到所述第i-2存储器,所述 Nfree (i-2)为所述第i-2存储器包括的空闲物理块的数量;
[0149] 将位于所述第i存储器的数据块按照热度值的大小进行排序,并从所述第i存 储器包括的数据块的排序结果中选择出热度值比较小的Nf ree(i-1)个数据块,将所述 Nfree (i-1)个数据块降级迁移到所述第i-1存储器,所述Nfree (i-1)为所述第i-1存储器 包括的空闲物理块的数量。
[0150] 具体实施中,从第i存储器和第i_l存储器中选出的要降级到第i-2存储器的数 据块数量可以小于Nfree (i-2);从第i存储器中选出的要降级到第i-1存储器的数据块数 量也可以小于Nfree (i_l)。
[0151] 图2或图3所示的分层存储管理方法,在一个统计周期T1内,根据每个数据块被访 问的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中 间层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层 从第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块; 当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块, 最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系 统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的 数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0152] 参见图4,为本发明的分层存储管理装置的一实施例的结构示意图。如图4所示, 该分层存储管理装置可包括热度值更新单元401、确定单元402以及第一排序单元403,其 中:
[0153] 当N彡2时,
[0154]热度值更新单元401,用于在一个统计周期T1内,根据所述L个数据块中每个数据 块被访问的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大; 根据所述L个数据块中每个数据块的热度值,对所述第N中间层的所述a n个第N虚拟块的 热度值进行更新;对于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax 个第X虚拟块中每个第X虚拟块的热度值,对所述第x-1中间层中的所述个第x-1虚 拟块的热度值进行更新。
[0155] 具体地,热度值可以根据数据块在一定时间内被访问的次数、数据块被访问的频 率和/或数据块被访问的时间间隔计算得到。其中,上述的一定时间可包括统计周期
[0156] 可选地,可在每次一个数据块被访问时,更新该数据块的热度值并根据该数据块 的热度值从X = N到X = 1逐层更新第X层中包含该数据块的虚拟块的热度值;或者,也可 在每次一个数据块被访问时,先更新该数据块的热度值,等到某个特定时间,例如统计周期 T 1的周期末,再根据L个数据块的热度值从X = N到X = 1逐层更新第X层中各虚拟块的 热度值。
[0157] 确定单元402,用于根据第一中间层的阈值,从所述&1个第一虚拟块中确定出至少 一个目标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间 层的阈值;y按照从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取 值对应的第y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-1虚拟块包含 的多个第y虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热 度值大于或者等于所述第y中间层的阈值。
[0158] 本发明实施例中,每个中间层的阈值是自适应的,其中第一中间层的阈值是根据 第一中间层%个第一虚拟块中包含的数据块的热度值平均值和热度值标准差计算得到的; 可选地,可取第一中间层的阈值A1= ,其中U1为所述 &1个第一虚拟块包括的数 据块的热度值平均值,O1为所述%个第一虚拟块包括的数据块的热度值标准差,^为 〇1 的系数,而且,0 i不等于零,h G [0, ii i/ 0 i)。
[0159] 对于y从2到N的每一个取值,第y中间层的阈值为根据所述至少一个目标第y-1 虚拟块所包含多个第y虚拟块对应的数据块的热度值平均值和热度值标准差计算得到的; 可选地,可取第y中间层的阈值A y= i!y-ty*〇y,其中Uy为所述至少一个目标第y-1虚拟 块包含的多个第y虚拟块对应的数据块的热度值平均值,〇 y为所述至少一个目标第y-1虚 拟块包含的多个第y虚拟块对应的数据块的热度值标准差,ty为〇 y的系数,ty随着y的递 增而递减,而且,。y不等于零,G e [0,//>,/crj。
[0160] 根据切比雪夫定律,第y中间层的虚拟块的热度值Xy大于第y中间层的阈值Ay 的概率?%>117-&*〇7)彡1-1/\2,即第7中间层中选出的目标第7虚拟块的比例至少是 l-1/ty 2。为避免热度值较高的数据块被漏选,第y-1中间层中目标第y-1虚拟块所占的比 例应高于第y中间层中目标第y虚拟块所占的比例。因此使t y随着y的递增而递减。
[0161] 第一排序单元403,用于对确定出的所述至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一 目标数据块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系 统内包括的存储器的种类。
[0162] 可选地,对确定出的至少一个目标第N虚拟块包含的多个目标数据块按照热度值 的大小进行排序时,可采用桶排序算法。
[0163] 可选地,若存储系统包括第一存储器和第二存储器,且第一存储器的访问速度大 于第二存储器的访问速度,热度等级包括与第一存储器对应的第一等级和与第二存储层对 应的第二等级。那么可以把热度值较高的第一数量的目标数据块的热度等级更新为第一等 级,把剩下的目标数据块的热度等级更新为第二等级,其中第一数量不大于第一存储器包 含的物理块的数量,剩下的目标数据块的数量不大于第二存储器包含的物理块的数量。
[0164] 可选地,若存储系统中包括多于两种存储器,可将该多于两种存储器按照访问速 度的快慢可分成至少两个级别,例如:存储系统中可包括固态硬盘(Solid State Drive, SSD)和硬盘驱动器(Hard Disk Drive,HDD)两种存储器,HDD按照接口不同可以包括光纤 通道(Fibre Channel,FC)硬盘、串行连接 SCSI (Serial Attached SCSI,SAS)硬盘、串行 高级技术附件(Serial Advanced Technology Attachment,SATA)硬盘等多种存储器,其 中SSD可以是第一级别,FC硬盘和SAS硬盘可以是第二级别,SATA硬盘可以是第三级别。 此时,可使热度等级的数量等于存储器的级别数并使每一热度等级对应于一种存储器的级 另IJ。更新各目标数据块的热度等级时,可根据每个热度等级对应的存储器包含的物理块数 量以及各目标数据块的热度值来更新。例如:将热度值较高的第三数量的目标数据块的热 度等级更新为第一等级;将其他目标数据块中热度值较高的第四数量的目标数据块的热度 等级更新为第二等级;将剩下的目标数据块的热度等级更新为第三等级,其中第三数量小 于或等于第一级别的存储器中包含的物理块数量;第四数量小于或等于第二级别的存储器 中包含的物理块数量;剩下的目标数据块的数量小于或等于第三级别的存储器中包含的物 理块数量。
[0165]当 N = 1 时,
[0166] 所述热度值更新单元401,还用于在所述T1内,根据所述L个数据块中每个数据块 被访问的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根 据所述L个数据块中每个数据块的热度值,对所述第一中间层中的所述 ai个第一虚拟块的 热度值进行更新;
[0167] 所述确定单元402,还用于根据所述第一中间层的阈值,从所述&1个第一虚拟块中 确定出至少一个目标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所 述第一中间层的阈值;
[0168] 所述第一排序单元403,还用于对确定出的所述至少一个目标第一虚拟块包含的 多个目标数据块按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块 中每一目标数据块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述 存储系统内包括的存储器的种类。
[0169] 更新完目标数据块的热度等级后,可将更新后热度等级高于原热度等级的数据块 确定为需要升级的数据块。随后当这些需要升级的数据块被访问时,将会触发对该被访问 的数据块的升级操作。
[0170] 可知,图4所示的分层存储管理装置,在一个统计周期T1内,根据每个数据块被访 问的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中 间层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层 从第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块; 当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块, 最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系 统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的 数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0171] 参见图5,为本发明的分层存储管理装置的另一实施例的结构示意图。如图5所 示,该分层存储管理装置可包括:热度值更新单元401、确定单元402、以及第一排序单元 403,还可包括比较单元404、升级单元405、第一降级单元406、和第二排序单元407中至少 一种,其中:
[0172] 热度值更新单元401、确定单元402和第一排序单元403的具体结构或功能可参阅 图4所示实施例的相关描述,在此不赘述。
[0173] 本实施例中,存储系统包括第一存储器和第二存储器,且第一存储器的访问速度 大于第二存储器的访问速度。
[0174] 比较单元404,用于比较所述多个目标数据块中每一数据块的原热度等级和更新 后的热度等级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目 标数据块中的且更新后热度等级高于原热度等级的数据块。
[0175] 升级单元405,用于在所述需要升级的数据块被访问时,将所述需要升级的数据块 进行升级处理。
[0176] 第一降级单元406,用于在时间间隔T2内,将位于所述第一存储器内的需要降级的 数据块迁移到所述第二存储器,所述T 2用于进行降级迁移且所述T2的长度是固定的。
[0177] 具体地,在统计周期T1内确定出需要升级的数据块后,可以连续在多个时间间隔 T 2内对数据块进行降级。在该多个时间间隔T2中,如果被访问的数据块是在统计周期T1内 确定出需要升级的数据块,则将被访问的数据块升级。
[0178] 第二排序单元407,用于对位于所述第一存储器内的数据块按照热度值的大小进 行排序。
[0179] 在Nfreel <第一阈值时,所述需要降级的数据块是指从所述排序结果中选出的 热度值比较小的min (Nfree2,C)个数据块,其中,所述第一阈值是由确定出的需要升级的 数据块的数目确定的,或者,所述第一阈值是由平均每时间间隔T 2内需要从所述第一存储 器降级迁移到所述第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述 第一存储器内包含的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的 数值确定的。
[0180] 其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存 储器内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T 2内, 所述第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。
[0181] 当Nfreel <第一阈值时,认为第一存储器中空闲的物理块数量较少,如果第二存 储器还能接收数据块,应尽量将第一存储器中的数据块降级。将第一存储器中的数据块迁 移到第二存储器时,不仅要考虑第二存储器还能容纳多少个数据块,还要考虑根据第一存 储器的负载和第二存储器的负载在第一存储器和第二存储器之间能传输多少个数据块,因 此使需要降级的数据块数量为1^11(财代62,〇,1^11(财代62,〇指财代62和(:中的最小值。 可选地,还可使需要降级的数据块数量小于min (Nfree2, C)。
[0182] 在所述第一阈值< Nfreel <第二阈值时,所述需要降级的数据块是指从所述排 序结果中选出的热度值比较小的min (Nfree2,C, ANfreel)个数据块。
[0183] 其中,ANfreel = Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第 一存储器内的空闲物理块的数量,且ANfreel的值为大于0的整数,所述第二阈值是根据 在所述T 2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被 所述T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
[0184] 当第一阈值< Nfreel <第二阈值时,认为第一存储器中空闲物理块的数量既不 多也不过少,在决定要降级的数据块数量时,除了考虑第二存储器还能容纳的数据块数量 以及根据第一存储器的负载和第二存储器的负载在第一存储器和第二存储器之间能传输 的数据块数量外,还可以结合第一存储器中空闲物理块的减少量来决定应降级的数据块 的数量。ANfreel = Nfreel'-Nfreel,为从上一次进行降级迁移到本次降级迁移之间 第一存储器中空闲物理块的减少量。如果ANfreel >0,可以使要降级的数据块数量为 min(Nfree2,C, ANfreel),min(Nfree2,C, ANfreel)表不 Nfree2、C 和 ANfreel 中的最小 值。
[0185] 当Nfreel >第一阈值时,可不降级第一存储器中的数据块。
[0186] 可知,图5所示的分层存储管理装置,在一个统计周期T1内,根据每个数据块被访 问的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中 间层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层 从第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块; 当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块, 最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系 统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的 数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0187] 参见图6,为本发明的分层存储管理装置的另一实施例的结构示意图。如图6所 示,该分层存储管理装置可包括:热度值更新单元401、确定单元402、第一排序单元403、比 较单元404、升级单元405以及第二降级单元408,其中:
[0188] 热度值更新单元401、确定单元402和第一排序单元403的具体结构或功能可参阅 图4所示实施例的相关描述,在此不赘述。
[0189] 本实施例中,所述存储系统内包括K种存储器,其中K>3且K为整数,所述K种 存储器包括第i存储器、第i-1存储器和第i-2存储器,且所述第i存储器的访问速度大于 所述第i-1存储器的访问速度,所述第i-1存储器的访问速度大于所述第i-2存储器的访 问速度时,其中,i按照从大到小的顺序依次从K取到3且i取整数。
[0190] 比较单元404,用于比较所述多个目标数据块中每一数据块的原热度等级和更新 后的热度等级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目 标数据块中的且更新后热度等级高于原热度等级的数据块。
[0191] 升级单元405,用于在所述需要升级的数据块被访问时,将所述需要升级的数据块 进行升级处理。
[0192] 第二降级单元408,用于在所述T2内,将位于所述第i存储器内的需要降级的数据 块迁移到所述第i-2存储器,将位于所述第i-1存储器内的需要降级的数据块迁移到所述 第i-2存储器,以及将位于所述第i存储器内的需要降级的数据块迁移到所述第i-1存储 器。
[0193] 具体地,在统计周期T1内确定出需要升级的数据块后,第二降级单元408可以连 续在多个时间间隔T 2内对数据块进行降级。在该多个时间间隔T2中,如果被访问的数据块 是在统计周期T1内确定出需要升级的数据块,则将被访问的数据块升级。
[0194] 可选地,如图7所示,第二降级单元408可包括:
[0195] 第三排序单元4081,用于将位于所述第i存储器的数据块按照热度值的大小进行 排序,将位于所述第i-1存储器的数据块也按照热度值的大小进行排序。
[0196] 第一选择单元4082,用于从所述第i存储器包括的数据块的排序结果和所述第 i_l存储器包括的数据块的排序结果中共同选择出热度值比较小的Nfree (i-2)个数据块, 将所述Nfree (i-2)个数据块降级迁移到所述第i-2存储器,所述Nfree (i-2)为所述第i-2 存储器包括的空闲物理块的数量。
[0197] 第四排序单元4083,用于将位于所述第i存储器的数据块按照热度值的大小进行 排序。
[0198] 第二选择单元4084,用于从所述第i存储器包括的数据块的排序结果中选择出热 度值比较小的Nfree (i-1)个数据块,将所述Nfree (i-1)个数据块降级迁移到所述第i-1 存储器,所述Nfree (i-1)为所述第i-1存储器包括的空闲物理块的数量。
[0199] 具体实施中,从第i存储器和第i_l存储器中选出的要降级到第i_2存储器的数 据块数量可以小于Nfree (i-2);从第i存储器中选出的要降级到第i-1存储器的数据块数 量也可以小于Nfree (i_l)。
[0200] 图6-7所示的分层存储管理装置,在一个统计周期T1内,根据每个数据块被访问 的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对第X中间 层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到N,逐层从 第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y虚拟块; 当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的多个目 标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标虚拟块, 最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要对存储系 统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需要处理的 数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0201] 如图8所示,本发明实施例还提供了一种分层存储管理装置,该分层存储管理装 置可包括:处理器801、存储器802以及接口 803,其中处理器801、存储器802和接口 803通 过总线804连接。具体地,接口 803用于和其他设备(如存储设备)通信;存储器用于存储 指令8021 ;处理器801用于执行指令8021以实现图1-图3所示的方法。
[0202] 本发明实施例还相应提供了一种存储系统,如图9所示,该存储系统可包括图4-7 所示的分层存储管理装置以及R种存储器,R为大于或者等于2的整数。其中该R种存储 器内存储有至少L个数据块,该分层存储管理装置用于从该至少L个数据块中确定出多个 目标数据块,根据所述多个目标数据块中每一目标数据块的热度值,将所述多个目标数据 块划分为R个热度等级。
[0203] 具体地,分层存储管理装置的构或功能可参见图4-7所示实施例的描述,在此不 赘述。
[0204] 根据图4-7所示的实施例可知,该存储系统在一个统计周期Tl内,根据每个数据 块被访问的次数,更新各个数据块的热度值;X按照从大到小的顺序依次从N取到2,逐层对 第X中间层中包含的虚拟块的热度值进行更新;整数y按照从小到大的顺序依次从2取到 N,逐层从第y-1层的目标第y-1虚拟块包含的多个第y虚拟块中确定出至少一个目标第y 虚拟块;当确定出至少一个目标第N虚拟块时,对确定出的至少一个目标第N虚拟块包含的 多个目标数据块按照热度值的大小进行排序,并按照排序结果更新所述多个目标数据块中 每一目标数据块的热度等级。采用此方法,只需从每个中间层中选出部分虚拟块作为目标 虚拟块,最终从整个存储系统包含的大量数据块中选出热度值较高的目标数据块,当需要 对存储系统进行管理(例如数据块升级)时,只需针对目标数据块进行统计,大大减少了需 要处理的数据量,从而可减少管理存储系统时的内存开销和时间开销。
[0205] 本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0206] 本发明实施例中的模块或单元可以根据实际需要进行合并、划分和删减。
[0207] 本发明实施例的模块或单元,可以以通用集成电路(如中央处理器CPU),或以专 用集成电路(ASIC)来实现。
[0208] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0209] 以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施 方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范 围之内。
【权利要求】
1. 一种分层存储管理方法,其特征在于,应用于存储系统, 所述存储系统包括至少L个数据块且所述存储系统包括N个中间层,N为整数,其中,L> 3且L为整数,所述L个数据块被分配到位于第N中间层的an个第N虚拟块中,所述an 个第N虚拟块中每一第N虚拟块包括至少一个数据块,其中,2 <an <L且an为整数;X按 照从大到小的顺序依次从N取到2,且所述X取整数,对于所述X的每一个取值对应的第X 中间层的ax个第X虚拟块,被分配到位于第x-1中间层的个第x-1虚拟块中,所述ax_i 个第x-1虚拟块中每一第x-1虚拟块包括至少一个第X虚拟块,an> 2且ay为整数,ax > 且ax为整数; 所述方法包括: 当N彡2时, 在一个统计周期T1内,根据所述L个数据块中每个数据块被访问的次数,更新所述L个 数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块中每个数 据块的热度值,对所述第N中间层的所述a"个第N虚拟块的热度值进行更新;对于X的每 一个取值对应的第X中间层,根据所述第X中间层中的所述ax个第X虚拟块中每个第X虚 拟块的热度值,对所述第x-1中间层中的所述个第x-1虚拟块的热度值进行更新; 根据第一中间层的阈值,从所述%个第一虚拟块中确定出至少一个目标第一虚拟块, 所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值;y按照从小 到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值对应的第y中间层, 根据所述第y中间层的阈值,从所述至少一个目标第y-Ι虚拟块包含的多个第y虚拟块中 确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大于或者等于所 述第y中间层的阈值; 对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块按照热度值的大小 进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等级,所述 热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器的种类; 当N= 1时, 在所述T1内,根据所述L个数据块中每个数据块被访问的次数,更新所述L个数据块 的热度值,其中,被访问的次数越多,则热度值越大;根据所述L个数据块中每个数据块的 热度值,对所述第一中间层中的所述S1个第一虚拟块的热度值进行更新; 根据所述第一中间层的阈值,从所述%个第一虚拟块中确定出至少一个目标第一虚拟 块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈值; 对确定出的所述至少一个目标第一虚拟块包含的多个目标数据块按照热度值的大小 进行排序,并按照排序结果更新所述多个目标数据块中每一目标数据块的热度等级,所述 热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括的存储器的种类,所 述存储系统包括至少两种存储器。
2. 根据权利要求1所述的方法,其特征在于,还包括: 比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度等级,并确定出 需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块中的且更新后热 度等级1?于原热度等级的数据块; 在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升级处理。
3. 根据权利要求1或2所述的方法,其特征在于: 所述第一中间层的阈值是根据所述^个第一虚拟块包括的数据块的热度值平均值和 热度值标准差计算得到的。
4. 根据权利要求3所述的方法,其特征在于: 所述第一中间层的阈值A1 =μ^t1*σi,μi为所述ai个第一虚拟块包括的数据块的热 度值平均值,σi为所述ai个第一虚拟块包括的数据块的热度值标准差,tl为σi的系数, 其中,〇i不等于零,Le[〇,μ^σJ。
5. 根据权利要求1至4任一项所述的方法,其特征在于: 所述第y中间层的阈值是根据所述至少一个目标第y-Ι虚拟块包含的多个第y虚拟块 对应的数据块的热度值平均值和热度值标准差计算得到的。
6. 根据权利要求5所述的方法,其特征在于: 所述第y中间层的阈值Ay =μy_ty*σy,μy为所述至少一个目标第y-ι虚拟块包含的 多个第y虚拟块对应的数据块的热度值平均值,σy为所述至少一个目标第y-ι虚拟块包 含的多个第y虚拟块对应的数据块的热度值标准差,ty为σy的系数,ty随着y的递增而递 减,其中,0y不等于零,Le 。
7. 根据权利要求1至6任一项所述的方法,其特征在于: 在所述存储系统内包括两种存储器,所述两种存储器包括第一存储器和第二存储器, 且所述第一存储器的访问速度大于所述第二存储器的访问速度, 所述方法还包括: 在时间间隔T2内,将位于所述第一存储器内的需要降级的数据块迁移到所述第二存储 器,所述T2用于进行降级迁移且所述T2的长度是固定的; 在Nfreel<第一阈值时,对位于所述第一存储器内的数据块按照热度值的大 小进行排序,所述需要降级的数据块是指从所述排序结果中选出的热度值比较小的 min(Nfree2,C)个数据块,其中,所述第一阈值是由确定出的需要升级的数据块的数目确定 的,或者,所述第一阈值是由平均每时间间隔T2内需要从所述第一存储器降级迁移到所述 第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述第一存储器内包含 的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的数值确定的; 其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存储器 内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T2内,所述 第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。
8. 根据权利要求7所述的方法,其特征在于: 在所述第一阈值<Nfreel<第二阈值时,所述需要降级的数据块是指从所述排序结 果中选出的热度值比较小的min(Nfree2,C,ANfreel)个数据块; 其中,ANfreel=Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第一存 储器内的空闲物理块的数量,且ANfreel的值为大于O的整数,所述第二阈值是根据在所 述T2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被所述 T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
9. 根据权利要求1至6任一项所述的方法,其特征在于: 在所述存储系统内包括K种存储器,其中K> 3且K为整数,所述K种存储器包括第i存储器、第i-Ι存储器和第i-2存储器,且所述第i存储器的访问速度大于所述第i-Ι存储 器的访问速度,所述第i-Ι存储器的访问速度大于所述第i-2存储器的访问速度,其中,i按 照从大到小的顺序依次从K取到3且i取整数; 所述方法还包括: 在所述T2内,将位于所述第i存储器内的需要降级的数据块迁移到所述第i-2存储器, 将位于所述第i-Ι存储器内的需要降级的数据块迁移到所述第i-2存储器,以及将位于所 述第i存储器内的需要降级的数据块迁移到所述第i-Ι存储器。
10. 根据权利要求9所述的方法,其特征在于, 所述将位于所述第i存储器内的需要降级的数据块迁移到所述第i-2存储器,将位于 所述第i-Ι存储器内的需要降级的数据块迁移到所述第i-2存储器,以及将位于所述第i 存储器内的需要降级的数据块迁移到所述第i-Ι存储器,包括: 将位于所述第i存储器的数据块按照热度值的大小进行排序,将位于所述第i-Ι存储 器的数据块也按照热度值的大小进行排序,并从所述第i存储器包括的数据块的排序结果 和所述第i-Ι存储器包括的数据块的排序结果中共同选择出热度值比较小的Nfree(i-2) 个数据块,将所述Nfree(i-2)个数据块降级迁移到所述第i-2存储器,所述Nfree(i-2)为 所述第i-2存储器包括的空闲物理块的数量; 将位于所述第i存储器的数据块按照热度值的大小进行排序,并从所述第i存储 器包括的数据块的排序结果中选择出热度值比较小的Nfree(i-1)个数据块,将所述 Nfree(i-Ι)个数据块降级迁移到所述第i-Ι存储器,所述Nfree(i-Ι)为所述第i-Ι存储器 包括的空闲物理块的数量。
11. 一种分层存储管理装置,其特征在于,应用于存储系统, 所述存储系统包括至少L个数据块且所述存储系统包括N个中间层,N为整数,其中,L> 3且L为整数,所述L个数据块被分配到位于第N中间层的an个第N虚拟块中,所述an 个第N虚拟块中每一第N虚拟块包括至少一个数据块,其中,2 <an <L且an为整数;X按 照从大到小的顺序依次从N取到2,且所述X取整数,对于所述X的每一个取值对应的第X 中间层的ax个第X虚拟块,被分配到位于第x-1中间层的个第x-1虚拟块中,所述ax_i 个第x-1虚拟块中每一第x-1虚拟块包括至少一个第X虚拟块,an> 2且ay为整数,ax > 且ax为整数; 所述装置包括: 当N彡2时, 热度值更新单元,用于在一个统计周期T1内,根据所述L个数据块中每个数据块被访 问的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所 述L个数据块中每个数据块的热度值,对所述第N中间层的所述an个第N虚拟块的热度值 进行更新;对于X的每一个取值对应的第X中间层,根据所述第X中间层中的所述ax个第 X虚拟块中每个第X虚拟块的热度值,对所述第x-1中间层中的所述ay个第x-1虚拟块的 热度值进行更新; 确定单元,用于根据第一中间层的阈值,从所述B1个第一虚拟块中确定出至少一个目 标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一中间层的阈 值;y按照从小到大的顺序依次从2取到N且所述y取整数,对于所述y的每一个取值对应 的第y中间层,根据所述第y中间层的阈值,从所述至少一个目标第y-Ι虚拟块包含的多个 第y虚拟块中确定出至少一个目标第y虚拟块,所述至少一个目标第y虚拟块的热度值大 于或者等于所述第y中间层的阈值; 第一排序单元,用于对确定出的所述至少一个目标第N虚拟块包含的多个目标数据块 按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目标数据 块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统内包括 的存储器的种类; 当N= 1时, 所述热度值更新单元,还用于在所述T1内,根据所述L个数据块中每个数据块被访问 的次数,更新所述L个数据块的热度值,其中,被访问的次数越多,则热度值越大;根据所述 L个数据块中每个数据块的热度值,对所述第一中间层中的所述B1个第一虚拟块的热度值 进行更新; 所述确定单元,还用于根据所述第一中间层的阈值,从所述%个第一虚拟块中确定出 至少一个目标第一虚拟块,所述至少一个目标第一虚拟块的热度值大于或者等于所述第一 中间层的阈值; 所述第一排序单元,还用于对确定出的所述至少一个目标第一虚拟块包含的多个目标 数据块按照热度值的大小进行排序,从并按照排序结果更新所述多个目标数据块中每一目 标数据块的热度等级,所述热度等级的数目大于或者等于2,且小于或者等于所述存储系统 内包括的存储器的种类,所述存储系统包括至少两种存储器。
12. 根据权利要求11所述的装置,其特征在于,还包括: 比较单元,用于比较所述多个目标数据块中每一数据块的原热度等级和更新后的热度 等级,并确定出需要升级的数据块,所述需要升级的数据块是指位于所述多个目标数据块 中的且更新后热度等级高于原热度等级的数据块; 升级单元,用于在所述需要升级的数据块被访问时,将所述需要升级的数据块进行升 级处理。
13.根据权利要求11或12所述的装置,其特征在于: 所述第一中间层的阈值是根据所述^个第一虚拟块包括的数据块的热度值平均值和 热度值标准差计算得到的。
14.根据权利要求13所述的装置,其特征在于: 所述第一中间层的阈值A1=μ ^t1* σ i,μ i为所述ai个第一虚拟块包括的数据块的热 度值平均值,σi为所述ai个第一虚拟块包括的数据块的热度值标准差,tl为σi的系数, 其中,〇i不等于零,Le[〇, μ^σ J。
15.根据权利要求11至14任一项所述的装置,其特征在于: 所述第y中间层的阈值是根据所述至少一个目标第y-Ι虚拟块包含的多个第y虚拟块 对应的数据块的热度值平均值和热度值标准差计算得到的。
16.根据权利要求15所述的装置,其特征在于: 所述第y中间层的阈值Ay=μy_ty* 〇y,μy为所述至少一个目标第y-Ι虚拟块包含的 多个第y虚拟块对应的数据块的热度值平均值,σy为所述至少一个目标第y-ι虚拟块包 含的多个第y虚拟块对应的数据块的热度值标准差,ty为σy的系数,ty随着y的递增而递 减,其中,〇y不等于零,G/(T1.)。
17. 根据权利要求11至16任一项所述的装置,其特征在于: 在所述存储系统内包括两种存储器,所述两种存储器包括第一存储器和第二存储器, 且所述第一存储器的访问速度大于所述第二存储器的访问速度, 所述装置还包括: 第一降级单元,用于在时间间隔T2内,将位于所述第一存储器内的需要降级的数据块 迁移到所述第二存储器,所述T2用于进行降级迁移且所述T2的长度是固定的; 第二排序单元,用于在Nfreel<第一阈值时,对位于所述第一存储器内的数据块按 照热度值的大小进行排序,所述需要降级的数据块是指从所述排序结果中选出的热度值比 较小的min(Nfree2,C)个数据块,其中,所述第一阈值是由确定出的需要升级的数据块的 数目确定的,或者,所述第一阈值是由平均每时间间隔T2内需要从所述第一存储器降级迁 移到所述第二存储器的数据块的数目确定的;或者,所述第一阈值的大小由所述第一存储 器内包含的所有物理块的数目减去确定出的所述多个目标数据块的数目得到的数值确定 的; 其中,Nfreel是指所述第一存储器内空闲物理块的数量;Nfree2是指所述第二存储器 内空闲物理块的数量;所述物理块用于存储所述数据块;C是指在所述时间间隔T2内,所述 第一存储器向所述第二存储器之间传输的并被所述第二存储器接收的数据块的数量。
18. 根据权利要求17所述的装置,其特征在于: 在所述第一阈值<Nfreel<第二阈值时,所述需要降级的数据块是指从所述排序结 果中选出的热度值比较小的min(Nfree2,C,ANfreel)个数据块; 其中,ANfreel=Nfreel'_Nfreel,Nfreel'为在上一次进行降级迁移时,所述第一存 储器内的空闲物理块的数量,且ANfreel的值为大于O的整数,所述第二阈值是根据在所 述T2内升级数据块的平均速率确定的,以保证所述第一存储器内的空闲物理块不会被所述 T2内的升级的数据块占用完,所述第一阈值小于所述第二阈值。
19. 根据权利要求11至16任一项所述的装置,其特征在于: 在所述存储系统内包括K种存储器,其中K> 3且K为整数,所述K种存储器包括第i存储器、第i-Ι存储器和第i-2存储器,且所述第i存储器的访问速度大于所述第i-Ι存储 器的访问速度,所述第i-Ι存储器的访问速度大于所述第i_2存储器的访问速度时,其中, i按照从大到小的顺序依次从K取到3且i取整数; 所述装置还包括: 第二降级单元,用于在所述T2内,将位于所述第i存储器内的需要降级的数据块迁移 到所述第i_2存储器,将位于所述第i-Ι存储器内的需要降级的数据块迁移到所述第i_2 存储器,以及将位于所述第i存储器内的需要降级的数据块迁移到所述第i-Ι存储器。
20. 根据权利要求19所述的装置,其特征在于,所述第二降级单元包括: 第三排序单元,用于将位于所述第i存储器的数据块按照热度值的大小进行排序,将 位于所述第i-Ι存储器的数据块也按照热度值的大小进行排序; 第一选择单元,用于从所述第i存储器包括的数据块的排序结果和所述第i-Ι存储 器包括的数据块的排序结果中共同选择出热度值比较小的Nfree(i-2)个数据块,将所述Nfree(i-2)个数据块降级迁移到所述第i-2存储器,所述Nfree(i-2)为所述第i-2存储器 包括的空闲物理块的数量; 第四排序单元,用于将位于所述第i存储器的数据块按照热度值的大小进行排序; 第二选择单元,用于从所述第i存储器包括的数据块的排序结果中选择出热度值比较 小的Nfree(i-Ι)个数据块,将所述Nfree(i-Ι)个数据块降级迁移到所述第i-Ι存储器,所 述Nfree(i-Ι)为所述第i-Ι存储器包括的空闲物理块的数量。
21. -种存储系统,其特征在于,包括R种存储器和如权利要求11-20任一项所述的分 层存储管理装置,R为大于或者等于2的整数, 所述R种存储器内存储有至少L个数据块, 所述分层存储管理装置用于从所述至少L个数据块中确定出多个目标数据块,根据所 述多个目标数据块中每一目标数据块的热度值,将所述多个目标数据块划分为R个热度等 级。
【文档编号】G06F12/06GK104317731SQ201410555114
【公开日】2015年1月28日 申请日期:2014年10月17日 优先权日:2014年10月17日
【发明者】万继光, 马晓慧, 程龙 申请人:杭州华为数字技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1