数据恢复方法、数据恢复装置、存储器及存储系统与流程

文档序号:11433123阅读:218来源:国知局
数据恢复方法、数据恢复装置、存储器及存储系统与流程
本发明涉及数据处理技术领域,更具体地说,涉及数据恢复方法、数据恢复装置、存储器及存储系统。

背景技术:
在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:RedundantArraysofInexpensiveDisks,独立磁盘冗余阵列;chunk:缩写为CK,是存储介质按照指定粒度分割成的小段连续空间;SCSI:SmallComputerSystemInterface,小型计算机系统接口。一种用于计算机和智能设备(硬盘、软驱、光驱、打印机、扫描仪等)之间系统级接口的独立处理器标准。SCSI是一种智能的通用接口标准。它是各种计算机与外部设备之间的接口标准;iSCSI:InternetSmallComputerSystemInterface,互联网小型计算机系统接口;FC,FiberChannel,光纤信道;SSD:solidstatedisk,固态硬盘;IDE:Integrated-Drive-Electronics,电子集成驱动器。IDE是现在普遍使用的外部接口,主要接硬盘和光驱;ID:IDentity,身份标识号码;PCI:PeripheralComponentInterconnect,外设组件互连标准;SATA:SerialAdvancedTechnologyAttachment,串行高级技术附件,一种基于行业标准的串行硬件驱动器接口,是由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中“检测新接入的存储介质与正在执行的全存储介质重构所针对的存储介质是否为同一个,得出检测结果”可通过如下方式实现:比较新接入的存储介质的序列号与正在执行的全存储介质重构所针对的存储介质的序列号是否相同,如果相同,检测结果为是,如果不相同,检测...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1