一种raid5系统及在raid5系统失效后继续写数据的方法

文档序号:9865142阅读:567来源:国知局
一种raid5系统及在raid5系统失效后继续写数据的方法
【技术领域】
[0001 ] 本申请涉及数据存储技术领域,特别涉及独立冗余磁盘阵列(Redundant Arrayof Independent Disk,RAID)技术,尤其涉及一种RAID5系统及在RAID5系统失效后继续写数据的方法。
【背景技术】
[0002]独立冗余磁盘阵列(RedundantArray of Independent Disk,RAID)技术将多个单独的物理硬盘以特定方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性。根据不同的组合方式可以分为不同的RAID级别。常用RAID级别有:0、1、2、3、4、5、6、01、10等。
[0003]RAID 5是以数据的校验位来保证数据的安全,但它不是以单独某一个硬盘来存放数据的校验位,而是将数据段的校验位交替存放于各个硬盘上。RAID5磁盘阵列中的数据存放结构如图1所示。图1中示出了由四个磁盘组成的一个RAID5磁盘阵列,每一个圆柱体表示一个磁盘;?(?31';^7)表示校验位,0((^〖3)表示数据段,校验数据的计算方式为异或(101.)。在图1所示例子中,每三个数据段的异或结果作为这三个数据段的校验位。例如,校验位Pi是数据段D1、D2、D3的异或结果,S卩Pl=DleD2?D3。这样任何一个硬盘损坏,都可以根据其它硬盘上的校验位以及数据段来重建损坏的数据。
[0004]根据以上所述的RAID5技术原理,当该磁盘阵列中出现I块硬盘故障,可以通过重建的方式恢复该坏盘上的数据;但是当出现2块硬盘故障后,RAID5磁盘阵列就失效了,这时候就不能再对该RAID5磁盘阵列剩余的正常磁盘做任何读写操作,特别是不能继续写数据,有可能会导致严重的丢失数据事故。因为即使事后把RAID5磁盘数据恢复,也会因为RAID5故障时间段内业务数据没有及时写到RAID组中而导致这段数据的丢失。特别是对于在线视频监控这类的应用,对于连续视频数据记录的要求很高,因此需要采用一定的技术手段保证在RAID5磁盘阵列出现2块磁盘故障后仍然能够继续写入视频流数据。

【发明内容】

[0005]本申请提供了一种RAID5系统及在RAID5系统失效后继续写数据的方法,能够满足连续写入数据的要求。
[0006]本申请实施例提供的一种在RAID5系统失效后继续写数据的方法,包括:
[0007]A、通过配置文件记录第一RAID5磁盘组成员盘信息,记录第一RAID磁盘组状态为正常状态,通过第一位图表记录第一 RAID5磁盘组有效使用的条带;
[0008]B、判断第一 RAID5磁盘组是否出现失效的情况,若是,执行步骤C,否则继续执行本步骤;
[0009]C、将第一 RAID磁盘组的状态变更为失效状态,通过配置文件获知磁盘组还有哪些磁盘是正常的,通过第一位图表获知磁盘组中正常磁盘还有哪些条带空间还没有被使用以及剩余空间的大小;
[0010]D、生成用于记录所述正常磁盘的条带使用情况的第二位图表;
[0011]E、若收到写新数据的写请求,通过第二位图表查找正常磁盘的剩余空闲的条带位置,在所述空闲条带中写入新数据,并且把该条带位置记录到第二位图表中。
[0012]可选地,步骤B包括:如果仅出现I块磁盘故障,开始做数据重建;数据重建过程中又出现I块磁盘故障,则执行步骤C。
[0013]可选地,步骤D之后进一步包括:
[0014]D1、若收到新的1请求,通过第一位图表判断该1请求是读写已有数据还是写新数据,若是读写已有数据,则反馈错误到上层,并返回步骤Dl;若写新数据,执行步骤E。
[0015]可选地,步骤E所述在所述空闲条带中写入新数据包括:如果该RAID5剩余正常磁盘数量大于3个,将剩余正常磁盘组成第二RAID5磁盘组存放数据,剩余磁盘数据小于3个就按照RAIDO的方式存放数据。
[0016]可选地,若第二RAID5磁盘组失效,按照步骤C至步骤E找到正常磁盘和空闲条带,如果正常磁盘数目大于3,继续组成第三RAID5磁盘组存放数据,剩余磁盘数据小于3个就按照RAIDO的方式存放数据。
[0017]可选地,步骤E之后进一步包括:按照第一位图表和第二位图表记录的条带位置,分别恢复故障前数据以及故障后写入的数据
[0018]本申请实施例还提供了一种RAID5系统,包括:
[0019]第一模块,用于通过配置文件记录第一 RAID5磁盘组成员盘信息,记录第一 RAID磁盘组状态为正常状态,通过第一位图表记录第一 RAID5磁盘组有效使用的条带;
[0020]第二模块,用于判断第一RAID5磁盘组是否出现失效的情况,若是,使能第三模块;
[0021]第三模块,用于将第一RAID磁盘组的状态变更为失效状态,通过配置文件获知磁盘组还有哪些磁盘是正常的,通过第一位图表获知磁盘组中正常磁盘还有哪些条带空间还没有被使用以及剩余空间的大小;
[0022]第四模块,用于生成用于记录所述正常磁盘的条带使用情况的第二位图表;
[0023]第五模块,用于在生成第二位图表之后,若收到写新数据的写请求,通过第二位图表查找正常磁盘的剩余空闲的条带位置,在所述空闲条带中写入新数据,并且把该条带位置记录到第二位图表中。
[0024]可选地,该RAID5系统进一步包括:
[0025]第六模块,用于在生成第二位图表之后,若收到新的1请求,通过第一位图表判断该1请求是读写已有数据还是写新数据,若是读写已有数据,则反馈错误到上层。
[0026]可选地,如果该RAID5剩余正常磁盘数量大于3个,所述第五模块将剩余正常磁盘组成第二RAID5磁盘组存放数据,剩余磁盘数据小于3个,第五模块就按照RAIDO的方式存放数据。
[0027]可选地,该RAID5系统进一步包括:
[0028]第七模块,用于按照第一位图表和第二位图表记录的条带位置,分别恢复故障前数据以及故障后写入的数据。
[0029]从以上技术方案可以看出,在RAID5磁盘组失效后,找到剩余正常磁盘以及正常磁盘中的空闲条带,在所述空闲条带中写入新数据,从而实现了连续写入数据。较佳地,如果剩余正常磁盘的数目大于3,还可以将剩余磁盘组成新的RAID5磁盘组,以保证数据安全。
【附图说明】
[0030]图1为RAID5磁盘阵列中的数据存放结构示意图;
[0031]图2为本申请实施例提供的在RAID5系统失效后继续写视频流数据的方法流程示意图。
【具体实施方式】
[0032]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0033]本申请实施例提供的在RAID5系统失效后继续写数据的方法流程如图2所示,包括如下步骤:
[0034]步骤201:创建第一 RAID5磁盘组的时候,通过配置文件记录该磁盘组成员盘信息,记录第一 RAID磁盘组状态为正常状态,通过第一位图表(bitmapl)记录第一 RAID5磁盘组有效使用的条带。
[0035]例如,对于每一个条带在第一位图表中有一个比特对应,如果该条带已使用,其对应比特置为I,反之置为O。
[0036]步骤202:判断第一RAID5磁盘组是否出现失效的情况,若是,执行步骤203,否则继续执行本步骤。该步骤为可选步骤。
[0037]其中,如果仅出现I块磁盘故障,可以正常工作或者开始做数据重建;数据重建过程中又出现I块磁盘故障,则执行步骤203。
[0038]步骤203:将第一RAID磁盘组的状态变更为失效状态,通过配置文件获知磁盘组还有哪些磁盘是正常的,通过第一位图表获知磁盘组中正常磁盘还有哪些条带空间还没有被使用以及剩余空间的大小。
[0039]步骤204:生成用于记录所述正常磁盘的条带使用情况的第二位图表。
[0040]生成第二位图表的方式可以是将当前时刻的第一位图表拷贝一个副本,作为第二位图表。
[0041]步骤205:若收到新的1请求,通过第一位图表判断该1请求是读写已有数据还是写新数据,若是读写已有数据,则执行步骤206;若写新数据,执行步骤207。
[0042]通常情况下,对于监控视频这类应用,在一般工作状态下,只有写新数据的10,没有读写的1
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1