CN104407821B - 一种实现raid重构的方法及装置 - Google Patents

一种实现raid重构的方法及装置 Download PDF

Info

Publication number
CN104407821B
CN104407821B CN201410773193.4A CN201410773193A CN104407821B CN 104407821 B CN104407821 B CN 104407821B CN 201410773193 A CN201410773193 A CN 201410773193A CN 104407821 B CN104407821 B CN 104407821B
Authority
CN
China
Prior art keywords
sector
disk
data
bad
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410773193.4A
Other languages
English (en)
Other versions
CN104407821A (zh
Inventor
刘希猛
罗东华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201410773193.4A priority Critical patent/CN104407821B/zh
Publication of CN104407821A publication Critical patent/CN104407821A/zh
Application granted granted Critical
Publication of CN104407821B publication Critical patent/CN104407821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种实现RAID重构的方法及装置,包括:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。本发明技术方案提高了RAID重构的效率。

Description

一种实现RAID重构的方法及装置
技术领域
本发明涉及磁盘存储技术,尤指一种实现磁盘冗余阵列(RAID)重构的方法及装置。
背景技术
存储系统是整个IT系统的基石,是IT技术赖以存在和发挥效能的基础平台。早先的存储形式是存储设备(通常是磁盘)与应用服务器其他硬件直接安装于同一个机箱之内,并且该存储设备是给本台应用服务器独占使用的。
磁盘冗余阵列(RAID,Redundant Array of Inexpensive Disks)技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高了磁盘读取的性能和数据的安全性,其中,不同的组合方式用RAID级别来标识。RAID技术经过不断的发展,现在已拥有了从RAID0到RAID5等6种标准级别的RAID级别。另外,还有RAID6、RAID7、RAID10(RAID1与RAID0的组合)、RAID01(RAID0与RAID1的组合)、RAID30(RAID3与RAID0的组合)、RAID50(RAID0与RAID5的组合)等。不同RAID级别代表着不同的存储性能、数据安全性和存储成本。
RAID磁盘阵列出现异常的原因有很多,突然断电、重构RAID、磁盘顺序混乱、误删除、误格式化、误分区、病毒损坏、硬盘出现坏道或损坏等情况都可能导致RAID信息的异常。
硬盘坏道是指无法被正确读、写的磁盘扇区。一个扇区能存储512Bytes的数据,如果在某个扇区中有任何一个字节不能被正确读写,就会被硬盘标识为“坏扇区”。这些“坏扇区”往往是因为碟片自身的读写缺陷造成的,因此是无法被修复的,这就是传统意义上所说的“物理坏道”。
就目前的制造工艺而言,盘片在生产的时候不可能做到完美无瑕,如果真要做到每一张碟片都没有任何坏道的话,那么硬盘的制造成本将非常的高。为此硬盘厂家采用了一个较为睿智的办法来屏蔽坏道,那就是采用永久缺陷表(P-list)的方式来记录坏道的位置,并将其进行屏蔽。
硬盘厂家在硬盘出厂前会将硬盘进行低级格式化,并在低级格式化的过程中把所有的坏道的位置记录到P-list中。当硬盘正常工作时,可以跳过这些无法正常工作的部分,让用户永远都不会察觉它们的存在。这样一来,用户在分区、格式化或检查刚购买的新硬盘时,不会发现有坏道的存在。P-list只是在硬盘生成的过程中形成的,因此只有硬盘厂家才有权限进行修改,普通用户是很难对其进行修改和查看的。
重新映射磁盘扇区(HD Tune)是硬盘出厂就已经预留的冗余扇区,会用来自动替换检测中出现的坏扇区,以保证硬盘的正常运行。
随着硬盘容量的不断提升,硬盘厂家也提供了一部分备用的硬盘空间作为备份,一旦用户在使用过程中有新的坏扇区出现,那么就用备用扇区进行自动替换,并将有问题的扇区及其替换情况记录在G-list中,这样就可以避免下次读写时再次使用到这部分的磁盘空间。当然,硬盘的备用扇区也都是有一定容量的,当备用扇区全部用完时,硬盘坏道就会产生了。
在RAID机制容忍硬盘损坏的范围内,及时发现并用同一规格的硬盘把坏盘进行替换,RAID将会自动重构,信息数据不受影响。如果硬盘损坏数量超出容忍范围,磁盘冗余阵列便会失效,可以通过RAID控制台将失效的最后一块硬盘强制上线(forceonline),成功后,依次将损坏硬盘换掉;如果不成功就必须对磁盘进行重构。
其中,磁盘重构是指:在某一磁盘(导致RAID重构的故障磁盘)出现故障之后,可以利用RAID组中剩余磁盘上的内容恢复导致RAID重构的故障磁盘的内容并将回复的内容写到一个空闲磁盘中。但是,一旦RAID组中剩余磁盘中也有坏扇区时,就会导致无法恢复导致RAID重构的故障磁盘与RAID组中剩余磁盘中坏扇区的位置相同的扇区上的数据。由于硬盘故障多数为少量区块的扇区故障引起,因少数扇区错误导致磁盘重构失效相对概率较高,而少量扇区的错误导致整个磁盘被踢出RAID成员,造成RAID失效,整个RAID上的所有数据丢失无法访问。
发明内容
为了解决上述技术问题,本发明提供了一种实现RAID重构的方法及装置,能够提高RAID重构的效率。
为了达到本发明目的,本发明提供了一种实现RAID重构的方法,在故障磁盘导致RAID重构的过程中,包括:
识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
进一步地,该方法之前还包括:
在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
进一步地,该方法之前还包括:
建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
进一步地,该方法之后还包括:
将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
进一步地,该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括:
监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录扇区的IO错误的次数;
当扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记扇区为坏扇区;并获取坏扇区的位置。
进一步地,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
本发明还提供了一种实现RAID重构的装置,在故障磁盘导致RAID重构的过程中,包括:识别锁定模块、获取模块、第一校验模块和处理模块;其中,
识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
获取模块,用于分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
进一步地,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
进一步地,该装置还包括建表模块,用于建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
进一步地,处理模块,还用于将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
进一步地,识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括:
监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录扇区的IO错误的次数;
当扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记扇区为坏扇区;并获取坏扇区的位置。
进一步地,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
本发明技术方案包括:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。本发明技术方案在一定程度上避免了RAID重构失效,提高了RAID重构的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实现RAID重构的方法的流程图;
图2为本发明实现RAID重构的装置的结构示意图;
图3为本发明实现RAID重构的方法的实施例的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实现磁盘冗余阵列(RAID)重构的方法的流程图,在故障磁盘导致RAID重构的过程中,如图1所示,包括以下步骤:
步骤101:识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区。
进一步地,该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括:监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录该扇区的IO错误的次数;
当该扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记该扇区为坏扇区;并获取该坏扇区的位置。
其中,锁定包括:按照预先设定的标准阻断读写IO操作。关于如何阻断IO操作,属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
其中,预先设定的标准可以是按照对齐方式为4K、1K、2K或512bit,分别锁定4K、1K、2K或512bit倍数的扇区的位置。
需要说明的是,锁定的方式为通过代码阻断对扇区的IO访问(即延时访问)。例如4K对齐方式,从RAID组第一个扇区开始,每8个扇区构成一个4K大小的对齐块,每次锁定的扇区为4K大小,且开始扇区位置为扇区0、8、16、24以此类推的8的倍数。关于如何按照对齐方式锁定扇区属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
需要说明的是,可以根据实际情况设置第一阈值和第二阈值,例如,可以设置第一阈值为3,第二阈值为5。关于如何进行设置属于本领域技术人员所熟知的惯用技术手段,在此不再赘述。
进一步地,在该方法之前还包括:在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。以及,
建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
需要说明的是坏扇区中转移的数据即是校验出的坏扇区的数据。另外,上述提到的“在做RAID时”是指系统根据RAID的级别对磁盘所做的RAID。
其中,索引表可以存放在各个磁盘的预留扇区中,也可以存放在存储系统的其他位置中。
其中,预设值可以根据实际情况进行设定,属于本领域技术人员所熟知的惯用技术手段。例如每个磁盘使用扇区位置为编号0-10000,可以预留前面或后面的编号为0-200的扇区为预留扇区,则每个磁盘扇区实际使用位置为200-10000。
需要说明的是,与RAID组中的磁盘的坏扇区的位置相同的RAID组中其它磁盘的扇区和导致RAID重构的故障磁盘的扇区是位于相同的条带上的,锁定与RAID组中的磁盘的坏扇区的位置相同的RAID组中其它磁盘的扇区和导致RAID重构的故障磁盘的扇区,即是锁定与RAID组中的磁盘的坏扇区处于同一条带中的扇区。这是本领域技术人员所熟知的公知常识,在此不再赘述。
步骤102:分别获取锁定的其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据。
进一步地,若无法获取第一数据和/或第二数据,则解锁与坏扇区的位置相同的RAID组中其它磁盘的扇区;清除IO错误的次数,将该坏扇区所在磁盘踢出RAID组。结束本流程,RAID重构失效。
需要说明的是,一旦无法获取第一数据,则说明RAID组中还有其它磁盘的该扇区出现IO错误。
步骤103:根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据。
需要说明的是,该RAID组的级别是指在对各个磁盘做RAID时,所采用的RAID的级别,例如RAID5或RAID6。
步骤104:将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
需要说明的是,本领域技术人员所熟知的是校验出的数据即为该坏扇区所在磁盘的坏扇区存储的数据,通过将校验出的数据存储在该坏扇区所在磁盘中预留的磁盘扇区中,避免了在重构过程中,由于该坏扇区所在磁盘中数据的丢失,造成的重构失效。另外,本领域技术人员熟知的是不同级别的RAID机制有不同的校验方法,例如RAID5的校验方法就是异或(XOR)运算。关于如何根据不同级别的RAID机制进行何种方式的校验,属于本领域技术人员所熟知的惯用技术手段,并不用来限制本发明的方法,在此不再赘述。
进一步地,该方法之后还包括:将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中,可以根据索引表中的记录的坏扇区中的数据的存放位置读取坏扇区中的数据,为后续其它磁盘坏扇区校验出数据。
进一步地,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
本发明方法通过识别出RAID组中的磁盘的坏扇区的位置,锁定与坏扇区相应删去并获取第一数据和第二数据进行校正,提高了RAID重构的效率,并且可以校验出坏扇区中存储的数据,从而避免了因为少数坏扇区导致的磁盘重构过程中的数据失效问题,以及提高了磁盘数据的安全性。
图2为本发明实现磁盘冗余阵列(RAID)重构的装置的结构示意图,在故障磁盘导致RAID重构的过程中,如图2所示,包括:识别锁定模块、获取模块、第一校验模块和处理模块。其中,
识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区。
进一步地,识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括::
监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录该扇区的IO错误的次数;
当该扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记该扇区为坏扇区;并获取该坏扇区的位置。
获取模块,用于分别获取锁定的上述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据。
校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据。
处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中。
进一步地,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在RAID重构过程中存储磁盘的坏扇区中转移的数据。
进一步地,该装置还包括建表模块,用于建立与磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
进一步地,处理模块,还用于将校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在索引表中。
进一步地,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
图3为本发明实现RAID重构的方法的实施例的流程图,如图3所示,包括以下步骤:
步骤301:创建RAID组时,定义每块硬盘的前200M空间为预留扇区。
其中,0-10M空间为坏扇区转移的索引表存放位置,表中记录转移对应关系,包括:磁盘的坏扇区标识和磁盘的坏扇区中转移的数据存放位置的一一对应关系。其中,10M-200M为实际的坏扇区转移位置(按照定义的最小区块进行转移,如每次转移数据为16个扇区8KB大小(N=8KB))。
步骤302:在RAID重构的过程中,判断RAID组中是否有磁盘存在坏扇区,若存在,进入步骤303;若不存在,判断下一个扇区是否是坏扇区,直到该RAID组中没有坏扇区,结束本流程。
需要说明的是,在RAID重构的过程中造成RAID重构的故障磁盘已被踢出RAID组。记录造成RAID重构的故障磁盘的坏扇区的位置为a。
步骤303:识别出RAID组中的磁盘的坏扇区的位置。具体包括以下步骤:
监测各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录该扇区的IO错误的次数;
当该扇区的IO错误的次数为3时,标记扇区为坏扇区;并获取坏扇区的位置。记录坏扇区的位置为b。
步骤304:当坏扇区的位置b不等于造成RAID重构的故障磁盘的坏扇区的位置a时,锁定该坏扇区所在条带的全部扇区,并获取除该坏扇区之外的所在条带的其它磁盘的扇区中的数据以及导致RAID重构的故障磁盘的所在条带的扇区中的数据,并根据获得的数据以及与该RAID级别对应的校验方法校验出该坏扇区所在磁盘的坏扇区中的数据,进入步骤305。
如果不能获取除该坏扇区之外的所在条带的RAID组的其它磁盘的扇区中的数据,则解除锁定的扇区,RAID重构失效,从RAID组中踢出该坏扇区所在的磁盘,结束本流程。
步骤305:根据获得除该坏扇区之外的所在条带的RAID组的其它磁盘的扇区中的数据,以及校验出的该坏扇区中的数据,按照相应级别的RAID的校验方法计算出校验值T,并将该校验值写入预留的备份磁盘与坏扇区相同的扇区中,更新索引表;若造成RAID重构的故障磁盘的坏扇区的位置a与坏扇区的位置b存在交集,转移失败退出。
步骤306:该坏扇区数据转移完成,继续RAID重构。返回步骤302。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种实现磁盘冗余阵列RAID重构的方法,在故障磁盘导致RAID重构的过程中,其特征在于,包括:
识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中;
该方法之前还包括:识别RAID组中的磁盘是否存在坏扇区;具体包括:
监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录所述扇区的IO错误的次数;
当所述扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记所述扇区为坏扇区;并获取所述坏扇区的位置。
2.根据权利要求1所述的方法,其特征在于,该方法之前还包括:
在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在所述RAID重构过程中存储所述磁盘的坏扇区中转移的数据。
3.根据权利要求2所述的方法,其特征在于,该方法之前还包括:
建立与所述磁盘的坏扇区标识和所述磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
4.根据权利要求3所述的方法,其特征在于,该方法之后还包括:
将所述校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在所述索引表中。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
6.一种实现磁盘冗余阵列RAID重构的装置,在故障磁盘导致RAID重构的过程中,其特征在于,包括:识别锁定模块、获取模块、第一校验模块和处理模块;其中,
识别锁定模块,用于识别出RAID组中的磁盘存在坏扇区,锁定与该坏扇区的位置相同的RAID组中的除该坏扇区所在磁盘之外的其它磁盘的扇区和导致RAID重构的故障磁盘的扇区;
获取模块,用于分别获取锁定的所述其它磁盘的扇区中的第一数据和与锁定的故障磁盘的扇区中的第二数据;
校验模块,用于根据获得第一数据和第二数据以及该RAID组的级别,校验出该坏扇区中的数据;
处理模块,用于将校验出的数据存放在该坏扇区所在磁盘中预留的磁盘扇区中,根据校验出的数据和获得第一数据校验出校验值并将校验值存储在备份磁盘中与该坏扇区的位置相同的扇区中;
所述识别锁定模块,还用于:识别RAID组中的磁盘是否存在坏扇区;具体包括:
监测RAID组中的各个磁盘的各个扇区读写IO是否正常;
当某个磁盘的某个扇区出现IO错误时,记录所述扇区的IO错误的次数;
当所述扇区的IO错误的次数大于或等于预设的第一阈值且小于预设的第二阈值时,标记所述扇区为坏扇区;并获取所述坏扇区的位置。
7.根据权利要求6所述的装置,其特征在于,该装置还包括预留扇区模块,用于在做RAID时,在每个磁盘中预留预设值大小的磁盘扇区,用来在所述RAID重构过程中存储所述磁盘的坏扇区中转移的数据。
8.根据权利要求7所述的装置,其特征在于,该装置还包括建表模块,用于建立与所述磁盘的坏扇区标识和所述磁盘的坏扇区中转移的数据存放位置的一一对应的索引表。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,还用于将所述校验出的数据的存放位置与该坏扇区所在磁盘的坏扇区的标识存放在所述索引表中。
10.根据权利要求6所述的装置,其特征在于,该装置还包括踢盘模块,用于当该坏扇区所在磁盘中预留的磁盘扇区写满数据时,则将该坏扇区所在磁盘踢出RAID组。
CN201410773193.4A 2014-12-12 2014-12-12 一种实现raid重构的方法及装置 Active CN104407821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410773193.4A CN104407821B (zh) 2014-12-12 2014-12-12 一种实现raid重构的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410773193.4A CN104407821B (zh) 2014-12-12 2014-12-12 一种实现raid重构的方法及装置

Publications (2)

Publication Number Publication Date
CN104407821A CN104407821A (zh) 2015-03-11
CN104407821B true CN104407821B (zh) 2018-02-06

Family

ID=52645454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410773193.4A Active CN104407821B (zh) 2014-12-12 2014-12-12 一种实现raid重构的方法及装置

Country Status (1)

Country Link
CN (1) CN104407821B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750436A (zh) * 2015-04-15 2015-07-01 苏州中晟宏芯信息科技有限公司 一种磁盘管理方法及系统
CN105404473B (zh) * 2015-12-01 2018-12-11 清华大学 Nand flash存储器数据保持错误恢复方法
CN107015877A (zh) * 2017-03-14 2017-08-04 唐山钢铁集团有限责任公司 一种带有物理坏道的raid磁盘的重新利用方法
CN109634768A (zh) * 2018-12-10 2019-04-16 浪潮(北京)电子信息产业有限公司 一种磁盘故障处理方法、系统及电子设备和存储介质
CN110795273B (zh) 2019-10-18 2021-06-15 苏州浪潮智能科技有限公司 一种raid的写洞保护方法、系统及存储介质
CN112052129A (zh) * 2020-07-13 2020-12-08 深圳市智微智能科技股份有限公司 计算机磁盘检测方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5166936A (en) * 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
CN101527142A (zh) * 2009-04-17 2009-09-09 杭州华三通信技术有限公司 一种磁盘冗余阵列中数据的读写方法和设备
CN102012847A (zh) * 2010-12-06 2011-04-13 创新科存储技术有限公司 一种改进的磁盘阵列重建方法
CN102411516A (zh) * 2011-12-13 2012-04-11 云海创想信息技术(天津)有限公司 一种raid5数据重建的方法及装置
CN102521058A (zh) * 2011-12-01 2012-06-27 北京威视数据系统有限公司 Raid组磁盘数据预迁移方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5166936A (en) * 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
CN101527142A (zh) * 2009-04-17 2009-09-09 杭州华三通信技术有限公司 一种磁盘冗余阵列中数据的读写方法和设备
CN102012847A (zh) * 2010-12-06 2011-04-13 创新科存储技术有限公司 一种改进的磁盘阵列重建方法
CN102521058A (zh) * 2011-12-01 2012-06-27 北京威视数据系统有限公司 Raid组磁盘数据预迁移方法
CN102411516A (zh) * 2011-12-13 2012-04-11 云海创想信息技术(天津)有限公司 一种raid5数据重建的方法及装置

Also Published As

Publication number Publication date
CN104407821A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104407821B (zh) 一种实现raid重构的方法及装置
CN100530125C (zh) 一种数据的安全存储方法
CN102708019B (zh) 一种硬盘数据恢复方法、装置及系统
US7640452B2 (en) Method for reconstructing data in case of two disk drives of RAID failure and system therefor
CN103309775B (zh) 一种高可靠磁盘阵列的容错方法
US8331051B2 (en) Device and method for error detection
CN104484251B (zh) 一种硬盘故障的处理方法及装置
JP2005122338A (ja) スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
CN102508733B (zh) 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器
CN101840360A (zh) Raid系统的快速重建方法及装置
CN105843699A (zh) 用于错误监视与校正的动态随机存取存储器设备与方法
CN110399247A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN103092728A (zh) 一种非易失性内存的磨损错误恢复方法和装置
JP2006164319A (ja) 不正データを検出するための装置、方法、及びプログラム
CN104407815A (zh) 一种raid5磁盘阵列中坏扇区处理的方法和装置
CN105630417B (zh) 一种raid5系统及在raid5系统失效后继续写数据的方法
CN105183583A (zh) 一种磁盘阵列的数据重建的方法及一种磁盘阵列系统
CN102063438A (zh) 一种受损文件的恢复方法和装置
JP4454204B2 (ja) ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
CN106933707B (zh) 基于raid技术的数据存储设备数据恢复方法及系统
CN105183590A (zh) 一种磁盘阵列的容错处理方法
CN104205097B (zh) 一种去重方法装置与系统
CN102495680A (zh) Raid系统的重建方法
CN102945191B (zh) 一种raid5数据转移的方法
CN106528342A (zh) 一种具有云服务器备份的磁盘阵列容错装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant