一种磁盘阵列的数据重建的方法及一种磁盘阵列系统的制作方法

文档序号:9432405阅读:400来源:国知局
一种磁盘阵列的数据重建的方法及一种磁盘阵列系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种磁盘阵列的数据重建的方法及一种磁盘阵列系统。
【背景技术】
[0002]随着信息量的爆炸性增长和计算机应用复杂程度的增加,现代企业的数据中心越来越依靠存储来实现核心业务数据存放、关键数据保护、高效的备份恢复和归档以及搭建容灾系统提供业务连续性等重要解决方案。这就对存储设备的容量、速度、可持续性、高可用性等都提出越来越高的要求,而存储系统中磁盘阵列的数据重建速度是一个重要的影响因素。
[0003]磁盘阵列是磁盘阵列是由很多磁盘组合成的一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列通过数据重建,在数组中任意一个磁盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新磁盘中。如图1所示的磁盘阵列的结构示意图。图中磁盘阵列由4个磁盘组成分别是数据盘A、数据盘B、数据盘C,I个用于存储数据盘的校验数据的数据校验盘D,4个磁盘被条带化,在一个条带中包括了 4个磁盘的条带片段,分别是条带片段A 101、条带片段B 102、条带片段C 103、条带片段D 104。有些磁盘阵列中还有备用盘,备用盘可以用于重建磁盘阵列中故障的磁盘。磁盘阵列经过条带化之后,会被分成多个条带,每个条带由位于磁盘中的条带片段组成。
[0004]如果磁盘阵列中有磁盘发生了故障,需要对源故障磁盘中的数据进行数据重建。现有的重建过程技术中,读取所有正常的磁盘中的数据,根据读取的正常磁盘中的数据重建源故障磁盘中的数据,将重建的数据写入到磁盘阵列中的用于替换源故障磁盘的重建盘中。
[0005]通过上述描述可见,现有的磁盘阵列的数据重建的技术中,对源故障磁盘中的数据重建需要读取磁盘阵列中所有正常磁盘的数据,读取的数据较多,需要耗费较多的时间;然后根据正常磁盘的数据进行重建,源故障磁盘中每一条数据都需要通过正常磁盘中的数据重建得到,处理的数据量较大,耗费的时间较多,总之,现有技术的数据重建的效率较低。

【发明内容】

[0006]有鉴于此,本发明提供了一种磁盘阵列的数据重建的方法及一种磁盘阵列系统,能够提高数据重建的效率。
[0007]—方面,本发明提供了一种磁盘阵列的数据重建的方法,包括:
[0008]S1:判断源故障磁盘中的当前条带片段中的原始数据是否无法读取,如果是,则执行步骤S2,否则,执行步骤S3;
[0009]S2:确定与当前条带片段属于同一个条带的相关条带片段,获取所述相关条带片段中的数据,根据所述相关条带片段中的数据重建当前条带片段中的原始数据,得到当前条带片段对应的重建数据;
[0010]S3:读取当前条带片段中的原始数据,将所述原始数据作为当前条带片段对应的重建数据。
[0011]进一步地,所述相关条带片段包括:位于所述源故障磁盘对应的数据盘中的数据盘相关条带片段、位于所述源故障磁盘对应的数据校验盘中的数据校验盘相关条带片段,其中,所述数据校验盘相关条带片段中存储有:对所有数据盘相关条带片段中的第一数据以及当前条带片段中的原始数据进行异或运算得到的第二数据;
[0012]所述S2中,所述获取所述相关条带片段中的数据,根据所述相关条带片段中的数据重建当前条带片段中的数据,得到当前条带片段对应的重建数据,包括:
[0013]获取所述源故障磁盘对应的每个数据盘中的数据盘相关条带片段中的第一数据;
[0014]获取所述源故障磁盘对应的数据校验盘中的数据校验盘相关条带片段中的第二数据;
[0015]对所有所述第一数据以及所述第二数据进行异或运算,获得所述重建数据。
[0016]进一步地,在所述SI之前,还包括:
[0017]检测所述磁盘阵列中的成员磁盘,当检测到当前成员磁盘满足重建条件时,将当前成员磁盘作为所述源故障磁盘,执行步骤Si,其中,所述重建条件包括:当前成员磁盘遇到写错误、当前成员磁盘超级快错误、当前成员磁盘检测自身故障、当前成员磁盘进行坏块替换失败、当前成员磁盘在预设时间内连续发生读写错误中的一个或多个。
[0018]进一步地,还包括:设置所述源故障磁盘的重建盘;
[0019]在所述S3之后还包括:将所述重建数据存储到所述重建盘中。
[0020]进一步地,还包括:
[0021]在所述源故障磁盘的数据重建过程中,当接收到读所述源故障磁盘中数据的读1请求时,根据所述1请求,确定被请求的数据对应的被请求条带片段,判断所述源故障磁盘中的所述被请求条带片段中的数据是否无法读取,如果是,则读取所述重建盘中所述被请求的数据对应的重建数据,否则,读取所述被请求条带片段中的所述被请求的数据。
[0022]进一步地,还包括:在所述源故障磁盘的数据重建过程中,当有向所述源故障磁盘写入数据的写1请求时,根据所述写1请求,将待写入的数据分别写入所述源故障磁盘和所述重建盘。
[0023]另一方面,本发明提供了一种磁盘阵列系统,包括:判断单元、重建单元、读取单元;
[0024]所述判断单元,用于判断源故障磁盘中的当前条带片段中的数据是否无法读取,当判断结果为是时,通知所述重建单元,当判断结果为否时,通知所述读取单元;
[0025]所述重建单元,用于确定与当前条带片段属于同一个条带的相关条带片段,获取所述相关条带片段中的数据,根据所述相关条带片段中的数据重建当前条带片段中的原始数据,得到当前条带片段对应的重建数据;
[0026]所述读取单元,用于读取当前条带片段中的原始数据,将所述原始数据作为当前条带片段对应的重建数据。
[0027]进一步地,所述相关条带片段包括:位于所述源故障磁盘对应的数据盘中的数据盘相关条带片段、位于所述源故障磁盘对应的数据校验盘中的数据校验盘相关条带片段,其中,所述数据校验盘相关条带片段中存储有:对所有数据盘相关条带片段中的第一数据以及当前条带片段中的原始数据进行异或运算得到的第二数据;
[0028]所述重建单元,在执行所述获取所述相关条带片段中的数据,根据所述相关条带片段中的数据重建当前条带片段中的数据,得到当前条带片段对应的重建数据时,具体执行:获取所述源故障磁盘对应的每个数据盘中的数据盘相关条带片段中的第一数据,获取所述源故障磁盘对应的数据校验盘中的数据校验盘相关条带片段中的第二数据,对所有所述第一数据以及所述第二数据进行异或运算,获得所述重建数据。
[0029]进一步地,还包括:
[0030]检测单元,用于检测所述磁盘阵列中的成员磁盘,当检测到当前成员磁盘满足重建条件时,将当前成员磁盘作为所述源故障磁盘,触发所述判断单元,其中,所述重建条件包括:当前成员磁盘遇到写错误、当前成员磁盘超级快错误、当前成员磁盘检测自身故障、当前成员磁盘进行坏块替换失败、当前成员磁盘在预设时间内连续发生读写错误中的一个或多个。
[0031]进一步地,还包括:
[0032]设置单元,用于设置所述源故障磁盘的重建盘;
[0033]存储单元,用于将所述重建数据存储到所述重建盘中。
[
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1