一种数据恢复方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34867882 阅读:10 留言:0更新日期:2022-09-08 08:13
本申请提供一种数据恢复方法、装置、电子设备及存储介质,应用于与采用混合存储架构的存储设备对应的虚拟缓存设备;其中,所述混合存储架构包括支持擦除式写入数据的第一存储介质和支持覆盖式写入数据的第二存储介质;所述方法包括:响应于所述存储设备满足IO模式的切换条件,将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;响应于将所述第二存储介质中存储的所述脏索引以及所述脏数据同步至内存中完成,将当前的IO模式由第二存储介质缓存模式切换为内存缓存模式;基于内存中存储的脏索引,将内存中存储的脏数据回写至所述第一存储介质。存储的脏数据回写至所述第一存储介质。存储的脏数据回写至所述第一存储介质。

【技术实现步骤摘要】
一种数据恢复方法、装置、电子设备及存储介质


[0001]本申请涉及存储
,尤其涉及一种数据恢复方法、装置、电子设备及机器可读存储介质。

技术介绍

[0002]随着各行各业产生的数据量越来越大,用户对数据处理的要求也越来越高。为了兼顾高性能和低成本,可以基于采用了混合存储架构的存储设备,为用户提供数据存储、数据访问等数据服务。
[0003]例如,所述混合存储架构可以包括固态硬盘和机械硬盘;其中,所述固态硬盘可以作为缓存盘,所述机械硬盘可以作为后端盘;所述固态硬盘可以用于为所述机械硬盘进行缓存加速。
[0004]在实际应用中,如果缓存盘出现损坏的情况,而缓存盘中存储的脏数据还没有同步至后端盘,就会导致整个混合存储盘的数据不完整;并且,由于从缓存盘向后端盘中同步脏数据并不是按照IO时间的顺序,而是按照数据在后端盘的目标存储地址的顺序,因此需要丢弃掉与该缓存盘捆绑的后端盘中的全部数据。

技术实现思路

