一种raid阵列重建方法及装置的制作方法

文档序号:6381443阅读:196来源:国知局
专利名称:一种raid阵列重建方法及装置的制作方法
技术领域
本发明涉及网络存储领域,尤其涉及一种新颖的RAID阵列重建方法及装置。
背景技术
一个处于正常状态的RAID阵列遇到写错误或其他预定触发条件时,若存在热备盘则会触发拷贝重建。在线的拷贝重建,对重建磁盘和被重建磁盘而言,既要处理业务命令,又要处理重建命令,这样就会增加磁盘读写的随机性,对业务和重建性能有较大的影响。在RAID阵列中,一个大容量的磁盘在存在业务流量情况下进行拷贝重建所消耗的时间相当长,尤其当业务命令对应的LBA地址与重建命令对应的LBA地址在同一个碟片上地址之间的差值比较大时,会大大增加磁盘的寻址时间,从而降低了业务的整体性能。这种重建与业务并行的重建方式被称为在线式拷贝重建。
请参考图I在线式拷贝重建时RAID阵列的磁盘分布示例,其中RAID阵列包括6个磁盘(Diskl-Disk6)。当其中一个磁盘发生写错误,若存在热备盘则会触发拷贝重建,其中发生写错误的磁盘称为被重建盘(比如Disk6),重新申请的磁盘称为热备盘或重建盘。当业务命令与拷贝重建命令同时存在的情况下,就会增加重建盘与被重建盘的读写随机性。请参考图2,在线拷贝重建流程通常包括以下步骤
I)上层下发业务命令到RAID模块后,RAID模块将上层下发的命令拆分成条带命令,并挂入业务等待处理队列链表;
2)若需进行拷贝重建,则构建拷贝重建命令并挂入拷贝重建等待处理队列链表;
3)在业务命令与拷贝重建命令同时存在的情况下,数据通道需要根据相应的规则仲裁下发哪一类命令。
在上述流程中,重建命令和业务命令会混合下发到磁盘中进行处理,这样导致重建磁盘和被重建磁盘的读写IO随机性大大增加,磁盘的IOPS处理能力下降。发明内容
有鉴于此,本发明提供一种RAID阵列重建装置,应用于网络存储设备上,其中该网络存储设备包括至少一个RAID阵列,所述RAID阵列包括多个成员磁盘;该装置包括状态监控单元、重建管理单元以及业务处理单元,其中
状态监控单元,用于在发生预定重建触发事件时确定被重建盘,将被重建盘置为离线状态,将RAID阵列状态变更为降级状态,通知重建管理单元进行拷贝重建;
业务处理单元,用于在RAID阵列变为降级时,将此时需要写入RAID阵列条带中的数据写入RAID阵列当前的成员磁盘中对应的数据块中,并将该条带标识记录在离线业务表中;
重建管理单元,用于将被重建盘上的数据拷贝到重建盘上,并在拷贝结束后执行局部重建,所述局部重建包括进一步遍历所述离线业务表,针对离线业务表中记录的每个条带,重建管理单元读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的4校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。
本发明还提供一种RAID阵列重建方法,应用于网络存储设备上,其中该网络存储设备包括至少一个RAID阵列,所述RAID阵列包括多个成员磁盘;该方法包括如下步骤
步骤A、在发生预定重建触发事件时确定被重建盘,将被重建盘置为离线状态,将 RAID阵列状态变更为降级状态;
步骤B、在RAID阵列变为降级时,将此时需要写入RAID阵列条带中的数据写入 RAID阵列当前的成员磁盘中对应的数据块中,并将该条带标识记录在离线业务表中;
步骤C、在RAID阵列变为降级状态后,将被重建盘上的数据拷贝到重建盘上,并在拷贝结束后执行局部重建,所述局部重建包括进一步遍历所述离线业务表,针对离线业务表中记录的每个条带,读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。
本发明可以有效避免拷贝重建对在线存储业务性能的影响,并可大幅度缩短拷贝重建的时间。


