CN110399247B - 一种数据恢复方法、装置、设备及计算机可读存储介质 - Google Patents
一种数据恢复方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110399247B CN110399247B CN201910657509.6A CN201910657509A CN110399247B CN 110399247 B CN110399247 B CN 110399247B CN 201910657509 A CN201910657509 A CN 201910657509A CN 110399247 B CN110399247 B CN 110399247B
- Authority
- CN
- China
- Prior art keywords
- data
- sector
- target
- adjacent
- disk
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000011084 recovery Methods 0.000 title claims abstract description 65
- 238000012795 verification Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 28
- 238000013524 data verification Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种数据恢复方法;在该方法中,若磁盘阵列中出现至少两个损坏的磁盘,可以计算故障的目标扇区的条带校验是否成功,如果成功,则说明其他磁盘上位于该目标扇区的位置上的存储的数据为有效数据,则可通过其他磁盘上位于该目标扇区的位置上存储的数据,来恢复目标扇区的数据,从而实现了多磁盘损坏下的数据修复功能。本发明还公开了一种数据恢复装置、设备及计算机可读存储介质,同样能实现上述技术效果。
Description
技术领域
本发明涉及数据恢复技术领域,更具体地说,涉及一种数据恢复方法、装置、设备及计算机可读存储介质。
背景技术
目前,用户购买存储设备及存储系统后,一般都有维护期。若存储系统没有RAID(Redundant Arrays of Independent Drives,磁盘阵列)巡检机制,则随着时间的推移,由于磁盘磁性减弱、介质损坏等造成的静默扇区损坏,会造成RAID成员盘中坏扇区增多,此时若成员盘中存在一块坏盘损坏,可以使用热备盘顶替,通过其他成员盘的数据在热备盘中同步出坏盘的数据,实现对坏磁盘数据的恢复;但是,如果在热备盘顶替进行重构的过程中,又出现一块成员盘损坏,则会导致同步失败,进而导致数据丢失。
发明内容
本发明的目的在于提供一种数据恢复方法、装置、设备及计算机可读存储介质,以实现对磁盘数据的恢复。
为实现上述目的,本发明提供的一种数据恢复方法,包括:
从损坏的至少两块磁盘中选择待修复的目标磁盘;
将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;
若成功,则通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
可选的,所述从损坏的至少两块磁盘中选择待修复的目标磁盘,包括:
从损坏的至少两块磁盘中选择损坏时间最短的磁盘作为所述目标磁盘。
可选的,所述将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区,包括:
读取所述目标磁盘内的每个数据块的数据,并将读取成功的数据块内的数据存储至所述克隆盘;
若存在读取失败的目标数据块,则读取所述目标数据块内每个扇区的数据,将读取成功的扇区内的数据存储至所述克隆盘,将读取失败的扇区作为目标扇区。
可选的,所述判断目标扇区的临近扇区的条带校验是否成功,包括:
查找与所述目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;所述临近扇区为能成功读取数据的扇区;
判断是否能从其他磁盘上成功读取校验数据;所述校验数据为位于其他磁盘上的、与所述临近扇区处于同一位置扇区内存储的数据;
若是,则利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;
若两个临近扇区的数据均校验成功,则判定所述目标扇区的临近扇区的条带校验成功;若两个临近扇区中存在任意一者的数据校验失败,则判定所述目标扇区的临近扇区的条带校验不成功。
可选的,所述通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据之前,还包括:
判断所述目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;
若是,则继续执行所述通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据的步骤。
为实现上述目的,本发明进一步提供一种数据恢复装置,包括:
目标磁盘确定模块,用于从损坏的至少两块磁盘中选择待修复的目标磁盘;
数据复制模块,用于将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
校验判断模块,用于判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;
数据恢复模块,用于在判定目标扇区的临近扇区的条带校验成功时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
可选的,所述校验判断模块包括:
查找单元,用于查找与所述目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;所述临近扇区为能成功读取数据的扇区;
第一判断单元,用于判断是否能从其他磁盘上成功读取校验数据;所述校验数据为位于其他磁盘上的、与所述临近扇区处于同一位置扇区内存储的数据;
第二判断单元,用于能从其他磁盘上成功读取校验数据时,利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;
第一判定单元,用于在两个临近扇区的数据均校验成功时,判定所述目标扇区的临近扇区的条带校验成功;
第二判定单元,用于两个临近扇区中存在任意一者的数据校验失败,则判定所述目标扇区的临近扇区的条带校验不成功。
可选的,本装置还包括:
扇区数判断模块,用于判断所述目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;
所述数据恢复模块,用于在判定目标扇区的临近扇区的条带校验成功,且所述目标扇区的两个临近扇区之间的扇区数小于预定阈值时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据。
为实现上述目的,本发明进一步提供一种数据恢复设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据恢复方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据恢复方法的步骤。
通过以上方案可知,本发明实施例提供的一种数据恢复方法,包括:从损坏的至少两块磁盘中选择待修复的目标磁盘;将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;若成功,则通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
可见,在本申请中,若磁盘阵列中出现至少两个损坏的磁盘,可以计算故障的目标扇区的条带校验是否成功,如果成功,则说明其他磁盘上位于该目标扇区的位置上的存储的数据为有效数据,则可通过其他磁盘上位于该目标扇区的位置上存储的数据,来恢复目标扇区的数据,从而实现了多磁盘损坏下的数据修复功能。
本发明还公开了一种数据恢复装置、设备及计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种数据恢复方法流程示意图;
图2为本发明实施例公开的另一种数据恢复方法流程示意图;
图3为本发明实施例公开的一种数据恢复装置结构示意图;
图4为本发明实施例公开的一种数据恢复设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据恢复方法、装置、设备及计算机可读存储介质,以实现对磁盘数据的恢复。
参见图1,本发明实施例提供的一种数据恢复方法流程示意图;该数据恢复方法具体可以包括:
S101、从损坏的至少两块磁盘中选择待修复的目标磁盘;
需要说明的是,本申请中损坏的磁盘数量为至少两块,该磁盘为RAID5内的磁盘,在从损坏的至少两块磁盘中选择待修复的目标磁盘时,具体可以从损坏的至少两块磁盘中选择损坏时间最短的磁盘作为所述目标磁盘。因为损坏时间短的磁盘与损坏时间长的磁盘相比,损坏时间短的磁盘内存储的有效数据要多于损坏时间长的磁盘,因此为了提高数据恢复速度,可选取损坏时间短的磁盘作为目标磁盘进行首先恢复。
S102、将目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
可以理解的是,目标磁盘虽然是损坏的磁盘,但是该磁盘未必全部损坏,该磁盘内依然存储了部分有效数据;所以在本申请中,通过克隆盘替换目标磁盘时,可以先将目标磁盘内的数据复制至克隆盘,由于目标磁盘有损坏,只要能成功读取并复制至克隆盘的数据,便均为该目标磁盘内存储的有效数据,而对于读取失败的数据,则说明该数据对应的扇区为坏扇区,因此需要记录该坏扇区的位置,以便对该坏扇区内的数据进行修复,该坏扇区即为本申请中的目标扇区;需要说明的是,本申请中的目标扇区的数量为多个,每个目标扇区均需要执行S103-S104。
S103、判断目标扇区的临近扇区的条带校验是否成功;临近扇区为:与目标扇区直接相邻/间接相邻的数据读取成功的扇区;若成功,则执行S104;若不一致,则选取未执行S103的目标扇区,继续执行S103;
在本实施例中,临近扇区是与目标扇区直接相邻/间接相邻的数据读取成功的扇区,例如:目标扇区的位置为iPos,iPos=P*512B,每个扇区的大小为512B,如果偏移到目标扇区的前一扇区iPos-512位置,该扇区内数据读取成功,则该扇区便为目标扇区的临近扇区,该临近扇区便是与目标扇区直接相邻的扇区;如果该扇区内数据读取失败,则说明该扇区也是坏扇区,则继续向前偏移,找到数据读取成功的扇区,这时找到的数据读取成功的扇区便为目标扇区的间接相邻的扇区。
需要说明的是,该临近扇区的数量为两个,一个为通过向前偏移得到的扇区,另一个为通过向后偏移得到的扇区,向后偏移得到临近扇区的过程与向前偏移得到临近扇区的过程相似,在此便不具体赘述。
在本实施例中,条带校验过程为:对同一条带上的不同磁盘中临近扇区位置的数据校验过程,具体是通过Xor(exclusive OR,异或)校验方法来进行验证,如果同一条带上的不同磁盘中临近扇区位置的数据校验结果为1,则说明数据校验成功,否则说明数据校验失败。
S104、通过其他磁盘上位于与目标扇区同一位置的数据,恢复克隆盘中位于目标扇区的数据;其他磁盘为:磁盘阵列中除目标磁盘之外的磁盘。
可以理解的是,本申请提出的这种针对RAID5两块成员盘损坏时数据恢复的方法,是基于若坏扇区临近的好扇区所在的条带校验一致,则坏扇区所在条带一致的可能性很大这一前提,因此本申请在对坏扇区进行数据修复时,可通过与坏扇区对应的同一条带的数据来修复坏扇区的数据;也即:本申请需要通过其他磁盘上位于与目标扇区同一位置的数据,来恢复克隆盘中位于目标扇区的数据。
如果所有目标扇区均执行完S103-S104,则说明已经对所有坏扇区执行了修复操作,这时克隆盘便可替换目标磁盘。如果还存在至少两个损坏的磁盘,则可继续通过本申请的方法来修复数据,如果只存在一个损坏的磁盘,这时可通过现有的磁盘数据修复过程来修复数据,即:通过包括已修复的其他磁盘来修复损坏的磁盘,具体过程在此便不赘述。
综上可以看出,在本申请中,若磁盘阵列中出现至少两个损坏的磁盘,可以计算故障的目标扇区的条带校验是否成功,如果成功,则说明其他磁盘上位于该目标扇区的位置上的存储的数据为有效数据,则可通过其他磁盘上位于该目标扇区的位置上存储的数据,来恢复目标扇区的数据,从而实现了多磁盘损坏下的数据修复功能。
参见图2,本发明实施例提供的另一种数据恢复方法流程示意图;该数据恢复方法具体可以包括:
S201、从损坏的至少两块磁盘中选择待修复的目标磁盘;
在本实施例中,为了对本申请进行详细说明,需预先定义配置文件recover.cfg,用于坏盘数据恢复参数设置;recover.cfg格式如下:
Md:/dev/sdb/dev/sdc/dev/sdd;
Sector:2048 1024
BlkSz:1048576
FaultDisk1:/dev/sdc
FaultDisk2:/dev/sdd
CloneDisk:/dev/sdx
Log:/tmp/recover.log
RecordLog:/tmp/record.log
其中,各参数代表意义:
Md:Raid包含的成员盘;
Sector:指定的数据区起始位置扇区数
BlkSz:读取磁盘的块单位大小
FaultDisk1:raid成员盘中的坏盘1
FaultDisk2:raid成员盘中的坏盘2
CloneDisk:克隆盘,用于存储FaultDisk1、FaultDisk2的坏扇区数据
Log:将要恢复的坏扇区索引号
RecordLog:坏扇区索引号
S202、读取目标磁盘内的每个数据块的数据,并将读取成功的数据块内的数据存储至克隆盘;若存在读取失败的目标数据块,则读取目标数据块内每个扇区的数据,将读取成功的扇区内的数据存储至克隆盘,将读取失败的扇区作为目标扇区。
在本步骤中,需要复制FaultDisk2内的块数据到CloneDisk中,每次读取块大小为BlkSz的数据。在复制过程中,如果读取FaultDisk2的某个数据块失败,则回退BlkSz大小文件指针,从该数据块的起始位置读取该数据块内的每个扇区,每次按照512B扇区大小进行逐个扇区数据读,并记录读取扇区失败的扇区号到文件RecordLog中,直到BlkSz/512B个扇区读完后,再次以BlkSz为单位进行下一块数据的读操作,直到FaultDisk2磁盘全部读取完,在本实施例中,文件RecordLog中记录的扇区号便为本申请中目标扇区的扇区号。
S203、查找与目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;临近扇区为能成功读取数据的扇区;
需要说明的是,目标磁盘的数据复制至克隆盘后,需要遍历其他磁盘,在本实施例中,该其他磁盘为Raid5Md各成员盘,但不包括目标磁盘FaultDisk2,使用open函数打开各成员盘,然后遍历读取RecordLog文件中记录的扇区号,记扇区号为P。
S204、判断是否能从其他磁盘上成功读取校验数据;校验数据为位于其他磁盘上的与临近扇区处于同一位置扇区内存储的数据;若是,则执行S205;若否,则选取未执行S203的目标扇区,继续执行S203;
S205、利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;若是,则执行S206;若否,则选取未执行S203的目标扇区,继续执行S203;
其中,若两个临近扇区的数据均校验成功,则判定目标扇区的临近扇区的条带校验成功;若两个临近扇区中存在任意一者的数据校验失败,则判定目标扇区的临近扇区的条带校验不成功。
在本实施例中,对向前偏移和向后偏移得到临近扇区,以及对临近扇区进行数据校验的过程分别说明:
1、对向前偏移得到临近扇区,并进行数据校验的过程具体如下:
首先偏移到P的前一扇区iPos-512位置(iPos=P*512B),判断该扇区是否读取成功,若成功,则表示该扇区是正常扇区,并将其作为临近扇区,记录该位置posPre及扇区数据DataPre;若读取失败,则表示该扇区也是坏扇区,则继续向前偏移,直到偏移到正常扇区并记录posPre及DataPre;此时,偏移除FaultDisk2之外的各成员盘到位置posPre,读取各成员盘在posPre位置的扇区数据,该各成员在posPre位置的扇区数据便为本申请中的校验数据,分别记为DataPre1,DataPre2,DataPre3…,在此过程中,若故障盘FaultDisk1扇区损坏,这时便不能成功的从其他盘读取校验失败,则不再执行后续步骤,返回步骤S203,遍历下一扇区。
对posPre位置Xor校验:M1=DataPre^DataPre1^DataPre2^DataPre3;
如果M1=0,则继续对向后偏移得到的临近扇区进行数据校验的过程;如果M1!=0,返回步骤S203,遍历下一扇区;
2、对向后偏移得到临近扇区,并进行数据校验的过程具体如下:
偏移到P的后一扇区iPos+512位置(iPos=P*512B),判断该扇区是否读取成功,若成功,则表示该扇区是正常扇区,并将其作为临近扇区,记录该位置posNext及扇区数据DataNext;若读取失败,则表示该扇区也是坏扇区,则继续向后偏移,直到偏移到正常扇区并记录posNext及DataNext。此时,偏移除FaultDisk2之外的各成员盘到位置posNext,读取各成员盘在posNext位置的扇区数据,该各成员在posNext位置的扇区数据便为本申请中的校验数据,分别记为DataNext1,DataNext2,DataNext3…,在此过程中,若故障盘FaultDisk1扇区损坏,这时便不能成功的从其他盘读取校验失败,则不再执行后续步骤,返回步骤S203,遍历下一扇区。
posNext位置Xor校验:M2=DataNext^DataNext1^DataNext2^DataNext3;
如果M2=0,则将P记录到Log文件中;如果M2!=0,则返回步骤S203,遍历下一扇区,直至RecordLog内遍历结束。
需要说明的是,本申请并不对执行上述向前偏移得到临近扇区以及向后偏移得到临近扇区的顺序进行限定,可以先执行向前偏移得到临近扇区的步骤,再执行向后偏移得到临近扇区的步骤;也可以先执行向后偏移得到临近扇区的步骤,再执行向前偏移得到临近扇区的步骤;同样这两个步骤也可以同时执行,在此便不具体限定。
在本实施例中,若利用临近扇区内存储的数据以及临近扇区的校验数据,判定临近扇区的数据校验成功,则对两个临近扇区之间的坏扇区进行记录,由于这些坏扇区的临近扇区与目标扇区相同,因此这些坏扇区与目标扇区一样,同样能成功从其他磁盘上成功读取校验数据,也同样满足临近扇区的数据校验成功这一条件,因此在执行S203之前,可以先判断目标扇区是否是为所记录的坏扇区;如果是,则可直接执行S206;若否,则继续执行S203。
例如:在上述方案中,在对向前偏移得到临近扇区,并进行数据校验的过程中,可以将iPos与posPre之间的扇区号写入tmpRecord中,在对向后偏移得到临近扇区,并进行数据校验的过程中,可将iPos与posNext之间的扇区号写入tmpRecord中。这样在一开始遍历读取RecordLog文件中记录的扇区号P时,便可先判断该扇区号P是否在文件tmpRecord中,若存在,则将P记录到Log文件中,继续读取RecordLog中的下一扇区;若不存在,则继续执行S203。
S206、判断目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;若是,则执行S207;若否,则选取未执行S203的目标扇区,继续执行S203;
在本实施例中,可以设定一个预定阈值,该预定阈值可以反映出故障区域的大小,若两个临近扇区之间的扇区数大于预定阈值,则说明出现故障的区域较大,这时坏盘1在该区域出现故障的机率同样较大,这时可不对该目标扇区进行修复;如果两个临近扇区之间的扇区数小于预定阈值,则说明出现故障的区域较小,这时坏盘1在该区域出现故障的机率同样较小,这时可对该目标扇区进行修复。
S207、通过其他磁盘上位于与目标扇区同一位置的数据,恢复克隆盘中位于目标扇区的数据。
在本实施例中,RecordLog文件中各个扇区号均遍历后,可使用open函数打开克隆盘CloneDisk设备;遍历Log中各元素,记为P1;偏移Raid5中除FaultDisk2之外的成员盘到P1扇区号的iPos位置(iPos=P1*512B),分别读取各盘在该扇区的数据,记为Data1,Data2,Data3…;通过xor校验进行数据恢复:Data=Data1^Data2^Data3;偏移CloneDisk到P1扇区号的iPos(iPos=P1*512B);将Data写入CloneDisk的P1扇区号对应的iPos位置;直到遍历完Log中的各个扇区号结束。
综上可以看出,本申请提供了一种针对RAID5两块成员盘损坏时的数据恢复方法,具体来说:本申请针对故障扇区,计算临近扇区上的条带校验是否一致,若一致,并且该故障区域比较小,表则明坏盘2上该故障扇区对应的坏盘1数据有效的可能性很大,这时便可以从坏盘1的数据恢复出坏盘2数据,该方法能解决在RAID5两块成员盘坏扇区损坏导致RAID5无法工作的情况下,将坏盘数据恢复,解决数据丢失的问题。
下面对本发明实施例提供的数据恢复装置进行介绍,下文描述的数据恢复装置与上文描述的数据恢复方法可以相互参照。
参见图3,本发明实施例提供的一种数据恢复装置结构示意图;该数据恢复装置具体可以包括:
目标磁盘确定模块100,用于从损坏的至少两块磁盘中选择待修复的目标磁盘;
数据复制模块200,用于将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
校验判断模块300,用于判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;
数据恢复模块400,用于在判定目标扇区的临近扇区的条带校验成功时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
其中,所述目标磁盘确定模块具体用于:从损坏的至少两块磁盘中选择损坏时间最短的磁盘作为所述目标磁盘。
其中,所述数据复制模块,包括:
第一数据读取单元,用于读取所述目标磁盘内的每个数据块的数据;
第一数据存储单元,用于将读取成功的数据块内的数据存储至所述克隆盘;
第二数据读取单元,用于存在读取失败的目标数据块时,读取所述目标数据块内每个扇区的数据;
第二数据存储单元,用于将读取成功的扇区内的数据存储至所述克隆盘;
目标扇区确定单元,用于将读取失败的扇区作为目标扇区。
其中,所述校验判断模块包括:
查找单元,用于查找与所述目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;所述临近扇区为能成功读取数据的扇区;
第一判断单元,用于判断是否能从其他磁盘上成功读取校验数据;所述校验数据为位于其他磁盘上的、与所述临近扇区处于同一位置扇区内存储的数据;
第二判断单元,用于能从其他磁盘上成功读取校验数据时,利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;
第一判定单元,用于在两个临近扇区的数据均校验成功时,判定所述目标扇区的临近扇区的条带校验成功;
第二判定单元,用于两个临近扇区中存在任意一者的数据校验失败,则判定所述目标扇区的临近扇区的条带校验不成功。
其中,所述数据恢复装置还包括:
扇区数判断模块,用于判断所述目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;
所述数据恢复模块,用于在判定目标扇区的临近扇区的条带校验成功,且所述目标扇区的两个临近扇区之间的扇区数小于预定阈值时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据。
参见图4,本发明实施例提供的一种数据恢复设备结构示意图;该设备1可以包括:
存储器11,用于存储计算机程序;处理器12,用于执行所述计算机程序时实现如上述任意方法实施例所述的数据恢复方法的步骤。
在本实施例中,设备1可以是PC(Personal Computer,个人电脑),也可以是平板电脑、便携计算机、服务器等终端设备。
该设备1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元,例如该设备1的硬盘。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如:执行数据恢复方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据恢复方法的程序的代码等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。
可选地,该设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14的设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的数据恢复方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据恢复方法,其特征在于,包括:
从损坏的至少两块磁盘中选择待修复的目标磁盘;
将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;
若成功,则通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
2.根据权利要求1所述的数据恢复方法,其特征在于,所述从损坏的至少两块磁盘中选择待修复的目标磁盘,包括:
从损坏的至少两块磁盘中选择损坏时间最短的磁盘作为所述目标磁盘。
3.根据权利要求1所述的数据恢复方法,其特征在于,所述将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区,包括:
读取所述目标磁盘内的每个数据块的数据,并将读取成功的数据块内的数据存储至所述克隆盘;
若存在读取失败的目标数据块,则读取所述目标数据块内每个扇区的数据,将读取成功的扇区内的数据存储至所述克隆盘,将读取失败的扇区作为目标扇区。
4.根据权利要求1所述的数据恢复方法,其特征在于,所述判断目标扇区的临近扇区的条带校验是否成功,包括:
查找与所述目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;所述临近扇区为能成功读取数据的扇区;
判断是否能从其他磁盘上成功读取校验数据;所述校验数据为位于其他磁盘上的、与所述临近扇区处于同一位置扇区内存储的数据;
若是,则利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;
若两个临近扇区的数据均校验成功,则判定所述目标扇区的临近扇区的条带校验成功;若两个临近扇区中存在任意一者的数据校验失败,则判定所述目标扇区的临近扇区的条带校验不成功。
5.根据权利要求1至4中任意一项所述的数据恢复方法,其特征在于,所述通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据之前,还包括:
判断所述目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;
若是,则继续执行所述通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据的步骤。
6.一种数据恢复装置,其特征在于,包括:
目标磁盘确定模块,用于从损坏的至少两块磁盘中选择待修复的目标磁盘;
数据复制模块,用于将所述目标磁盘内存储的数据复制至克隆盘,并记录在复制过程中数据读取失败的目标扇区;
校验判断模块,用于判断目标扇区的临近扇区的条带校验是否成功;所述临近扇区为:与所述目标扇区直接相邻/间接相邻的数据读取成功的扇区;
数据恢复模块,用于在判定目标扇区的临近扇区的条带校验成功时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据;所述其他磁盘为:磁盘阵列中除所述目标磁盘之外的磁盘。
7.根据权利要求6所述的数据恢复装置,其特征在于,所述校验判断模块包括:
查找单元,用于查找与所述目标扇区的位置前后直接相邻/间接相邻的两个临近扇区;所述临近扇区为能成功读取数据的扇区;
第一判断单元,用于判断是否能从其他磁盘上成功读取校验数据;所述校验数据为位于其他磁盘上的、与所述临近扇区处于同一位置扇区内存储的数据;
第二判断单元,用于能从其他磁盘上成功读取校验数据时,利用临近扇区内存储的数据以及临近扇区的校验数据,判断临近扇区的数据是否校验成功;
第一判定单元,用于在两个临近扇区的数据均校验成功时,判定所述目标扇区的临近扇区的条带校验成功;
第二判定单元,用于两个临近扇区中存在任意一者的数据校验失败,则判定所述目标扇区的临近扇区的条带校验不成功。
8.根据权利要求6或7所述的数据恢复装置,其特征在于,还包括:
扇区数判断模块,用于判断所述目标扇区的两个临近扇区之间的扇区数是否小于预定阈值;
所述数据恢复模块,用于在判定目标扇区的临近扇区的条带校验成功,且所述目标扇区的两个临近扇区之间的扇区数小于预定阈值时,通过其他磁盘上位于与所述目标扇区同一位置的数据,恢复所述克隆盘中位于所述目标扇区的数据。
9.一种数据恢复设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的数据恢复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910657509.6A CN110399247B (zh) | 2019-07-19 | 2019-07-19 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910657509.6A CN110399247B (zh) | 2019-07-19 | 2019-07-19 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399247A CN110399247A (zh) | 2019-11-01 |
CN110399247B true CN110399247B (zh) | 2022-08-05 |
Family
ID=68324741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910657509.6A Active CN110399247B (zh) | 2019-07-19 | 2019-07-19 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399247B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078472B (zh) * | 2019-12-23 | 2023-06-02 | 四川效率源信息安全技术股份有限公司 | 一种raid6缺失磁盘后的数据恢复方法 |
CN111176903B (zh) * | 2019-12-31 | 2020-10-02 | 云汉芯城(上海)互联网科技股份有限公司 | 一种商品数据恢复的方法、系统、设备及可读存储介质 |
CN111400103B (zh) * | 2020-03-23 | 2023-03-14 | 北亚企安科技(北京)有限公司 | 一种针对infortrend存储的数据恢复方法 |
CN111752765B (zh) * | 2020-05-28 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 一种raid5损坏数据恢复的方法及系统 |
CN111785304A (zh) * | 2020-06-23 | 2020-10-16 | 厦门市美亚柏科信息股份有限公司 | 一种希捷硬盘内圈划伤数据恢复方法 |
CN112052129A (zh) * | 2020-07-13 | 2020-12-08 | 深圳市智微智能科技股份有限公司 | 计算机磁盘检测方法、装置、设备及存储介质 |
CN118295852B (zh) * | 2024-04-17 | 2024-08-30 | 浙江大学 | 一种基于sdc算子的有源配电网瞬时监测数据恢复方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530069A (zh) * | 2013-11-05 | 2014-01-22 | 浪潮(北京)电子信息产业有限公司 | 一种raid5磁盘阵列坏扇区处理方法 |
CN103729268A (zh) * | 2014-01-15 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种raid5掉两块盘的数据恢复方法 |
CN109308238A (zh) * | 2018-12-03 | 2019-02-05 | 郑州云海信息技术有限公司 | 一种存储系统磁盘阵列坏盘调节的方法、装置及设备 |
-
2019
- 2019-07-19 CN CN201910657509.6A patent/CN110399247B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110399247A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399247B (zh) | 一种数据恢复方法、装置、设备及计算机可读存储介质 | |
US9189311B2 (en) | Rebuilding a storage array | |
US7689869B2 (en) | Unit, method and program for detecting imprecise data | |
US10120769B2 (en) | Raid rebuild algorithm with low I/O impact | |
JP5768587B2 (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
CN102023815B (zh) | 在固态存储器中实现raid | |
CN108646982B (zh) | 一种基于ubifs的数据自动修复方法及装置 | |
CN101923441B (zh) | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 | |
CN111813609B (zh) | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 | |
CN102929750A (zh) | 非易失性介质肮脏区段跟踪 | |
US20130103902A1 (en) | Method and apparatus for implementing protection of redundant array of independent disks in file system | |
JP2006252530A (ja) | ディスクライト抜け検出装置およびディスクライト抜け検出方法 | |
CN104484251A (zh) | 一种硬盘故障的处理方法及装置 | |
JP2006301714A (ja) | アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法 | |
US9524212B2 (en) | Method, device and operating system for processing and using burn data of NAND flash | |
US8650435B2 (en) | Enhanced storage device replacement system and method | |
JP2006139478A (ja) | ディスクアレイシステム | |
CN108874312B (zh) | 数据存储方法以及存储设备 | |
CN104461791A (zh) | 一种信息处理方法及处理装置 | |
US20150347224A1 (en) | Storage control apparatus and method therefor | |
CN109558066B (zh) | 存储系统中恢复元数据的方法和装置 | |
CN114155906A (zh) | 一种数据块修复方法、装置、设备及存储介质 | |
CN111045858A (zh) | 一种坏道处理方法及系统 | |
US20130179726A1 (en) | Automatic remapping in redundant array of independent disks and related raid | |
WO2017012507A1 (zh) | 一种数据恢复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |