一种适用于磁盘阵列的数据重建方法技术

技术编号:2841103 阅读:276 留言:0更新日期:2012-04-11 18:40
一种适用于磁盘阵列的数据重建方法,属于计算机存储技术领域,目的是动态跟踪用户访问的热点变化,优先重建用户访问的热点区域,从而缩短重建时间并提高用户访问的服务质量。本发明专利技术包括初始化进程、用户访问跟踪进程、重建调度进程、重建执行进程。本发明专利技术有效地利用用户的访问,优先对用户访问频率相对较高的数据区域进行重建,提供较高的服务质量;根据用户的访问模式提前重建好用户即将要访问的数据,在保证可靠性的前提下提高系统性能,适用于当前工作负载日趋密集的磁盘阵列存储系统。

【技术实现步骤摘要】

本专利技术属于计算机存储
,具体涉及。
技术介绍
磁盘阵列RAID是高性能高可靠存储系统的基本组成单元,无论是传统的单机存储如DAS,或者是当前主流的网络存储如NAS、SAN或存储集群,磁盘阵列都在其中发挥着重要的作用。磁盘阵列通过各种冗余机制和在线重构重建方法来保证数据的高可靠性。RAID1、RAID10以及RAID5是具有冗余机制的三种最常用的阵列级别,其数据重建方法已从最早的面向条带的重建方法SOR发展到当前广泛应用的面向磁盘的重建方法DOR。DOR一直沿用至今,成为磁盘阵列内部经典的数据重建方法。当磁盘阵列运行过程中发现某磁盘失效时自动触发数据重建方法,数据重建方法在线重构失效盘上的数据,并写入到替换盘上。重建失效盘上的单元块的数据一般可以分为三个步骤读取数据、重构数据和写入数据。面向条带的重建方法SOR是将这三个步骤串行执行,一个条带一个条带地逐一顺序重建单元块直到所有块都重建完毕。SOR缺少并行度而导致效率低下。面向磁盘的重建方法DOR是在SOR基础之上发展而成的,它改变了SOR重建过程的串行执行方式。DOR为每一个无故障的磁盘创建一个读取数据的任务,为替换盘创建一个写入数据的任务,再创建一个用于重构数据的缓冲区管理任务负责产生要恢复的数据,这三者流水执行,大大加速了数据重建过程。尽管DOR相比于SOR大大提高了磁盘阵列的重建速度,但随着磁盘技术的飞速发展,磁盘容量每年增加约50%,而磁盘的数据传输率每年只增加约20%,容量与速度的鸿沟将会越变越大,DOR已经无法适应当前磁盘阵列对重建方法的苛刻要求,这一切亟待新的数据重建方法的产生。
技术实现思路
本专利技术提出,目的是动态跟踪用户访问的热点变化,优先重建用户访问的热点区域,从而缩短重建时间并提高用户访问的服务质量。本专利技术的,包括下列进程(1)初始化进程,在计算机内存设置失效盘需要重建的总块数、已启动重建块数、已完成重建块数、重建队列的成员个数、重建区域长度、需要重建区域个数、重建时间片长度、每个重建区域的状态、每个重建区域的用户访问次数、每个重建区域内已重建块数、每个重建区域的一次重建块数,将上述数据结构初始化后,将失效盘上需要重建的总块数划分为若干个等长的不重叠的重建区域,同时启动用户访问跟踪进程,重建调度进程和重建执行进程;(2)用户访问跟踪进程,跟踪并统计用户对重建区域的访问次数,所有重建区域重建完毕,本进程结束;(3)重建调度进程,定期检查所有重建区域并选出当前访问次数最高的重建区域,将该重建区域内未重建的块发送到重建队列,其个数为重建时间片长度,反复进行本重建调度进程,直到所有的重建区域都重建完毕,本进程结束;(4)重建执行进程,从重建队列中依次取出等待重建的块并进行相应的数据重建工作,直到失效盘上需要重建的总块数均被重建完毕,本进程结束。所述适用于磁盘阵列的数据重建方法,其特征在于(1).所述初始化进程,顺序进行下述步骤(1.1)将失效盘的条带数U设置为需要重建的总块数N,已启动重建块数B、已完成重建块数D、重建队列的成员个数I均设置为0,其中U、N、B、D和I均为非负整数;(1.2)设置重建区域长度L,128≤L≤8192,需要重建区域个数Z设置为N÷L,设置重建时间片长度T,16≤T≤128;(1.3)初始化Z个重建区域,将每个重建区域的状态S设置为0,S取值范围为0或1;每个重建区域的用户访问次数A、每个重建区域内已重建块数E、每个重建区域的一次重建块数C均设置为0,0≤C≤T;(1.4)将第一个重建区域的覆盖范围设置为,第二个重建区域的覆盖范围设置为[L,2×L-1],第三个重建区域的覆盖范围设置为[2×L,3×L-1],以此类推,第Z个重建区域的覆盖范围设置为[(Z-1)×L,Z×L-1],其中A、E、C均为非负整数;(1.5)同时启动用户访问跟踪进程,重建调度进程和重建执行进程;(2).所述用户访问跟踪进程,进行下述步骤(2.1)判断是否已启动重建块数B≥需要重建的总块数N;是则转步骤(2.5);(2.2)判断是否有用户请求到达,否则转步骤(2.1);(2.3)判断用户请求的块地址R是否落在失效盘上,否则转步骤(2.1);(2.4)将用户请求的块地址R除以重建区域长度L,得到的结果取整,为该请求所落在的重建区域编号,将该编号的重建区域的用户访问次数A设置为A+1,转步骤(2.1);(2.5)结束;(3).所述重建调度进程,进行下述步骤(3.1)判断是否已启动重建块数B≥需要重建的总块数N;是则转步骤(3.8);(3.2)判断是否重建队列的成员个数I为0,否则转步骤(3.1);(3.3)遍历所有的重建区域,检查每个重建区域状态S和用户访问次数A,选出重建区域状态S为0而且用户访问次数A最高的重建区域为第K个重建区域,0<K≤Z;(3.4)判断该重建区域内是否L-E≥T,是则将该重建区域的一次重建个数C设置为T;否则将一次重建个数C设置为L-E,该重建区域状态S设置为1;(3.5)将块号为第((K-1)×L+E)到((K-1)×L+E+C-1)共C个重建块顺序插入到重建队列的头部,将重建队列的成员个数I设置为C;(3.6)将已启动重建块数B设置为B+C,将第K个重建区域内已重建块数E设置为E+C;(3.7)将所有重建区域的用户访问次数A设置为0,转步骤(3.1);(3.8)结束;(4).所述重建执行进程,进行下述步骤(4.1)判断是否已完成重建块数D≥需要重建的总块数N;是则转步骤(4.5);(4.2)判断是否重建队列的成员个数I为0,是则转步骤(4.1);(4.3)从重建队列的队列尾部取出一个重建块,执行对该块的重建操作,直至该块重建完成;(4.4)将重建队列的成员个数I设置为I-1,已完成重建块数D设置为D+1,转步骤(4.1);(4.5)结束。与面向磁盘的严格顺序重建方法不同,本专利技术的重建方法将需重建的所有块划分为若干个不重叠的重建区域,动态跟踪用户访问的次数和位置,从而判断哪些重建区域是用户访问次数较高的区域,哪些区域是用户访问次数一般的区域,哪些是用户访问很少的区域。本重建方法优先重建用户访问次数较高的区域,然后再重建用户访问的一般热点区域,最后重建用户很少访问甚至不访问的区域,充分考虑了用户的访问模式,从而具有更高的服务质量和更快的数据重建速度,具有以下优点1.对用户热点访问的区域,即对用户访问频率相对较高的区域进行优先重建,减少了重建所需的时间和用户访问的延迟。2.在保证可靠性的前提下提高系统性能,可根据用户的访问模式提前重建好用户即将要访问(读请求)的数据,进一步缩短了用户访问的延迟。本专利技术的重建方法有效地利用用户访问具有局部性的模式,并根据用户的访问模式采取有针对性的重建策略。因此,本专利技术适用于当前工作负载日趋密集的磁盘阵列存储系统。附图说明图1为本专利技术的初始化进程示意图;图2为本专利技术的用户访问跟踪进程示意图;图3为本专利技术的重建调度进程示意图;图4为本专利技术的重建执行进程示意图。具体实施例方式图1为本专利技术的初始化进程示意图,顺序进行下述步骤(1)将失效盘的条带数U设置为需要重建的总块数N,已启动重建块数B、已完成重建块数D、重建队列的成员个数I均设置为0;(2)将重建区域长度L设置为204本文档来自技高网
...

