一种提升独立磁盘冗余阵列性能的方法及其控制器技术

技术编号:3846152 阅读:222 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种提升独立磁盘冗余阵列RAID性能的方法,该方法包括:在RAID降级的情况下,使用同条带的校验块来存储故障磁盘数据块中数据,并将校验块中的数据标记为故障磁盘数据,之后在需要访问故障磁盘数据块中的数据时直接访问同条带的校验块。本发明专利技术还公开了RAID控制器。本发明专利技术的技术方案大大提升了RAID降级后的性能。

【技术实现步骤摘要】

本专利技术涉及存储系统
,尤指提升独立磁盘冗余阵列性能的方法 和独立磁盘冗余阵列控制器。
技术介绍
独立石兹盘冗余阵歹寸(RAID, Redundant Array of Independent Disks )才支术是目前采用的最广泛的硬盘提升存储性能和数据安全的技术。简单地讲, RAID技术就是利用多个硬盘的组合连成一个阵列,实现以快速、准确和安 全的方式来读写磁盘数据,从而达到提高数据的读写速度和安全性。RAID的数据组织方式采用的是分区、分块和条带。其中,分区是一个 磁盘上的地址连续的存储块, 一个磁盘可以划分为多个分区,每个分区的大 小可以不等,有时也称为逻辑磁盘;将一个分区分成多个大小相等、地址相 邻的块,这些块称为分块,分块是条带的元素,逻辑磁盘以分块为单位将逻 辑磁盘的地址映射到成员磁盘的地址;条带是不同分区上的位置相关的分块 的集合,是組织不同分区上的分块的单位。RAID的冗余技术分为镜像冗余和校验冗余。其中,校验冗余是使用校 验算法对同一条带上的数据进行校验,把校验值写入磁盘,当条带中的某个 数据块损坏时,通过同一条带的其他数据块和校验值,重新算出被损坏的数 据,从而达到冗余的效果。RAID的降级(Degrade )是指冗余阵列中的一个或多个磁盘实效后的 状态,此时阵列仍可以向外界提供正常的读写服务,但是如果再有一个磁盘 失效,则整个阵列处于不可用状态。目前,采用校验冗余技术的RAID有RAID5、 RAID3等,其中以RAID5最为常见。RAID5是一种由不少于3块磁盘組成的阵列,它以条带的方式向 阵列中的磁盘写数据,以异或(XOR)运算实现的奇偶校验为冗余方式,奇 偶校验数据均匀分布在各个磁盘上。异或运算通常用符号" ,,表示,其运算规则为0@0 = 0; 0@1 = 1; 1 0=1; 1 1=0;A@B=C <=> A<9C=B <=〉 B C=A;这样,当RAID5降级时,可以根据同条带的其他磁盘上的数据来重建 损坏的数据。图1是现有技术中的RAID5阵列存储数据的过程示意图。如图5所示, 该RAID5由4块物理石兹盘组成,分别为物理,兹盘0、 1、 2和3,每个条带都 有一个检验块,校验块中的校验数据由同条带中的数据块使用异或运算得 出。例如,条带1包括数据块D1、D2、D3和校验块P0,其中P0 = D10D2④D3, 其他条带以此类推。假如当Dl所在的磁盘故障,则可以通过等式Dl = P0@D2@D3来得到Dl的值,同理,故障磁盘在其他条带的数据也使用这 种方式获取。下面介绍采用奇偶检验冗余的RAID5降级后数据读写过程。 图2是现有技术中RAID5降级后的数据读过程的流程图。如图2所示, 包括以下步骤步骤201,接收到应用下发的读请求后,根据该RAID算法得到该读请 求的目标地址。步骤202,判断所得到的目标地址是否在故障磁盘上,是则执行步骤 203,否则执行步骤204。步骤203,该目标地址在故障磁盘上,所以该目标地址上的数据已经丟 失,需要根据冗余信息计算出该目标地址的数据,即读取该目标地址所在条 带上的其他数据块和校验块,并使用异或算法算出该目标地址上的数据。执 行步骤205。步骤204,该目标地址在正常的^兹盘上,所以直接读取该目标地址上的数据。执行步骤205。步骤205,将读取的数据提交上层处理。图3是现有技术中RAID5降级后的数据写过程的流程图。如图3所示, 包括以下步骤步骤301,接收到应用下发的写请求后,根据该RAID算法得到该写请 求的目标地址。步骤302,判断所得到的目标地址是否在故障磁盘上,是则执行步骤 303,否则执行步骤304。步骤303,该目标地址在故障磁盘上,—则根据要写入的数据以及该目标 地址所在条带的其他数据在内存中计算出新的校验和后,更新该条带中的校 验块数据,并将该要写入的数据直接丢弃。执行步骤305。步骤304,该目标地址在正常的磁盘上,则根据要写入的数据以及该目 标地址所在条带的其他数据在内存中计算出新的校验和后,更新该条带中的 校验块数据,并将要写入的数据直接写入该目标地址。执行步骤305。步骤305,返回写成功。在上述流程可以看出,RAID5降级后,在读故障磁盘中的数据时,需 要读取整个条带的正常数据块和校验块,通过计算得到故障磁盘的数据。例 如一个RAID5有N个》兹盘,读取故障-磁盘的一块数据时,需要读取同条带 上的其他N-1块数据,并对读取的数据进行计算,因此RAID5的读性能严 重下降。同样,在向故障磁盘中写数据时,也需要读取同条带的数据块,通 过计算得到新的校验和并更新校验块,因此,写性能也下降了。综上所述,现有的采用校验冗余的RAID在降级后其读写性能严重下降。
技术实现思路
本专利技术提供了两种提升独立磁盘冗余阵列RAID性能的方法,该方法能 够在RAID降级时,有效提高其性能。本专利技术还提供了两种独立磁盘冗余阵列RAID控制器,该控制器能够在 RAID降级时,有效提高其性能。为达到上述目的,本专利技术的技术方案具体是这样实现的 本专利技术公开了一种提升独立磁盘冗余阵列RAID性能的方法,该方法应 用于采用冲L验冗余且已降级的RAID,该方法包括为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验 块所存储的数据为校验数据或故障磁盘数据;在收到读请求时,判断该读请求的读地址是否在故障磁盘上; 如果读地址不在故障磁盘上,则直接读取读地址中的数据; 如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中 的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数 据,则直接读取该读地址所在条带中的校验块中的数据;反之,如果是校验 数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中 的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带 中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据 记录为故障磁盘数据,并将该计算出的数据作为所读取的数据。本专利技术还提供了一种提升独立磁盘冗余阵列RAID性能的方法,该方法 应用于采用校验冗余且已降级的RAID,该方法包括为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验 块所存储的数据为校验数据或故障磁盘数据;在收到写请求时,判断该写请求的写地址是否在故障磁盘上; 如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带 中的校验块所存储的数据是校验数据还是故障磁盘数据;如杲是故障磁盘数 据,则直接在写地址中写入写请求要求写入的数据;反之,如果是校验数据, 则在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据;如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中 的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据;反之, 如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的 数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为 故障磁盘数据。本专利技术公开了一种独立磁盘冗余阵列RAID控制器,该RAID控制器应 用于采用校验冗余且已降级的R本文档来自技高网
...

【技术保护点】
一种提升独立磁盘冗余阵列RAID性能的方法,其特征在于,该方法应用于采用校验冗余且已降级的RAID,该方法包括: 为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据; 在收 到读请求时,判断该读请求的读地址是否在故障磁盘上; 如果读地址不在故障磁盘上,则直接读取读地址中的数据; 如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁 盘数据,则直接读取该读地址所在条带中的校验块中的数据;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈乾业周迪
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1