图I是现有技术中一种RAID阵列在线拷贝重建的逻辑示意图。
图2是现有技术中一种RAID阵列在线拷贝重建的处理流程图。
图3是本发明一种实施方式中RAID阵列重建装置逻辑结构图。
图4是本发明一种实施方式中RAID阵列重建方法的处理流程图。
具体实施方式
在以大块业务数据顺序存储为主的应用环境中,比如视频监控这种典型多媒体数据存储应用中,来自上层的业务命令通常会持续地向RAID阵列中顺序写入数据。这种顺序写入可以充分发挥磁盘的写入性能,然而在线拷贝重建过程会严重打乱这种顺序写入在性能上的优势。现有技术中未能充分考虑应用与磁盘性能之间的关系来设计重建方式。
在本发明提供的拷贝重建处理流程中,让重建磁盘和被重建磁盘离线进行拷贝。 这样一来,RAID阵列中其他磁盘可以继续在多媒体业务存储中充分发挥磁盘的顺序写性能,同时还可以在拷贝重建中发挥顺序写性能。等拷贝重建完成后,再补充这段时间本来该写入重建盘的数据,这样既不影响原有业务性能,又大大缩短了拷贝重建时间。以下通过更为具体的实施方式来描述离线拷贝重建的实现过程。
请参考图3以及图4,本发明一种实施方式中提供一种RAID阵列重建装置,该装置应用在网络存储设备上,该网络存储设备至少包括一个RAID阵列。该装置包括状态监控单元、重建管理单元以及业务处理单元。以计算机程序实现为例,该装置运行在网络存储设备上执行如下的处理过程。
步骤101,在发生预定的重建触发事件时,状态监控单元确定需要重建的被重建盘,通知重建管理单元执行拷贝重建,将被重建盘置为离线状态并将RAID阵列变更为降级状态;
步骤102,重建管理单元从系统中获取作为重建盘的热备盘,执行拷贝重建以将处于离线状态的被重建盘上的数据拷贝到重建盘上;
步骤103,当被重建盘的某一数据块上的数据无法读取时,重建管理单元获取该数据块所在条带上其他数据块上的数据,并根据RAID阵列对应的RAID算法计算出该数据块上的数据,并将计算出的数据写入到重建盘上对应的数据块中;
步骤104,在拷贝重建完成之前,业务处理单元在接收到业务写入命令时,将需要写入条带中的数据写入RAID阵列当前的成员磁盘中对应的数据块中,并在离线业务表中记录下该条带的标识;
步骤105,在拷贝重建完成之后,重建管理单元执行局部重建,遍历所述离线业务表,对于每一个被记录下的条带,重建管理单元读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。
步骤106,重建管理单元将被重建盘的RAID身份信息赋予给重建盘,将重建盘加入到RAID阵列中,并将重建盘置为在线状态。
在RAID阵列中,业务数据的存放是条带化存放的,这样可以将数据并行写入到多个成员磁盘中,大大提升业务数据的写入速度,并且可以提供存储的冗余性。请参考表1, 假设RAID阵列的级别是RAID5,其包括6个成员磁盘(D1-D6)。一个条带(Stripe)包括六个数据块,比如条带I包括Blockl-Block6,其分别位于D1-D6上。六个Block中会有一个 Block是用来存放校验数据的,当然在其他更高级别的RAID中可能会有更多的Block来存放校验数据。对于RAID5这个级别来说,其RAID算法(也称为“校验算法”)是异或算法 BI 132 133Φ134 9Β5—136,其中 B1-B6 分别表示 Blockl-Block6 中的数据。当任意一个Block中的数据损坏时,可以通过使用RAID算法通过其他Block中的数据将其计算出来,也就是说RAID5可以容忍一块成员磁盘的损坏而不丢失业务数据。
权利要求
1.一种RAID阵列重建装置,应用于网络存储设备上,其中该网络存储设备包括至少一个RAID阵列,所述RAID阵列包括多个成员磁盘;该装置包括状态监控单元、重建管理单元以及业务处理单元,其特征在于 状态监控单元,用于在发生预定重建触发事件时确定被重建盘,将被重建盘置为离线状态,将RAID阵列状态变更为降级状态,通知重建管理单元进行拷贝重建; 业务处理单元,用于在RAID阵列变为降级时,将此时需要写入RAID阵列条带中的数据写入RAID阵列当前的成员磁盘中对应的数据块中,并将该条带标识记录在离线业务表中; 重建管理单元,用于将被重建盘上的数据拷贝到重建盘上,并在拷贝结束后执行局部重建,所述局部重建包括进一步遍历所述离线业务表,针对离线业务表中记录的每个条带,重建管理单元读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。
2.如权利要求I所述的装置,其特征在于,所述重建管理单元,用于将被重建盘的RAID身份信息赋予给重建盘,将重建盘加入到RAID阵列中,并将重建盘置为在线状态,将RAID阵列状态修改为正常状态。
3.如权利要求2所述的装置,其特征在于,所述重建管理单元进一步用于在拷贝重建完成之后局部重建开始之前将所述重建盘加入RAID阵列中。
4.如权利要求3所述的装置,其特征在于,所述重建管理单元用于在完成某个条带的局部重建之后,删除该条带在离线业务表中的记录;所述业务处理单元进一步用于在局部重建期间每次向某个条带写入数据之前都遍历当前的离线业务表,如果该条带在离线业务表中有记录则将数据写入到该条带后,相应地删除该条带的记录。
5.如权利要求I所述的装置,其特征在于,重建管理单元进一步用于在将被重建盘上的数据拷贝到重建盘过程中遇到被重建盘上数据块中的数据读取失败时,读取该数据块所在条带的其他数据块上的数据,并根据RAID校验算法计算出该数据块上的数据,并将计算出的数据写入到重建盘上的该数据块中。
6.一种RAID阵列重建方法,应用于网络存储设备上,其中该网络存储设备包括至少一个RAID阵列,所述RAID阵列包括多个成员磁盘;其特征在于,该方法包括如下步骤 步骤A、在发生预定重建触发事件时确定被重建盘,将被重建盘置为离线状态,将RAID阵列状态变更为降级状态; 步骤B、在RAID阵列变为降级时,将此时需要写入RAID阵列条带中的数据写入RAID阵列当前的成员磁盘中对应的数据块中,并将该条带标识记录在离线业务表中; 步骤C、在RAID阵列变为降级状态后,将被重建盘上的数据拷贝到重建盘上,并在拷贝结束后执行局部重建,所述局部重建包括进一步遍历所述离线业务表,针对离线业务表中记录的每个条带,读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。
7.如权利要求6所述的方法,其特征在于,所述步骤C进一步包括将被重建盘的RAID身份信息赋予给重建盘,将重建盘加入到RAID阵列中,并将重建盘置为在线状态,将RAID阵列状态修改为正常状态。
8.如权利要求7所述的方法,其特征在于,所述步骤C进一步包括在拷贝重建完成之后局部重建开始之前将所述重建盘加入RAID阵列中。
9.如权利要求8所述的方法,其特征在于,所述步骤C进一步包括在完成某个条带的局部重建之后,删除该条带在离线业务表中的记录;所述步骤B进一步包括在局部重建期间每次向某个条带写入数据之前都遍历当前的离线业务表,如果该条带在离线业务表中有记录则将数据写入到该条带后,相应地删除该条带的记录。
10.如权利要求6所述的方法,其特征在于,所述步骤C进一步包括在将被重建盘上的数据拷贝到重建盘过程中遇到被重建盘上数据块中的数据读取失败时,读取该数据块所在条带的其他数据块上的数据,并根据RAID校验算法计算出该数据块上的数据,并将计算出的数据写入到重建盘上的该数据块中。
全文摘要
本发明提供一种RAID阵列重建方法及对应装置,该方法包括在发生预定重建触发事件时确定被重建盘,将被重建盘置为离线状态,将RAID阵列状态变更为降级状态;将此时需要写入条带中的数据写入当前成员磁盘中,并将该条带标识记录在离线业务表中;将被重建盘上的数据拷贝到重建盘上,并在拷贝结束后执行局部重建,遍历所述离线业务表,针对离线业务表中记录的每个条带,读取该条带上成员磁盘各个数据块上的数据,并依据RAID阵列对应的校验算法计算出重建盘上对应的数据,将计算出的数据写入到重建盘上对应的数据块中。本发明可以有效避免拷贝重建对在线存储业务性能的影响,并可大幅度缩短拷贝重建的时间。
文档编号G06F3/06GK102981778SQ201210461849
公开日2013年3月20日 申请日期2012年11月15日 优先权日2012年11月15日
发明者郭永强, 胡荣国 申请人:浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1