【技术保护点】
一种适用于磁盘阵列的数据重建方法,包括下列进程:(1)初始化进程,在计算机内存设置失效盘上需要重建的总块数、已启动重建块数、已完成重建块数、重建队列的成员个数、重建区域长度、需要重建区域个数、重建时间片长度、每个重建区域的状态、每个重建区域的用户访问次数、每个重建区域内已重建块数、每个重建区域的一次重建块数,将上述数据结构初始化后,将失效盘上需要重建的总块数划分为若干个等长的不重叠的重建区域,同时启动用户访问跟踪进程,重建调度进程和重建执行进程;(2)用户访问跟踪进程,跟踪并统计用户对重建区域的访问次数,所有重建区域重建完毕,本进程结束;(3)重建调度进程,定期检查所有重建区域并选出当前访问次数最高的重建区域,将该重建区域内未重建的块发送到重建队列,其个数为重建时间片长度,反复进行本重建调度进程,直到所有的重建区域都重建完毕,本进程结束;(4)重建执行进程,从重建队列中依次取出等待重建的块并进行相应的数据重建工作,直到失效盘上需要重建的总块数均被重建完毕,本进程结束。

【技术特征摘要】
1.一种适用于磁盘阵列的数据重建方法,包括下列进程(1)初始化进程,在计算机内存设置失效盘上需要重建的总块数、已启动重建块数、已完成重建块数、重建队列的成员个数、重建区域长度、需要重建区域个数、重建时间片长度、每个重建区域的状态、每个重建区域的用户访问次数、每个重建区域内已重建块数、每个重建区域的一次重建块数,将上述数据结构初始化后,将失效盘上需要重建的总块数划分为若干个等长的不重叠的重建区域,同时启动用户访问跟踪进程,重建调度进程和重建执行进程;(2)用户访问跟踪进程,跟踪并统计用户对重建区域的访问次数,所有重建区域重建完毕,本进程结束;(3)重建调度进程,定期检查所有重建区域并选出当前访问次数最高的重建区域,将该重建区域内未重建的块发送到重建队列,其个数为重建时间片长度,反复进行本重建调度进程,直到所有的重建区域都重建完毕,本进程结束;(4)重建执行进程,从重建队列中依次取出等待重建的块并进行相应的数据重建工作,直到失效盘上需要重建的总块数均被重建完毕,本进程结束。2.如权利要求1所述的适用于磁盘阵列的数据重建方法,其特征在于(1).所述初始化进程,顺序进行下述步骤(1.1)将失效盘的条带数U设置为需要重建的总块数N,已启动重建块数B、已完成重建块数D、重建队列的成员个数I均设置为0,其中U、N、B、D和I为非负整数;(1.2)设置重建区域长度L,128≤L≤8192,需要重建区域个数Z设置为N÷L,设置重建时间片长度T,16≤T≤128;(1.3)初始化Z个重建区域,将每个重建区域的状态S设置为0,S取值范围为0或1;每个重建区域的用户访问次数A、每个重建区域内已重建块数E、每个重建区域的一次重建块数C均设置为0,0≤C≤T;(1.4)将第一个重建区域的覆盖范围设置为,第二个重建区域的覆盖范围设置为[L,2×L-1],第三个重建区域的覆盖范围设置为[2×L,3×L-1],以此类推,第Z个重建区域的覆盖范围设置为[(Z-1)×L,Z×L-1],其中A...

【专利技术属性】
技术研发人员:冯丹田磊庞丽萍周可王芳刘景宁曾令仿施展童薇
申请(专利权)人:华中科技大学
类型:发明
国别省市:83[中国|武汉]

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

1