CN109522154B - 数据恢复方法及相关设备与系统 - Google Patents
数据恢复方法及相关设备与系统 Download PDFInfo
- Publication number
- CN109522154B CN109522154B CN201811235800.6A CN201811235800A CN109522154B CN 109522154 B CN109522154 B CN 109522154B CN 201811235800 A CN201811235800 A CN 201811235800A CN 109522154 B CN109522154 B CN 109522154B
- Authority
- CN
- China
- Prior art keywords
- storage
- granule
- target
- data
- instruction
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开一种数据恢复方法、数据备份方法及相关设备、系统。该数据恢复方法包括:接收目标存储设备发送的故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒;根据查找到的所述第二存储颗粒,向所述目标存储设备发送第四指令;所述第四指令用于触发所述目标存储设备从所述第二存储颗粒中读取所述原始数据对应的备份数据;接收所述目标存储设备响应所述第四指令返回的所述备份数据;根据所述备份数据恢复出所述原始数据。上述方案可提高数据恢复的效率。
Description
技术领域
本发明涉及存储领域,尤其涉及一种数据恢复方法及相关设备、系统。
背景技术
由于具有更高的访问速率和集成有更多的控制功能,基于非易失性存储颗粒(即非易失性存储芯片)的存储设备,例如集成Nand Flash的固态硬盘(Solid State Drive,SSD),应用得越来越广泛。同时,基于存储颗粒的数据存储技术也在快速发展,为访问性能、存储协议、管理平台、存储介质,以及多种应用提供高质量的支持。
现有技术中,基于非易失性存储颗粒的数据存储技术主要通过大数据量的数据冗余来实现数据备份。例如,针对整个硬盘(集成多个存储颗粒)进行数据备份。当某个存储颗粒发生故障时,目标操作系统通常认为该故障存储颗粒所在的存储实体发生故障,因而需要对该存储实体进行数据恢复,即,读取出备份存储实体中的备份数据,并根据该备份数据进行数据重构,进而恢复出原始数据。
可以理解的,现有技术提供的数据恢复过程涉及的数据量较大,尤其对于大容量的存储实体(如TB级硬盘)来说,现有的数据恢复过程耗时过长,数据恢复效率不高。
发明内容
本发明实施例提供了一种数据恢复方法、数据备份方法及相关设备、系统,通过在向目标存储设备中的第一存储颗粒写入原始数据时,将所述原始数据备份到第二存储颗粒中,可实现当第一存储颗粒发生故障时,直接从第二存储颗粒中获得备份数据,并利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。
第一方面,从目标操作系统一侧,提供了一种数据备份方法,包括:
向目标存储设备发送第一指令,所述第一指令用于触发所述目标存储设备将原始数据写入所述目标存储设备中的第一存储颗粒;
从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒;
向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述原始数据对应的备份数据写入所述目标存储设备中的所述第二存储颗粒;
将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒。
结合第一方面,在第一种可能的实现方式中,所述从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒,包括:根据预设磨损均衡原则,从所述目标存储设备中选择出所述第二存储颗粒;和/或,分析所述目标存储设备中的各个可写的存储颗粒与所述第一存储颗粒之间的关联性,从所述各个可写的存储颗粒中选择出关联性满足预设条件的存储颗粒为所述第二存储颗粒。
结合第一方面,在第二种可能的实现方式中,所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第一方面,或者,结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
结合第一方面,在第四种可能的实现方式中,所述向目标存储设备发送第一指令或者所述向所述目标存储设备发送第二指令之前,还包括:
向目标存储设备发送第三指令,所述第三指令用于获取所述目标存储设备上的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
接收所述目标存储设备响应所述第三指令返回的所述映射关系;
根据所述映射关系生成所述目标映射表。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述向所述目标存储设备发送第一指令之前,还包括:
根据所述原始数据的写入逻辑地址从预先生成的目标映射表中查找出所述写入逻辑地址对应的存储颗粒,查找出的所述存储颗粒为所述第一存储颗粒;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系;
根据查找出的所述第一存储颗粒的身份标识生成所述第一指令;所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述向目标存储设备发送第二指令之前,还包括:
根据所述目标映射表确定出所述第二存储颗粒对应的逻辑地址;
从所述第二存储颗粒对应的逻辑地址中选取出所述备份数据的写入逻辑地址;
根据所述备份数据的写入逻辑地址生成所述第二指令;所述第二指令包括:所述备份数据的写入逻辑地址。
第二方面,从目标存储设备一侧,提供了一种数据备份方法,包括:
接收目标操作系统发送的第一指令;
响应所述第一指令,将所述原始数据写入目标存储设备中的所述第一存储颗粒;
接收所述目标操作系统发送的第二指令;
响应所述第二指令,将所述原始数据对应的备份数据写入所述目标存储设备中的所述第二存储颗粒;所述第二存储颗粒是由所述目标操作系统从目标存储设备中选取出的用于备份所述原始数据的存储颗粒;所述第二存储颗粒被所述目标操作系统记录为用于备份所述原始数据的存储颗粒。
结合第二方面,在第一种可能的实现方式中,所述接收所述目标操作系统发送的第一指令或者所述接收所述目标操作系统发送的第二指令之前,还包括:
接收所述目标操作系统发送的第三指令;
响应所述第三指令,将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系。
结合第二方面,在第二种可能的实现方式中,所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第二方面,或者,结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
第三方面,从目标操作系统一侧,提供了一种数据恢复方法,包括:
接收目标存储设备发送的故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;
根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒;
根据查找到的所述第二存储颗粒,向所述目标存储设备发送第四指令;所述第四指令用于触发所述目标存储设备从所述第二存储颗粒中读取所述原始数据对应的备份数据;
接收所述目标存储设备响应所述第四指令返回的所述备份数据;
根据所述备份数据恢复出所述原始数据。
结合第三方面,在第一种可能的实现方式中,所述根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒,包括:
根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址;所述目标映射表包括:所述目标存储设备的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
根据获取到的所述逻辑地址,查找出存储于所述逻辑地址中的所述原始数据;
根据查找出的所述原始数据,查找用于备份所述原始数据的存储颗粒,查找到的所述存储颗粒为所述第二存储颗粒。
结合第三方面的第一种可能的实现方式中,在第二种可能的实现方式中,在所述根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址之前,还包括:
向所述目标存储设备发送第五指令,所述第五指令用于触发所述目标存储设备返回所述映射关系;
接收所述目标存储设备响应所述第五指令返回的所述映射关系;
根据所述映射关系生成所述目标映射表。
结合第三方面,或者,结合第三方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第四指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述备份数据恢复出所述故障存储颗粒上的原始数据,包括:
根据预设数据恢复规则将所述备份数据恢复成所述原始数据;
从所述目标存储设备中选取出用于存储恢复出的所述原始数据的第三存储颗粒;
根据选取出的所述第三存储颗粒,向所述目标存储设备发送第六指令,所述第六指令用于触发所述目标存储设备将恢复出的所述原始数据写入所述第三存储颗粒;
将所述原始数据的写入逻辑地址映射到所述第三存储颗粒,并标记所述第一存储颗粒失效。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第六指令包括:所述原始数据的逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量。
第四方面,从目标存储设备一侧,提供了一种数据恢复方法,包括:
向目标操作系统发送故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;
接收所述目标操作系统发送的第四指令;
响应所述第四指令,从第二存储颗粒中读取所述原始数据对应的备份数据,并将所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据。
结合第四方面,在第一种可能的实现方式中,在所述接收所述目标操作系统发送的第四指令之前,还包括:接收所述目标操作系统发送的第五指令;响应所述第五指令,将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表。
结合第四方面,或者,结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第四指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述将存储于所述第二存储颗粒中的所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据之后,还包括:接收所述目标操作系统发送的第六指令;响应所述第六指令,将恢复出的所述原始数据写入第三存储颗粒;所述第三存储颗粒是所述目标操作系统从所述目标存储设备中选取出的用于存储恢复出的所述原始数据的存储颗粒;所述恢复出的所述原始数据是由所述目标操作系统根据预设数据恢复规则恢复出的数据。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第六指令包括:所述原始数据的逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量。
第五方面,提供了一种数据备份设备,包括:
第一发送单元,用于向目标存储设备发送第一指令,所述第一指令用于触发所述目标存储设备将原始数据写入所述目标存储设备中的第一存储颗粒;
选择单元,用于从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒;
第二发送单元,用于向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述原始数据对应的备份数据写入所述目标存储设备中的所述第二存储颗粒;
记录单元,用于将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒。
结合第五方面,在第一种可能的实现方式,所述选择单元,具体用于:根据预设磨损均衡原则,从所述目标存储设备中选择出所述第二存储颗粒;和/或,分析所述目标存储设备中的各个可写的存储颗粒与所述第一存储颗粒之间的关联性,从所述各个可写的存储颗粒中选择出关联性满足预设条件的存储颗粒为所述第二存储颗粒。
结合第五方面,在第二种可能的实现方式,所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第五方面,或者,结合第五方面的第二种可能的实现方式,在第三种可能的实现方式,所述第二指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
结合第五方面,在第四种可能的实现方式,所述设备还包括:映射表获取单元,用于在所述第一发送单元向所述目标存储设备发送第一指令或者在所述第二发送单元向所述目标存储设备发送第二指令之前,向所述目标存储设备发送第三指令,所述第三指令用于触发所述目标存储设备返回所述目标存储设备上的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;接收所述目标存储设备响应所述第三指令返回的所述映射关系;根据所述映射关系生成所述目标映射表。
结合第五方面的第四种可能的实现方式,在第五种可能的实现方式,所述数据备份设备还包括:查找单元和第一生成单元,其中:
所述查找单元,用于在所述第一发送单元向目标存储设备发送第一指令之前,根据所述原始数据的写入逻辑地址从目标映射表中查找出所述逻辑地址对应的存储颗粒,查找出的所述存储颗粒为所述第一存储颗粒;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系;
所述第一生成单元,用于根据所述查找单元查找出的所述第一存储颗粒的身份标识生成所述第一指令;所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第五方面的第四种可能的实现方式,在第六种可能的实现方式中,所述数据备份设备还包括:确定单元、选择单元和第二生成单元,其中:
所述确定单元,用于根据所述目标映射表确定出所述第二存储颗粒对应的逻辑地址;
所述选择单元,用于从所述第二存储颗粒对应的逻辑地址中选取出所述备份数据的写入逻辑地址;
所述第二生成单元,用于根据所述备份数据的写入逻辑地址生成所述第二指令;所述第二指令包括:所述备份数据的写入逻辑地址。
第六方面,提供了一种存储设备,包括:
第一接收单元,用于接收目标操作系统发送的第一指令;
写入单元,用于响应所述第一指令,将所述原始数据写入目标存储设备中的第一存储颗粒;
第二接收单元,用于接收所述目标操作系统的第二指令;
备份单元,用于响应所述第二指令,将所述原始数据对应的备份数据写入所述第二存储颗粒;所述第二存储颗粒是由所述目标操作系统从目标存储设备中选取出的用于备份所述原始数据的存储颗粒;所述第二存储颗粒被所述目标操作系统记录为用于备份所述原始数据的存储颗粒。
结合第六方面,在第一种可能的实现方式,所述存储设备还包括:第三接收单元和发送单元,其中:
所述第三接收单元,用于在所述第一接收单元接收所述目标操作系统发送的第一指令之前,接收所述目标操作系统发送的第三指令;
所述发送单元,用于响应所述第三指令,将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系。
结合第六方面,在第二种可能的实现方式,所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
结合第六方面,或者,结合第六方面的第二种可能的实现方式,在第三种可能的实现方式,所述第二指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
第七方面,提供了一种数据恢复设备,包括:
第一接收单元,用于接收目标存储设备发送的故障信息;所述故障信息包括发生故障的第一存储颗粒的身份标识;
查找单元,用于根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒;
第一发送单元,用于根据查找到的所述第二存储颗粒,向所述目标存储设备发送第四指令;所述第四指令用于触发所述目标存储设备从所述第二存储颗粒中读取所述原始数据对应的备份数据;
第二接收单元,用于接收所述目标存储设备响应所述第四指令返回的所述备份数据;
恢复单元,用于根据所述备份数据恢复出所述原始数据。
结合第七方面,在第一种可能的实现方式,所述查找单元,包括:逻辑地址查找单元、数据查找单元和颗粒查找单元,其中:
所述逻辑地址查找单元,用于根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址;所述目标映射表包括:所述目标存储设备的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
所述数据查找单元,用于根据获取到的所述逻辑地址,查找存储于所述逻辑地址中的所述原始数据;
所述颗粒查找单元,用于根据查找出的所述原始数据,查找用于备份所述原始数据的存储颗粒,查找到的所述存储颗粒为所述第二存储颗粒。
结合第七方面的第一种可能的实现方式,在第二种可能的实现方式,所述存储设备还包括:第二发送单元、第三接收单元和生成单元,其中:
所述第二发送单元,用于在所述逻辑地址查找单元根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址之前,向所述目标存储设备发送第五指令,所述第五指令用于获取所述映射关系;
所述第三接收单元,用于接收所述目标存储设备响应所述第五指令返回的所述映射关系;
所述生成单元,用于根据所述映射关系生成所述目标映射表。
结合第七方面,或者,结合第七方面的第一种或者第二种可能的实现方式,在第三种可能的实现方式,所述第四指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
结合第七方面的第三种可能的实现方式,在第四种可能的实现方式,所述恢复单元,包括:数据恢复单元、确定单元、第三发送单元和地址映射单元,其中:
所述数据恢复单元,用于根据预设数据恢复规则将所述备份数据恢复成所述原始数据;
所述确定单元,用于从所述目标存储设备中选取出用于存储恢复出的所述原始数据的第三存储颗粒;
所述第三发送单元,用于根据选取出的所述第三存储颗粒,向所述目标存储设备发送第六指令,所述第六指令用于触发所述目标存储设备将恢复出的所述原始数据写入所述第三存储颗粒;
所述地址映射单元,用于将所述原始数据的写入逻辑地址映射到所述第三存储颗粒,并标记所述第一存储颗粒失效。
结合第七方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第六指令包括:所述原始数据的逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量。
第八方面,提供了一种存储设备,包括:
第一发送单元,用于向目标操作系统发送故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;
第一接收单元,用于接收所述目标操作系统发送的第四指令;
第二发送单元,用于响应所述第四指令,从第二存储颗粒中读取所述第一存储颗粒上的原始数据对应的备份数据,并将所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据。
结合第八方面,在第一种可能的实现方式中,所述存储设备还包括:第二接收单元和第三发送单元,其中:
所述第二接收单元,用于在所述第一接收单元接收所述目标操作系统发送的第四指令之前,接收所述目标操作系统发送的第五指令;
所述第三发送单元,用于响应所述第五指令,将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表。
结合第八方面,或者,结合第八方面的第一种可能的实现方式,在第的二种可能的实现方式中,所述第四指令包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
结合第八方面的第二种可能的实现方式,在第三种可能的实现方式中,所述存储设备还包括:第三接收单元和写入单元,其中:
所述第三接收单元,用于在所述将存储于所述第二存储颗粒中的所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据之后,接收所述目标操作系统发送的第六指令;
所述写入单元,用于响应所述第六指令,将恢复出的所述原始数据写入第三存储颗粒;所述第三存储颗粒是所述目标操作系统从所述目标存储设备中选取出的用于存储恢复出的所述原始数据的存储颗粒;所述恢复出的所述原始数据是由所述目标操作系统根据预设数据恢复规则恢复出的数据。
结合第八方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第六指令包括:所述原始数据的逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量。
第九方面,提供了一种数据备份系统,包括:上述第五方面内容所述的数据备份设备和上述第六方面内容所述的存储设备,这里不再赘述。
第十方面,提供了一种数据恢复系统,包括:上述第七方面内容所述的数据恢复设备和上述第八方面内容所述的存储设备,这里不再赘述。
实施本发明实施例,通过在向目标存储设备中的第一存储颗粒写入原始数据时,将所述原始数据备份到第二存储颗粒中,可实现当第一存储颗粒发生故障时,直接从第二存储颗粒中获得备份数据,并利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种应用场景的示意图;
图2是本发明实施例提供的一种数据备份方法的流程示意图;
图3是本发明实施例提供的另一种数据备份方法的流程示意图;
图4是本发明实施例提供的另一种数据备份方法的流程示意图;
图5是本发明实施例提供的一种数据恢复方法的流程示意图;
图6是本发明实施例提供的另一种数据恢复方法的流程示意图;
图7是本发明实施例提供的一种数据备份设备的结构示意图;
图8是本发明实施例提供的一种存储设备的结构示意图;
图9是本发明实施例提供的另一种数据备份设备的结构示意图;
图10是本发明实施例提供的一种数据恢复设备的结构示意图;
图11是本发明实施例提供的一种存储设备的结构示意图;
图12是本发明实施例提供的另一种数据恢复设备的结构示意图;
图13是本发明实施例提供的一种数据备份系统的结构示意图;
图14是本发明实施例提供的一种数据恢复系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例中涉及到多个术语。
本发明实施例提供了一种数据恢复方法、数据备份方法及相关设备、系统,通过在向目标存储设备中的第一存储颗粒写入原始数据时,将所述原始数据备份到第二存储颗粒中,可实现当第一存储颗粒发生故障时,直接从第二存储颗粒中获得备份数据,并利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。
需要说明的,本发明实施例涉及的存储颗粒可以是非易失性存储颗粒,例如,Flash 存储颗粒、相变存储颗粒(即Phase Change Memory,PCM存储颗粒)等。
本实施例涉及的目标存储设备可以是集成有多个存储颗粒的存储实体。例如SSD。又例如,存储级内存(Storage Class Memory,SCM)。本实施例涉及的目标存储设备也可以是包括一组存储实体(如图1中的SSD)的存储对象。
为了更好的理解本发明实施例,下面以固态硬盘(SSD)构成的目标存储设备为例来描述本发明实施例的应用场景。
参见图1,图1是本发明实施例公开的应用场景的示意图。在图1所示的应用场景中,SSD构成的目标存储设备和目标操作系统形成了一个存储系统,其中,目标操作系统主要用于通过预设的接口协议,例如NVMe协议,控制SSD进行读取、写入和擦除等操作;SSD上集成有Nand Flash存储颗粒,并通过闪存转换层(Flash Translation Layer, FTL)实现逻辑地址(Logic Block Address,LBA)和物理地址(Physical Block Address, PBA)的映射,以使目标操作系统能够透明的访问SSD上的数据。
实际应用中,图1示出的存储系统可以是本地存储系统。也即是说,目标存储设备上的所有SSD可分布于同一台主机上,目标操作系统运行在该主机上。这种本地存储系统具体可应用在移动终端(如手机)上。
实际应用中,图1示出的存储系统也可以是网络存储系统。也即是说,目标存储设备上的SSD可分布于网络中的不同的主机上,通过网络连接与运行在远端服务器上的目标操作系统通信。
实际应用中,图1示出的存储系统还可以是分布式存储系统。即,目标存储设备上的SSD可以分布在不同的存储网络中。这种分布式存储系统具体可应用于云存储。
在图1所示的存储系统中,现有的数据备份技术是基于SSD(通常集成有多个NandFlash)进行的。具体实现中,目标操作系统可同时写入两个SSD,其中,一个SSD中写入原始数据,另一个SSD(作为备份盘)中写入相应的备份数据。
现有技术中,当SSD上的Flash存储颗粒发生故障时,目标操作系统会认定发生故障的存储颗粒所在的SSD出现故障,并从备份SSD中读取出故障SSD对应的备份数据,利用该备份数据恢复出故障SSD上的原始数据,之后再将恢复出的原始数据写入空白的SSD。
可以理解的,由于SSD的存储容量都很大,有的SSD甚至达到TB级别的容量,因此,现有的数据恢复过程涉及的数据量非常大,数据恢复效率不高。
针对现有技术存在的缺陷,本发明实施例公开了一种数据恢复方法、数据备份方法及相关设备、系统,通过在向目标存储设备中的第一存储颗粒写入原始数据时,将所述原始数据备份到第二存储颗粒中,可实现当第一存储颗粒发生故障时,直接从第二存储颗粒中获得备份数据,并利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。以下分别进行详细说明。
参见图2,图2是本发明实施例提供的一种数据备份方法的流程示意图。在图2所示的数据备份方法中,目标操作系统在向目标存储设备中的第一存储颗粒写入原始数据时,将原始数据备份到第二存储颗粒中,可实现基于存储颗粒的数据备份,为后续描述的数据恢复方法提供支撑。如图2所示,该方法包括:
S201,目标操作系统向目标存储设备发送第一指令,所述第一指令用于触发目标存储设备将原始数据写入目标存储设备中的第一存储颗粒。
S203,相应地,在接收到所述第一指令之后,所述目标存储设备响应所述第一指令,将所述原始数据写入所述第一存储颗粒。
可选的,所述目标存储设备在将所述原始数据成功写入所述第一存储颗粒之后,可执行S205,即:向所述目标操作系统确认所述原始数据写入成功。
S207,在发送所述第一指令之后,目标操作系统从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒。
S209,在选取出所述第二存储颗粒之后,目标操作系统向目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述备份数据写入目标存储设备中的所述第二存储颗粒。
S211,相应地,在接收到所述第二指令之后,目标存储设备响应所述第二指令,将所述备份数据写入所述第二存储颗粒。
可选的,目标存储设备在将所述备份数据成功写入所述第二存储颗粒之后,可执行 S213,即:向目标操作系统确认所述备份数据写入成功。
S215,在将所述原始数据和所述备份数据分别写入所述第一存储颗粒和所述第二存储颗粒之后,目标操作系统将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒。
本发明实施例涉及的所述第一指令可包含:所述原始数据的写入逻辑地址,或,所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。具体的:
如果所述第一指令包含所述原始数据的写入逻辑地址,那么,在接收到所述第一指令之后,目标存储设备可将所述写入逻辑地址映射成相应的物理地址,并将所述原始数据写入所述物理地址所指示的位置,可实现兼容目标存储设备现有的地址映射功能 (如SSD的FTL)。
如果所述第一指令包含所述第一存储颗粒的身份标识,那么,在接收到所述第一指令之后,目标存储设备可将所述原始数据写入所述第一存储颗粒中的写指针所指示的位置,可实现充分利用所述第一存储颗粒的可用空间。
如果所述第一指令包含所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量,那么,在接收到所述第一指令之后,目标存储设备可根据所述身份标识和所述写入偏移量执行写操作,将所述原始数据写入所述第一存储颗粒中的所述写入偏移量所指示的位置。
类似于所述第一指令,本发明实施例涉及的所述第二指令可包括:所述备份数据的写入逻辑地址,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
在本发明实施例的一种实现方式中,目标操作系统可以按照顺序执行的方式先后向目标存储设备中写入所述原始数据和所述备份数据。也就是说,在写入所述原始数据之后,目标操作系统需要根据目标存储设备返回的确认(S205返回的确认)来触发写入所述备份数据到目标存储设备中。直观地来看,顺序执行的实现方式的消息时序与图2 中描述的一致。
在本发明实施例的另一种实现方式中,目标操作系统可以按照并行执行的方式分别向目标存储设备中写入所述原始数据和所述备份数据。
例如,向目标存储设备中写入所述原始数据(S201)可以通过一个线程(或进程)执行。向目标存储设备中写入所述备份数据(S209)可通过另一个线程(或进程)执行,这两个线程(或进程)彼此独立。
可以理解的,在上述并行执行的实现方式中,由于多线程运行的不确定性,目标操作系统可能会在发送所述第二指令之后,才接收到目标存储设备返回的对于所述第一指令的确认。直观地来看,图2中的S205可能出现在图2中的S209之后。
甚至,目标操作系统还可能在其他时间接收到目标存储设备返回的对于所述第一指令的确认。直观地来看,图2中的S205还可能出现在图2中的S211或S213之后。
实际应用中,如果目标存储设备写入所述原始数据失败,目标存储设备可发送通知到所述目标操作系统。相应地,在接收到该通知之后,目标操作系统可重复执行S201,或者执行其他操作,例如选择另一个可用的存储颗粒作为所述第一存储颗粒,这里不作限制。
同样地,实际应用中,如果目标存储设备写入所述备份数据失败,目标存储设备可发送通知到所述目标操作系统。相应地,在接收到该通知之后,目标操作系统可重复执行S209,或者执行其他操作,例如选择另一个可用的存储颗粒作为所述第二存储颗粒,这里不作限制。
本发明实施例中,在将所述备份数据成功写入所述第二存储颗粒之后,目标操作系统除了将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒外,还可进一步详细的记录所述备份数据在所述第二存储颗粒中的写入位置,用以后续可直接从该写入位置处读取出所述备份数据。
如果所述第二指令包含所述备份数据的写入逻辑地址,那么,所述写入位置可以是所述备份数据的写入逻辑地址,该写入逻辑地址与所述第二存储颗粒相对应。
如果所述第二指令包含所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量,那么,所述写入位置可以是由所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量所指示的位置。
如果所述第二指令仅包含所述第二存储颗粒的身份标识,那么,所述写入位置可以是由所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写指针所指示的位置。
需要说明的,所述写入位置还可以通过其他方式表示,这里不作限制。
下面详细介绍本发明实施例中目标操作系统选取所述第二存储颗粒的实现方式:
在本发明实施例的一种实现方式中,目标操作系统可以根据预设磨损均衡原则,从所述目标存储设备上选择出所述第二存储颗粒,以使目标存储设备上的各个可写的存储颗粒的磨损大致均衡。例如,目标操作系统优先选择磨损较少的存储颗粒作为所述第二存储颗粒。
在本发明实施例的另一种实现方式中,目标操作系统可以分析所述目标存储设备上各个可写入存储颗粒与所述第一存储颗粒之间的关联性,从所述各个可写入的存储颗粒中选择出关联性满足预设条件的存储颗粒为所述第二存储颗粒。
这里,所述关联性满足预设条件可具体是:所述关联性小于预设关联度。
优选的,目标操作系统可以选择与所述第一存储颗粒之间的关联性最小的存储颗粒作为所述第二存储颗粒,用以弱化所述第一存储颗粒和所述第二存储颗粒的关联性,增强数据备份的容灾能力。
举例来说,在本地存储系统中,目标操作系统可优选与所述第一存储颗粒不在同一个存储实体(如SSD)上的存储颗粒作为所述第二存储颗粒,可有效避免该存储实体故障而导致的不可恢复的数据丢失。
举例来说,在网络存储系统中,目标操作系统可优选与所述第一存储颗粒不在同一个存储服务器上的存储颗粒作为所述第二存储颗粒,可有效避免该存储服务器故障而导致的不可恢复的数据丢失。
举例来说,在分布式存储系统中,目标操作系统可优选与所述第一存储颗粒不处于同一个存储网络中的存储颗粒作为所述第二存储颗粒,可有效避免该存储网络故障而导致的不可恢复的数据丢失。
实际应用中,目标操作系统还可以结合上述两种实现方式来选取所述第二存储颗粒,可以既实现磨损均衡,又能增强数据备份的容灾能力。
需要说明的,目标操作系统还可以参考其他因素来选取所述第二存储颗粒,这里不作限制。例如,优选空白的存储颗粒作为所述第二存储颗粒。
实施本发明实施例,通过在向目标存储设备上的第一存储颗粒中写入原始数据的同时,选取目标存储设备上的第二存储颗粒来备份所述原始数据,相较于现有技术中提供的基于大容量存储实体(集成多个存储颗粒)的数据备份,可实现更细化的数据备份管理,为后续图5至图6描述的数据恢复方法提供了支撑。
参见图3,图3是本发明实施例提供的另一种数据备份方法的流程示意图。在图3所示的数据备份方法中,所述第一指令包含所述原始数据的写入逻辑地址,所述第二指令包含所述备份数据的写入逻辑地址;目标存储设备用于将所述第一指令和所述第二指令中的逻辑地址映射成物理地址,并执行写操作。图3实施例可兼容目标存储设备现有的地址映射功能(例如SSD的FTL)来实现存储颗粒级别的数据备份。图3所示方法是图2所示方法的一种具体实现方式,图3没有提及的内容请参考图2的描述。如图3 所示,该方法包括:
S301,目标操作系统向目标存储设备发送第三指令。所述第三指令用于触发目标存储设备将目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给目标操作系统。
通常,在目标存储设备上的一个存储颗粒可以对应两个(或以上)逻辑地址。
S303,相应地,在接收到所述第三指令之后,目标存储设备向目标操作系统返回所述映射关系。
S305,相应地,在接收到所述映射关系之后,目标操作系统根据所述映射关系生成目标映射表。举例来说,所述目标映射表如表1所示:
表1
需要说明的,表1所示的目标映射表仅仅是本发明实施例的一种实现方式,实际使用中可以不同,不应构成限定。
目标操作系统可从表1获知目标存储设备上包含的存储颗粒(颗粒A、颗粒B和颗粒C),以及各个可写的存储颗粒对应的逻辑地址、各个逻辑地址对应的数据。
因此,目标操作系统可通过所述目标映射表对目标存储设备上的数据实现存储颗粒级别的细化管理。
例如,目标操作系统可以根据表1查找出颗粒A上存储的数据。又例如,目标操作系统可以根据存储数据的逻辑地址查找出该数据所处的存储颗粒。
更重要的,例如,当颗粒A发生故障时,目标操作系统可根据表1查找出需要进行数据恢复的数据(数据1和数据2)。
示例仅仅是本发明实施例的一种实现方式,实际使用中可以不同,不应构成限定。
S307,目标操作系统向目标存储设备发送所述第一指令,所述第一指令包含所述原始数据的写入逻辑地址,用于触发目标存储设备将所述原始数据写入第一存储颗粒。可以理解的,在所述目标映射表中,所述原始数据的写入逻辑地址对应的存储颗粒是所述第一存储颗粒。
S309,相应地,在接收到所述第一指令之后,目标存储设备将所述第一指令中的逻辑地址映射成物理地址,将所述原始数据写到所述物理地址中。
例如,SSD(目标存储设备)可以通过FTL将所述逻辑地址映射成相应的物理地址。可以理解的,所述物理地址是所述第一存储颗粒中的物理地址。
可选的,在将所述原始数据成功写入所述第一存储颗粒之后,目标存储设备向目标操作系统确认写入成功,即S311。
S313,目标操作系统从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒。
具体的,可参见图2实施例中提及的与所述预设备份策略相关的内容,此处不再赘述。
S315,在选取出所述第二存储颗粒作为用于备份所述原始数据的存储颗粒之后,目标操作系统根据所述目标映射表确定出所述第二存储颗粒对应的逻辑地址,并从所述第二存储颗粒对应的逻辑地址中选取出所述备份数据的写入逻辑地址。
可以理解的,由于所述备份数据存储于所述第二存储颗粒中,因此,所述备份数据的写入逻辑地址是所述第二存储颗粒对应的部分或全部逻辑地址。
如表1所示,对于“数据1”来说,“颗粒B”是其对应的备份存储颗粒,即所述第二存储颗粒。“颗粒B”对应的逻辑地址包括:LBA3和LBA4,其中,只有LBA4才是“数据1”的备份数据(“数据1备份”)的逻辑地址。
具体实现中,目标操作系统可以根据所述备份数据的大小和所述第二存储颗粒的占用情况来确定所述备份数据的写入逻辑地址。
通常,目标操作系统可选择容量足够的空白地址来存储所述备份数据。如表1所示,如果“颗粒C”是“数据2”的备份存储颗粒(所述第二存储颗粒),那么,目标操作系统可从“颗粒C“对应的逻辑地址中选择LBA5(空白地址)存储备份数据(数据2备份),即,LBA5可以是所述备份数据的写入逻辑地址。
示例仅仅是本发明实施例的一种实现方式,实际使用中可以不同,不应构成限定。
S317,目标操作系统向目标存储设备发送第二指令,所述第二指令包含所述备份数据的写入逻辑地址,用于将所述备份数据存储到所述第二存储颗粒中。可以理解的,在所述目标映射表中,所述备份数据的写入逻辑地址对应的存储颗粒是所述第二存储颗粒。
具体的,在S317之前,所述第二指令是由目标操作系统根据确定出的所述备份数据的写入逻辑地址生成的。
S319,相应地,在接收到所述第二指令之后,目标存储设备将所述第二指令中的逻辑地址映射成物理地址,将所述备份数据写到所述物理地址中。
例如,SSD(目标存储设备)可以通过FTL将所述逻辑地址映射成相应的物理地址。可以理解的,所述物理地址是所述第二存储颗粒中的物理地址。
可选的,在将所述备份数据成功写入所述第二存储颗粒之后,目标存储设备向目标操作系统确认写入成功,即S321。
进一步的,在S321之后,目标操作系统可保存所述备份数据的写入逻辑地址,用以后续可直接根据该逻辑地址读取出所述备份数据。
需要说明的,预先生成所述目标映射表的过程(即S301至S305)也可以执行在S317之前,S307之后。
实施本发明实施例,目标操作系统通过第一指令向目标存储设备上的第一存储颗粒中写入原始数据,通过第二指令向目标存储设备上的第二存储颗粒中写入备份数据,其中,第一指令包含所述原始数据的写入逻辑地址,第二指令包含所述备份数据的写入逻辑地址,目标存储设备用于将第一指令和第二指令中的逻辑地址转换成物理地址,并执行写操作,可实现兼容目标存储设备现有的地址映射功能,将数据备份细化成存储颗粒级别的备份。
参见图4,图4是本发明实施例提供的另一种数据备份方法的流程示意图。在图4所示的数据备份方法中,所述第一指令包含所述第一存储颗粒的身份标识,所述第二指令包含所述第二存储颗粒的身份标识;目标存储设备用于解析所述第一指令和所述第二指令中包含的存储颗粒的身份标识,并根据解析出的身份标识执行写操作。应当理解的,对于目标存储设备来说,存储颗粒的身份标识可类似于物理地址。目标存储设备能够直接根据存储颗粒的身份标识确定出数据访问(写入或读出)的物理位置即是该存储颗粒的身份标识对应的存储颗粒。图4实施例是图2所示方法的另一种具体实现方式,图4 没有提及的内容请参考图2的描述。如图4所示,该方法包括:
S401,目标操作系统向目标存储设备发送第三指令。所述第三指令用于触发目标存储设备将目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给目标操作系统。
通常,在目标存储设备上的一个存储颗粒可以对应两个(或以上)逻辑地址。
S403,相应地,在接收到所述第三指令之后,目标存储设备向目标操作系统返回所述映射关系。
S405,相应地,在接收到所述映射关系之后,目标操作系统根据所述映射关系生成目标映射表。所述目标映射表可如图3实施例中的表1所示。
S407,目标操作系统从所述目标映射表中查找原始数据的写入逻辑地址对应存储颗粒,查找到的所述存储颗粒为第一存储颗粒。
举例来说,在前述表1所示的目标映射表中,如果所述原始数据的写入逻辑地址是LBA1,那么,所述原始数据的备份存储颗粒(所述第一存储颗粒)是“颗粒A”。示例仅仅是本发明实施例的一种实现方式,实际使用中还可以不同,不应构成限定。
S409,目标操作系统向目标存储设备发送第一指令,所述第一指令包含所述第一存储颗粒的身份标识。具体的,在S409之前,所述第一指令是由目标操作系统根据查找到的所述第一存储颗粒生成的。
S411,相应地,在接收到所述第一指令之后,目标存储设备解析出所述第一指令中的所述第一存储颗粒的身份标识,根据所述身份标识将所述原始数据写入所述第一存储颗粒。
优选的,在执行具体的写操作时,目标存储设备可将所述原始数据写入所述第一存储颗粒中的写指针所指示的位置,可实现充分利用所述第一存储颗粒的可用空间。
可选的,在将所述原始数据成功写入所述第一存储颗粒之后,目标存储设备向目标操作系统确认写入成功,即S413。
S415,目标操作系统从目标存储设备中选取出用于备份所述原始数据的第二存储颗粒。
具体的,可参见图2实施例中提及的与所述预设备份策略相关的内容,此处不再赘述。
S417,根据选取出的所述第二存储颗粒,目标操作系统向目标存储设备发送第二指令,所述第二指令包含所述第二存储颗粒的身份标识。
S419,相应地,在接收到所述第二指令之后,目标存储设备解析出所述第二指令中的所述第二存储颗粒的身份标识,根据所述身份标识将所述备份数据写入所述第二存储颗粒。
优选的,在执行具体的写操作时,目标存储设备可将所述备份数据写入所述第二存储颗粒中的写指针所指示的位置,可实现充分利用所述第二存储颗粒的可用空间。
可选的,在将所述备份数据成功写入所述第二存储颗粒之后,目标存储设备向目标操作系统确认写入成功,即S421。
本发明实施例中,所述第一指令在包含所述第一存储颗粒的身份标识外,还可包含所述第一存储颗粒内的写入偏移量。所述第一指令中包含的所述写入偏移量用于指示所述原始数据在所述第一存储颗粒中的写入位置。
类似地,所述第二指令在包含所述第二存储颗粒的身份标识外,还可包含所述第二存储颗粒内的写入偏移量。所述第二指令中包含的所述写入偏移量用于指示所述备份数据在所述第二存储颗粒中的写入位置。
进一步的,在S421之后,目标操作系统可记录所述备份数据在所述第二存储颗粒中的写入位置,用以后续直接从该写入位置处读取所述备份数据。
实施本发明实施例,目标操作系统通过第一指令向目标存储设备上的第一存储颗粒中写入原始数据,通过第二指令向目标存储设备上的第二存储颗粒中写入备份数据,其中,第一指令包含第一存储颗粒的身份标识,第二指令包含第二存储颗粒的身份标识,目标存储设备用于解析第一指令和第二指令中的存储颗粒的身份标识,并执行写操作,可实现目标操作系统直接向目标存储设备指示写入原始数据的存储颗粒和备份原始数据的存储颗粒,将数据备份细化成存储颗粒级别的备份。
参见图5,图5是本发明实施例提供的一种数据恢复方法的流程示意图。在图5所示的数据恢复方法中,当目标存储设备上的第一存储颗粒发生故障时,目标操作系统查找用于备份第一存储颗粒上的原始数据的第二存储颗粒,并读取出第二存储颗粒上的备份数据,执行数据恢复,可提高数据恢复的效率。如图5所示,该方法包括:
S501,当目标存储设备中的第一存储颗粒发生故障时,目标存储设备发送故障信息到目标操作系统,所述故障信息包括所述第一存储颗粒的身份标识。
S503,相应地,在接收到所述故障信息之后,目标操作系统根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒。
本发明实施例涉及的所述第二存储颗粒可以是多个存储颗粒。例如,参见图3实施例中的表1可知,“颗粒A”上的原始数据包括两份数据(“数据1”和“数据2”),该两份数据分别备份在“颗粒B”和“颗粒C”上。也就是说,“颗粒B”和“颗粒C”是用于备份“颗粒A”上的原始数据的存储颗粒。
需要说明的,实际应用中,所述第二存储颗粒也可以是一个存储颗粒,即将所述第一存储颗粒上的原始数据全部备份在所述第二存储颗粒上。
具体的,所述原始数据的备份过程可参考图2至图4分别对应的实施例的内容,这里不再赘述。
S505,根据查找到所述第二存储颗粒,目标操作系统发送第四指令到目标存储设备。所述第四指令用于触发目标存储设备从所述第二存储颗粒中读取所述备份数据。
S507,相应地,在接收到所述第四指令之后,目标存储设备响应所述第四指令,将存储于所述第二存储颗粒中的所述备份数据发送给所述目标操作系统。
S509,相应地,在接收到所述备份数据之后,目标操作系统根据所述备份数据恢复出所述原始数据。本发明实施例涉及的所述备份数据是所述原始数据对应的冗余数据,其中包含了用于校验的校验数据,例如CRC校验数据。具体实现中,目标操作系统可以利用预设的数据恢复机制,将所述备份数据恢复成所述原始数据。
本发明实施例涉及的所述第四指令可包含:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。具体的:
如果所述第四指令包含所述备份数据的写入逻辑地址,那么,在接收到所述第四指令之后,目标存储设备可将所述备份数据的写入逻辑地址映射成相应的物理地址,并从所述物理地址处读取处所述备份数据,可实现兼容目标存储设备现有的地址映射功能 (如SSD的FTL)。
如果所述第四指令包含所述第二存储颗粒的身份标识,那么,在接收到所述第四指令之后,目标存储设备可解析出所述身份标识,并从所述第二存储颗粒中读取处所述备份数据。
具体实现中,目标存储设备可获取所述备份数据在所述第二存储颗粒中的写入位置,用以从所述写入位置处读取所述备份数据。所述写入位置的保存过程可参见图2实施例中的内容,这里不赘述。
如果所述第四指令包含所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量,那么,在接收到所述第四指令之后,目标存储设备可解析出所述身份标识和所述读取偏移量,并从所述第二存储颗粒中的所述读取偏移量所指示的位置处读取所述备份数据。
本发明实施例中,在实施上述S503时,目标操作系统可以具体的根据下述步骤查找到所述第二存储颗粒:
S5031,目标操作系统根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址;所述目标映射表包括:所述目标存储设备的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
S5033,目标操作系统根据获取到的所述逻辑地址,查找出存储于所述逻辑地址中的所述原始数据;
S5035,目标操作系统根据查找出的所述原始数据,查找用于备份所述原始数据的存储颗粒,查找到的所述存储颗粒为所述第二存储颗粒。
进一步的,在上述S5031之前,目标操作系统还可以通过下述过程生成所述目标映射表:目标操作系统向所述目标存储设备发送第五指令,所述第五指令用于获取所述映射关系,之后接收所述目标存储设备响应所述第五指令返回的所述映射关系,并根据所述映射关系生成所述目标映射表。
具体实现中,所述目标映射表的生成过程可参考图3实施例中的S301至S305,或者,图4实施例中的S401至S405,所述第五指令可相当于图3或图4实施例中的所述第三指令,这里不再赘述。
实施本发明实施例,当第一存储颗粒发生故障时,可查找出用于备份所述第一存储颗粒上的原始数据的第二存储颗粒(图2至图4实施例详细描述了所述原始数据备份过程),并直接从第二存储颗粒中获得所述备份数据,利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。
参见图6,图6是本发明实施例提供的另一种数据恢复方法的流程示意图。在图6所示的数据恢复方法中,在所述第一存储颗粒发生故障之后,目标操作系统利用所述备份数据恢复出所述原始数据,将恢复出的所述原始数据重新写入目标存储设备,并将所述原始数据的写入逻辑地址映射到新写入的存储颗粒,可实现修复目标存储设备出现的故障,继续使用其他正常的存储颗粒。图6实施例是对图5实施例的一种改进,图6实施例没有提及的内容请参考图5实施例的描述。如图6所示,该方法包括:
S601,当目标存储设备中的第一存储颗粒发生故障时,目标存储设备发送故障信息到目标操作系统,所述故障信息包括所述第一存储颗粒的身份标识。
S603,相应地,在接收到所述故障信息之后,目标操作系统根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒。
具体的,可参考图5实施例中描述的相关内容,这里不再赘述。
S605,根据查找出的所述第二存储颗粒,目标操作系统发送第四指令到目标存储设备,用于触发目标存储设备从所述第二存储颗粒中读取所述备份数据。
S607,相应地,在接收到所述第四指令之后,目标存储设备将存储于所述第二存储颗粒中的所述备份数据发送给目标操作系统。
S609,相应地,在接收到所述备份数据之后,目标操作系统根据预设数据恢复规则将所述备份数据恢复成所述原始数据。
S611,目标操作系统从所述目标存储设备中选取出用于存储恢复出的所述原始数据的第三存储颗粒。
S613,根据所述第三存储颗粒,目标操作系统向目标存储设备发送第六指令,所述第六指令用于触发目标存储设备将恢复出的所述原始数据写入所述第三存储颗粒。
S615,相应地,在接收到所述第六指令之后,目标存储设备将恢复出的所述原始数据写入所述第三存储颗粒。
可选的,在将恢复出的所述原始数据成功写入所述第三存储颗粒之后,目标存储设备向目标操作系统确认写入成功,即执行S617。
S619,在将恢复出的所述原始数据成功写入所述第三存储颗粒之后,目标操作系统将所述原始数据的写入逻辑地址映射到所述第三存储颗粒,并标记所述第一存储颗粒失效。可以理解的,对于目标操作系统以及运行在目标操作系统上的应用程序来说,在所述第一存储颗粒发生故障后,所述原始数据的写入逻辑地址处仍然存储有完好的所述原始数据,不影响基于所述逻辑地址的读写所述原始数据的操作等。
参考图5实施例可知,所述第四指令可包含所述备份数据的读取位置,即:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量,这里不再赘述。
本发明实施例涉及的所述第六指令可包含:恢复出的所述原始数据的写入逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量。具体的:
如果所述第六指令包含恢复出的所述原始数据的写入逻辑地址,那么,在接收到所述第六指令之后,目标存储设备可将恢复出的所述原始数据的写入逻辑地址映射成相应的物理地址,并将恢复出的所述原始数据写入所述物理地址所指示的位置,可实现兼容目标存储设备现有的地址映射功能(如SSD的FTL)。
在本发明实施例的一种实现方式中,在发送所述第六指令之前,目标操作系统可以将所述原始数据的写入逻辑地址映射到所述第三存储颗粒。那么,所述第六指令中包含的恢复出的所述原始数据的写入逻辑地址即是:所述原始数据的写入逻辑地址。
如果所述第六指令包含所述第三存储颗粒的身份标识,那么,在接收到所述第六指令之后,目标存储设备可将恢复出的所述原始数据写入所述第三存储颗粒中的写指针所指示的位置,可实现充分利用所述第三存储颗粒的可用空间。
如果所述第六指令包含所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量,那么,在接收到所述第六指令之后,目标存储设备可根据所述身份标识和所述写入偏移量执行写操作,将恢复出的所述原始数据写入所述第三存储颗粒中的所述写入偏移量所指示的位置。
可以理解的,所述第二存储颗粒(存储所述备份数据)可以是所述第三存储颗粒(存储恢复出的所述原始数据)的备份存储颗粒。
类似于前述数据备份过程(图2至图4实施例)中描述的所述第二存储颗粒的选取方式,在一种实现方式中,目标操作系统可以根据所述预设磨损均衡原则,从所述目标存储设备上选择出所述第三存储颗粒;在另一种实现方式中,目标操作系统可以分析所述目标存储设备上的各个可写入的存储颗粒与所述第二存储颗粒之间的关联性,优先选择与所述第二存储颗粒关联性小的存储颗粒作为所述第三存储颗粒,用以弱化所述第三存储颗粒和所述第二存储颗粒的关联性,增强数据备份的容灾能力。
实施本发明实施例,在所述第一存储颗粒发生故障之后,目标操作系统利用所述备份数据恢复出所述原始数据,将恢复出的所述原始数据重新写入目标存储设备,并将所述原始数据的写入逻辑地址映射到新写入的存储颗粒,可实现修复目标存储设备出现的故障,继续使用其他正常的存储颗粒。
参见图7,图7是本发明实施例提供的一种数据备份设备的结构示意图。可以理解的,所述目标操作系统可运行在图7所示的数据备份设备70上。如图7所示,数据备份设备70可包括:第一发送单元701、选择单元703、第二发送单元705和记录单元707。其中:
第一发送单元701,用于向目标存储设备发送第一指令,所述第一指令用于触发所述目标存储设备将原始数据写入所述目标存储设备中的第一存储颗粒;
选择单元703,用于从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒;
第二发送单元705,用于向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述备份数据写入所述目标存储设备中的所述第二存储颗粒;
记录单元707,用于将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒。
本发明实施例中,选择单元703可具体用于:从所述目标存储设备中选择出所述第二存储颗粒;和/或,分析所述目标存储设备中的各个可写的存储颗粒与所述第一存储颗粒之间的关联性,从所述各个可写的存储颗粒中选择出关联性满足预设条件的存储颗粒为所述第二存储颗粒。
选择单元703执行的具体操作可参考图2实施例关于所述预设备份策略的内容,这里不赘述。
参考图2实施例的内容可知,所述第一指令可包括:所述原始数据的写入逻辑地址,或,所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
在一种实现方式中,数据备份设备70在包括:第一发送单元701、选择单元703、第二发送单元705和记录单元707外,还可包括:查找单元和第一生成单元,其中:
所述查找单元,用于在所述第一发送单元向目标存储设备发送第一指令之前,根据所述原始数据的写入逻辑地址从目标映射表中查找出所述逻辑地址对应的存储颗粒,查找出的所述存储颗粒为所述第一存储颗粒;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系;
所述第一生成单元,用于根据所述查找单元查找出的所述第一存储颗粒的身份标识生成所述第一指令;所述第一指令包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
在另一种实现方式中,数据备份设备70在包括:第一发送单元701、选择单元703、第二发送单元705和记录单元707外,还可包括:确定单元、选择单元和第二生成单元,其中:
所述确定单元,用于在所述第二发送单元向目标存储设备发送第二指令之前,根据所述目标映射表确定出所述第二存储颗粒对应的逻辑地址;
所述选择单元,用于从所述第二存储颗粒对应的逻辑地址中选取出所述备份数据的写入逻辑地址;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系;
所述第二生成单元,用于根据所述备份数据的写入逻辑地址生成所述第二指令;所述第二指令包括:所述备份数据的写入逻辑地址。
进一步的,数据备份设备70在包括:第一发送单元701、选择单元703、第二发送单元705、记录单元707、上述查找单元或上述确定单元外,还可包括:映射表获取单元,所述映射表获取单元用于生成上述目标映射表,具体过程如下:所述映射表获取单元向目标存储设备发送第三指令,接收所述目标存储设备响应所述第三指令返回的所述映射关系,并根据所述映射关系生成所述目标映射表。所述第三指令用于获取所述目标存储设备上的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系。
参考图2实施例的内容可知,所述第一指令可包含:所述原始数据的写入逻辑地址,或,所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
参考图2实施例的内容可知,所述第二指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
参见图8,图8是本发明实施例提供的一种存储设备的结构示意图。如图8所示,存储设备80可包括:第一接收单元801、写入单元803、第二接收单元805和备份单元807。其中:
第一接收单元801,用于接收目标操作系统发送的第一指令;
写入单元803,用于响应所述第一指令,将所述原始数据写入所述第一存储颗粒;
第二接收单元805,用于接收所述目标操作系统的第二指令;
备份单元807,用于响应所述第二指令,将所述备份数据写入所述第二存储颗粒;所述第二存储颗粒是由所述目标操作系统从目标存储设备中选取出的用于备份所述原始数据的存储颗粒;所述第二存储颗粒被所述目标操作系统记录为用于备份所述原始数据的存储颗粒。
进一步的,存储设备80在包括:第一接收单元801、写入单元803、第二接收单元805和备份单元807外,还可包括:第三接收单元和发送单元,其中:
所述第三接收单元,用于在第一接收单元801接收所述目标操作系统发送的第一指令之前,接收所述目标操作系统发送的第三指令,所述第三指令用于触发所述目标存储设备将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统;
所述发送单元,用于响应所述第三指令,返回所述映射关系给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表;所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系。
参考图2实施例的内容可知,所述第一指令可包含:所述原始数据的写入逻辑地址,或,所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。
参考图2实施例的内容可知,所述第二指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
为了便于实施本发明实施例,本发明提供了另一种数据备份设备。参见图9,数据备份设备90可包括:输入装置903、输出装置904、收发装置905、存储器902和与存储器 902耦合的处理器901(网络设备90中的处理器901的数量可以是一个或多个,图9中以一个处理器为例)。在本发明的一些实施例中,输入装置903、输出装置904、收发装置905、存储器902和处理器901可通过总线或者其它方式连接,其中,图9中以通过总线连接为例。
其中,输入装置903,用于接收外部的输入数据。具体实现中,输入装置101可包括键盘、鼠标、光电输入装置、声音输入装置、触摸式输入装置、扫描仪等。输出装置 904,用于对外输出数据。具体实现中,输出装置904可包括显示器、扬声器、打印机等。收发装置905,用于向其他设备发送数据或者从其他设备接收数据。具体实现中,收发装置905可包括无线收发模块、有线收发模块等收发器件。存储器902用于存储程序代码,具体实现中,存储器902可以采用只读存储器(Read Only Memory,ROM),可用于运行前述图2至图4分别对应的方法实施例中提及的目标操作系统。处理器901,例如CPU,用于调用存储于存储器902中程序代码执行如下步骤:
通过收发装置905向目标存储设备发送第一指令,所述第一指令用于触发目标存储设备将原始数据写入所述目标存储设备中的第一存储颗粒;
从所述目标存储设备中选取出用于备份所述原始数据的第二存储颗粒;
通过收发装置905向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述备份数据写入所述目标存储设备中的所述第二存储颗粒;
将所述第二存储颗粒记录为用于备份所述原始数据的存储颗粒。
具体实现中,处理器901可具体通过如下步骤选取出所述第二存储颗粒:处理器901 根据预设磨损均衡原则,从所述目标存储设备上选择出所述第二存储颗粒;和/或,处理器901分析所述目标存储设备上各个可写的存储颗粒与所述第一存储颗粒之间的关联性,从所述各个可写的存储颗粒中选择出关联性满足预设条件的存储颗粒为所述第二存储颗粒。
处理器901选取所述第二存储颗粒的详细过程可参见图2实施例中的相关内容,这里不再赘述。
在一种实现方式中,所述第一指令可包括:所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量。那么,在处理器 901通过收发装置905向所述目标存储设备发送第一指令之前,处理器901还可以:根据所述原始数据的写入逻辑地址从目标映射表中查找出所述逻辑地址对应的存储颗粒,查找出的所述存储颗粒为所述第一存储颗粒,以使所述第一指令中包括所述第一存储颗粒的身份标识。
在另一种实现方式中,所述第二指令可包括:所述备份数据的写入逻辑地址。那么,在处理器901通过收发装置905向目标存储设备发送第二指令之前,处理器901还可以:根据所述目标映射表确定出所述第二存储颗粒对应的逻辑地址,并从所述第二存储颗粒对应的逻辑地址中选取出所述备份数据的写入逻辑地址的写入逻辑地址,以使所述第二指令中包含所述备份数据的写入逻辑地址。
所述目标映射表包括:所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系。
为了生成上述目标映射表,处理器901可以:通过收发装置905向目标存储设备发送第三指令,并接收所述目标存储设备响应所述第三指令返回的所述映射关系,根据所述映射关系生成所述目标映射表。所述第三指令用于获取所述目标存储设备上的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系。
参考图2实施例的内容可知,所述第一指令可包含:所述原始数据的写入逻辑地址,或,所述第一存储颗粒的身份标识,或,所述第一存储颗粒的身份标识以及所述第一存储颗粒内的写入偏移量;所述第二指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的写入偏移量。
可理解的是,处理器901的执行步骤还可参照图2至图4分别对应的实施例的内容,这里不再赘述。
参见图10,图10是本发明实施例提供的一种数据恢复设备的结构示意图。可以理解的,所述目标操作系统可运行在图10所示的数据恢复设备100上。如图10所示,数据恢复设备100可包括:第一发送单元701、选择单元703、第二发送单元705和记录单元707。其中:
第一接收单元1001,用于接收目标存储设备发送的故障信息;所述故障信息包括发生故障的第一存储颗粒的身份标识;
查找单元1003,用于根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒;
第一发送单元1005,用于根据查找到的所述第二存储颗粒,向所述目标存储设备发送第四指令;所述第四指令用于触发所述目标存储设备从所述第二存储颗粒中读取所述备份数据;
第二接收单元1007,用于接收所述目标存储设备响应所述第四指令返回的所述备份数据;
恢复单元1009,用于根据所述备份数据恢复出所述原始数据。
具体实现中,查找单元1003可进一步包括:逻辑地址查找单元、数据查找单元和颗粒查找单元。其中:
所述逻辑地址查找单元,用于根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址;所述目标映射表包括:所述目标存储设备的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
所述数据查找单元,用于根据获取到的所述逻辑地址,查找存储于所述逻辑地址中的所述原始数据;
所述颗粒查找单元,用于根据查找出的所述原始数据,查找用于备份所述原始数据的存储颗粒,查找到的所述存储颗粒为所述第二存储颗粒。
进一步的,数据恢复设备100在包括:第一发送单元701、选择单元703、第二发送单元705和记录单元707外,还可包括:第二发送单元、第三接收单元和生成单元,其中:
所述第二发送单元,用于在所述逻辑地址查找单元根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址之前,向所述目标存储设备发送第五指令,所述第五指令用于获取所述映射关系;
所述第三接收单元,用于接收所述目标存储设备响应所述第五指令返回的所述映射关系;
所述生成单元,用于根据所述映射关系生成所述目标映射表。
具体实现中,所述恢复单元可进一步包括:数据恢复单元、确定单元、第三发送单元和地址映射单元,其中:
所述数据恢复单元,用于根据预设数据恢复规则将所述备份数据恢复成所述原始数据;
所述确定单元,用于从所述目标存储设备中选取出用于存储恢复出的所述原始数据的第三存储颗粒;
所述第三发送单元,用于根据选取出的所述第三存储颗粒,向所述目标存储设备发送第六指令,所述第六指令用于触发所述目标存储设备将恢复出的所述原始数据写入所述第三存储颗粒;
所述地址映射单元,用于将所述原始数据的写入逻辑地址映射到所述第三存储颗粒,并标记所述第一存储颗粒失效。
参考图5实施例的内容可知,所述第六指令可包括:所述原始数据的写入逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量;所述第四指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
参见图11,图11是本发明实施例提供的一种存储设备的结构示意图。如图11所示,存储设备110可包括:第一发送单元1101、第一接收单元1103和第二发送单元1105。其中:
第一发送单元1101,用于向目标操作系统发送故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;
第一接收单元1103,用于接收所述目标操作系统发送的第四指令,所述第四指令用于指示所述目标存储设备从第二存储颗粒中读取所述第一存储颗粒上的备份数据;
第二发送单元1105,用于响应所述第四指令,将存储于所述第二存储颗粒中的所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据。
进一步的,存储设备110在包括:第一发送单元1101、第一接收单元1103和第二发送单元1105外,还可包括:第二接收单元和第三发送单元,其中:
所述第二接收单元,用于在所述第一接收单元接收所述目标操作系统发送的第四指令之前,接收所述目标操作系统发送的第五指令;
所述第三发送单元,用于响应所述第五指令,将所述目标存储设备上的存储颗粒与所述存储颗粒对应的逻辑地址之间的映射关系返回给所述目标操作系统,以使所述目标操作系统根据所述映射关系生成目标映射表。
更进一步的,存储设备110在包括:第一发送单元1101、第一接收单元1103和第二发送单元1105外,还可包括:第三接收单元和写入单元,其中:
所述第三接收单元,用于在所述将存储于所述第二存储颗粒中的所述备份数据发送给所述目标操作系统,以使所述目标操作系统根据所述备份数据恢复出所述原始数据之后,接收所述目标操作系统发送的第六指令;所述写入单元,用于响应所述第六指令,将恢复出的所述原始数据写入所述第三存储颗粒;所述恢复出的所述原始数据是由所述目标操作系统根据预设数据恢复规则恢复出的数据。
参考图5实施例的内容可知,所述第六指令可包括:所述原始数据的写入逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量;所述第四指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
为了便于实施本发明实施例,本发明提供了另一种数据恢复设备。参见图12,数据恢复设备120可包括:输入装置1203、输出装置1204、收发装置1205、存储器1202和与存储器1202耦合的处理器1201(网络设备120中的处理器1201的数量可以是一个或多个,图12中以一个处理器为例)。在本发明的一些实施例中,输入装置1203、输出装置 1204、收发装置1205、存储器1202和处理器1201可通过总线或者其它方式连接,其中,图12中以通过总线连接为例。
其中,输入装置1203,用于接收外部的输入数据。具体实现中,输入装置101可包括键盘、鼠标、光电输入装置、声音输入装置、触摸式输入装置、扫描仪等。输出装置 1204,用于对外输出数据。具体实现中,输出装置1204可包括显示器、扬声器、打印机等。收发装置1205,用于向其他设备发送数据或者从其他设备接收数据。具体实现中,收发装置1205可包括无线收发模块、有线收发模块等收发器件。存储器1202用于存储程序代码,具体实现中,存储器1202可以采用只读存储器(Read Only Memory,ROM),可用于运行前述图5至图6分别对应的方法实施例中提及的目标操作系统。处理器1201,例如CPU,用于调用存储于存储器1202中程序代码执行如下步骤:
通过收发装置1205接收目标存储设备发送的故障信息;所述故障信息包括目标存储设备中发生故障的第一存储颗粒的身份标识;
根据所述故障信息,查找用于备份所述第一存储颗粒上的原始数据的第二存储颗粒;
根据查找到的所述第二存储颗粒,通过收发装置1205向所述目标存储设备发送第四指令;所述第四指令用于触发所述目标存储设备从所述第二存储颗粒中读取所述备份数据;
通过收发装置1205接收所述目标存储设备响应所述第四指令返回的所述备份数据;
根据所述备份数据恢复出所述原始数据。
具体实现中,处理器1201可以:根据所述故障信息中包含的所述第一存储颗粒的身份标识,从目标映射表中查找所述第一存储颗粒对应的逻辑地址,进而根据获取到的所述逻辑地址,查找出存储于所述逻辑地址中的所述原始数据;最后根据查找出的所述原始数据,查找用于备份所述原始数据的存储颗粒,查找到的所述存储颗粒为所述第二存储颗粒。
所述目标映射表包括:所述目标存储设备的存储颗粒和所述存储颗粒对应的逻辑地址之间的映射关系;
为了生成所述目标映射表,处理器1201可以:向所述目标存储设备发送第五指令,接收所述目标存储设备响应所述第五指令返回的所述映射关系,并根据所述映射关系生成所述目标映射表。
本发明实施例中,处理器1201可具体通过以下步骤来进行数据恢复:首先,处理器1201根据预设数据恢复规则将所述备份数据恢复成所述原始数据;之后,处理器1201 从所述目标存储设备中选取出用于存储恢复出的所述原始数据的第三存储颗粒,并向所述目标存储设备发送第六指令,用于将恢复出的所述原始数据写入所述第三存储颗粒;最后,处理器1201将所述原始数据的写入逻辑地址映射到所述第三存储颗粒,并标记所述第一存储颗粒失效。
参考图5实施例的内容可知,所述第六指令可包括:所述原始数据的写入逻辑地址,或,所述第三存储颗粒的身份标识,或,所述第三存储颗粒的身份标识以及所述第三存储颗粒内的写入偏移量;所述第四指令可包括:所述备份数据的写入逻辑地址,或,所述第二存储颗粒的身份标识,或,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
可理解的是,处理器1201的执行步骤还可参照图5至图6分别对应的实施例的内容,这里不再赘述。
参见图13,图13是本发明实施例提供的数据备份系统的示意图。如图13所示的数据备份系统可包括:数据备份设备131和存储设备133。
本发明实施例中,数据备份设备131可用于运行图2至图4各自对应的方法实施例中提及的所述目标操作系统。存储设备133可以是图2至图4各自对应的方法实施例中提及的目标存储设备。
可以理解的,数据备份设备131可以是图7实施例描述的数据恢复设备70,或图9实施例描述的数据恢复设备90,存储设备133可以是图8实施例描述的存储设备80,这里不再赘述。
具体的,数据备份设备131和存储设备133可参考图1所示方式构成所述数据备份系统130,这里不赘述。
参见图14,图14是本发明实施例提供的数据恢复系统的示意图。如图14所示的数据恢复系统140可包括:数据恢复设备141和存储设备143。
本发明实施例中,数据恢复设备141可用于运行图5至图6各自对应的方法实施例中提及的所述目标操作系统。存储设备143可以是图5至图6各自对应的方法实施例中提及的目标存储设备。
可以理解的,数据备份设备141可以是图10实施例描述的数据恢复设备100,或图12实施例描述的数据恢复设备120,存储设备133可以是图11实施例描述的存储设备 110,这里不再赘述。
具体的,数据恢复设备141和存储设备143可参考图1所示方式构成所述数据恢复系统140,这里不赘述。
综上所述,实施本发明实施例,通过在向目标存储设备中的第一存储颗粒写入原始数据时,将所述原始数据备份到第二存储颗粒中,可实现当第一存储颗粒发生故障时,直接从第二存储颗粒中获得备份数据,并利用所述备份数据恢复出所述原始数据,提高了数据恢复的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (22)
1.一种数据恢复方法,用于对目标存储设备进行故障管理,所述目标存储设备包括多个存储颗粒,其特征在于,包括:
接收所述目标存储设备的故障信息,所述故障信息用于指示目标存储设备中的第一存储颗粒发生故障,所述故障信息中包括所述第一存储颗粒的标识;所述第一存储颗粒中的原始数据被其他存储颗粒中的冗余数据保护,所述其他存储颗粒和所述第一存储颗粒之间的关联性满足预设条件;
响应于所述故障信息,利用所述冗余数据对所述第一存储颗粒中所存储的原始数据进行恢复;
所述其他存储颗粒和所述第一存储颗粒之间的关联性满足预设条件包括如下情形中的一种:
所述第一存储颗粒和所述其他存储颗粒不在同一个存储实体上;
所述第一存储颗粒和所述其他存储颗粒不在同一个存储服务器上;
所述第一存储颗粒和所述其他存储颗粒不处于同一个存储网络中。
2.根据权利要求1所述的方法,其中,在接收所述目标存储设备的故障信息之前,所述方法还包括:
向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述第一存储颗粒中的原始数据写入所述其他存储颗粒。
3.根据权利要求2所述的方法,其中,所述方法还包括:
将所述其他存储颗粒记录为用于备份所述第一存储颗粒中的原始数据的存储颗粒。
4.根据权利要求1至3任一项所述的方法,其中,所述其他存储颗粒为第二存储颗粒;
利用所述冗余数据对所述第一存储颗粒中所存储的原始数据进行恢复之前,还包括:
响应于所述故障信息查找所述第二存储颗粒;
向所述目标存储设备发送第四指令,所述第四指令包括所述冗余数据的写入逻辑地址,或者,所述第二存储颗粒的身份标识,或者,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
5.根据权利要求1所述的方法,其中,所述存储实体为固态硬盘SSD或者存储级内存SCM。
6.根据权利要求1所述的方法,其中:
所述第一存储颗粒的标识和所述第一存储颗粒的逻辑地址对应。
7.根据权利要求1所述的方法,其中:
将恢复出的所述原始数据重新写入所述目标存储设备,并将所述原始数据的写入逻辑地址映射到重新写入恢复出的所述原始数据的存储颗粒。
8.根据权利要求1所述的方法,其中:
所述目标存储设备是固态硬盘SSD或者存储级内存SCM。
9.根据权利要求1所述的方法,还包括:
生成目标映射表,所述目标映射表记录有存储颗粒与存储颗粒对应的逻辑地址的映射关系。
10.根据权利要求9所述的方法,还包括:
从所述目标映射表中查找所述第一存储颗粒对应的逻辑地址。
11.一种数据恢复设备,包括:
第一接收单元,用于接收目标存储设备发送的故障信息,所述故障信息用于指示目标存储设备中的第一存储颗粒发生故障,所述故障信息中包括所述第一存储颗粒的标识;所述第一存储颗粒中的原始数据被其他存储颗粒中的冗余数据保护,所述其他存储颗粒和所述第一存储颗粒之间的关联性满足预设条件;
恢复单元,用于响应于所述故障信息,利用所述冗余数据对所述第一存储颗粒中所存储的原始数据进行恢复;
所述其他存储颗粒和所述第一存储颗粒之间的关联性满足预设条件包括如下情形中的一种:
所述第一存储颗粒和所述其他存储颗粒不在同一个存储实体上;
所述第一存储颗粒和所述其他存储颗粒不在同一个存储服务器上;
所述第一存储颗粒和所述其他存储颗粒不处于同一个存储网络中。
12.根据权利要求11所述的数据恢复设备,其中,所述设备还包括:
第二发送单元,用于在接收所述目标存储设备的故障信息之前,向所述目标存储设备发送第二指令,所述第二指令用于触发所述目标存储设备将所述第一存储颗粒中的原始数据写入所述其他存储颗粒。
13.根据权利要求12所述的数据恢复设备,其中,所述设备还包括:
记录单元,用于将所述其他存储颗粒记录为用于备份所述第一存储颗粒中的原始数据的存储颗粒。
14.根据权利要求11至13任一项所述的数据恢复设备,其中,所述其他存储颗粒为第二存储颗粒;
所述恢复单元,具体用于:
响应于所述故障信息查找所述第二存储颗粒;
向所述目标存储设备发送第四指令,所述第四指令包括所述冗余数据的写入逻辑地址,或者,所述第二存储颗粒的身份标识,或者,所述第二存储颗粒的身份标识以及所述第二存储颗粒内的读取偏移量。
15.根据权利要求11所述的数据恢复设备,其中,所述存储实体为固态硬盘SSD或者存储级内存SCM。
16.根据权利要求11所述的数据恢复设备,其中:
所述第一存储颗粒的标识和所述第一存储颗粒的逻辑地址对应。
17.根据权利要求11所述的数据恢复设备,所述数据恢复设备还包括恢复单元:
所述恢复单元用于将恢复出的所述原始数据重新写入所述目标存储设备,并将所述原始数据的写入逻辑地址映射到重新写入恢复出的所述原始数据的存储颗粒。
18.根据权利要求11所述的数据恢复设备,其中:
所述目标存储设备是固态硬盘SSD或者存储级内存SCM。
19.根据权利要求11所述的数据恢复设备,还包括:
映射表获取单元,用于生成目标映射表,所述目标映射表记录有存储颗粒与存储颗粒对应的逻辑地址的映射关系。
20.根据权利要求19所述的数据恢复设备,还包括:
查找单元,用于从所述目标映射表中查找所述第一存储颗粒对应的逻辑地址。
21.一种数据备份系统,包括目标存储设备以及如权利要求11-20任一项所述的数据恢复设备。
22.一种数据恢复设备,包括:
输入装置,用于接收外部的输入数据;
输出装置,用于对外输出数据;
存储器,用于存储程序代码;
处理器,用于调用存储于存储器中程序代码执行如权利要求1-10任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235800.6A CN109522154B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法及相关设备与系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235800.6A CN109522154B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法及相关设备与系统 |
CN201510571747.7A CN105159800B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法、数据备份方法及相关设备、系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510571747.7A Division CN105159800B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法、数据备份方法及相关设备、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522154A CN109522154A (zh) | 2019-03-26 |
CN109522154B true CN109522154B (zh) | 2023-02-03 |
Family
ID=54800662
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510571747.7A Active CN105159800B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法、数据备份方法及相关设备、系统 |
CN201811235800.6A Active CN109522154B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法及相关设备与系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510571747.7A Active CN105159800B (zh) | 2015-09-10 | 2015-09-10 | 数据恢复方法、数据备份方法及相关设备、系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN105159800B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275376B2 (en) * | 2016-03-02 | 2019-04-30 | Western Digital Technologies, Inc. | Efficient cross device redundancy implementation on high performance direct attached non-volatile storage with data reduction |
CN107544869B (zh) * | 2017-05-27 | 2020-06-09 | 新华三技术有限公司 | 一种数据恢复方法和装置 |
CN109471756B (zh) * | 2018-11-16 | 2022-10-14 | 得一微电子股份有限公司 | 数据恢复方法、装置及计算机可读存储介质 |
CN111984460B (zh) * | 2019-05-21 | 2023-11-24 | 华为云计算技术有限公司 | 元数据的恢复方法及装置 |
CN110275800B (zh) * | 2019-06-20 | 2021-06-08 | 深圳忆联信息系统有限公司 | Ssd数据物理备份方法、装置、计算机设备及存储介质 |
CN111698330B (zh) * | 2020-06-12 | 2022-06-21 | 北京金山云网络技术有限公司 | 存储集群的数据恢复方法、装置及服务器 |
CN111913835A (zh) * | 2020-07-30 | 2020-11-10 | 深圳忆联信息系统有限公司 | 基于交叉映射的数据多备份存储方法、装置、计算机设备及存储介质 |
CN112711238B (zh) * | 2020-12-31 | 2022-06-21 | 柳州柳新汽车冲压件有限公司 | 数据替换方法、装置、设备及存储介质 |
CN115495287B (zh) * | 2022-11-16 | 2024-04-09 | 珠海妙存科技有限公司 | 一种mlc nand的备份数据方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559101A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 一种操作系统数据的备份和还原的方法、存储设备及终端 |
CN103678517A (zh) * | 2013-11-27 | 2014-03-26 | 华为技术有限公司 | 修复硬盘逻辑错误的方法及控制器 |
CN103713969A (zh) * | 2013-12-30 | 2014-04-09 | 华为技术有限公司 | 提高固态硬盘可靠性方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3447432B2 (ja) * | 1995-06-07 | 2003-09-16 | 三菱電機株式会社 | ネットワークデータサーバ装置およびプログラマブルロジックコントローラシステム |
US5930824A (en) * | 1997-02-04 | 1999-07-27 | International Business Machines Corporation | System and method for demand-base data recovery |
JP2007141043A (ja) * | 2005-11-21 | 2007-06-07 | Hitachi Ltd | ストレージシステムにおける障害管理方法 |
CN101276297A (zh) * | 2008-05-14 | 2008-10-01 | 北京星网锐捷网络技术有限公司 | 一种处理器系统、设备及故障处理方法 |
CN101840364A (zh) * | 2010-01-29 | 2010-09-22 | 成都市华为赛门铁克科技有限公司 | 一种恢复数据的方法及存储装置 |
US8521703B2 (en) * | 2010-11-05 | 2013-08-27 | International Business Machines Corporation | Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility |
EP2479911B1 (en) * | 2011-01-21 | 2016-03-30 | Alcatel Lucent | Method of optical data transmission |
US8856611B2 (en) * | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
CN102981931B (zh) * | 2012-12-03 | 2015-04-15 | 中国联合网络通信集团有限公司 | 虚拟机备份方法及装置 |
CN103065096B (zh) * | 2012-12-18 | 2016-06-08 | 华为技术有限公司 | 一种数据保护方法、装置及系统 |
US9086991B2 (en) * | 2013-02-19 | 2015-07-21 | Infinidat Ltd. | Solid state drive cache recovery in a clustered storage system |
US20150378642A1 (en) * | 2013-03-15 | 2015-12-31 | Seagate Technology Llc | File system back-up for multiple storage medium device |
CN103617010B (zh) * | 2013-12-13 | 2016-11-23 | 华为技术有限公司 | 数据存储方法及存储装置 |
-
2015
- 2015-09-10 CN CN201510571747.7A patent/CN105159800B/zh active Active
- 2015-09-10 CN CN201811235800.6A patent/CN109522154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559101A (zh) * | 2013-10-15 | 2014-02-05 | 华为技术有限公司 | 一种操作系统数据的备份和还原的方法、存储设备及终端 |
CN103678517A (zh) * | 2013-11-27 | 2014-03-26 | 华为技术有限公司 | 修复硬盘逻辑错误的方法及控制器 |
CN103713969A (zh) * | 2013-12-30 | 2014-04-09 | 华为技术有限公司 | 提高固态硬盘可靠性方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109522154A (zh) | 2019-03-26 |
CN105159800A (zh) | 2015-12-16 |
CN105159800B (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522154B (zh) | 数据恢复方法及相关设备与系统 | |
JP5649742B2 (ja) | トランザクションログの復元 | |
US20190102262A1 (en) | Automated continuous checkpointing | |
US9396107B2 (en) | Memory system having memory controller with cache memory and NVRAM and method of operating same | |
US10503606B2 (en) | Data backup method, data recovery method and storage controller | |
CN103164342A (zh) | 数据可用性的挂载时协调 | |
EP3336702B1 (en) | Metadata recovery method and device | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
US11995318B2 (en) | Deallocated block determination | |
US11354250B2 (en) | Apparatus for transmitting map information in memory system | |
CN112612634A (zh) | 存储器系统和主机的操作方法以及计算系统 | |
US11029867B2 (en) | Apparatus and method for transmitting map information and read count in memory system | |
US10740189B2 (en) | Distributed storage system | |
US11392310B2 (en) | Memory system and controller | |
KR101608623B1 (ko) | 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법 | |
US12013753B2 (en) | Proactive loss notification and handling in data storage devices | |
US11663139B2 (en) | Apparatus for transmitting map information in memory system | |
US11366611B2 (en) | Apparatus for transmitting map information in a memory system | |
US20230103004A1 (en) | Data protection method for memory and storage device thereof | |
US20220100614A1 (en) | Systems and methods for backing up volatile storage devices | |
US20220100422A1 (en) | Systems and methods for accessing hybrid storage devices | |
US10613973B1 (en) | Garbage collection in solid state drives | |
CN112286869A (zh) | 一种快照创建方法及装置 | |
KR20170002279A (ko) | 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법 | |
WO2018075676A1 (en) | Efficient flash management for multiple controllers |
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 |