一种失效盘优先的高速缓冲存储器替换方法技术

技术编号:6966245 阅读:251 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种失效盘优先的Cache替换方法,该方法通过计算所有局部堆栈中最底部的内存块的权重,并删除其中具有最大或最小权重的内存块;权重的计算方法对于失效磁盘和非失效磁盘有所不同,并将磁盘块放入删除后获得的空闲内存块,由于失效盘的内存块的权重最小或最大的概率较大,所以可得达到优先保留失效盘内存块的目的。该方法通过减少cache对于失效磁盘的定向次数,减少了对于整个存活磁盘的I/O请求次数,更少的I/O请求能够提高磁盘阵列的性能。

【技术实现步骤摘要】

本专利技术属于计算机存储领域,具体涉及一种失效盘优先(Victim Disk First, VDF)的高速缓冲存储器(Cache)替换方法。这种方法适用于磁盘阵列中的失效磁盘,能够减少对于失效磁盘的I/O次数,提高磁盘阵列的性能以及可靠性。
技术介绍
可靠性与可用性是衡量在线存储服务质量的重要标准。对于为商业与工业应用提供在线服务的系统,数据丢失以及时常间断的服务往往意味着经济损失。磁盘冗余阵列 RAID (Redundant Array of Independent Disk)是能够提供高可靠性与高可用性的主流选择之一。在早期的RAID规范中,例如RAID-O到RAID-5,其仅仅提供单盘容错能力。近年来,具有更高容错能力的各种RAID系统逐渐开始被采用,因其在两个或两个以上磁盘同时失效时仍然能够恢复所有丢失的数据,与此同时还能够提供不间断的在线服务。对于存储系统,特别是提供在线服务的存储系统,以最终用户的立场,请求平均响应时间是评价其服务质量的重要标准。但是,为了能够在重建因磁盘失效而丢失的数据的同时提供在线服务,重建数据带来的读/写工作流与用户请求带来的工作流将会不可避免的相互影响,从而直接导致最终用户所享受的服务质量的下降。大量的研究表明,相对于无故障模式,存在恢复工作流时的降级模式下,读/写请求平均响应时间会受到极大影响,往往会增长数倍至数十倍不等。与此同时,相对于线下重建,在线重建的耗时也会呈数量级的延长。因此,减小在线重构时用户请求的平均响应时间,以及缩短重构时间,是提高最终用户所享受的服务质量最为直接有效的途径。目前已有许多针对此问题的解决方案被提出, 例如,针对数据的分布的优化方法、针对用户工作流的优化以及针对重构工作流的优化。以上方式都已被证明能够有效的提高在线重构的性能,包括减小在线重构时用户请求的平均响应时间或者缩短重构时间。Cache被广泛的使用并且很多Cache算法用来解决磁盘延迟的问题,但是常用的 Cache替换算法仅考虑到无错模式下,如果在磁盘阵列中,若一些磁盘失效,此时RAID仍然在此失效的模式下工作,使用业余重建模式(Spare-rebuilding mode)以及退化模式 (degraded mode)两种方法,此时失效盘的缺失代价相比存活磁盘的缺失代价来说完全不同,若缺失数据驻于失效磁盘中,RAID控制器访问存活磁盘并且进行奇偶校验重建失效数据,此时I/O请求次数由RAID结构所决定,对于常用的LRU以及LFU算法,η个磁盘中一个磁盘失效的缺失代价为η-1 (η为大于等于2的正整数),此时对于失效磁盘的一次Cache缺失需要将剩下的η-1个盘进行重构以得到该失效盘数据,再将该失效盘数据块加入到Cache 中,此时若Cache为满时,直接将LRU全局栈(该堆栈存储的是全部磁盘所有的内存块)栈底的内存块剔除,不考虑该内存块是否属于失效盘,若将失效盘的内存块剔除,此后访问失效盘时将仍需要进行重构数据,再次产生η-1次I/O请求,这样使得I/O次数大大增加
技术实现思路
为解决以上的问题,本专利技术提供了一种失效盘优先(Victim Disk First, VDF)的 Cache替换方法。该方法在磁盘阵列失效的情况下优先缓存失效盘的内存块,能够减少对于存活磁盘的I/O请求次数,提高了以RAID为基础的存储系统的性能。本专利技术提供了,当磁盘向高速缓冲存储器发出请求的磁盘块时,执行以下步骤(1)判断该磁盘块是否位于高速缓冲存储器中该磁盘块所在盘的局部堆栈中,若是,则令该磁盘块对应的内存块的时间戳与全局时间戳相等,并将该磁盘块放入所述局部堆栈和全局堆栈的头部,转入步骤(6);若否,则判断高速缓冲存储器是否已满,若是,则进入步骤(2),若否,则转入步骤(4);(2)计算所有局部堆栈中最底部的内存块的权重,权重的计算方法为如果内存块对应的是失效磁盘的内存块,则内存块的权重W = GTS-TS ;否则,内存块的权重W = (GTS-TS) *(m-l);其中,GTS为全局时间戳,TS为内存块的时间戳,m为内存块所在的局部堆栈包含的内存块总个数;(3)删除步骤(2)中计算的具有最大权重的内存块;(4)取得一个空闲内存块;(5)将磁盘块放入所述空闲内存块,令该磁盘块对应的内存块的时间戳与全局时间戳相等,并将该磁盘块放入其所在的局部堆栈和全局堆栈的头部。(6)令全局时间戳加1。本专利技术还提供了,当磁盘向高速缓冲存储器发出请求的磁盘块时,执行以下步骤(1)判断该磁盘块是否位于高速缓冲存储器中该磁盘块所在盘的局部堆栈中,若是,则令该磁盘块对应的内存块的访问次数加1,将该磁盘块放入其所在的局部堆栈和全局堆栈中,转入步骤(6);若否,则判断高速缓冲存储器是否已满,若是,则执行步骤(2),若否,则执行步骤(4);(2)计算所有局部堆栈中最底部的内存块的权重,权重的计算方法为如果内存块对应的是失效磁盘的内存块,则内存块的权重W = F*(m-1),否则,内存块的权重W = F, 其中F为内存块的访问次数,m为内存块所在的局部堆栈包含的内存块总个数;(3)删除步骤(2)中计算的具有最小权重的内存块;(4)取得一个空闲内存块;(5)将磁盘块放入所述空闲内存块,令该磁盘块对应的内存块的访问次数为1,将该磁盘块加入到其所在的局部堆栈和全局堆栈中;(6)结束。本专利技术所述的Cache替换方法在磁盘阵列失效的情况下优先缓存失效盘的内存块,从而更加有效的处理失效磁盘,能够减少对于失效磁盘定向的次数,同时还能够减少对于存活磁盘的I/O请求次数,本方法能够提高整个磁盘阵列的性能,能够加速业余重建模式下的重建进程,能够在不考虑重建负载的模式下提高存储系统的可靠性及系统的性能。附图说明图1为VDF两种类型堆栈的执行方式示意图2为VDF-LRU替换方法流程图;图3为VDF-LFU替换方法流程图。具体实施例方式本专利技术提供了一种失效盘优先(Victim Disk First, VDF)的Cache替换方法,该方法通过计算内存块的权重,优先保留失效盘中的内存块,减少了对于失效盘的访问次数, 从而减少了 I/O请求次数。下面以基于RAID-5系统中η个磁盘一个失效为例(η大于等于2),将VDF方法与最近最少使用页面置换算法(Least Recently Used, LFU)以及最不经常使用页置换算法 (least frequently used, LRU)算法结合起来描述本专利技术的具体措施。在LRU类型的算法中,内存块的权重由存储时间间歇来决定,它表示最后存储的时间戳(timestamp),即访问序列号。内存块的访问概率由间隔时间内访问序列号决定。在 LFU类型的算法中,内存块权重由访问概率所决定。本专利技术中VDF-LRU算法以及VDF-LFU算法需要保持上述的内存块权重的评估方法,由权重决定哪块内存块将被剔除。本专利技术所述的Cache结构包括全局堆栈(GlcAal Stack, GS)和局部堆栈(Local Mack,LS),如图1所示,每个磁盘对应cache中的一个局部堆栈,局部堆栈存储的是同一个磁盘的内存块,将磁盘中的磁盘数据块放入Cache中,再将同一个磁盘的内存块以局部堆栈的数据结构进行存储,RAID控制器访问Cache时,若需本文档来自技高网
...

