CN103975309B - 数据恢复方法、数据恢复装置、存储器及存储系统 - Google Patents
数据恢复方法、数据恢复装置、存储器及存储系统 Download PDFInfo
- Publication number
- CN103975309B CN103975309B CN201280003016.7A CN201280003016A CN103975309B CN 103975309 B CN103975309 B CN 103975309B CN 201280003016 A CN201280003016 A CN 201280003016A CN 103975309 B CN103975309 B CN 103975309B
- Authority
- CN
- China
- Prior art keywords
- storage medium
- data
- chunk
- reconstructed
- occupied
- 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 36
- 230000015654 memory Effects 0.000 title claims abstract description 29
- 238000011084 recovery Methods 0.000 claims abstract description 54
- 238000012795 verification Methods 0.000 claims abstract description 13
- 238000001514 detection method Methods 0.000 claims description 25
- 238000005192 partition Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了数据恢复方法、数据恢复装置及存储器。上述数据恢复方法包括:在进行全存储介质重构时,检测是否有新的存储介质接入;当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;当检测结果为是时,停止全存储介质重构;校验存储介质中未被重构的数据;对未被重构的数据中通过有效性校验的数据恢复可用;对未被重构的数据中未通过有效性校验的数据进行重构。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及数据恢复方法、数据恢复装置、存储器及存储系统。
背景技术
在RAID技术中,当某一存储介质因故障或被拔出等原因而退出RAID组(RAIDGroup)时,常见的处理方式是延迟一段时间(可称为延迟时间),如果在延迟时间内,存储介质重新接入,则不会针对该存储介质启动全存储介质重构;而如果超过延迟时间,则针对该退出的存储介质启动全存储介质重构。所谓的全存储介质重构是指,针对退出的存储介质,依据RAID组其他存储介质所存储的数据计算出退出的存储介质上所存储的全部或部分数据,并写入到RAID组其他存储介质上,这样可以达到恢复该退出的存储介质上的数据的目的。
然而,在进行全存储介质重构过程中,如退出的存储介质再接入,其上的数据将被认为不可用,而全存储介质重构又需要占用较长的时间,进而造成数据恢复所需时间较长。
发明内容
有鉴于此,本发明实施例的目的在于提供数据恢复方法、数据恢复装置、存储器及存储系统,以解决数据恢复需要时间较长的问题。
为实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提供一种数据恢复方法,包括:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止所述全存储介质重构;
校验所述新接入的存储介质中未被重构的数据的有效性;
对所述未被重构的数据中通过有效性校验的数据恢复可用;
对所述未被重构的数据中未通过有效性校验的数据进行重构。
在第一种可能的实现方式中,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
结合第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述未被重构的数据占用至少一个chunk;所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
在第三种可能的实现方式中,每个所述chunk包括至少一个分块;所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
在第四种可能的实现方式中,所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:逐分块校验所述未被重构的数据所占用的每一chunk;或者,校验所述未被重构的数据所占用的每一chunk中的选定分块。
结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述未被重构的数据是根据已存储的元数据确定出的。
结合第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述未通过有效性校验的数据占用至少一个第一chunk;所述对所述未被重构的数据中未通过有效性校验的数据进行重构具体包括:每检测出一个第一chunk,即针对检测出的第一chunk所存储的数据进行重构;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,针对检测出的所有第一chunk所存储的数据分别进行重构。
结合第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,或第一方面的第四种可能的实现方式,或第一方面的第五种可能的实现方式,或第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述通过有效性校验的数据占用至少一个第二chunk;所述对所述未被重构的数据中通过有效性校验的数据恢复可用具体包括:每检测出一个第二chunk,即对检测出的第二chunk上所存储的数据恢复可用;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有第二chunk上所存储的数据恢复可用。
根据本发明实施例的第二方面,提供一种数据恢复装置,包括:
全存储介质重构单元,用于当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
检测单元,用于在进行全存储介质重构时,检测是否有新的存储介质接入;
识别单元,用于当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
全存储介质重构控制单元,用于当所述检测结果为是时,停止所述全存储介质重构;
校验单元,用于校验所述新接入的存储介质中未被重构的数据的有效性;
第一数据恢复单元,用于对所述未被重构的数据中通过有效性校验的数据恢复可用;
第二数据恢复单元,用于对所述未被重构的数据中未通过有效性校验的数据进行重构。
在第二方面的第一种可能的实现方式中,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
结合第二方面,或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述未被重构的数据占用至少一个chunk;所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
在第二方面的第三种可能的实现方式中,每个所述chunk包括至少一个分块;所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
在第二方面的第四种可能的实现方式中,所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:逐分块校验所述未被重构的数据所占用的每一chunk;或者,校验所述未被重构的数据所占用的每一chunk中的选定分块。
结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述未被重构的数据是根据已存储的元数据确定出的。
结合第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,或第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述未通过有效性校验的数据占用至少一个第一chunk;所述对所述未被重构的数据中未通过有效性校验的数据进行重构具体包括:每检测出一个第一chunk,即针对检测出的第一chunk所存储的数据进行重构;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,针对检测出的所有第一chunk所存储的数据分别进行重构。
结合第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,或第二方面的第四种可能的实现方式,或第二方面的第五种可能的实现方式,或第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述通过有效性校验的数据占用至少一个第二chunk;所述对所述未被重构的数据中通过有效性校验的数据恢复可用具体包括:每检测出一个第二chunk,即对检测出的第二chunk上所存储的数据恢复可用;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有第二chunk上所存储的数据恢复可用。
根据本发明实施例的第三方面,提供一种控制器,包括CPU和存储器,所述CPU通过通信接口与存储介质通信,并通过运行存储在所述存储器内的软件程序以及调用存储在所述存储器内的数据,执行如下步骤:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止所述全存储介质重构;
校验所述新接入的存储介质中未被重构的数据的有效性;
对所述未被重构的数据中通过有效性校验的数据恢复可用;
对所述未被重构的数据中未通过有效性校验的数据进行重构。
在第三方面的第一种可能的实现方式中,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
结合第三方面,或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述未被重构的数据占用至少一个chunk;所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
在第三方面的第三种可能的实现方式中,每个所述chunk包括至少一个分块;所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
在第三方面的第四种可能的实现方式中,所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:逐分块校验所述未被重构的数据所占用的每一chunk;或者,校验所述未被重构的数据所占用的每一chunk中的选定分块。
结合第三方面,或第三方面的第一种可能的实现方式,或第三方面的第二种可能的实现方式,或第三方面的第三种可能的实现方式,或第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述未被重构的数据是根据已存储的元数据确定出的。
结合第三方面的第二种可能的实现方式,或第三方面的第三种可能的实现方式,或第三方面的第四种可能的实现方式,或第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述未通过有效性校验的数据占用至少一个第一chunk;所述对所述未被重构的数据中未通过有效性校验的数据进行重构具体包括:每检测出一个第一chunk,即针对检测出的第一chunk所存储的数据进行重构;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,针对检测出的所有第一chunk所存储的数据分别进行重构。
结合第三方面的第二种可能的实现方式,或第三方面的第三种可能的实现方式,或第三方面的第四种可能的实现方式,或第三方面的第五种可能的实现方式,或第三方面的第六种可能的实现方式,在第三方面的第七种可能的实现方式中,所述通过有效性校验的数据占用至少一个第二chunk;所述对所述未被重构的数据中通过有效性校验的数据恢复可用具体包括:每检测出一个第二chunk,即对检测出的该第二chunk上所存储的数据恢复可用;或者,在所述未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有第二chunk上所存储的数据恢复可用。
根据本发明实施例的第四方面,结合上述第二方面或第二方面的任一种可能的实现方式,提供一种存储系统,包括至少两个存储介质和上述数据恢复装置。
根据本发明实施例的第五方面,结合上述第三方面或第三方面的任一种可能的实现方式,提供一种存储系统,包括至少两个存储介质和上述控制器。
可见,在本发明实施例中,当新接入的存储介质与正在执行的全存储介质重构所针对的退出的存储介质为同一个时,将停止全存储介质重构,对新接入的存储介质中未被重构的数据的有效性进行校验,并对通过有效性校验的数据恢复可用,从而避免了通过有效性校验的数据重构至其他存储介质上,与现有技术相比,节省了通过有效性校验的数据的重构时间,从而减少了数据恢复所需时间,同时,也减少了对其他存储介质存储空间的占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的硬件RAID示意图;
图1b为本发明实施例提供的RAID组组成示意图;
图2为本发明实施例提供的数据恢复方法流程图;
图3为本发明实施例提供的分条组成示意图;
图4为本发明实施例提供的Disk1未被拔出前的情况示意图;
图5为本发明实施例提供的按照现有处理方式最终结果示意图;
图6为本发明实施例提供的按照本发明实施例所提供的数据恢复方法进行处理的最终结果示意图;
图7为本发明实施例提供的数据恢复装置结构示意图;
图8a和图8b为本发明实施例提供的控制器结构示意图;
图9为本发明实施例提供的存储系统结构示意图;
图10为本发明实施例提供的存储系统另一结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
RAID:Redundant Arrays of Inexpensive Disks,独立磁盘冗余阵列;
chunk:缩写为CK,是存储介质按照指定粒度分割成的小段连续空间;
SCSI:Small Computer System Interface,小型计算机系统接口。一种用于计算机和智能设备(硬盘、软驱、光驱、打印机、扫描仪等)之间系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准。它是各种计算机与外部设备之间的接口标准;
iSCSI:Internet Small Computer System Interface,互联网小型计算机系统接口;
FC,Fiber Channel,光纤信道;
SSD:solid state disk,固态硬盘;
IDE:Integrated-Drive-Electronics,电子集成驱动器。IDE是现在普遍使用的外部接口,主要接硬盘和光驱;
ID:IDentity,身份标识号码;
PCI:Peripheral Component Interconnect,外设组件互连标准;
SATA:Serial Advanced Technology Attachment,串行高级技术附件,一种基于行业标准的串行硬件驱动器接口,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要特别说明的是,本发明实施例中,存储介质可包括逻辑硬盘(例如将一台存储设备上的卷虚拟为逻辑硬盘)、物理硬盘、SSD和光盘中的至少一种。
当存储系统中有存储介质退出时,可针对退出的存储介质进行全存储介质重构。进行全存储介质重构的时机,可以是有存储介质退出时立即进行全存储介质重构,也可以设定一时间阈值(也即前述延迟时间),如果到了阈值,退出的存储介质还没有重新接入,则进行全存储介质重构。显然,全存储介质重构可以使用存储系统中余下的所有存储介质所存储的数据,也可以使用存储系统中余下的存储介质中的一部分存储介质所存储的数据,只要能恢复出退出的存储介质的数据即可。本发明实施例中全存储介质重构所针对的存储介质就是退出的存储介质,其数量可以是一个也可以是多个。
本发明实施例中,存储介质的退出是指存储介质无法被正常使用,例如由多块硬盘组成的存储系统中,某一块硬盘被拔出存储系统或者断电。此外,本发明实施例可以应用于基于RAID进行数据保护的存储系统,也可以应用于基于其他数据保护的存储系统,只要能够利用存储系统中余下的全部或部分存储介质,对退出的存储介质进行数据恢复即可,为了更易于理解,后文将以RAID为例进行介绍。
为便于理解本发明所提供的技术方案,先对RAID进行简单介绍。
RAID分为软件RAID和硬件RAID两大类。
其中,软件RAID是通过计算机的操作系统(如Windows,Netware及Linux)自身提供的磁盘管理功能,将与计算机连接的多块存储介质配置成RAID组。软件RAID中的所有操作皆由计算机的中央处理器负责。
而硬件RAID主要包括存储控制器方式:参见图1a,存储控制器101通过接口卡(SCSI、iSCSI、FC)与计算机102相连接,同时,存储控制器101与多个存储介质103相连接。
计算机+存储介质(软件RAID)或者存储控制器+存储介质(硬件RAID)可以配置出RAID组,其实现方式是:计算机处理器或存储控制器将各存储介质的存储空间按照指定粒度分割成小段连续空间-chunk(也可叫做分区),然后按照raid级别的要求,从存储介质中随机选出一定数量的存储介质,并在选出的每个存储介质上随机各选取一个chunk组成RAID组。
例如,参见图1b,物理硬盘Disk1-Disk5为选出的存储介质,其中每一物理硬盘被划分为4个chunk(chunk1-chunk4),这4个chunk被分配到4个RAID组(RAIDGroup1至RAIDGroup4)中。
在现有的RAID组中,当某一存储介质因故障或被拔出等原因而退出时,常见的处理方式是延迟一段时间(具体的延迟时间可为数十秒到数分钟不等),如果在延迟时间内该退出的存储介质又重新接入,则不会启动全存储介质重构,而是根据日志或者其他方式的记录,对存储介质中被改写过的数据进行恢复;
而如果超过延迟时间,则针对退出的存储介质启动全存储介质重构,也即,依据RAID组其他存储介质所存储的数据计算出退出的存储介质上所存储的全部或部分数据,并写入到RAID组其他存储介质上的chunk上,以达到恢复该退出的存储介质上的数据的目的。
然而,在实施本发明创造的过程中,发明人发现,在进行全存储介质重构过程中,如退出的存储介质再重新接入RAID组,该存储介质将被识别为新存储介质,其上的数据也将被认为不可用。也即,即使退出的存储介质再重新接入,全存储介质重构仍将继续进行。而全存储介质重构又需要占用较长的时间,进而造成数据恢复所需时间较长。以典型的2TB容量SATA盘为例,其进行全存储介质重构所需要时间约为2小时。
为解决上述问题,本发明实施例提供一种数据恢复方法,参见图2,其至少包括如下步骤:
S1、当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在本发明其他实施例中,步骤S1可具体包括:当存储介质退出时立即针对退出的存储介质进行全存储介质重构;
而在本发明另一实施例中,步骤S1则可具体包括:设定一时间阈值,如果到了阈值,退出的存储介质还没有重新接入,则进行全存储介质重构。
S2、在进行全存储介质重构时,检测是否有新的存储介质接入;
S3、当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
S4、当检测结果为是时,停止正在执行的全存储介质重构;
S5、校验新接入的存储介质中未被重构的数据的有效性;
校验的目的是为了确定未被重构的数据中是否有数据被改写,被改写的数据不具有有效性将无法通过有效性校验,而未被改写的数据则具有有效性可通过有效性校验。
需要说明的是,在本发明中,上述新接入(并被识别出与正在执行的全存储介质重构所针对的存储介质为同一个)的存储介质所存储的数据中,已经被重构至其他存储介质上的数据为“已被重构的数据”,而未被重构至其他存储介质上的数据为“未被重构的数据”。
S6、对未被重构的数据中通过有效性校验的数据恢复可用(通过有效性校验的数据是未被改写的,是直接可用的,因此对其采用了“恢复可用”的方式);
S7、对未被重构的数据中未通过有效性校验的数据进行重构。
可见,在本实施例中,当新接入的存储介质与正在执行的全存储介质重构所针对的存储介质为同一个时,将停止全存储介质重构,对未被重构的数据进行校验,并对通过有效性校验的数据恢复可用,从而避免了通过有效性校验的数据重构至其他存储介质上。由于数据校验操作只有读请求而没有写请求,所以其执行速度远高于重构速度,因此,与现有技术相比,通过有效性校验的数据在未被重构的数据中所占的比例越大,本实施例所提供的方法在数据恢复上的时间优势也就越大。
同时,由于重构需要计算出退出的存储介质上所存储的数据并写入到其他存储介质上,而在本实施例中,“通过有效性校验的数据”可直接恢复可用而不必写入到其他存储介质上,从而也减少了对其他存储介质存储空间的占用。
下面,将进行更为详细的介绍。
在本发明其他实施例中,上述实施例中的每个存储介质都有唯一的标识,称为WWN。标识可为序列号。因而,上述步骤S3中“检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果”可通过如下方式实现:
比较新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
更具体的,至少在退出的存储介质上的数据未全部恢复之前,保留(记录)正在执行的全存储介质重构所针对的存储介质的序列号,该序列号可记录在计算机/存储控制器的缓存上,或者记录在某一/某些存储介质上,这样,当新存储介质接入时,比较新接入的存储介质的序列号与所记录的序列号是否相同,即可得到检测结果。而在退出的存储介质上的数据全部恢复后,可删除所记录的序列号,也可不删除。
在本发明其他实施例中,上述所有实施例中每一存储介质的已分配空间信息(可称为元数据)可记录在计算机/存储控制器的缓存上,或者记录在某一/些存储介质上。本领域技术人员可以理解的是,存储介质上的未分配空间所存储的数据无需要被重构或恢复可用。这样,当新接入的存储介质与正在执行的全存储介质重构所针对的存储介质为同一个时,控制器可根据已存储的元数据来确定出新接入的存储介质中未执行重构的区域,从而确定出未被重构的数据,本文下述将对其进行详细描述。
前已述及,存储介质的存储空间被按照指定粒度分割成chunk,因此,存储介质的已分配空间也至少包括一个chunk,相应的,上述存储介质的已分配空间信息(即元数据)也与chunk有关。
更具体的,上述元数据与存储介质的序列号以及chunk ID有关。
仍以前述物理硬盘Disk1-Disk5为例。假定,Disk1-Disk5中的每一物理硬盘被划分为4个chunk(chunk1-chunk4)。在配置RAID组时,可根据RAID级别决定构成一个RAID组所需要的chunk的个数。在这里,假设构成一个RAID组需要4个chunk。那么,可配置由Disk1-Disk4中的4个chunk1构成RAIDGroup1,由Disk1-Disk4中的4个chunk2构成RAIDGroup2,由Disk1-Disk4中的4个chunk3构成RAIDGroup3,以及由Disk1-Disk4中的4个chunk4构成RAIDGroup4。
元数据记载了上述各RAID组与存储介质的序列号以及chunk ID的关系,例如,在上述元数据中,就记载了RAIDGroup1由Disk1的chunk1、Disk2的chunk1、Disk3的chunk1以及Disk4的chunk1构成。
全存储介质重构可根据元数据的记载执行:在存储介质退出后,通过查找元数据,可找出记载元数据中的、属于退出的存储介质的chunk ID,从而可依据RAID组其他存储介质所存储的数据计算出上述chunk ID所对应的chunk所存储的数据。
而在退出的存储介质重新接入后,通过查找元数据,可找出记载在元数据中的、属于新接入的存储介质的chunk ID。这些属于新接入存储介质的chunk ID所标识的chunk即为上述未执行重构的区域,未执行重构的区域上所存储的数据未被重构至其他存储介质,也即,元数据中属于新接入的存储介质的chunk ID所标识的chunk上所存储的数据,即为未被重构的数据。
现举例说明,假定Disk1退出后,启动针对Disk1的全存储介质重构。再假定在全存储介质重构的过程中,已计算出退出的Disk1的chunk1上的数据,并将其写入到Disk5的chunk1上。此时,Disk1又重新接入。
那么,在Disk1未退出前,在元数据中,记载了RAIDGroup1由Disk1的chunk1、Disk2的chunk1、Disk3的chunk1以及Disk4的chunk1构成,而在Disk1重新接入时,在元数据的记载中,RAIDGroup1就变成由Disk2的chunk1、Disk3的chunk1、Disk4的chunk1以及Disk5的chunk1构成了。但除RAIDGroup1外的其他RAID组,比如RAIDGroup2,仍由Disk1的chunk2、Disk2的chunk2、Disk3的chunk2以及Disk4的chunk2构成,RAIDGroup3仍由Disk1的chunk3、Disk2的chunk3、Disk3的chunk3以及Disk4的chunk3构成,RAIDGroup4仍由Disk1的chunk4、Disk2的chunk4、Disk3的chunk4以及Disk4的chunk4构成。通过查找元数据,可找出Disk1的chunk2的chunkID、Disk1的chunk3的chunk ID以及Disk1的chunk4的chunk ID仍记载在元数据中,从而可确定出,Disk1上的chunk2-chunk4所存储的数据为未被重构的数据。
未被重构的数据占用至少一个chunk。相应的,上述步骤S5中“校验新接入的存储介质中未被重构的数据”亦可具体包括:逐chunk校验未被重构的数据所占用的每一chunk。也即,对新接入的存储介质中的未被重构的数据逐chunk进行校验。
在本发明其他实施例中,每一chunk又可被划分为至少一个分块。例如,参见图3,物理硬盘Disk1-Disk5中的chunk1均被划分为4个分块(A1-A4),各Chunk1相同位置上的分块构成分条(stripe)。由图3可见:五个分块A1共同构成分条1(stripe1),五个分块A2共同构成分条2(stripe2),等等。结合图1b,可知每一RAID组包括一个或多个分条。
以五个分块A1共同构成分条1为例,在五个分块A1中,其中一个分块A1可作为校验块存储校验数据,而其他四个分块A1可作为四个数据块存储数据。通过对四个数据块上的数据进行异或运算可生成校验数据,当然,也可通过其他运算生成校验数据。这样,当某一数据块退出分条1时,可通过校验块所存储的校验数据,以及分条1中其他数据块所存储的数据计算获得退出的数据块上的数据,并将计算结果写入到RAID组其他存储介质的chunk上。或者,当校验块退出分条1时,也可根据数据块所存储的数据重新生成退出的校验块上所存储的校验数据,并将计算结果写入到RAID组其他存储介质的chunk上。
基于分条/分块,在本发明其他实施例中,上述全存储介质重构可根据元数据的记载逐chunk逐分条(分块)执行,也即,假定disk1退出,根据元数据,可按从chunk1-chunk4的顺序,按分条计算出disk1每一chunk上每一分块所存储的数据,并将计算结果写入到RAID组其他存储介质的chunk上。
需要注意的是,当退出的存储介质重新接入后,可能存在下述情况:退出又重新接入的存储介质的某一chunk上的一部分分块所存储的数据已通过计算被重构至其他存储介质上,但还剩余一部分分块所存储的数据未被重构至其他存储介质上。举例来讲,假设Disk1退出又再重新接入后,已计算出Disk1的chunk1上的A1和A2所存储的数据,并将计算结果保存在Disk5的chunk1上,但还未计算Disk1的chunk1上的A3和A4所存储的数据。
在上述情况下,会将全存储介质重构当前所针对的chunk上的数据重构完毕后,再根据元数据确定未被重构的数据。也即,会将Disk1的chunk1上的A3和A4重构至Disk5的chunk1上后再根据元数据确定未被重构的数据。
因此,在本发明某些实施例中,上述“停止全存储介质重构”可具体包括:将全存储介质重构当前所针对的chunk上的数据重构完毕后,停止全存储介质重构。
基于分块,前述的“检验未被重构的数据所占用的每一chunk”可进一步细化包括:按分块校验未被重构的数据所占用的每一chunk。
一般情况下,一个chunk可包括不止一个分块,因此,在按分块进行校验时,至少可按照下述两种方式进行:
第一种方式是:逐分块校验未被重构的数据所占用的每一chunk。也即,如果一个chuck中包括8个分块,在校验时,将依次对这8个分块所存储的数据进行校验。在第一种方式下,必须8个分块所存储的数据均通过校验,整个chunk所存储的数据才通过有效性校验。如8个分块中有任意一个分块所存储的数据未通过校验,则整个chunk所存储的数据均未通过有效性校验。
第二种方式是:校验未被重构的数据所占用的每一chunk中的选定分块。仍假设一个chuck中包括8个分块,可选择校验这8个分块中的任意一个或几个分块。在第二种方式下,选定的分块所存储的数据必须均通过校验,整个chunk所存储的数据才通过有效性校验。如选定的分块中有任意一个分块所存储的数据未通过校验,则整个chunk所存储的数据均未通过有效性校验。与第一种方式相比,第二种方式因为读取和校验的数据量更少,从而可以达到更快恢复数据的目的。
需要说明的是,无论是哪种方式,针对某一分块所进行的校验可参照现有的分条校验技术,在此不作赘述。分条校验可验证分条中的数据块所存储的数据是否被改写。如未被改写,则数据块所存储的数据有效,否则,数据块所存储的数据无效。
为称呼方便,可将未通过有效性校验的数据所占用的每一chunk称为第一chunk,也即,未通过有效性校验的数据占用至少一个“第一chunk”;并将通过有效性校验的数据占用的每一chunk称为第二chunk,也即,通过有效性校验的数据占用至少一个“第二chunk”。
相应的,在本发明其他实施例中,上述步骤S7可具体包括:
每检测出一个“第一chunk”,即针对检测出的“第一chunk”所存储的数据进行重构,也即,根据元数据确定检测出的“第一chunk”所属的RAID组以及该RAID组所包括的其他chunk,根据其他chunk上存储的数据计算检测出的“第一chunk”上的数据,从而得到计算结果,并将计算结果写入到其他存储介质的chunk上;
或者,
在未被重构的数据所占用的全部chunk均校验完成后,针对检测出的所有“第一chunk”分别进行重构。
针对每一“第一chunk”所进行的重构,是根据元数据确定每一“第一chunk”所属的RAID组以及该RAID组所包括的其他chunk,根据每一“第一chunk”所属RAID组中其他chunk上存储的数据计算每一“第一chunk”上的数据,并将计算结果写入到其他存储介质的chunk上。
与之相对应,上述步骤S6也可具体包括:
每检测出一个“第二chunk”,即对检测出的“第二chunk”上所存储的数据恢复可用;
或者,
在未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有“第二chunk”上所存储的数据恢复可用。
在具体实施时,本领域技术人员可进行灵活组合,例如,可每检测出一个“第二chunk”,即对检测出的“第二chunk”上的数据恢复可用,但是在未被重构的数据所占用的全部chunk均校验完成后,再对检测出的所有“第一chunk”进行重构;也可以在未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有“第二chunk”所存储的数据恢复可用,而对检测出的所有“第一chunk”进行重构;也可每检测出一个“第二chunk”,即对检测出的“第二chunk”所存储的数据恢复可用,而每检测出一个“第一chunk”,即对其进行重构,等等,在此不作赘述。
无论哪种组合,参见图4-6,以每一物理硬盘分为4个chunk为例,假设Disk1的4个chunk(chunk1-4)分属于4个RAID组,在Disk1被拔出后(图4示出的是Disk1未被拔出前的情况),按照现有的处理的方式,通过全存储介质重构,Disk1上的所有chunk(chunk1-4)均会被重构到其他硬盘上,最终结果可参见图5。
而按照本发明实施例所提供的技术方案,当Disk1在被拔出后又插入时,全存储介质重构停止。假设此时已对Disk1中的chunk1和chunk2进行了重构,则对Disk1上剩余的Chunk3和chunk4进行分条校验,如Disk1上的Chunk3和chunk4均通过有效性校验,则对Disk1上的Chunk3和chunk4恢复可用(参见图6),通过对比图5和6可看出,依照本发明实施例所提供的技术方案,最终被重构的数据大大少于现有技术方案,从而快速实现了全部数据的恢复。
并且,如在对Disk1进行全存储介质重构的期间,上述RAID组中的其他存储介质因故障或被拔出而退出,则可能造成双盘失效、用户数据丢失,其风险比较大;并且随着存储介质技术的发展,存储介质的容量会越来越大,而容量越大,全存储介质重构所占用的时间也就越长,从而造成数据丢失的风险也随之增大。
而采用本发明实施例所提供的技术方案,如在全存储介质重构过程中,Disk1再次接入,可对未被重构的数据采用校验的方式,通过有效性校验的数据可避免写操作,从而可以节约未被重构的数据中通过有效性校验的数据的重构时间。由于重构时间的缩短,全存储介质重构过程中双盘失效的风险也随之大大降低,并可避免相关存储介质的重构写操作对主机IO(Input/Output)的影响,保证了性能。
此外,按照现有的处理方式,退出再重新接入的存储介质将被识别为新存储介质,因此会为该重新接入的存储介质分配新的逻辑信息。如果某一存储介质频繁退出和接入,可造成针对同一存储介质的逻辑信息记录频繁重复,甚至可能耗尽相关资源(例如运行过程中占用的内存空间,及持久化保存占用的其它存储空间)。而本发明实施例所提供的技术方案,会去检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,当二者为同一个时,则不会为重新新入的存储介质分配新的逻辑信息,从而可避免针对同一存储介质的逻辑信息记录频繁重复,甚至相关资源耗尽相关资源的问题的出现。
需要说明的是,假设在完成上述步骤S1-S7后,退出又重新接入的存储介质(Disk1)中所存储的一部分数据被重构至RAID组的其他存储介质上,另一部分数据被恢复可用,比如Disk1的chunk3和chunk4上所存储的数据被恢复可用。此时,如果Disk1又再次退出,只需要根据元数据针对Disk1的chunk3和chunk4执行全存储介质重构。也即,依据RAID组其他存储介质所存储的数据计算出退出的存储介质上所存储的部分数据,并写入到RAID组其他存储介质上的chunk上。如果在执行全存储介质重构时,Disk1又再次接入,可执行上述步骤S3至S7,以此类推,在此不作赘述。
如果存储介质频繁退出、接入达到预设条件,可对该存储介质进行屏蔽,被屏蔽后的存储介质无论实际上处于退出的状态还是处于接入的状态,均被当作退出。本领域技术人员可根据实际情况设置上述预设条件,比如,可将预设条件设置为1小时内的退出次数大于等于阈值,阈值的取值可为任意自然数。
需要注意的是,上述所有实施例中要求保护的数据恢复方法的执行主体可为前述的计算机处理器或存储控制器,计算机处理器或存储控制器可作为数据恢复装置,参见图7,该数据恢复装置可包括:
全存储介质重构单元700,用于当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
检测单元701,用于在进行全存储介质重构时,检测是否有新的存储介质接入;
识别单元702,用于当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
全存储介质重构控制单元703,用于当所述检测结果为是时,停止全存储介质重构(也即,当所述检测结果为是时,全存储介质重构控制单元703控制全存储介质重构单元700停止全存储介质重构操作);
校验单元704,用于校验上述接入的存储介质中未被重构的数据的有效性;
第一数据恢复单元705,用于对未被重构的数据中通过有效性校验的数据恢复可用;
第二数据恢复单元706,用于对未被重构的数据中未通过有效性校验的数据进行重构。
上述各单元所执行的功能分别与前述方法中的步骤S1-S7相对应,具体细节可参见本文前述记载,在此不作赘述。
另外,前述的计算机处理器或存储控制器也可统称为控制器,参见图8a和图8b,控制器800在硬件上可包括CPU81和存储器82,其中,CPU81通过通信接口811与存储介质83通信,并通过运行存储在存储器82内的软件程序821以及调用存储在存储器82内的数据,可执行如下步骤:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止全存储介质重构;
校验所述存储介质中未被重构的数据的有效性;
对上述未被重构的数据中通过有效性校验的数据恢复可用;
对上述未被重构的数据中未通过有效性校验的数据进行重构。
如上步骤的具体细节可参见本文前述记载,在此不作赘述。
针对计算机处理器,上述存储器82具体可为SSD,SSD可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统,以及至少一个功能所需的应用程序(例如上述软件程序821)等;数据存储区可存储根据CPU的执行情况而最终产生的数据,至于CPU在执行上述步骤所产生的中间数据,则存储在内存中。
而上述存储控制器可具体包括CPU、主板、内存、存储器、电源、电池、风扇,其中,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
类似于上述SSD,存储控制器中的存储器也可包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等等,而数据存储区可存储根据CPU的执行情况而最终产生的数据。并且,CPU在执行上述步骤时所产生的中间数据,也可存储在存储控制器的内存中。
在本发明其他实施例中还要求保护存储系统。
图9示出了本发明实施例欲保护的存储系统的一种结构:包括数据恢复装置91和至少两个存储介质92。数据恢复装置91通过通信接口与存储介质92通信。数据恢复装置的结构请参见图7所示,在此不作赘述。
图10示出了本发明欲保护的存储系统的另一种结构:包括控制器800和至少两个存储介质83;控制器800的具体结构可参见图8a和图8b:其可包括CPU81和存储器82,CPU81通过通信接口811与存储介质83通信,并通过运行存储在所述存储器内的软件程序以及调用存储在所述存储器内的数据,执行如下步骤:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止全存储介质重构;
校验新接入的存储介质中未被重构的数据的有效性;
对未被重构的数据中通过有效性校验的数据恢复可用;
对未被重构的数据中未通过有效性校验的数据进行重构。
如上步骤的具体细节可参见本文前述记载,在此不作赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,通用硬件包括通用集成电路、通用CPU、通用存储器、通用元器件等,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读取的存储介质中,如U盘、移动存储介质、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储软件程序代码的介质,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种数据恢复方法,其特征在于,包括:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止所述全存储介质重构;
校验所述新接入的存储介质中未被重构的数据的有效性,其中,通过有效性校验的数据为未被改写的数据;
对所述未被重构的数据中通过有效性校验的数据恢复可用;
对所述未被重构的数据中未通过有效性校验的数据进行重构;
还包括:
判断所述存储介质的退出次数是否达到预设条件,若是,则屏蔽所述存储介质。
2.如权利要求1所述的方法,其特征在于,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
3.如权利要求1或2所述的方法,其特征在于:
所述未被重构的数据占用至少一个chunk;
所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
4.如权利要求3所述的方法,其特征在于:
每个所述chunk包括至少一个分块;
所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
5.如权利要求4所述的方法,其特征在于:
所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:
逐分块校验所述未被重构的数据所占用的每一chunk;
或者,
校验所述未被重构的数据所占用的每一chunk中的选定分块。
6.如权利要求1或2所述的方法,其特征在于,所述未被重构的数据是根据已存储的元数据确定出的。
7.如权利要求1或2所述的方法,其特征在于:
所述未通过有效性校验的数据占用至少一个第一chunk;
所述对所述未被重构的数据中未通过有效性校验的数据进行重构具体包括:
每检测出一个第一chunk,即针对检测出的第一chunk所存储的数据进行重构;或者,
在所述未被重构的数据所占用的全部chunk均校验完成后,针对检测出的所有第一chunk所存储的数据分别进行重构。
8.如权利要求1或2所述的方法,其特征在于:
所述通过有效性校验的数据占用至少一个第二chunk;
所述对所述未被重构的数据中通过有效性校验的数据恢复可用具体包括:
每检测出一个第二chunk,即对检测出的第二chunk上所存储的数据恢复可用;
或者,
在所述未被重构的数据所占用的全部chunk均校验完成后,对检测出的所有第二chunk上所存储的数据恢复可用。
9.一种数据恢复装置,其特征在于,包括:
全存储介质重构单元,用于当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
检测单元,用于在进行全存储介质重构时,检测是否有新的存储介质接入;
识别单元,用于当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
全存储介质重构控制单元,用于当所述检测结果为是时,停止所述全存储介质重构;
校验单元,用于校验所述新接入的存储介质中未被重构的数据的有效性,其中,通过有效性校验的数据为未被改写的数据;
第一数据恢复单元,用于对所述未被重构的数据中通过有效性校验的数据恢复可用;
第二数据恢复单元,用于对所述未被重构的数据中未通过有效性校验的数据进行重构;
还包括:
判断所述存储介质的退出次数是否达到预设条件,若是,则屏蔽所述存储介质。
10.如权利要求9所述的装置,其特征在于,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
11.如权利要求9或10所述的装置,其特征在于:
所述未被重构的数据占用至少一个chunk;
所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
12.如权利要求11所述的装置,其特征在于:
每个所述chunk包括至少一个分块;
所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
13.如权利要求12所述的装置,其特征在于:
所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:
逐分块校验所述未被重构的数据所占用的每一chunk;
或者,
校验所述未被重构的数据所占用的每一chunk中的选定分块。
14.一种控制器,其特征在于,包括CPU和存储器,所述CPU通过通信接口与存储介质通信,并通过运行存储在所述存储器内的软件程序以及调用存储在所述存储器内的数据,执行如下步骤:
当有存储介质退出时,针对退出的存储介质进行全存储介质重构;
在进行全存储介质重构时,检测是否有新的存储介质接入;
当有新的存储介质接入时,检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果;
当检测结果为是时,停止所述全存储介质重构;
校验所述新接入的存储介质中未被重构的数据的有效性,其中,通过有效性校验的数据为未被改写的数据;
对所述未被重构的数据中通过有效性校验的数据恢复可用;
对所述未被重构的数据中未通过有效性校验的数据进行重构;
还包括:
判断所述存储介质的退出次数是否达到预设条件,若是,则屏蔽所述存储介质。
15.如权利要求14所述的控制器,其特征在于,所述检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个具体包括:
比较所述新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测结果为否。
16.如权利要求14或15所述的控制器,其特征在于:
所述未被重构的数据占用至少一个chunk;
所述校验所述新接入的存储介质中未被重构的数据具体包括:逐chunk检验所述未被重构的数据所占用的每一chunk。
17.如权利要求16所述的控制器,其特征在于:
每个所述chunk包括至少一个分块;
所述检验所述未被重构的数据所占用的每一chunk具体包括:按分块校验所述未被重构的数据所占用的每一chunk。
18.如权利要求17所述的控制器,其特征在于:
所述按分块校验所述未被重构的数据所占用的每一chunk具体包括:
逐分块校验所述未被重构的数据所占用的每一chunk;
或者,
校验所述未被重构的数据所占用的每一chunk中的选定分块。
19.一种存储系统,其特征在于,包括至少两个存储介质和如权利要求9-13任一项所述的数据恢复装置。
20.一种存储系统,其特征在于,包括至少两个存储介质和如权利要求14-18任一项所述的控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/085419 WO2014082216A1 (zh) | 2012-11-28 | 2012-11-28 | 数据恢复方法、数据恢复装置、存储器及存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103975309A CN103975309A (zh) | 2014-08-06 |
CN103975309B true CN103975309B (zh) | 2017-08-25 |
Family
ID=50827027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280003016.7A Active CN103975309B (zh) | 2012-11-28 | 2012-11-28 | 数据恢复方法、数据恢复装置、存储器及存储系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103975309B (zh) |
WO (1) | WO2014082216A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126378A (zh) | 2016-06-29 | 2016-11-16 | 华为技术有限公司 | 一种触发磁盘阵列进行重构的方法及装置 |
CN108572887A (zh) * | 2017-03-14 | 2018-09-25 | 上海骐宏电驱动科技有限公司 | 数据检验校正方法 |
CN112543920B (zh) * | 2019-07-22 | 2023-02-10 | 华为技术有限公司 | 数据重构的方法、装置、计算机设备、存储介质及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848070A (zh) * | 2005-04-04 | 2006-10-18 | 索尼株式会社 | 数据存储设备、重构控制设备、重构控制方法与存储介质 |
CN101091318A (zh) * | 2003-12-11 | 2007-12-19 | 国际商业机器公司 | 数据传输错误校验 |
CN101599032A (zh) * | 2009-05-31 | 2009-12-09 | 成都市华为赛门铁克科技有限公司 | 存储节点管理方法、控制子系统和存储系统 |
-
2012
- 2012-11-28 CN CN201280003016.7A patent/CN103975309B/zh active Active
- 2012-11-28 WO PCT/CN2012/085419 patent/WO2014082216A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101091318A (zh) * | 2003-12-11 | 2007-12-19 | 国际商业机器公司 | 数据传输错误校验 |
CN1848070A (zh) * | 2005-04-04 | 2006-10-18 | 索尼株式会社 | 数据存储设备、重构控制设备、重构控制方法与存储介质 |
CN101599032A (zh) * | 2009-05-31 | 2009-12-09 | 成都市华为赛门铁克科技有限公司 | 存储节点管理方法、控制子系统和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103975309A (zh) | 2014-08-06 |
WO2014082216A1 (zh) | 2014-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
CN107250975B (zh) | 数据存储系统和数据存储方法 | |
US11513692B2 (en) | Arranging SSD resources based on estimated endurance | |
US8719619B2 (en) | Performance enhancement technique for raids under rebuild | |
US9389975B2 (en) | Method and apparatus to utilize large capacity disk drives | |
JP5147979B2 (ja) | データ記憶ライブラリのための重複排除プロトコルを選択する装置および方法 | |
US9047219B2 (en) | Storage system, storage control device, and storage control method | |
US8250401B2 (en) | Storage device realignment | |
US10120769B2 (en) | Raid rebuild algorithm with low I/O impact | |
US10467044B2 (en) | Transaction processing method and apparatus, and computer system | |
US9529674B2 (en) | Storage device management of unrecoverable logical block addresses for RAID data regeneration | |
US9104604B2 (en) | Preventing unrecoverable errors during a disk regeneration in a disk array | |
US10552078B2 (en) | Determining an effective capacity of a drive extent pool generated from one or more drive groups in an array of storage drives of a data storage system that uses mapped RAID (redundant array of independent disks) technology | |
CN107515726B (zh) | 用于管理存储设备的方法和系统 | |
KR20130100722A (ko) | Smr raid용의 대블록 무작위 쓰기 핫 스페어 ssd 구현 | |
CN102326141A (zh) | Raid配置信息的处理方法及装置、raid控制器 | |
US10592111B1 (en) | Assignment of newly added data storage drives to an original data storage drive partnership group and a new data storage drive partnership group in a mapped RAID (redundant array of independent disks) system | |
US8799595B1 (en) | Eliminating duplicate data in storage systems with boot consolidation | |
US10606490B2 (en) | Storage control device and storage control method for detecting storage device in potential fault state | |
CN107515731B (zh) | 一种基于固态盘的进化存储系统及其工作方法 | |
US20130117603A1 (en) | Method for completing write operations to a raid drive pool with an abnormally slow drive in a timely fashion | |
JP2021503115A (ja) | Raidのリビルドを強化するための機械学習を利用した方法、コンピュータ・プログラムおよびコンピュータ・システム | |
CN103975309B (zh) | 数据恢复方法、数据恢复装置、存储器及存储系统 | |
CN109558066B (zh) | 存储系统中恢复元数据的方法和装置 | |
KR20130050588A (ko) | 나스 서버의 임베디드 시스템 펌웨어 복원 장치 및 방법 |
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 |