一种实现raid重构的方法及装置制造方法

文档序号:6638674阅读:374来源:国知局
一种实现raid重构的方法及装置制造方法
【专利摘要】本发明公开了一种实现RAID重构的方法及装置,包括:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。本发明技术方案提高了RAID重构的效率。
【专利说明】—种实现RAID重构的方法及装置

【技术领域】
[0001]本发明涉及磁盘存储技术,尤指一种实现磁盘冗余阵列(RAID)重构的方法及装置。

【背景技术】
[0002]存储系统是整个IT系统的基石,是IT技术赖以存在和发挥效能的基础平台。早先的存储形式是存储设备(通常是磁盘)与应用服务器其他硬件直接安装于同一个机箱之内,并且该存储设备是给本台应用服务器独占使用的。
[0003]磁盘冗余阵列(RAID,RedundantArray of Inexpensive Disks)技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性,其中,不同的组合方式用RAID级别来标识。RAID技术经过不断的发展,现在已拥有了从RAIDO到RAID5等6种标准级别的RAID级别。另外,还有RAID6、RAID7、RAIDlO (RAID1与 RAIDO 的组合)、RAIDOl (RAID0 与 RAIDl 的组合)、RAID30 (RAID3 与 RAIDO 的组合)、RAID50 (RAID0与RAID5的组合)等。不同RAID级别代表着不同的存储性能、数据安全性和存储成本。
[0004]RAID磁盘阵列出现异常的原因有很多,突然断电、重构RAID、磁盘顺序混乱、误删除、误格式化、误分区、病毒损坏、硬盘出现坏道或损坏等情况都可能导致RAID信息的异堂巾O
[0005]硬盘坏道是指无法被正确读、写的磁盘扇区。一个扇区能存储512Bytes的数据,如果在某个扇区中有任何一个字节不能被正确读写,就会被硬盘标识为“坏扇区”。这些“坏扇区”往往是因为碟片自身的读写缺陷造成的,因此是无法被修复的,这就是传统意义上所说的“物理坏道”。
[0006]就目前的制造工艺而言,盘片在生产的时候不可能做到完美无瑕,如果真要做到每一张碟片都没有任何坏道的话,那么硬盘的制造成本将非常的高。为此硬盘厂家采用了一个较为睿智的办法来屏蔽坏道,那就是采用永久缺陷表(P-1ist)的方式来记录坏道的位置,并将其进行屏蔽。
[0007]硬盘厂家在硬盘出厂前会将硬盘进行低级格式化,并在低级格式化的过程中把所有的坏道的位置记录到P-1ist中。当硬盘正常工作时,可以跳过这些无法正常工作的部分,让用户永远都不会察觉它们的存在。这样一来,用户在分区、格式化或检查刚购买的新硬盘时,不会发现有坏道的存在。P-1ist只是在硬盘生成的过程中形成的,因此只有硬盘厂家才有权限进行修改,普通用户是很难对其进行修改和查看的。
[0008]重新映射磁盘扇区(HD Tune)是硬盘出厂就已经预留的冗余扇区,会用来自动替换检测中出现的坏扇区,以保证硬盘的正常运行。
[0009]随着硬盘容量的不断提升,硬盘厂家也提供了一部分备用的硬盘空间作为备份,一旦用户在使用过程中有新的坏扇区出现,那么就用备用扇区进行自动替换,并将有问题的扇区及其替换情况记录在G-1ist中,这样就可以避免下次读写时再次使用到这部分的磁盘空间。当然,硬盘的备用扇区也都是有一定容量的,当备用扇区全部用完时,硬盘坏道就会产生了。
[0010]在RAID机制容忍硬盘损坏的范围内,及时发现并用同一规格的硬盘把坏盘进行替换,RAID将会自动重构,信息数据不受影响。如果硬盘损坏数量超出容忍范围,磁盘冗余阵列便会失效,可以通过RAID控制台将失效的最后一块硬盘强制上线(forceonline),成功后,依次将损坏硬盘换掉;如果不成功就必须对磁盘进行重构。
[0011]其中,磁盘重构是指:在某一磁盘(导致RAID重构的故障磁盘)出现故障之后,可以利用RAID组中剩余磁盘上的内容恢复导致RAID重构的故障磁盘的内容并将回复的内容写到一个空闲磁盘中。但是,一旦RAID组中剩余磁盘中也有坏扇区时,就会导致无法恢复导致RAID重构的故障磁盘与RAID组中剩余磁盘中坏扇区的位置相同的扇区上的数据。由于硬盘故障多数为少量区块的扇区故障引起,因少数扇区错误导致磁盘重构失效相对概率较高,而少量扇区的错误导致整个磁盘被踢出RAID成员,造成RAID失效,整个RAID上的所有数据丢失无法访问。


【发明内容】

[0012]为了解决上述技术问题,本发明提供了一种实现RAID重构的方法及装置,能够提高RAID重构的效率。
[0013]为了达到本发明目的,本发明提供了一种实现RAID重构的方法,在故障磁盘导致RAID重构的过程中,包括:
[0014]识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
[0015]分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
[0016]根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
[0017]将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
[0018]进一步地,该方法之前还包括:
[0019]在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
[0020]进一步地,该方法之前还包括:
[0021]建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的--对应的索引表。
[0022]进一步地,该方法之后还包括:
[0023]将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
[0024]进一步地,该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括:
[0025]监测RAID组中的各个磁盘的各个扇区读写1是否正常;
[0026]当某个磁盘的某个扇区出现1错误时,记录扇区的1错误的次数;
[0027]当扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记扇区为坏扇区;并获取坏扇区的位置。
[0028]进一步地,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
[0029]本发明还提供了一种实现RAID重构的装置,在故障磁盘导致RAID重构的过程中,包括:识别锁定模块、获取模块、第一校验模块和处理模块;其中,
[0030]识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
[0031]获取模块,用于分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
[0032]校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
[0033]处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
[0034]进一步地,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
[0035]进一步地,该装置还包括建表模块,用于建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
[0036]进一步地,处理模块,还用于将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
[0037]进一步地,识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括:
[0038]监测RAID组中的各个磁盘的各个扇区读写1是否正常;
[0039]当某个磁盘的某个扇区出现1错误时,记录扇区的1错误的次数;
[0040]当扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记扇区为坏扇区;并获取坏扇区的位置。
[0041]进一步地,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
[0042]本发明技术方案包括:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。本发明技术方案在一定程度上避免了 RAID重构失效,提高了 RAID重构的效率。

【专利附图】

【附图说明】
[0043]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0044]图1为本发明实现RAID重构的方法的流程图;
[0045]图2为本发明实现RAID重构的装置的结构示意图;
[0046]图3为本发明实现RAID重构的方法的实施例的流程图。

