1.一种固态硬盘的数据恢复方法,其特征在于,包括以下步骤:
按照预设时间间隔将固态硬盘中的预设数据通过快照的方式存入闪存的预设位置;
在固态硬盘发生异常掉电之后,重新上电时,重构缓存中的映射表;
对最新的快照信息对应的物理地址与固态硬盘发生异常掉电时对应的物理地址之间的所有物理地址按顺序逐一扫描,进行数据恢复;
其中,所述进行数据恢复包括:
获取当前的物理地址的块号;
根据当前的物理地址的块号以及所述映射表,确定当前的物理地址对应的逻辑地址;
读取所述逻辑地址的页号;
根据所述逻辑地址的页号计算所述逻辑地址的块号;
判断所述逻辑地址的块号对应的逻辑块是否为有效块;
若所述逻辑块为有效块,则保存相应的物理块中的用户数据,更新元数据,寻找下一个物理地址进行数据恢复;
若所述逻辑块不为有效块,则从所述固态硬盘的可用空间中选择可用的物理块进行替换,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述若所述逻辑块不为有效块,则从所述固态硬盘的可用空间中选择可用的物理块进行替换,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复,包括:
若所述逻辑块不为有效块,则判断所述固态硬盘的可用空间中是否有可用的物理块;
若所述固态硬盘的可用空间中有可用的物理块,则选择可用的物理块进行替换,记录无效块的块号,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复;
若所述固态硬盘的可用空间中没有可用的物理块,则从所述固态硬盘的预留空间中选择可用的物理块进行替换,记录无效块的块号,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复。
3.根据权利要求2所述的方法,其特征在于,所述若所述固态硬盘的可用空间中没有可用的物理块,则从所述固态硬盘的预留空间中选择可用的物理块进行替换,记录无效块的块号,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复,包括:
若所述固态硬盘的可用空间中没有可用的物理块,则判断所述固态硬盘的预留空间中是否有可用的物理块;
若所述固态硬盘的预留空间中有可用的物理块,则选择可用的物理块进行替换,记录无效块的块号,并更新相应的元数据的分配,寻找下一个物理地址进行数据恢复;
若所述固态硬盘的预留空间中没有可用的物理块,则对所述固态硬盘进行垃圾回收;
在垃圾回收之后,从所述固态硬盘的预留空间选择可用的物理块进行替换,并更新相应的元数据的分配,记录无效块的块号以及预留空间中用于替换的物理块的块号,寻找下一个物理地址进行数据恢复。
4.根据权利要求1所述的方法,其特征在于,若通过所述逻辑块能够正常读取到相应物理块存储的用户数据,则判断所述逻辑块为有效块;反之,则判断所述逻辑快为无效块。
5.根据权利要求1所述的方法,其特征在于,所述更新相应的元数据的分配包括:
更新逻辑地址的块号;
与相应的物理地址建立对应关系。
6.根据权利要求1所述的方法,其特征在于,所述预设数据包括:映射表、用户数据以及所述固态硬盘的状态信息。
7.根据权利要求6所述的方法,其特征在于,所述固态硬盘的状态信息包括物理块的擦写次数和读次数。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
9.一种固态硬盘,所述固态硬盘存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。