[0005]本申请提供一种数据恢复方法,应用于与采用混合存储架构的存储设备对应的虚拟缓存设备;其中,所述混合存储架构包括支持擦除式写入数据的第一存储介质和支持覆盖式写入数据的第二存储介质;所述方法包括:响应于所述存储设备满足IO模式的切换条件,将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;其中,所述脏索引为与其对应的数据未回写至所述第一存储介质的索引;所述脏数据为未回写至所述第一存储介质的数据;响应于将所述第二存储介质中存储的所述脏索引以及所述脏数据同步至内存中完成,将当前的IO模式由第二存储介质缓存模式切换为内存缓存模式;在所述IO模式为内存缓存模式的情况下,基于内存中存储的脏索引,将内存中存储的脏数据回写至所述第一存储介质。
[0006]可选的,在将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中之前,所述方法还包括:检测内存的可用容量是否达到预设容量;如果达到预设容量,则将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;如果未达到预设容量,则将所述第二存储介质中存储的所述脏数据同步至所述第一存储介质中;响应于将所述第二存储介质中存储的所述脏数据同步至所述第一存储介质中完成,将当前的IO模式由第二存储介质缓存模式切换为数据透传模式。
[0007]可选的,在当前的IO模式为第二存储介质缓存模式的情况下,所述IO模式的切换条件包括以下示出的任一条件:将请求写入所述存储设备的数据存储至所述第二存储介质失败;将所述第二存储介质中存储的脏数据回写至所述第一存储介质失败;检测到所述第二存储介质的剩余寿命低于预设阈值。
[0008]可选的,所述第二存储介质中存储了第一索引树;所述第一索引树中包括的索引,用于指示与其对应的数据在所述第二存储介质中的存储地址,以及用于指示与其对应的数据在所述第一存储介质中的存储地址;所述将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中,包括:遍历所述第二存储介质中存储的第一索引树,读取出所述第一索引树包括的脏索引;根据所述脏索引指示的与其对应的数据在所述第二存储介质中的存储地址,读取出所述第二存储介质中存储的与所述脏索引对应的脏数据,并将读取出的所述脏数据写入至内存;根据所述脏数据在内存中的存储地址、以及所述脏索引指示的与其对应的数据在所述第一存储介质中的存储地址,重新生成与所述脏数据对应的脏索引,并将重新生成的所述脏索引插入至内存中存储的第二索引树;其中,所述第二索引树中包括的索引,用于指示与其对应的数据在内存中的存储地址,以及用于指示与其对应的数据在所述第一存储介质中的存储地址。
[0009]可选的,所述基于内存中存储的脏索引,将内存中存储的脏数据回写至所述第一存储介质,包括:遍历内存中存储的所述第二索引树,读取出所述第二索引树包括的脏索引;根据所述第二索引树包括的脏索引指示的与其对应的数据在内存中的存储地址,读取出内存中存储的与所述脏索引对应的脏数据,并将读取出的所述脏数据写入至所述脏索引指示的与其对应的数据在所述第一存储介质中的存储地址;在将所述脏数据写入至所述第一存储介质中后,将内存中存储的所述脏索引更新为干净索引,以完成将内存中存储的所述脏数据回写至所述第一存储介质;其中,所述干净索引为与其对应的数据已回写至所述第一存储介质的索引。
[0010]可选的,所述将所述第二存储介质中存储的所述脏数据同步至所述第一存储介质中,包括:遍历所述第二存储介质中存储的第一索引树,读取出所述第一索引树包括的脏索引;根据所述脏索引指示的与其对应的数据在所述第二存储介质中的存储地址,读取出所述第二存储介质中存储的与所述脏索引对应的脏数据,并将读取出的所述脏数据写入至所述脏索引指示的与其对应的数据在所述第一存储介质中的存储地址。
[0011]可选的,所述第一索引树和/或所述第二索引树,为采用B+树数据结构的索引树。
[0012]本申请还提供一种数据恢复装置,应用于与采用混合存储架构的存储设备对应的虚拟缓存设备;其中,所述混合存储架构包括支持擦除式写入数据的第一存储介质和支持
覆盖式写入数据的第二存储介质;所述装置包括:同步单元,用于响应于所述存储设备满足IO模式的切换条件,将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;其中,所述脏索引为与其对应的数据未回写至所述第一存储介质的索引;所述脏数据为未回写至所述第一存储介质的数据;切换单元,用于响应于将所述第二存储介质中存储的所述脏索引以及所述脏数据同步至内存中完成,将当前的IO模式由第二存储介质缓存模式切换为内存缓存模式;回写单元,用于在所述IO模式为内存缓存模式的情况下,基于内存中存储的脏索引,将内存中存储的脏数据回写至所述第一存储介质。
[0013]本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
[0014]本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
[0015]通过以上实施例,在当前的IO模式为第二存储介质缓存模式的情况下,响应于采用混合存储架构的存储设备满足IO模式的切换条件,可以确定所述第二存储介质无法继续为第一存储介质进行数据缓存;由于在所述第二存储介质出现损坏、写入次数达到最大限制等情况下,仍然可能将所述第二存储介质中存储的数据读取出来,因此可以尝试将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中,并且可以将当前的IO模式切换为内存缓存模式,然后可以基于同步至内存中的脏索引将同步至内存中的脏数据回写至所述第一存储介质。基于此,在混合存储架构中,通过将当前作为缓存盘的第二存储介质中存储的脏数据同步至内存中,并且利用内存代替所述第二存储介质,继续为所述第一存储介质进行数据缓存,不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据恢复方法,其特征在于,应用于与采用混合存储架构的存储设备对应的虚拟缓存设备;其中,所述混合存储架构包括支持擦除式写入数据的第一存储介质和支持覆盖式写入数据的第二存储介质;所述方法包括:响应于所述存储设备满足IO模式的切换条件,将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;其中,所述脏索引为与其对应的数据未回写至所述第一存储介质的索引;所述脏数据为未回写至所述第一存储介质的数据;响应于将所述第二存储介质中存储的所述脏索引以及所述脏数据同步至内存中完成,将当前的IO模式由第二存储介质缓存模式切换为内存缓存模式;在所述IO模式为内存缓存模式的情况下,基于内存中存储的脏索引,将内存中存储的脏数据回写至所述第一存储介质。2.根据权利要求1所述的方法,其特征在于,在将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中之前,所述方法还包括:检测内存的可用容量是否达到预设容量;如果达到预设容量,则将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中;如果未达到预设容量,则将所述第二存储介质中存储的所述脏数据同步至所述第一存储介质中;响应于将所述第二存储介质中存储的所述脏数据同步至所述第一存储介质中完成,将当前的IO模式由第二存储介质缓存模式切换为数据透传模式。3.根据权利要求1所述的方法,其特征在于,在当前的IO模式为第二存储介质缓存模式的情况下,所述IO模式的切换条件包括以下示出的任一条件:将请求写入所述存储设备的数据存储至所述第二存储介质失败;将所述第二存储介质中存储的脏数据回写至所述第一存储介质失败;检测到所述第二存储介质的剩余寿命低于预设阈值。4.根据权利要求2所述的方法,其特征在于,所述第二存储介质中存储了第一索引树;所述第一索引树中包括的索引,用于指示与其对应的数据在所述第二存储介质中的存储地址,以及用于指示与其对应的数据在所述第一存储介质中的存储地址;所述将所述第二存储介质中存储的脏索引、以及与所述脏索引对应的脏数据同步至内存中,包括:遍历所述第二存储介质中存储的第一索引树,读取出所述第一索引树包括的脏索引;根据所述脏索引指示的与其对应的数据在所述第二存储介质中的存储地址,读取出所述第二存储介质中存储的与所述脏索引对应的脏数据,并将读取出的所述脏数据写入至内存;根据所述脏数据在内存中的存储地址、以及所述脏索引指示的与其对应的数据在所述第一存储介质中的存储地址,重新生成与所述脏数据对应的脏索引,并将重新生成的所述脏索引插入至内存中存储的第二索引树;其中,所述第二索引树中包括的索引,用于指示与其对应的数据在内存中的存储地址,以及用于指示与...

【专利技术属性】
技术研发人员:张吉祥程行峰
申请(专利权)人:杭州优云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1