【具体实施方式】
[0047]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0048]图1为本发明实现磁盘冗余阵列(RAID)重构的方法的流程图,在故障磁盘导致RAID重构的过程中,如图1所示,包括以下步骤:
[0049]步骤101:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区。
[0050]进一步地,该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括:监测RAID组中的各个磁盘的各个扇区读写1是否正常;
[0051]当某个磁盘的某个扇区出现1错误时,记录该扇区的1错误的次数;
[0052]当该扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记该扇区为坏扇区;并获取该坏扇区的位置。
[0053]其中,锁定包括:按照预先设定的标准阻断读写1操作。关于如何阻断1操作,属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
[0054]其中,预先设定的标准可以是按照对齐方式为4K、1K、2K或512bit,分别锁定4K、1K、2K或512bit倍数的扇区的位置。
[0055]需要说明的是,锁定的方式为通过代码阻断对扇区的1访问(即延时访问)。例如4K对齐方式,从RAID组第一个扇区开始,每8个扇区构成一个4K大小的对齐块,每次锁定的扇区为4K大小,且开始扇区位置为扇区0、8、16、24以此类推的8的倍数。关于如何按照对齐方式锁定扇区属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
[0056]需要说明的是,可以根据实际情况设置第一阈值和第二阈值,例如,可以设置第一阈值为3,第二阈值为5。关于如何进行设置属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
[0057]进一步地,在该方法之前还包括:在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。以及,
[0058]建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的--对应的索引表。
[0059]需要说明的是坏扇区中转移的数据即是校验出的坏扇区的数据。另外,上述提到的“在做RAID时”是指系统根据RAID的级别对磁盘所做的RAID。
[0060]其中,索引表可以存放在各个磁盘的预留扇区中,也可以存放在存储系统的其他位置中。
[0061]其中,预设值可以根据实际情况进行设定,属于本领域技术人员所熟知的惯用技术手段。例如每个磁盘使用扇区位置为编号0-10000,可以预留前面或后面的编号为0-200的扇区为预留扇区,则每个磁盘扇区实际使用位置为200-10000。
[0062]需要说明的是,与RAID组中的磁盘的坏扇区的位置相同的RAID组中其它磁盘的扇区和导致RAID重构的故障磁盘的扇区是位于相同的条带上的,锁定与RAID组中的磁盘的坏扇区的位置相同的RAID组中其它磁盘的扇区和导致RAID重构的故障磁盘的扇区,即是锁定与RAID组中的磁盘的坏扇区处于同一条带中的扇区。这是本领域技术人员所熟知的公知常识,在此不再赘述。
[0063]步骤102:分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据。
[0064]进一步地,若无法获取第一数据和/或第二数据,则解锁与坏扇区的位置相同的RAID组中其它磁盘的扇区;清除1错误的次数,将该坏扇区所在磁盘踢出RAID组。结束本流程,RAID重构失效。
[0065]需要说明的是,一旦无法获取第一数据,则说明RAID组中还有其它磁盘的该扇区出现1错误。
[0066]步骤103:根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据。
[0067]需要说明的是,该RAID组的级别是指在对各个磁盘做RAID时,所采用的RAID的级别,例如RAID5或RAID6。
[0068]步骤104:将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
[0069]需要说明的是,本领域技术人员所熟知的是校验出的数据即为该坏扇区所在磁盘的坏扇区存储的数据,通过将校验出的数据存储在该坏扇区所在磁盘中预留的磁盘扇区中,避免了在重构过程中,由于该坏扇区所在磁盘中数据的丢失,造成的重构失效。另外,本领域技术人员熟知的是不同级别的RAID机制有不同的校验方法,例如RAID5的校验方法就是异或(XOR)运算。关于如何根据不同级别的RAID机制进行何种方式的校验,属于本领域技术人员所熟知的惯用技术手段,并不用来限制本发明的方法,在此不再赘述。
[0070]进一步地,该方法之后还包括:将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
[0071]将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中,可以根据索引表中的记录的坏扇区中的数据的存放位置读取坏扇区中的数据,为后续其它磁盘坏扇区校验出数据。
[0072]进一步地,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
[0073]本发明方法通过识别出RAID组中的磁盘的坏扇区的位置,锁定与坏扇区相应删去并获取第一数据和第二数据进行校正,提高了 RAID重构的效率,并且可以校验出坏扇区中存储的数据,从而避免了因为少数坏扇区导致的磁盘重构过程中的数据失效问题,以及提高了磁盘数据的安全性。
[0074]图2为本发明实现磁盘冗余阵列(RAID)重构的装置的结构示意图,在故障磁盘导致RAID重构的过程中,如图2所示,包括:识别锁定模块、获取模块、第一校验模块和处理模块。其中,
[0075]识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区。
[0076]进一步地,识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括::
[0077]监测RAID组中的各个磁盘的各个扇区读写1是否正常;
[0078]当某个磁盘的某个扇区出现1错误时,记录该扇区的1错误的次数;
[0079]当该扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记该扇区为坏扇区;并获取该坏扇区的位置。
[0080]获取模块,用于分别获取锁定的上述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据。
[0081]校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据。
[0082]处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
[0083]进一步地,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
[0084]进一步地,该装置还包括建表模块,用于建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
[0085]进一步地,处理模块,还用于将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
[0086]进一步地,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
[0087]图3为本发明实现RAID重构的方法的实施例的流程图,如图3所示,包括以下步骤:
[0088]步骤301:创建RAID组时,定义每块硬盘的前200M空间为预留扇区。
[0089]其中,0-10M空间为坏扇区转移的索引表存放位置,表中记录转移对应关系,包括:磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的--对应关系。其中,
10M-200M为实际的坏扇区转移位置(按照定义的最小区块进行转移,如每次转移数据为16个扇区8KB大小(N = 8KB))。
[0090]步骤302:在RAID重构的过程中,判断RAID组中是否有磁盘存在坏扇区,若存在,进入步骤303 ;若不存在,判断下一个扇区是否是坏扇区,直到该RAID组中没有坏扇区,结束本流程。
[0091]需要说明的是,在RAID重构的过程中造成RAID重构的故障磁盘已被踢出RAID组。记录造成RAID重构的故障磁盘的坏扇区的位置为a。
[0092]步骤303:识别出RAID组中的磁盘的坏扇区的位置。具体包括以下步骤:
[0093]监测各个磁盘的各个扇区读写1是否正常;
[0094]当某个磁盘的某个扇区出现1错误时,记录该扇区的1错误的次数;
[0095]当该扇区的1错误的次数为3时,标记扇区为坏扇区;并获取坏扇区的位置。记录坏扇区的位置为b。
[0096]步骤304:当坏扇区的位置b不等于造成RAID重构的故障磁盘的坏扇区的位置a时,锁定该坏扇区所在条带的全部扇区,并获取除该坏扇区之外的所在条带的其它磁盘的扇区中的数据以及导致RAID重构的故障磁盘的所在条带的扇区中的数据,并根据获得的数据以及与该RAID级别对应的校验方法校验出该坏扇区所在磁盘的坏扇区中的数据,进入步骤305。
[0097]如果不能获取除该坏扇区之外的所在条带的RAID组的其它磁盘的扇区中的数据,则解除锁定的扇区,RAID重构失效,从RAID组中踢出该坏扇区所在的磁盘,结束本流程。
[0098]步骤305:根据获得除该坏扇区之外的所在条带的RAID组的其它磁盘的扇区中的数据,以及校验出的该坏扇区中的数据,按照相应级别的RAID的校验方法计算出校验值T,并将该校验值写入预留的备份磁盘与坏扇区相同的扇区中,更新索引表;若造成RAID重构的故障磁盘的坏扇区的位置a与坏扇区的位置b存在交集,转移失败退出。
[0099]步骤306:该坏扇区数据转移完成,继续RAID重构。返回步骤302。
[0100]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
[0101]虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【权利要求】
1.一种实现磁盘冗余阵列RAID重构的方法,在故障磁盘导致RAID重构的过程中,其特征在于,包括: 识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区; 分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据; 根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据; 将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
2.根据权利要求1所述的方法,其特征在于,该方法之前还包括: 在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在所述RAID重构过程中存储所述磁盘的坏扇区中转移的数据。
3.根据权利要求2所述的方法,其特征在于,该方法之前还包括: 建立与所述磁盘的坏扇区标识和所述磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
4.根据权利要求3所述的方法,其特征在于,该方法之后还包括: 将所述校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在所述索引表中。
5.根据权利要求1所述的方法,其特征在于,该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括: 监测RAID组中的各个磁盘的各个扇区读写1是否正常; 当某个磁盘的某个扇区出现1错误时,记录所述扇区的1错误的次数; 当所述扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记所述扇区为坏扇区;并获取所述坏扇区的位置。
6.根据权利要求1所述的方法,其特征在于,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
7.一种实现磁盘冗余阵列RAID重构的装置,在故障磁盘导致RAID重构的过程中,其特征在于,包括:识别锁定模块、获取模块、第一校验模块和处理模块;其中, 识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区; 获取模块,用于分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据; 校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据; 处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
8.根据权利要求7所述的装置,其特征在于,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在所述RAID重构过程中存储所述磁盘的坏扇区中转移的数据。
9.根据权利要求8所述的装置,其特征在于,该装置还包括建表模块,用于建立与所述磁盘的坏扇区标识和所述磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,还用于将所述校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在所述索引表中。
11.根据权利要求7所述的装置,其特征在于,所述识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括: 监测RAID组中的各个磁盘的各个扇区读写1是否正常; 当某个磁盘的某个扇区出现1错误时,记录所述扇区的1错误的次数; 当所述扇区的1错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记所述扇区为坏扇区;并获取所述坏扇区的位置。
12.根据权利要求7所述的装置,其特征在于,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
【文档编号】G06F3/06GK104407821SQ201410773193
【公开日】2015年3月11日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】刘希猛, 罗东华 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1