CN112596949A - 一种高效率的ssd删除数据恢复方法及系统 - Google Patents
一种高效率的ssd删除数据恢复方法及系统 Download PDFInfo
- Publication number
- CN112596949A CN112596949A CN202011540234.7A CN202011540234A CN112596949A CN 112596949 A CN112596949 A CN 112596949A CN 202011540234 A CN202011540234 A CN 202011540234A CN 112596949 A CN112596949 A CN 112596949A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- data block
- oob
- blocks
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明给出了一种高效率的SSD删除数据恢复方法及系统,包括根据OOB数据中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;再将用户数据块区分为有效数据块和脏数据块,根据各数据块的块分配顺序分别判断有效数据块和脏数据块的新旧顺序;从新到旧遍历有效数据块,将有效数据块的物理地址写入重映射表中并与有效数据块上的OOB数据中的逻辑地址对应,从而读取到有效数据块上的删除数据;从新到旧遍历脏数据块,将脏数据块的物理地址与逻辑地址的映射写入重映射表中,从而读取到脏数据块上的删除数据。以上方法不仅能有效准确地重组出SSD的重映射表,还具有极高的数据恢复效率以及数据恢复成功率。
Description
技术领域
本发明涉及计算机取证安全技术领域,尤其是一种高效率的SSD删除数据恢复方法及系统。
背景技术
SSD(Solid State Drives)也称作固态硬盘,是一种具有快速随机读写性能的存储介质。随着计算机运算速度和网络速度的提升,SSD得到推广并逐步取代传统机械硬盘。由于NandFlash进行写数据时候需要先擦出后写入,导致SSD的在写满数据后的随机读写性能大幅降低。为了解决这个问题,SSD厂家引入了TRIM指令,确保了SSD内部没用的数据块保持为未分配状态。从而保证SSD在写满数据以后的随机读写性能。传统机械硬盘中,文件系统删除文件仅是删除掉文件的索引。TRIM指令引入后,支持TRIM指令的文件系统一旦删除文件后,文件的索引以及文件的数据都会从SSD逻辑地址上删除,从而造成SSD数据恢复困难。
针对这个问题,我们在对SSD原理深入研究的基础上,提出了一种高效率的SSD删除数据恢复方法及系统。该方法首先利用SSD映射表等系统参数,将数据块区分为有效数据块、脏数据块、未分配块,再通过flash OOB记载的LBA信息,重新翻译SSD的映射表,最终实现数据恢复。该方法不仅能有效准确地重组出SSD的映射表,还能具备极高恢复效率。提升数据恢复的成功率和效率。
发明内容
本发明提出了一种高效率的SSD删除数据恢复方法及系统,以解决上文提到的现有技术的缺陷。
在一个方面,本发明提出了一种高效率的SSD删除数据恢复方法,该方法包括以下步骤:
S1:获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;
S2:根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;
S3:从新到旧遍历所述有效数据块,根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;
S4:从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。
以上方法利用SSD的重映射表等系统参数,将数据块区分为有效数据块、脏数据块和未分配块,再通过各个页的OOB记载的逻辑地址,重新翻译SSD的重映射表,最终实现数据恢复,该方法不仅能有效准确地重组出SSD的重映射表,还具有极高的数据恢复效率以及数据恢复成功率。
在具体的实施例中,所述步骤S2中将所述用户数据块区分为有效数据块和脏数据块的具体步骤包括:
根据所述块状态数据块上的第一个页的OOB数据中的块分配顺序对所述块状态数据块进行基于排序方法RB的新旧排序;
获取最新的块状态数据块并读取所述最新的块状态数据块的编号上的所有页的OOB数据;
删除所述所有页的OOB数据中不属于块状态数据类型的OOB数据,剩下的OOB数据构成集合CP;
对所述集合CP中的OOB数据,根据页编号、片选号、通道号和Plane号进行基于排序方法RP的新旧排序,从新到旧依次读取所述集合CP中的OOB数据的页编号并读取该页编号的数据,得到最新的块状态数据;
依次根据所述最新的块状态数据,将所有含有有效数据的块记为有效数据块并提取出来组成集合V。
在具体的实施例中,所述步骤S2中所述脏数据块具体包括:所述用户数据块中除去与所述集合V中的块具有相同编号的块。
在具体的实施例中,所述步骤S2中判断所述有效数据块的新旧顺序的具体步骤包括:
对所述集合V中的块进行基于排序方法RB的新旧排序;
从新到旧依次读取所述集合V中的块,记为未处理的有效数据块,清空缓存容器,将所述未处理的有效数据块中所有页的OOB数据放入所述缓存容器,并对所述缓存容器中的块进行基于排序方法RP的新旧排序。
在具体的实施例中,所述步骤S3中根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述有效数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
在具体的实施例中,所述步骤S2中判断所述脏数据块的新旧顺序的具体步骤包括:
对所述脏数据块进行基于排序方法RB的新旧排序;
从新到旧遍历所述脏数据块,清空缓存容器,读取所述脏数据块中所有页的OOB数据放入所述缓存容器,并对所述缓存容器中的数据进行基于排序方法RP的新旧排序。
在具体的实施例中,所述排序方法RB具体为:
OOB数据中块分配顺序越大的数据块越新,OOB数据中块分配顺序越小的数据块越旧。
在具体的实施例中,所述排序方法RP具体为:
先按页编号排序,页编号越大的数据越新,页编号越小的数据越旧;
当数据的页编号相同时,按片选号排序,片选号越大的数据越新,片选号越小的数据越旧;
当数据的页编号和片选号都相同时,按通道号排序,通道号越大的数据越新,通道号越小的数据越旧;
当数据的页编号、片选号、通道号都相同时,按Plane号排序,Plane号越大的数据越新,Plane号越小的数据越旧。
在具体的实施例中,所述步骤S4中根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述脏数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
在具体的实施例中,所述缓存容器包括:容器TmpP。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时实施上述方法。
根据本发明的第三方面,提出一种高效率的SSD删除数据恢复系统,该系统包括:
数据块分类模块:配置用于获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;
数据块新旧排序模块:配置用于根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;
有效数据重映射模块:配置用于从新到旧遍历所述有效数据块,根据所述含有有效数据的块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;
脏数据回填模块:配置用于从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。
本发明根据SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;再将所述用户数据块区分为有效数据块和脏数据块,根据各数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;从新到旧遍历所述有效数据块,将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;从新到旧遍历所述脏数据块,将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。以上方法不仅能有效准确地重组出SSD的重映射表,还具有极高的数据恢复效率以及数据恢复成功率。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是本发明的一个实施例的一种高效率的SSD删除数据恢复方法的流程图;
图3是本发明的一个实施例的一种高效率的SSD删除数据恢复系统的框架图;
图4是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的一种高效率的SSD删除数据恢复方法的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如数据处理类应用、数据可视化类应用、网页浏览器应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上展示的OOB数据提供支持的后台信息处理服务器。后台信息处理服务器可以对获取的逻辑地址和物理地址进行处理,并生成处理结果(例如SSD的重映射表)。
需要说明的是,本申请实施例所提供的方法可以由服务器105执行,也可以由终端设备101、102、103执行,相应的装置一般设置于服务器105中,也可以设置于终端设备101、102、103中。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的一个实施例的一种高效率的SSD删除数据恢复方法,图2示出了根据本发明的实施例的一种高效率的SSD删除数据恢复方法的流程图。如图2所示,该方法包括以下步骤:
S201:获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块。
S202:根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序。
在具体的实施例中,所述步骤S202中将所述用户数据块区分为有效数据块和脏数据块的具体步骤包括:
根据所述块状态数据块上的第一个页的OOB数据中的块分配顺序对所述块状态数据块进行基于排序方法RB的新旧排序;
获取最新的块状态数据块并读取所述最新的块状态数据块的编号上的所有页的OOB数据;
删除所述所有页的OOB数据中不属于块状态数据类型的OOB数据,剩下的OOB数据构成集合CP;
对所述集合CP中的OOB数据,根据页编号、片选号、通道号和Plane号进行基于排序方法RP的新旧排序,从新到旧依次读取所述集合CP中的OOB数据的页编号并读取该页编号的数据,得到最新的块状态数据;
依次根据所述最新的块状态数据,将所有含有有效数据的块记为有效数据块并提取出来组成集合V。
在具体的实施例中,所述步骤S202中所述脏数据块具体包括:所述用户数据块中除去与所述集合V中的块具有相同编号的块。
在具体的实施例中,所述步骤S202中判断所述脏数据块的新旧顺序的具体步骤包括:
对所述脏数据块进行基于排序方法RB的新旧排序;
从新到旧遍历所述脏数据块,清空缓存容器,读取所述脏数据块中所有页的OOB数据放入所述缓存容器,并对所述缓存容器中的数据进行基于排序方法RP的新旧排序。
S203:从新到旧遍历所述有效数据块,根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据。
在具体的实施例中,所述步骤S203中根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述有效数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
S204:从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。
在具体的实施例中,所述步骤S204中根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述脏数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
在具体的实施例中,所述排序方法RB具体为:
OOB数据中块分配顺序越大的数据块越新,OOB数据中块分配顺序越小的数据块越旧。
在具体的实施例中,所述排序方法RP具体为:
先按页编号排序,页编号越大的数据越新,页编号越小的数据越旧;
当数据的页编号相同时,按片选号排序,片选号越大的数据越新,片选号越小的数据越旧;
当数据的页编号和片选号都相同时,按通道号排序,通道号越大的数据越新,通道号越小的数据越旧;
当数据的页编号、片选号、通道号都相同时,按Plane号排序,Plane号越大的数据越新,Plane号越小的数据越旧。
在具体的实施例中,所述缓存容器包括:容器TmpP。
下面以一个具体的实施例的SSD数据恢复流程来说明本申请的方案,本实施例包括SSD数据恢复流程和数据块集合重映射流程。
在本实施例中,排序方法RB为:
将待排序集合按块分配顺序排序,块分配顺序大的排前面,块分配顺序小的排后面。
在本实施例中,排序方法RP为:
先按页编号排序,页编号大排前面,页编号号小排后面;
当页编号相同时,按片选号排序,片选号大排前面,片选号选号小排后面;
当页编号和片选号都相同时,按通道号排序,通道号大排前面,通道号小排后面;
当页编号片、片选号、通道号都相同时,按Plane号排序,Plane号大排前面,Plane号小排后面。
且在本实施例中:
集合B是按照块编号顺序读取各块通道号为0、片选号为0、plane号为0,页号为0的OOB数据集合;
集合C是集合B中数据类型为块状态数据的块编号集合;
集合CP是读取集合C中块分配顺序最大的块上所有的OOB数据集合;
集合U是集合B中数据类型为用户数据的块编号集合;
集合V是最新块状态分配表上记载的有效数据的块编号集合;
集合ZK是脏数据的块编号集合;
集合ZP是有效块内脏数据的OOB集合;
集合D为待映射数据块集合;
ReMapTable为重组后的映射表;
引入容器TmpP用来缓存一个块内所有页的OOB数据。
基于以上内容,下面分别说明SSD数据恢复流程和数据块集合重映射流程。
在本实施例中,SSD数据恢复流程具体如下:
S301:读取通道号为0、片选号为0、plane号为0,页号为0的OOB数据读出,放入集合B中;
S302:从集合B中抽出所有数据类型为块状态数据的块编号放入集合C中,从集合B中抽出所有数据类型为用户数据的块编号放入集合U中;
S303:判断集合C是否为空,若是,则数据恢复失败结束流程,若否,则继续步骤S304;
S304:将集合C按排序方法RB进行排序,取出排在最前面的块编号,读取该块编号上所有页的OOB数据放入集合CP中;
S305:从集合CP中取出一组OOB数据,判断该页的数据类型是否为块状态数据,若否,则继续步骤S306,否则,跳转步骤S307;
S306:从集合CP中删除该组OOB数据;
S307:判断集合CP的所有元素是否都处理过了,若是,则继续步骤S308,若否,则跳转步骤S305;
S308:将集合CP按排序方法RP排序,取出排在最前面的页编号,读取该页编号的数据,记为最新的块状态信息表;
S309:扫描块状态信息表,将含有有效数据的所有块的编号放入集合V中;
S310:将集合V作为待映射集合D,跳转数据块集合重映射流程,实现有效数据块的重映射;
S311:将集合U去除集合V相同块编号的数据放入集合ZK中;
S312:将集合ZK作为待映射集合D,跳转数据块集合重映射流程,实现脏数据块回填;
S313:至此,SSD数据恢复流程完毕。
在本实施例中,数据块集合重映射流程具体如下:
S401:将集合D按排序方法RB进行排序;
S402:从集合D的最前面取出一个未处理的块编号记为VDi,清空容器TmpP,读取VDi块内所有页的OOB数据放入容器TmpP中,对容器TmpP的数据按排序方法RP进行排序;
S403:从容器TmpP中最前面读取一组未处理OOB数据,从该OOB数据内取出各簇号对应的LBA地址,对各簇号进行重新映射处理,具体处理转步骤S404;
S404:从未处理簇号中取出簇号最大簇的LBA,查询ReMapTable是否该LBA号已经有对应PBA,若是,则将该簇号的OOB放入集合ZP,若否,则将该簇号的PBA填入ReMapTable中;
S405:是否所有簇号都处理过,若是,则继续步骤S406,否则跳转步骤S404;
S406:是否容器TmpP中所有的OOB都已经处理过,若是则继续步骤S407,否则跳转步骤S403;
S407:集合D中所有元素是否都处理过,若是,正常数据的映射表重组完成,继续步骤S408,若否,跳转步骤S402;
S408:至此,数据块集合重映射流程完毕。
图3示出了本发明的一个实施例的一种高效率的SSD删除数据恢复系统的框架图。该系统包括数据块分类模块301、数据块新旧排序模块302、有效数据重映射模块303和脏数据回填模块304。
在具体的实施例中,数据块分类模块301被配置用于获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;数据块新旧排序模块302被配置用于根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;有效数据重映射模块303被配置用于从新到旧遍历所述有效数据块,根据所述含有有效数据的块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;脏数据回填模块304被配置用于从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。本系统利用SSD的重映射表等系统参数,将数据块区分为有效数据块、脏数据块和未分配块,再通过各个页的OOB记载的逻辑地址,重新翻译SSD的重映射表,最终实现数据恢复,该方法不仅能有效准确地重组出SSD的重映射表,还具有极高的数据恢复效率以及数据恢复成功率。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备的计算机系统400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,且这些单元的名称在某种情况下并不构成对该单元本身的限定。
本发明的实施例还涉及一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时实施上文中的方法。该计算机程序包含用于执行流程图所示的方法的程序代码。需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。
本发明根据SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;再将所述用户数据块区分为有效数据块和脏数据块,根据各数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;从新到旧遍历所述有效数据块,将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;从新到旧遍历所述脏数据块,将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。以上方法不仅能有效准确地重组出SSD的重映射表,还具有极高的数据恢复效率以及数据恢复成功率。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种高效率的SSD删除数据恢复方法,其特征在于,包括以下步骤:
S1:获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;
S2:根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;
S3:从新到旧遍历所述有效数据块,根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;
S4:从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2中将所述用户数据块区分为有效数据块和脏数据块的具体步骤包括:
根据所述块状态数据块上的第一个页的OOB数据中的块分配顺序对所述块状态数据块进行基于排序方法RB的新旧排序;
获取最新的块状态数据块并读取所述最新的块状态数据块的编号上的所有页的OOB数据;
删除所述所有页的OOB数据中不属于块状态数据类型的OOB数据,剩下的OOB数据构成集合CP;
对所述集合CP中的OOB数据,根据页编号、片选号、通道号和Plane号进行基于排序方法RP的新旧排序,从新到旧依次读取所述集合CP中的OOB数据的页编号并读取该页编号的数据,得到最新的块状态数据;
依次根据所述最新的块状态数据,将所有含有有效数据的块记为有效数据块并提取出来组成集合V。
3.根据权利要求2所述的方法,其特征在于,所述步骤S2中所述脏数据块具体包括:所述用户数据块中除去与所述集合V中的块具有相同编号的块。
4.根据权利要求2所述的方法,其特征在于,所述步骤S2中判断所述有效数据块的新旧顺序的具体步骤包括:
对所述集合V中的块进行基于排序方法RB的新旧排序;
从新到旧依次读取所述集合V中的块,记为未处理的有效数据块,清空缓存容器,将所述未处理的有效数据块中所有页的OOB数据放入所述缓存容器,并对所述缓存容器中的块进行基于排序方法RP的新旧排序。
5.根据权利要求1所述的方法,其特征在于,所述步骤S3中根据所述有效数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述有效数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
6.根据权利要求1所述的方法,其特征在于,所述步骤S2中判断所述脏数据块的新旧顺序的具体步骤包括:
对所述脏数据块进行基于排序方法RB的新旧排序;
从新到旧遍历所述脏数据块,清空缓存容器,读取所述脏数据块中所有页的OOB数据放入所述缓存容器,并对所述缓存容器中的数据进行基于排序方法RP的新旧排序。
7.根据权利要求2、4、6中任一项所述的方法,其特征在于,所述排序方法RB具体为:
OOB数据中块分配顺序越大的数据块越新,OOB数据中块分配顺序越小的数据块越旧。
8.根据权利要求2、4、6中任一项所述的方法,其特征在于,所述排序方法RP具体为:
先按页编号排序,页编号越大的数据越新,页编号越小的数据越旧;
当数据的页编号相同时,按片选号排序,片选号越大的数据越新,片选号越小的数据越旧;
当数据的页编号和片选号都相同时,按通道号排序,通道号越大的数据越新,通道号越小的数据越旧;
当数据的页编号、片选号、通道号都相同时,按Plane号排序,Plane号越大的数据越新,Plane号越小的数据越旧。
9.根据权利要求1所述的方法,其特征在于,所述步骤S4中根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址具体包括:
根据簇号从大到小依次取出所述脏数据块上的OOB数据中所述簇号对应的逻辑地址,在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址。
10.根据权利要求3或6所述的方法,其特征在于,所述缓存容器包括:容器TmpP。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被计算机处理器执行时实施权利要求1至10中任一项所述的方法。
12.一种高效率的SSD删除数据恢复系统,其特征在于,包括:
数据块分类模块:配置用于获取SSD上所有数据块上的主控控制端口第一个DIE上的第一个页的OOB数据,利用所述OOB数据的拓扑结构中的数据类型将SSD上所有数据块分为用户数据块、系统数据块、未分配块和块状态数据块;
数据块新旧排序模块:配置用于根据所述第一个页的OOB数据中的数据类型将所述用户数据块区分为有效数据块和脏数据块,根据所述有效数据块和所述脏数据块的块分配顺序分别判断所述有效数据块和脏数据块的新旧顺序;
有效数据重映射模块:配置用于从新到旧遍历所述有效数据块,根据所述含有有效数据的块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述有效数据块的物理地址写入所述重映射表中并与所述有效数据块上的OOB数据中的逻辑地址对应,从而读取到所述有效数据块上的删除数据;
脏数据回填模块:配置用于从新到旧遍历所述脏数据块,根据所述脏数据块上的OOB数据中的逻辑地址在SSD的重映射表中查询所述逻辑地址是否有对应的物理地址,若否,则将所述脏数据块的物理地址与所述逻辑地址的映射写入所述重映射表中,从而读取到所述脏数据块上的删除数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540234.7A CN112596949B (zh) | 2020-12-23 | 2020-12-23 | 一种高效率的ssd删除数据恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540234.7A CN112596949B (zh) | 2020-12-23 | 2020-12-23 | 一种高效率的ssd删除数据恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112596949A true CN112596949A (zh) | 2021-04-02 |
CN112596949B CN112596949B (zh) | 2022-12-16 |
Family
ID=75200467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011540234.7A Active CN112596949B (zh) | 2020-12-23 | 2020-12-23 | 一种高效率的ssd删除数据恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596949B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377579A (zh) * | 2021-06-23 | 2021-09-10 | 厦门市美亚柏科信息股份有限公司 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
CN114063919A (zh) * | 2021-11-12 | 2022-02-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090292839A1 (en) * | 2008-05-22 | 2009-11-26 | Sang-Jin Oh | Semiconductor memory device, memory system and data recovery methods thereof |
CN102043727A (zh) * | 2009-10-10 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 恢复固态硬盘映射表的方法及其装置 |
WO2014183586A1 (zh) * | 2013-05-13 | 2014-11-20 | 记忆科技(深圳)有限公司 | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 |
CN105653402A (zh) * | 2016-01-12 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种ssd以及用于ssd的数据恢复方法 |
US10078453B1 (en) * | 2017-03-15 | 2018-09-18 | Intel Corporation | Storage system, computer program product, and method for managing a hybrid memory device system |
WO2020082888A1 (zh) * | 2018-10-25 | 2020-04-30 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
-
2020
- 2020-12-23 CN CN202011540234.7A patent/CN112596949B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090292839A1 (en) * | 2008-05-22 | 2009-11-26 | Sang-Jin Oh | Semiconductor memory device, memory system and data recovery methods thereof |
CN102043727A (zh) * | 2009-10-10 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 恢复固态硬盘映射表的方法及其装置 |
WO2014183586A1 (zh) * | 2013-05-13 | 2014-11-20 | 记忆科技(深圳)有限公司 | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 |
CN105653402A (zh) * | 2016-01-12 | 2016-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种ssd以及用于ssd的数据恢复方法 |
US10078453B1 (en) * | 2017-03-15 | 2018-09-18 | Intel Corporation | Storage system, computer program product, and method for managing a hybrid memory device system |
WO2020082888A1 (zh) * | 2018-10-25 | 2020-04-30 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
Non-Patent Citations (3)
Title |
---|
刘刚等: "SSD硬盘的数据恢复方法研究", 《齐鲁工业大学学报》 * |
张辉: "TRIM指令在固态磁盘数据删除与恢复中的作用", 《电脑知识与技术》 * |
王旭鹏等: "闪存芯片数据恢复研究与实现", 《警察技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377579A (zh) * | 2021-06-23 | 2021-09-10 | 厦门市美亚柏科信息股份有限公司 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
CN113377579B (zh) * | 2021-06-23 | 2024-05-07 | 厦门市美亚柏科信息股份有限公司 | 一种基于映射表的固态硬盘数据恢复方法和系统 |
CN114063919A (zh) * | 2021-11-12 | 2022-02-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
CN114063919B (zh) * | 2021-11-12 | 2023-08-18 | 厦门市美亚柏科信息股份有限公司 | 用于ssd的物理块分配顺序获取方法及数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112596949B (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN103927261B (zh) | 用于精简供应存储的高效分配和回收的方法和系统 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN103984641B (zh) | 一种基于精简配置技术的存储空间回收方法及其装置 | |
CN106383666B (zh) | 一种数据存储方法及装置 | |
JP2014071905A (ja) | コンピュータシステム及びコンピュータシステムのデータ管理方法 | |
CN103677674B (zh) | 一种数据处理方法及装置 | |
CN112596949B (zh) | 一种高效率的ssd删除数据恢复方法及系统 | |
CN106682139B (zh) | 一种基于Solr实现HBase多条件查询的方法及系统 | |
CN103324533A (zh) | 分布式数据处理方法、装置及系统 | |
CN104133822A (zh) | 一种对存储器上的文件进行扫描的方法及装置 | |
CN106170757B (zh) | 一种数据存储方法及装置 | |
CN113377579B (zh) | 一种基于映射表的固态硬盘数据恢复方法和系统 | |
CN111007985B (zh) | 一种存储系统空间回收的兼容处理方法、系统及设备 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
US20150169570A1 (en) | Method and device for managing data | |
CN111324427A (zh) | 一种基于dsp的任务调度方法及装置 | |
CN109918352B (zh) | 存储器系统和存储数据的方法 | |
CN104699622A (zh) | 数据储存装置以及其数据抹除方法 | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN108664577B (zh) | 一种基于flash空闲区的文件管理方法及系统 | |
CN110413413A (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN108647278B (zh) | 一种文件管理方法及系统 |
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 |