一种数据备份、恢复方法及电子设备
技术领域
本发明涉及计算机及嵌入式领域,特别涉及一种数据备份、恢复方法及电子设备。
背景技术
固态硬盘(Solid State Disk,SSD)是用固态电子存储芯片阵列而制成的硬盘。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
固态硬盘的存储介质分为两种,一种是采用闪存(FLASH)作为存储介质,另外一种是采用DRAM(Dynamic Random Access Memory,动态随机存取存储器)作为存储介质。
基于闪存的固态硬盘采用FLASH芯片作为存储介质,这也是我们通常所说的SSD。它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U盘等样式。这种SSD固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境。
当前FLASH存储设备大量进入市场,作为传统磁盘的替代产品SSD在市场中占有的份额也越来越大。但是由于传统磁盘和SSD的差异性,基于传统磁盘的备份及恢复方法已经不再适合SSD。
但现有技术中尚无较好的专门针对SSD的数据备份方式。
发明内容
本发明实施例提供一种数据备份、恢复方法及电子设备,用于解决现有技术中没有较好的针对SSD的数据备份方式的技术问题,提供了针对SSD的较好的数据备份方式。
本发明的一个方面,提供一种数据备份方法,应用于包括有硬盘的电子设备中,所述方法包括以下步骤:
从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址;
在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
较佳的,从存储有至少一个表征硬盘逻辑地址与硬盘物理地址对应关系的映射表项的第一映射表中确定所述硬盘中至少一个有效硬盘物理地址的步骤包括:
确定所述硬盘中存储的有效数据所分别对应的所述至少一个有效硬盘物理地址;
在所述第一映射表中根据各映射表项确定出所述至少一个有效硬盘物理地址。
较佳的,在确定所述硬盘中存储的有效数据所分别对应的所述至少一个有效硬盘物理地址之前还包括步骤:获得所述操作***发送的用于进行数据备份的第一指令。
较佳的,在为所述至少一个有效硬盘地址设置所述至少一个第一标识信息,得到第二映射表之后还包括步骤:将所述第二映射表作为当前映射表存储到所述操作***的内存中,及,将所述第二映射表作为备份映射表存储到所述硬盘中。
较佳的,在将所述第二映射表作为当前映射表存储到所述操作***的内存中,及,将所述第二映射表作为备份映射表存储到所述硬盘中之后还包括步骤:
当需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作时,根据所述当前映射表判断所述第一硬盘物理地址是否带有第一标识信息;
如果所述第一硬盘物理地址带有所述第一标识信息,将所述第一硬盘位置中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,并记录修改信息,所述第一硬盘物理地址与所述第二硬盘物理地址不同。
较佳的,记录修改信息的步骤包括:在所述备份映射表中记录所述修改信息。
较佳的,确定需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作的步骤包括:
获得所述操作***发送的用于对所述硬盘中第一硬盘逻辑地址进行操作的第二指令;
通过查询所述当前映射表,确定所述第一硬盘逻辑地址与所述第一硬盘物理地址属于同一映射表项;
确定需要对所述第一硬盘物理地址指向的所述第一硬盘位置进行所述第一操作。
较佳的,将所述第一硬盘物理地址中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置的步骤包括:
从所述硬盘的保护区中确定所述第二硬盘物理地址;
将所述第一内容复制到所述第二硬盘物理地址指向的所述第二硬盘位置。
较佳的,所述第一操作为将所述第一内容进行垃圾回收的操作,或所述第一操作为向所述第一硬盘位置写入第二内容的操作,或所述第一操作为将所述第一内容进行备份的操作。
较佳的,当所述第一操作为将所述第一内容进行垃圾回收的操作时,在记录修改信息之后还包括步骤:将所述当前映射表中原存储的所述第一硬盘逻辑地址与第一硬盘物理地址之间的映射表项更改为所述第一硬盘逻辑地址与所述第二硬盘物理地址之间的映射表项。
较佳的,当所述第一操作为将所述第一内容进行垃圾回收的操作时,在需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作之前还包括步骤:
判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同;
如果所述当前映射表中有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同,确定需将所述至少一个映射表项写入所述备份映射表中,及释放所述当前映射表中的所述至少一个映射表项。
较佳的,在判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同之前还包括步骤:
获得用于读取所述硬盘中的第四硬盘物理地址所指向的第四硬盘位置中的第三内容的第三指令;
当所述第四硬盘物理地址对应的第一映射表项没有存在于所述当前映射表中,且所述当前映射表中没有空闲空间时,确定需将所述当前映射表中的所述至少一个映射表项进行释放,并将所述备份映射表中的所述第一映射表项加载到所述当前映射表中。
较佳的,当所述第一操作为向所述第一硬盘位置写入第二内容的操作时,在将所述第一地址中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,并记录修改信息之后还包括步骤:从所述硬盘中确定第三硬盘物理地址,将所述第二内容写入所述第三硬盘物理地址所指向的第三硬盘位置,所述第三硬盘物理地址、所述第一硬盘物理地址和所述第二硬盘物理地址两两不相同。
较佳的,从所述硬盘中确定第三硬盘物理地址的步骤包括:
判断所述硬盘中是否有空闲的所述第三硬盘位置可供写入所述第二内容;
当所述硬盘中没有空闲的所述第三硬盘位置可供写入所述第二内容时,确定需对所述硬盘进行所述垃圾回收操作,以在所述硬盘中获得空闲位置。
本发明的第二个方面,提供一种数据恢复方法,应用于具有硬盘的电子设备,所述方法包括以下步骤:
当需要对操作***进行第二操作时,判断是否存在用于进行数据恢复的第二指令;
如果存在所述第二指令,根据所述第二指令,加载硬盘中存储的第二映射表;
根据所述第二映射表对所述操作***进行所述第二操作。
较佳的,在当需要对操作***进行第二操作时,判断是否存在用于进行数据恢复的第二指令之前还包括步骤:
获得用于进行数据恢复的所述第二指令;
根据第二标识信息将所述第二指令进行标记。
较佳的,根据所述第二指令,加载硬盘中存储的第二映射表的步骤包括:
读取所述第二映射表中的至少一条修改记录;
根据所述至少一条修改记录修改所述第二映射表;
加载修改后的所述第二映射表。
较佳的,所述第二操作为启动所述操作***的操作。
本发明的第三个方面,提供一种电子设备,所述电子设备包括有硬盘,所述硬盘包括:
第一确定模块,用于从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址;
第一获取模块,用于在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
较佳的,所述第一确定模块包括第一确定子模块和第二确定子模块;
所述第一确定子模块用于确定所述硬盘中存储的有效数据所分别对应的所述至少一个有效硬盘物理地址;
所述第二确定子模块用于在所述第一映射表中根据各映射表项确定出所述至少一个有效硬盘物理地址。
较佳的,所述硬盘还包括第二获取模块,用于获得所述操作***发送的用于进行数据备份的第一指令。
较佳的,所述硬盘还包括第一处理模块,用于将所述第二映射表作为当前映射表存储到所述操作***的内存中,及,将所述第二映射表作为备份映射表存储到所述硬盘中。
较佳的,所述硬盘还包括第一判断模块和第二处理模块;
所述第一判断模块用于当需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作时,根据所述当前映射表判断所述第一硬盘物理地址是否带有第一标识信息;
所述第二处理模块用于如果所述第一硬盘物理地址带有所述第一标识信息,将所述第一硬盘位置中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,并记录修改信息,所述第一硬盘物理地址与所述第二硬盘物理地址不同。
较佳的,所述第二处理模块具体用于在所述备份映射表中记录所述修改信息。
较佳的,所述硬盘还包括第二确定模块,用于确定需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作;其中,所述第二确定模块包括第一获取子模块、第三确定子模块和第四确定子模块;
所述第一获取子模块用于获得所述操作***发送的用于对所述硬盘中第一硬盘逻辑地址进行操作的第二指令;
所述第三确定子模块用于通过查询所述当前映射表,确定所述第一硬盘逻辑地址与所述第一硬盘物理地址属于同一映射表项;
所述第四确定子模块用于确定需要对所述第一硬盘物理地址指向的所述第一硬盘位置进行所述第一操作。
较佳的,所述第二处理模块包括第五确定子模块和第一处理子模块;
所述第五确定子模块用于从所述硬盘的保护区中确定所述第二硬盘物理地址;
所述第一处理子模块用于将所述第一内容复制到所述第二硬盘物理地址指向的所述第二硬盘位置。
较佳的,所述第一操作为将所述第一内容进行垃圾回收的操作,或所述第一操作为向所述第一硬盘位置写入第二内容的操作,或所述第一操作为将所述第一内容进行备份的操作。
较佳的,当所述第一操作为将所述第一内容进行垃圾回收的操作时,所述硬盘还包括第一更改模块,用于将所述当前映射表中原存储的所述第一硬盘逻辑地址与第一硬盘物理地址之间的映射表项更改为所述第一硬盘逻辑地址与所述第二硬盘物理地址之间的映射表项。
较佳的,当所述第一操作为将所述第一内容进行垃圾回收的操作时,所述电子设备还包括第二判断模块和第三确定模块;
所述第二判断模块用于判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同;
所述第三确定模块用于如果所述当前映射表中有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同,确定需将所述至少一个映射表项写入所述备份映射表中,及释放所述当前映射表中的所述至少一个映射表项。
较佳的,所述硬盘还包括第三获取模块和第四确定模块;
所述第三获取模块用于获得用于读取所述硬盘中的第四硬盘物理地址所指向的第四硬盘位置中的第三内容的第三指令;
所述第四确定模块用于当所述第四硬盘物理地址对应的第一映射表项没有存在于所述当前映射表中,且所述当前映射表中没有空闲空间时,确定需将所述当前映射表中的所述至少一个映射表项进行释放,并将所述备份映射表中的所述第一映射表项加载到所述当前映射表中。
较佳的,当所述第一操作为向所述第一硬盘位置写入第二内容的操作时,所述硬盘还包括第五确定模块,用于从所述硬盘中确定第三硬盘物理地址,将所述第二内容写入所述第三硬盘物理地址所指向的第三硬盘位置,所述第三硬盘物理地址、所述第一硬盘物理地址和所述第二硬盘物理地址两两不相同。
较佳的,所述第五确定模块包括第一判断子模块和第五确定子模块;
所述第一判断子模块用于判断所述硬盘中是否有空闲的所述第三硬盘位置可供写入所述第二内容;
所述第五确定子模块用于当所述硬盘中没有空闲的所述第三硬盘位置可供写入所述第二内容时,确定需对所述硬盘进行所述垃圾回收操作,以在所述硬盘中获得空闲位置。
本发明的第四个方面,提供一种电子设备,所述电子设备具有硬盘,所述硬盘包括:
第三判断模块,用于当需要对操作***进行第二操作时,判断是否存在用于进行数据恢复的第二指令;
加载模块,用于如果存在所述第二指令,根据所述第二指令,加载硬盘中存储的第二映射表;
操作模块,用于根据所述第二映射表对所述操作***进行所述第二操作。
较佳的,所述硬盘还包括第四获取模块和标记模块;
所述第四获取模块用于获得用于进行数据恢复的所述第二指令;
所述标记模块用于根据第二标识信息将所述第二指令进行标记。
较佳的,所述加载模块包括读取子模块、修改子模块和加载子模块;
所述读取子模块用于读取所述第二映射表中的至少一条修改记录;
所述修改子模块用于根据所述至少一条修改记录修改所述第二映射表;
所述加载子模块用于加载修改后的所述第二映射表。
较佳的,所述第二操作为启动所述操作***的操作。
本发明实施例中的数据备份方法,所述方法可以应用于包括有硬盘的电子设备中,所述方法可以包括:从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址;在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
本发明实施例中,在需要进行数据备份时,可以从所述第一映射表中确定出所述硬盘中的所述至少一个有效硬盘物理地址,其中每个有效硬盘物理地址对应于所述硬盘中存储的有效数据,在确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址分别设置所述至少一个第一标识信息,即为每个有效硬盘物理地址都设置一个所述第一标识信息,得到所述第二映射表,这样,在后续的操作中,无论是针对所述硬盘的写操作还是垃圾回收操作,都可以根据所述第二映射表来对所述硬盘中存储的有效数据进行备份。这样,既不会影响数据备份的效果,同时在接到数据备份命令时,只需在所述第一映射表中设置所述第一标识信息即可,无需进行具体的备份工作,显然电子设备不会在一个时刻需要处理较多的任务,对于电子设备来说需要处理的任务较为分散,不会造成电子设备的负担,对用户来说等待时间也较短,处理效率较高。
附图说明
图1为本发明实施例中数据备份方法的主要流程图;
图2为本发明实施例中数据恢复方法的主要流程图;
图3为本发明实施例中一种电子设备的详细结构图;
图4为本发明实施例中另一种电子设备的详细结构图。
具体实施方式
本发明实施例中的数据备份方法,所述方法可以应用于包括有硬盘的电子设备中,所述方法可以包括:从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址;在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
本发明实施例中,在需要进行数据备份时,可以从所述第一映射表中确定出所述硬盘中的所述至少一个有效硬盘物理地址,其中每个有效硬盘物理地址对应于所述硬盘中存储的有效数据,在确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址分别设置所述至少一个第一标识信息,即为每个有效硬盘物理地址都设置一个所述第一标识信息,得到所述第二映射表,这样,在后续的操作中,无论是针对所述硬盘的写操作还是垃圾回收操作,都可以根据所述第二映射表来对所述硬盘中存储的有效数据进行备份。这样,既不会影响数据备份的效果,同时在接到数据备份命令时,只需在所述第一映射表中设置所述第一标识信息即可,无需进行具体的备份工作,显然电子设备不会在一个时刻需要处理较多的任务,对于电子设备来说需要处理的任务较为分散,不会造成电子设备的负担,对用户来说等待时间也较短,处理效率较高。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,所述电子设备可以是PC(个人计算机)、笔记本、PAD(平板电脑)、手机等等不同的电子设备,只要所述电子设备具有硬盘即可。
本发明实施例中,所述硬盘,指的可以是SSD。
公知的,SSD中的最小存储单位是page(页),一般一个block(块)中可以包括有128或256个page。本发明实施例中,将一个page称为一个硬盘位置,将一个page的地址称为硬盘物理地址。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一
请参见图1,本发明实施例提供一种数据备份方法,所述方法可以应用于包括有硬盘的电子设备中,所述方法的主要流程如下:
步骤101:从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址。
本发明实施例中,所述第一映射表可以是存储在操作***的内存中的映射表,其可以用于表征硬盘逻辑地址与硬盘物理地址之间的映射关系。
所述第一映射表中可以存储有至少一个映射表项,每个映射表项可以表示一个硬盘逻辑地址与一个硬盘物理地址之间的映射关系。
例如,操作***可能发出一个指令,指示要对硬盘中的地址A进行操作,那么这个地址A就是硬盘逻辑地址,硬盘接收到指令后要从所述第一映射表中确定出地址A所对应的映射表项A,根据映射表项A可以确定地址A所对应的地址B,硬盘需对地址B进行操作。地址B就称为硬盘物理地址。
具体的,本发明实施例中,要从所述第一映射表中确定所述硬盘中的所述至少一个有效硬盘物理地址,可以是先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
较佳的,本发明实施例中,在确定所述硬盘中存储的有效数据所分别对应的所述至少一个有效硬盘物理地址之前,可以首先接收到所述操作***发出的用于进行数据备份的第一指令。
即,一个较为完整的过程可以是:操作***发出用于进行数据备份的所述第一指令,所述硬盘接收到所述第一指令后,可以先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
步骤102:在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
本发明实施例中,在所述第一映射表中确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址设置所述至少一个第一标识信息,即可以在所述第一映射表中为所述至少一个有效硬盘物理地址中的每个硬盘物理地址都设置一个所述第一标识信息,从而得到所述第二映射表,在后续的操作中都可以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
进一步的,在本发明另一实施例中,在得到所述第二映射表后,可以将所述第二映射表进行存储。
较佳的,可以将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中。本发明实施例中,将存储在所述操作***的内存中的所述第二映射表称为当前映射表,将存储在所述硬盘中的所述第二映射表称为备份映射表。
进一步的,在本发明另一实施例中,在将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中后,当需要对所述硬盘中的第一硬盘物理地址指向的第一硬盘位置进行第一操作时,可以根据所述当前映射表判断所述第一硬盘物理地址是否带有所述第一标识信息。
即,如果需要对所述第一硬盘位置进行操作,可以首先判断在所述当前映射表中,所述第一硬盘物理地址是否设置有所述第一标识信息。
如果判断确定在所述当前映射表中所述第一硬盘物理地址带有所述第一标识信息,则可以将所述第一硬盘位置中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,并可以记录修改信息,所述修改信息也就是所述第一内容的位置发生变化的具体信息。本发明实施例中,所述第一硬盘物理地址与所述第二硬盘物理地址不同,则相应的所述第一硬盘位置与所述第二硬盘位置也自然不同。
较佳的,本发明实施例中,在记录所述修改信息时,具体可以是在所述备份映射表中记录所述修改信息。
具体的,本发明实施例中,确定需要对所述硬盘中的第一硬盘物理地址指向的第一硬盘位置进行第一操作,具体可以是:获得所述操作***发送的用于对所述硬盘中第一硬盘逻辑地址进行操作的第二指令,在获得所述第二指令后,可以查询所述当前映射表,确定所述第一硬盘逻辑地址与所述第一硬盘物理地址属于同一映射表项,即确定所述第一硬盘逻辑地址映射到所述第一硬盘物理地址,之后可以确定需要对所述第一硬盘物理地址指向的所述第一硬盘位置进行所述第一操作。
较佳的,在本发明另一实施例中,将所述第一硬盘物理地址中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,具体可以是:先从所述硬盘的保护区中确定所述第二硬盘物理地址,在确定出所述第二硬盘物理地址后,可以将所述第一内容复制到所述第一硬盘物理地址指向的所述第二硬盘位置。
在该实施例中,可以预先在所述硬盘中确定出至少一个保护区,对于SSD来说,一个保护区也可以是指一个b1ock,可以预先规定,在所述保护区中存储的数据,不参与垃圾回收等操作,可以在一定程度上保证所述保护区中存储的数据不会丢失。这样,将所述第一内容复制到所述保护区后,也就相当于将所述第一内容进行了数据备份。
较佳的,本发明实施例中,所述第一操作可以是将所述第一内容进行垃圾回收的操作,或所述第一操作可以是向所述第一硬盘位置写入第二内容的操作,或所述第一操作可以是将所述第一内容进行备份的操作。其中,如果所述第一操作是将所述第一内容进行备份的操作,则所述第一操作可以是在所述硬盘处于空闲状态(idle)时进行的操作。例如,如果所述操作***未使用所述硬盘的时长超过了预设时长,则所述硬盘可以进入所述空闲状态。以下分别进行说明。
可选的,本发明实施例中,如果所述第一操作为向所述第一硬盘位置写入所述第二内容的操作,那么,可以首先是所述操作***向所述硬盘发出要向第一硬盘逻辑地址指向的位置写入所述第二内容的指令,所述硬盘接收到该指令后,可以在所述当前映射表中确定所述第一硬盘逻辑地址映射到所述第一硬盘物理地址,即确定要向所述第一硬盘物理地址指向的所述第一硬盘位置写入所述第二内容。
所述硬盘可以在所述当前映射表中判断所述第一硬盘物理地址是否带有所述第一标识信息,如果判断确定所述第一硬盘物理地址带有所述第一标识信息,则可以将所述第一硬盘物理地址指向的所述第一硬盘位置中存储的所述第一内容复制到所述硬盘中的所述第二硬盘物理地址指向的所述第二硬盘位置,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述第二硬盘位置可以位于所述保护区中,即可以首先在所述保护区中确定出所述第二硬盘位置,之后将所述第一内容复制到所述第二硬盘位置。
在该实施例中,将所述第一内容复制到所述第二硬盘位置后,可以在所述硬盘中确定出处于空闲状态的第三硬盘物理地址,并可以将所述第二内容写入到所述第三硬盘物理地址指向的第三硬盘位置。其中,所述第三硬盘物理地址、所述第一硬盘物理地址和所述第二硬盘物理地址两两不相同。
可见,在该实施例中,如果在将所述第一内容复制到所述第二硬盘位置后,如果判断确定在所述硬盘中没有处于空闲状态的所述第三硬盘物理位置用于写入所述第二内容,则可以确定要对所述硬盘进行垃圾回收操作,以在所述硬盘中获得空闲位置来写入所述第二内容。
在该实施例中,在根据所述当前映射表判断所述第一硬盘物理地址是否带有所述第一标识信息之后,如果判断确定所述第一硬盘物理地址不带有所述第一标识信息,则可以执行如正常流程中的SSD写盘操作。
可选的,本发明实施例中,如果所述第一操作为将所述第一内容进行备份的操作,则在所述硬盘进入所述空闲状态时,可以遍历所述当前映射表,例如可以分别判断所述当前映射表中的各映射表项中的硬盘物理地址是否带有所述第一标识信息。例如,对于所述当前映射表中的第一映射表项来说,其是表征第一硬盘逻辑地址和第一硬盘物理地址之间的映射关系,则,所述硬盘如果需要对所述第一硬盘物理地址指向的第一硬盘位置进行操作,就可以根据所述当前映射表判断所述第一硬盘物理地址是否带有所述第一标识信息。
如果判断确定所述第一硬盘物理地址带有所述第一标识信息,那么可以将所述第一硬盘物理地址指向的所述第一硬盘位置中存储的所述第一内容复制到所述硬盘中的所述第二硬盘物理地址指向的所述第二硬盘位置,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述第二硬盘位置可以位于所述保护区中,即可以首先在所述保护区中确定出所述第二硬盘位置,之后将所述第一内容复制到所述第二硬盘位置。
较佳的,在该实施例中,在将所述第一内容复制到所述第二硬盘位置后,还可以修改所述当前映射表,例如可以将所述当前映射表中原来记录的所述第一硬盘物理地址与所述第一硬盘逻辑地址之间的映射表项修改为所述第二硬盘物理地址与所述第一硬盘逻辑地址之间的映射表项。因为在进行数据备份操作后,对数据进行了复制,而复制到所述保护区中的数据是在一定程度上能够保证完整性的,因此当需要使用该数据时可以根据修改后的当前映射表直接调用所述保护区中存储的数据,以避免原来存储在所述第一硬盘位置中的数据很有可能会在垃圾回收等操作中被清理。
并且,在该实施例中,在修改所述当前映射表时,修改完毕后,可以去掉原来为所述第一硬盘物理地址设置的所述第一标识信息。因为此时已将所述第一内容移动到了所述保护区中的所述第二硬盘位置,无需再为所述第一硬盘物理地址设置所述第一标识信息。
本发明实施例中,可以看出,一般情况下,都是***进行一些正常操作,例如垃圾回收、写入等操作时,才会相应的根据所述第二映射表及设置的所述第一标识信息来进行数据备份工作,这样,既能够很好的完成数据备份工作,又不会使数据备份工作占用太多的时间,有效的达到了时间的统筹利用。
但在所述硬盘处于空闲状态时,也可以专门进行数据备份工作,这样,可以在所述保护区中专门设置一个较为完整的区域来存储备份的数据,可以使数据在所述硬盘中存储的较为集中,避免因为分散而增加查找的复杂度。
因此,本发明实施例中,当所述硬盘处于所述空闲状态时,所述硬盘遍历映射表的举动也就可以看做是要对所述硬盘进行操作,即可以看做是要对所述硬盘中第一硬盘物理地址指向的第一硬盘位置进行所述第一操作。
在该实施例中,在根据所述当前映射表判断所述第一硬盘物理地址是否带有所述第一标识信息之后,如果判断确定所述第一硬盘物理地址不带有所述第一标识信息,则可以继续判断是否已将所述当前映射表遍历完毕,如果判断确定所述当前映射表还未遍历完毕,则可以继续判断所述当前映射表中的下一个硬盘物理地址是否带有所述第一标识信息,如果判断确定所述当前映射表已遍历完毕,则可以停止遍历,继续保持处于所述空闲状态。
可选的,本发明实施例中,如果所述第一操作为将所述第一内容进行垃圾回收的操作,那么,首先所述硬盘进入垃圾回收(Garbage Collection)流程,之后,所述硬盘选择牺牲块,即需要进行垃圾回收的块,在选择所述牺牲块后,判断所述牺牲块中是否有硬盘位置存储有有效硬盘数据,在本发明实施例中,也就是根据所述当前映射表判断所述牺牲块中对应的各硬盘物理地址是否带有所述第一标识信息,即,对于所述牺牲块中的第一硬盘物理地址来说,所述硬盘可以是根据所述当前映射表判断所述第一硬盘物理地址是否带有所述第一标识信息。
如果所述第一硬盘物理地址带有所述第一标识信息,则可以将所述第一硬盘物理地址指向的所述第一硬盘位置中存储的所述第一内容复制到所述硬盘中的所述第二硬盘物理地址指向的所述第二硬盘位置,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述第二硬盘位置可以位于所述保护区中,即可以首先在所述保护区中确定出所述第二硬盘位置,之后将所述第一内容复制到所述第二硬盘位置。
较佳的,在该实施例中,在将所述第一内容复制到所述第二硬盘位置后,还可以修改所述当前映射表,例如可以将所述当前映射表中原来记录的所述第一硬盘物理地址与第一硬盘逻辑地址之间的映射表项修改为所述第二硬盘物理地址与所述第一硬盘逻辑地址之间的映射表项。因为在进行垃圾回收时,所述第一硬盘位置中存储的所述第一内容很可能会被清理掉,而如果所述操作***还需要查找所述第一内容,所述硬盘可以根据所述当前映射表直接在所述第二硬盘位置中找到所述第一内容,保证所述第一内容不会丢失。
并且,在该实施例中,在修改所述当前映射表时,修改完毕后,可以去掉原来为所述第一硬盘物理地址设置的所述第一标识信息。因为此时已将所述第一内容移动到了所述保护区中的所述第二硬盘位置,无需再为所述第一硬盘物理地址设置所述第一标识信息。
在该实施例中,在判断所述牺牲块中是否有硬盘位置存储有有效硬盘数据之后,如果所述牺牲块中没有硬盘位置存储有所述有效硬盘数据,即在所述当前映射表中,所述牺牲块对应的各硬盘物理地址中均未带有所述第一标识信息,则在处理到所述牺牲块对应的所述第五硬盘物理地址指向的所述第五硬盘位置时,如果所述第五硬盘位置中存储的所述第五内容为有效硬盘数据,则可以将所述第五内容复制到第六硬盘物理地址指向的第六硬盘位置,所述第五硬盘位置为所述硬盘中的空闲位置,同时可以修改所述当前映射表,例如可以将所述当前映射表中原来记录的所述第五硬盘物理地址与第五硬盘逻辑地址之间的映射表项修改为所述第六硬盘物理地址与所述第五硬盘逻辑地址之间的映射表项。
进一步的,如果所述操作***指示需读出所述硬盘中的数据,即需要进行读操作,则可能也会涉及到所述垃圾回收操作。具体描述如下:
当所述第一操作为将所述第一内容进行垃圾回收的操作时,在需要对所述硬盘中所述第一硬盘物理地址指向的所述第一硬盘位置进行所述第一操作之前,可以首先判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中的相应的至少一个映射表项不同。本发明实施例中,不计所述修改记录,所述当前映射表与所述备份映射表应该是相同的。那么,如果所述当前映射表中有的映射表项与所述备份映射表中相应的映射表项不同,则可以说明所述当前映射表被修改过,那么就应该根据修改后的当前映射表来更新所述备份映射表。
如果判断确定所述当前映射表中有所述至少一个映射表项与所述备份映射表中的相应的至少一个映射表项不同,则可以确定需将所述当前映射表中的所述至少一个映射表项写入所述备份映射表中,同时可以释放所述当前映射表中的所述至少一个映射表项。具体为何要释放所述当前映射表中的所述至少一个映射表项,是与读数据的操作相关,后续会进行解释。
在将所述当前映射表中的所述至少一个映射表项写入所述备份映射表之前,首先要判断所述备份映射表中是否有空闲位置来用于存储所述至少一个映射表项,也就是判断所述硬盘中是否有空闲位置来用于存储所述至少一个映射表项,如果判断确定所述硬盘中没有空闲位置来用于存储所述至少一个映射表项,那么就确定启动垃圾回收流程,具体的垃圾回收过程前面已有介绍,此处不再赘述。
在通过垃圾回收获得空闲位置后,可以将所述至少一个映射表项写入所述备份映射表,之后可以释放所述当前映射表中的所述至少一个映射表项。
在该实施例中,在判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同之前,可以首先获得所述操作***发出的用于读取所述硬盘中的第四硬盘物理地址所指向的第四硬盘位置中的第三内容的第三指令,即获得用于从所述硬盘中进行读数据的所述第三指令。
当所述第四硬盘物理地址对应的第一映射表项没有存在于所述当前映射表中,且用于存储所述当前映射表的第一内存区域中没有存储空间时,确定需将所述当前映射表中的所述至少一个映射表项进行释放,并将所述备份映射表中的所述第一映射表项加载到所述当前映射表中。
具体的,在获得所述第三指令后,可以判断所述第四硬盘物理地址对应的所述第一映射表项是否存在于所述当前映射表中,如果判断确定所述第四硬盘物理地址对应的所述第一映射表项没有存在于所述当前映射表中,可以继续判断所述当前映射表中是否有空闲空间能够用于存储所述第一映射表项,如果判断确定所述当前映射表中没有空闲空间能够用于存储所述第一映射表项,则可以确定需要从所述当前映射表中释放所述至少一个映射表项,以能够用释放出的空间来存储所述第一映射表项,并可以确定要将所述备份映射表项中的所述第一映射表项加载到所述当前映射表中。也就是说,如果所述当前映射表中没有所述第一映射表项,则必须要将所述备份映射表中存储的所述第一映射表项加载到所述当前映射表后才可以进行正常的读数据操作,因此,如果此时所述当前映射表中没有空间空间可用于存储所述第一映射表项,那就需要从所述当前映射表中释放出空间来存放所述第一映射表项。
具体的,当需要从所述当前映射表中释放所述至少一个映射表项时,可以先判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同,这也就进入了如上描述过的步骤中。而如果判断确定所述当前映射表中没有所述至少一个映射表项与所述备份映射表中的相应的至少一个映射表项不同,即所述当前映射表中存储的各映射表项均与所述备份映射表中存储的相应映射表项相同,那么可以从所述当前映射表中任选所述至少一个映射表项进行释放,以留出空闲空间来存放所述第一映射表项。
以下给出几个具体的实施例来介绍本发明中的信息处理方法,下面的实施例主要介绍了所述方法的几种可能的应用场景。需要说明的是,本发明中的实施例只用于解释本发明,而不能用于限制本发明。凡是符合本发明思想的实施例均在本发明的保护范围之内。
实施例二
所述电子设备为笔记本,所述笔记本中具有SSD类型的硬盘。
所述笔记本中的操作***发出用于进行数据备份的第一指令,所述硬盘接收到所述第一指令后,可以先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
在所述第一映射表中确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址设置所述至少一个第一标识信息,得到第二映射表,在得到所述第二映射表后,可以将所述第二映射表进行存储。本实施例中,可以将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中。可以将存储在所述操作***的内存中的所述第二映射表称为当前映射表,将存储在所述硬盘中的所述第二映射表称为备份映射表。
所述操作***向所述硬盘发出要向硬盘逻辑地址A指向的位置写入第二内容的指令,所述硬盘接收到该指令后,可以在所述当前映射表中确定所述硬盘逻辑地址A映射到硬盘物理地址A,即确定要向所述硬盘物理地址A指向的硬盘位置A写入所述第二内容。
所述硬盘可以在所述当前映射表中判断所述硬盘物理地址A是否带有所述第一标识信息,如果判断确定所述硬盘物理地址A带有所述第一标识信息,则可以将所述硬盘物理地址A指向的硬盘位置A中存储的所述第一内容复制到所述硬盘中的所述硬盘物理地址B指向的所述B硬盘位置,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述硬盘位置B可以位于所述保护区中,即可以首先在所述保护区中确定出所述硬盘位置B,之后将所述第一内容复制到所述硬盘位置B。且所述硬盘位置B为空闲硬盘位置,即内部没有存储数据。
在该实施例中,将所述第一内容复制到所述硬盘位置B后,可以在所述硬盘中确定出处于空闲状态的硬盘物理地址C,并可以将所述第二内容写入到所述硬盘物理地址C指向的硬盘位置C。其中,所述硬盘物理地址C、所述硬盘物理地址A和所述硬盘物理地址B两两不相同。
可见,在该实施例中,如果在将所述第一内容复制到所述硬盘位置B后,如果判断确定在所述硬盘中没有处于空闲状态的所述硬盘物理位置C用于写入所述第二内容,则可以确定要对所述硬盘进行垃圾回收操作,以在所述硬盘中获得空闲位置来写入所述第二内容。
实施例三
所述电子设备为PC,所述PC中具有SSD类型的硬盘。
所述PC中的操作***发出用于进行数据备份的第一指令,所述硬盘接收到所述第一指令后,可以先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
在所述第一映射表中确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址设置所述至少一个第一标识信息,得到第二映射表,在得到所述第二映射表后,可以将所述第二映射表进行存储。本实施例中,可以将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中。可以将存储在所述操作***的内存中的所述第二映射表称为当前映射表,将存储在所述硬盘中的所述第二映射表称为备份映射表。
在所述硬盘进入所述空闲状态时,可以遍历所述当前映射表,例如可以分别判断所述当前映射表中的各映射表项中的硬盘物理地址是否带有所述第一标识信息。例如,对于所述当前映射表中的第一映射表项来说,其是表征硬盘逻辑地址A和硬盘物理地址A之间的映射关系,则,所述硬盘如果需要对所述硬盘物理地址A指向的硬盘位置A进行操作,就可以根据所述当前映射表判断所述硬盘物理地址A是否带有所述第一标识信息。
如果判断确定所述硬盘物理地址A带有所述第一标识信息,那么可以将所述硬盘物理地址A指向的所述硬盘位置A中存储的所述第一内容复制到所述硬盘中的所述硬盘物理地址B指向的所述硬盘位置B,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述硬盘位置B可以位于所述保护区中,即可以首先在所述保护区中确定出所述硬盘位置B,之后将所述第一内容复制到所述硬盘位置B。
较佳的,在该实施例中,在将所述第一内容复制到所述硬盘位置B后,还可以修改所述当前映射表,例如可以将所述当前映射表中原来记录的所述硬盘物理地址A与所述硬盘逻辑地址A之间的映射表项修改为所述硬盘物理地址B与所述硬盘逻辑地址A之间的映射表项。因为在进行数据备份操作后,对数据进行了复制,而复制到所述保护区中的数据是在一定程度上能够保证完整性的,因此当需要使用该数据时可以根据修改后的当前映射表直接调用所述保护区中存储的数据,以避免原来存储在所述硬盘位置A中的数据很有可能会在垃圾回收等操作中被清理。
并且,在该实施例中,在修改所述当前映射表时,修改完毕后,可以去掉原来为所述硬盘物理地址A设置的所述第一标识信息。因为此时已将所述第一内容移动到了所述保护区中的所述硬盘位置B,无需再为所述硬盘物理地址A设置所述第一标识信息。
本实施例中,可以看出,一般情况下,都是***进行一些正常操作,例如垃圾回收、写入等操作时,才会相应的根据所述第二映射表及设置的所述第一标识信息来进行数据备份工作,这样,既能够很好的完成数据备份工作,又不会使数据备份工作占用太多的时间,有效的达到了时间的统筹利用。
但在所述硬盘处于空闲状态时,也可以专门进行数据备份工作,这样,可以在所述保护区中专门设置一个较为完整的区域来存储备份的数据,可以使数据在所述硬盘中存储的较为集中,避免因为分散而增加查找的复杂度。
因此,本实施例中,当所述硬盘处于所述空闲状态时,所述硬盘遍历映射表的举动也就可以看做是要对所述硬盘进行操作,即可以看做是要对所述硬盘中硬盘物理地址A指向的硬盘位置A进行所述第一操作。
在该实施例中,在根据所述当前映射表判断所述硬盘物理地址A是否带有所述第一标识信息之后,如果判断确定所述硬盘物理地址A不带有所述第一标识信息,则可以继续判断是否已将所述当前映射表遍历完毕,如果判断确定所述当前映射表还未遍历完毕,则可以继续判断所述当前映射表中的下一个硬盘物理地址是否带有所述第一标识信息,如果判断确定所述当前映射表已遍历完毕,则可以停止遍历,继续保持处于所述空闲状态。
实施例四
所述电子设备为PAD,所述PAD中具有SSD类型的硬盘。
所述PAD中的操作***发出用于进行数据备份的第一指令,所述硬盘接收到所述第一指令后,可以先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
在所述第一映射表中确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址设置所述至少一个第一标识信息,得到第二映射表,在得到所述第二映射表后,可以将所述第二映射表进行存储。本实施例中,可以将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中。可以将存储在所述操作***的内存中的所述第二映射表称为当前映射表,将存储在所述硬盘中的所述第二映射表称为备份映射表。
所述硬盘进入垃圾回收(Garbage Collection)流程,之后,所述硬盘选择牺牲块,即需要进行垃圾回收的块,在选择所述牺牲块后,判断所述牺牲块中是否有硬盘位置存储有有效硬盘数据,在本发明实施例中,也就是根据所述当前映射表判断所述牺牲块中对应的各硬盘物理地址是否带有所述第一标识信息,即,当所述硬盘处理到所述牺牲块中的硬盘物理地址A时,所述硬盘可以是根据所述当前映射表判断所述硬盘物理地址A是否带有所述第一标识信息。
如果所述硬盘物理地址A带有所述第一标识信息,则可以将所述硬盘物理地址A指向的所述硬盘位置A中存储的所述第一内容复制到所述硬盘中的所述硬盘物理地址B指向的所述硬盘位置B,并可以在所述备份映射表中记录所述修改信息。
较佳的,在该实施例中,所述硬盘位置B可以位于所述保护区中,即可以首先在所述保护区中确定出所述硬盘位置B,之后将所述第一内容复制到所述硬盘位置B。
较佳的,在该实施例中,在将所述第一内容复制到所述硬盘位置B后,还可以修改所述当前映射表,例如可以将所述当前映射表中原来记录的所述硬盘物理地址A与硬盘逻辑地址A之间的映射表项修改为所述硬盘物理地址B与所述硬盘逻辑地址B之间的映射表项。因为在进行垃圾回收时,所述硬盘位置A中存储的所述第一内容很可能会被清理掉,而如果所述操作***还需要查找所述第一内容,所述硬盘可以根据所述当前映射表直接在所述硬盘位置B中找到所述第一内容,保证所述第一内容不会丢失。
并且,在该实施例中,在修改所述当前映射表时,修改完毕后,可以去掉原来为所述硬盘物理地址A设置的所述第一标识信息。因为此时已将所述第一内容移动到了所述保护区中的所述硬盘位置B,无需再为所述硬盘物理地址B设置所述第一标识信息。
实施例五
所述电子设备为PAD,所述PAD中具有SSD类型的硬盘。
所述PAD中的操作***发出用于进行数据备份的第一指令,所述硬盘接收到所述第一指令后,可以先收集所述硬盘中的有效数据,确定收集的有效数据对应于所述至少一个有效硬盘物理地址,从而可以根据所述第一映射表中的各映射表项确定所述至少一个有效硬盘物理地址。
在所述第一映射表中确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址设置所述至少一个第一标识信息,得到第二映射表,在得到所述第二映射表后,可以将所述第二映射表进行存储。本实施例中,可以将所述第二映射表同时存储在所述操作***的内存中和所述硬盘中。可以将存储在所述操作***的内存中的所述第二映射表称为当前映射表,将存储在所述硬盘中的所述第二映射表称为备份映射表。
获得所述操作***发出的用于读取所述硬盘中的硬盘物理地址D所指向的硬盘位置D中的第三内容的第三指令,即获得用于从所述硬盘中进行读数据的所述第三指令。
具体的,在获得所述第三指令后,可以判断所述硬盘物理D地址对应的所述第一映射表项是否存在于所述当前映射表中,如果判断确定所述硬盘物理地址D对应的所述第一映射表项没有存在于所述当前映射表中,可以继续判断所述当前映射表中是否有空闲空间能够用于存储所述第一映射表项,如果判断确定所述当前映射表中没有空闲空间能够用于存储所述第一映射表项,则可以确定需要从所述当前映射表中释放所述至少一个映射表项,以能够用释放出的空间来存储所述第一映射表项,并可以确定要将所述备份映射表项中的所述第一映射表项加载到所述当前映射表中。也就是说,如果所述当前映射表中没有所述第一映射表项,则必须要将所述备份映射表中存储的所述第一映射表项加载到所述当前映射表后才可以进行正常的读数据操作,因此,如果此时所述当前映射表中没有空间空间可用于存储所述第一映射表项,那就需要从所述当前映射表中释放出空间来存放所述第一映射表项。
具体的,当需要从所述当前映射表中释放所述至少一个映射表项时,可以先判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同,本实施例中,不计所述修改记录,所述当前映射表与所述备份映射表应该是相同的。那么,如果所述当前映射表中有的映射表项与所述备份映射表中相应的映射表项不同,则可以说明所述当前映射表被修改过,那么就应该根据修改后的当前映射表来更新所述备份映射表。
如果判断确定所述当前映射表中有所述至少一个映射表项与所述备份映射表中的相应的至少一个映射表项不同,则可以确定需将所述当前映射表中的所述至少一个映射表项写入所述备份映射表中。
在写入之前,首先要判断所述备份映射表中是否有空闲位置来用于存储所述至少一个映射表项,也就是判断所述硬盘中是否有空闲位置来用于存储所述至少一个映射表项,如果判断确定所述硬盘中没有空闲位置来用于存储所述至少一个映射表项,那么就确定启动如实施例四中的垃圾回收流程。
在通过垃圾回收获得空闲位置后,可以将所述至少一个映射表项写入所述备份映射表,之后可以释放所述当前映射表中的所述至少一个映射表项。
释放所述当前映射表中的所述至少一个映射表项后,可以将所述备份映射表中的所述第一映射表项加载到所述当前映射表中,这样,所述硬盘可以根据所述当前映射表中的所述第一映射表项来读取所述硬盘中的数据。
以下结合附图来介绍本发明实施例中的数据恢复方法。
实施例六
请参见附图2,本发明实施例提供一种数据恢复方法,所述方法可以应用于具有硬盘的电子设备中,其中,所述数据恢复方法与前几个实施例中的所述数据备份方法为相应的方法流程。所述方法的主要流程如下:
步骤201:当需要对操作***进行第二操作时,判断是否存在用于进行数据恢复的第二指令。
本发明实施例中,所述第二指令例如可以是用于启动所述电子设备中的操作***的指令。
即,在需要启动所述操作***时,可以首先判断是否存在所述第二指令。
较佳的,在本发明另一实施例中,所述操作***可以发出进行数据恢复的所述第二指令,所述硬盘在接收到所述第二指令后,可以为所述第二指令设置恢复标记,并将设置了所述第二标记的所述第二指令进行存储。因为一般来说所述操作***会在要关机时发出所述第二指令,此时所述硬盘即将掉电,因此所述硬盘只是将所述第二指令进行标记并存储即可。
在所述操作***下一次启动时,即在需要对所述操作***进行所述第二操作时,可以判断是否存在具有所述恢复标记的所述第二指令。
步骤202:如果存在所述第二指令,根据所述第二指令,加载硬盘中存储的第二映射表。
本发明实施例中,如果存在具有所述恢复标记的所述第二指令,则可以根据所述第二指令加载所述硬盘中存储的所述第二映射表到所述操作***的内存中。
本发明实施例中,根据前几个实施例的描述可知,所述硬盘中存储的所述备份映射表中可能还记录有所述修改信息,那么,根据所述第二指令加载所述第二映射表,具体可以是:先读取所述备份映射表中的至少一条修改记录,例如可以是读取所述备份映射表中的全部修改记录,根据读取的所述至少一条修改记录修改所述备份映射表,例如修改所述备份映射表的工作可以是在所述硬盘中完成。在将所述备份映射表修改完毕后,可以将修改后的所述备份映射表加载到所述操作***的内存中。
步骤203:根据所述第二映射表对所述操作***进行所述第二操作。
在加载所述第二映射表后,可以根据所述第二映射表启动所述操作***,也就完成了数据恢复的工作。
以下结合附图来介绍本发明中的电子设备。
实施例七
请参见图3,本发明实施例提供一种电子设备,所述电子设备可以包括有硬盘,较佳的,所述硬盘可以是SSD硬盘。所述硬盘可以包括第一确定模块301和第一获取模块302。
较佳的,所述硬盘还可以包括第二获取模块303、第一处理模块304、第一判断模块305、第二处理模块306、第二确定模块307、第一更改模块308、第二判断模块309、第三确定模块310、第三获取模块311、第四确定模块312和第五确定模块313。
第一确定模块301可以用于从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址。
本发明实施例中,第一确定模块301可以包括第一确定子模块和第二确定子模块。
所述第一确定子模块可以用于确定所述硬盘中存储的有效数据所分别对应的所述至少一个有效硬盘物理地址。
所述第二确定子模块可以用于在所述第一映射表中根据各映射表项确定出所述至少一个有效硬盘物理地址。
第一获取模块302可以用于在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
第二获取模块303可以用于获得所述操作***发送的用于进行数据备份的第一指令。
第一处理模块304可以用于将所述第二映射表作为当前映射表存储到所述操作***的内存中,及,将所述第二映射表作为备份映射表存储到所述硬盘中。
第一判断模块305可以用于当需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作时,根据所述当前映射表判断所述第一硬盘物理地址是否带有第一标识信息。
第二处理模块306可以用于如果所述第一硬盘物理地址带有所述第一标识信息,将所述第一硬盘位置中存储的第一内容复制到所述硬盘中的第二硬盘物理地址指向的第二硬盘位置,并记录修改信息,所述第一硬盘物理地址与所述第二硬盘物理地址不同。
第二处理模块306具体可以用于在所述备份映射表中记录所述修改信息。
第二处理模块306可以包括第五确定子模块和第一处理子模块。
所述第五确定子模块可以用于从所述硬盘的保护区中确定所述第二硬盘物理地址。
所述第一处理子模块可以用于将所述第一内容复制到所述第二硬盘物理地址指向的所述第二硬盘位置。
第二确定模块307可以用于确定需要对硬盘中第一硬盘物理地址指向的第一硬盘位置进行第一操作。
本发明实施例中,第二确定模块307可以包括第一获取子模块、第三确定子模块和第四确定子模块。
所述第一获取子模块可以用于获得所述操作***发送的用于对所述硬盘中第一硬盘逻辑地址进行操作的第二指令。
所述第三确定子模块可以用于通过查询所述当前映射表,确定所述第一硬盘逻辑地址与所述第一硬盘物理地址属于同一映射表项。
所述第四确定子模块可以用于确定需要对所述第一硬盘物理地址指向的所述第一硬盘位置进行所述第一操作。
本发明实施例中,所述第一操作可以为将所述第一内容进行垃圾回收的操作,或所述第一操作可以为向所述第一硬盘位置写入第二内容的操作,或所述第一操作可以为将所述第一内容进行备份的操作。
本发明实施例中,当所述第一操作为将所述第一内容进行垃圾回收的操作时,第一更改模块308可以用于将所述当前映射表中原存储的所述第一硬盘逻辑地址与第一硬盘物理地址之间的映射表项更改为所述第一硬盘逻辑地址与所述第二硬盘物理地址之间的映射表项。
本发明实施例中,当所述第一操作为将所述第一内容进行垃圾回收的操作时,第二判断模块309可以用于判断所述当前映射表中是否有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同。
第三确定模块310可以用于如果所述当前映射表中有所述至少一个映射表项与所述备份映射表中相应的至少一个映射表项不同,确定需将所述至少一个映射表项写入所述备份映射表中,及释放所述当前映射表中的所述至少一个映射表项。
第三获取模块311可以用于获得用于读取所述硬盘中的第四硬盘物理地址所指向的第四硬盘位置中的第三内容的第三指令。
第四确定模块312可以用于当所述第四硬盘物理地址对应的第一映射表项没有存在于所述当前映射表中,且所述当前映射表中没有空闲空间时,确定需将所述当前映射表中的所述至少一个映射表项进行释放,并将所述备份映射表中的所述第一映射表项加载到所述当前映射表中。
本发明实施例中,当所述第一操作为向所述第一硬盘位置写入第二内容的操作时,第五确定模块313可以用于从所述硬盘中确定第三硬盘物理地址,将所述第二内容写入所述第三硬盘物理地址所指向的第三硬盘位置,所述第三硬盘物理地址、所述第一硬盘物理地址和所述第二硬盘物理地址两两不相同。
第五确定模块313可以包括第一判断子模块和第五确定子模块。
所述第一判断子模块可以用于判断所述硬盘中是否有空闲的所述第三硬盘位置可供写入所述第二内容。
所述第五确定子模块可以用于当所述硬盘中没有空闲的所述第三硬盘位置可供写入所述第二内容时,确定需对所述硬盘进行所述垃圾回收操作,以在所述硬盘中获得空闲位置。
实施例八
请参见图4,本发明实施例提供一种电子设备,所述电子设备可以具有硬盘,所述硬盘可以包括第三判断模块401、加载模块402和操作模块403。较佳的,本发明实施例中的所述电子设备与实施例一——实施例七中的所述电子设备可以是同一电子设备。
较佳的,所述硬盘还可以包括第四获取模块404和标记模块405。
第三判断模块401可以用于当需要对操作***进行第二操作时,判断是否存在用于进行数据恢复的第二指令。
加载模块402可以用于如果存在所述第二指令,根据所述第二指令,加载硬盘中存储的第二映射表。
加载模块402可以包括读取子模块、修改子模块和加载子模块。
所述读取子模块可以用于读取所述第二映射表中的至少一条修改记录。
所述修改子模块可以用于根据所述至少一条修改记录修改所述第二映射表。
所述加载子模块可以用于加载修改后的所述第二映射表。
操作模块403可以用于根据所述第二映射表对所述操作***进行所述第二操作。
第四获取模块404可以用于获得用于进行数据恢复的所述第二指令。
标记模块405可以用于根据第二标识信息将所述第二指令进行标记。
本发明实施例中,所述第二操作可以为启动所述操作***的操作。
本发明实施例中的数据备份方法,所述方法可以应用于包括有硬盘的电子设备中,所述方法可以包括:从存储有硬盘逻辑地址与硬盘物理地址对应关系的第一映射表中确定所述硬盘中的至少一个有效硬盘物理地址;在所述第一映射表中为所述至少一个有效硬盘物理地址设置至少一个第一标识信息,得到第二映射表,以根据所述第二映射表和所述至少一个第一标识信息进行数据备份。
本发明实施例中,在需要进行数据备份时,可以从所述第一映射表中确定出所述硬盘中的所述至少一个有效硬盘物理地址,其中每个有效硬盘物理地址对应于所述硬盘中存储的有效数据,在确定出所述至少一个有效硬盘物理地址后,可以在所述第一映射表中为所述至少一个有效硬盘物理地址分别设置所述至少一个第一标识信息,即为每个有效硬盘物理地址都设置一个所述第一标识信息,得到所述第二映射表,这样,在后续的操作中,无论是针对所述硬盘的写操作还是垃圾回收操作,都可以根据所述第二映射表来对所述硬盘中存储的有效数据进行备份。这样,既不会影响数据备份的效果,同时在接到数据备份命令时,只需在所述第一映射表中设置所述第一标识信息即可,无需进行具体的备份工作,显然电子设备不会在一个时刻需要处理较多的任务,对于电子设备来说需要处理的任务较为分散,不会造成电子设备的负担,对用户来说等待时间也较短,处理效率较高。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。