【技术保护点】
1.一种失效盘优先的高速缓冲存储器替换方法,当磁盘向高速缓冲存储器发出请求的磁盘块时,执行以下步骤:(1)判断该磁盘块是否位于高速缓冲存储器中该磁盘块所在盘的局部堆栈中,若是,则令该磁盘块对应的内存块的时间戳与全局时间戳相等,并将该磁盘块放入所述局部堆栈和全局堆栈的头部,转入步骤(6);若否,则判断高速缓冲存储器是否已满,若是,则进入步骤(2),若否,则转入步骤(4);(2)计算所有局部堆栈中最底部的内存块的权重,权重的计算方法为:如果内存块对应的是失效磁盘的内存块,则内存块的权重W=GTS-TS;否则,内存块的权重W=(GTS-TS)*(m-1);其中,GTS为全局时间戳,TS为内存块的时间戳,m为内存块所在的局部堆栈包含的内存块总个数;(3)删除步骤(2)中计算的具有最大权重的内存块;(4)取得一个空闲内存块;(5)将磁盘块放入所述空闲内存块,令该磁盘块对应的内存块的时间戳与全局时间戳相等,并将该磁盘块放入其所在的局部堆栈和全局堆栈的头部。(6)令全局时间戳加1。

【技术特征摘要】

【专利技术属性】
技术研发人员:曹强万胜刚黄建忠谢长生周旭
申请(专利权)人:华中科技大学
类型:发明
国别省市:83

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1