CN116225776A - 一种固态硬盘的数据恢复方法、装置及设备 - Google Patents
一种固态硬盘的数据恢复方法、装置及设备 Download PDFInfo
- Publication number
- CN116225776A CN116225776A CN202211092642.XA CN202211092642A CN116225776A CN 116225776 A CN116225776 A CN 116225776A CN 202211092642 A CN202211092642 A CN 202211092642A CN 116225776 A CN116225776 A CN 116225776A
- Authority
- CN
- China
- Prior art keywords
- data
- physical address
- solid state
- logical address
- state disk
- 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.)
- Pending
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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请提供了一种固态硬盘的数据恢复方法、装置及设备,该方法包括:通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中冗余Spare区的数据;将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配;确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。通过上述方法,解决了当出现L2P表丢失或者错误时,导致的严重丢数据或者数据错误问题。
Description
技术领域
本申请涉及数据恢复技术领域,特别是涉及一种固态硬盘的数据恢复方法、装置及设备。
背景技术
固态硬盘(Solid State Drives,SSD),是固态电子存储芯片阵列而制成的硬盘,由主控芯片和闪存(NAND Flash)组成。其中主控芯片是固件运行的载体,闪存是数据保存的载体。由于闪存接口的读写方式跟硬盘的读写方式不一致,固件中需要一个闪存转换层(Flash Translation Layer,FTL)先对数据进行处理,再发给闪存。FTL转换层最重要的职责就是构建主机逻辑地址和闪存物理地址的映射表。FTL转换层需要实时维护一张最新的主机逻辑地址和闪存物理地址的映射表,该表一般叫L2P表(Logic To Physical AddressTable)。当有数据写入时,需要把最新的闪存物理地址写入L2P表的对应位置。当主机读取数据时,FTL转换层先通过查表找到主机地址所对应的闪存物理地址,再根据查到的物理地址从闪存读取数据,返回给主机。
由此可见,这个L2P表是非常重要的。它类似于目录或索引,通过它可以找到数据的位置,进而找到数据。这个表一般保存在闪存和内存中。如果存放L2P表的闪存出现问题或内存被覆盖或两者数据不一致时,就会出现L2P表丢失或者错误,导致严重的丢数据或者数据错误问题。
发明内容
为了解决存放L2P表的闪存出现问题或内存被覆盖或两者数据不一致时,使得L2P表丢失或者错误,导致严重的丢数据或者数据错误问题,本申请提供了一种固态硬盘的数据恢复方法、装置及设备。
第一方面,本申请提供了一种固态硬盘的数据恢复方法,所述方法包括:
通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中冗余(Spare)区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号;
固态硬盘提供根据物理地址获取数据的接口,包括获取数据区的用户数据和获取Spare区的逻辑地址编号及数据版本的序列号接口,通过所述接口协议即可以根据物理地址获取闪存中的数据。接口协议包括但不限于ATA或NVMe协议中的保留字段,由开发人员自己制定的私有协议,此处不作具体限定。
将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号;
确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;
根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
在一种可能的实施方式中,采取如下方式建立L2P表:
通过建立二维数组建立多个表项,所述二维数组的各行与逻辑地址编号一一对应,所述二维数组的列项包括物理地址以及数据版本;
其中,所述新建立的L2P表在初始化时,将所述固态硬盘的所有逻辑地址编号填入列项为逻辑地址的列中,列项为物理地址以及数据版本的对应列中内容为空。
在一种可能的实施方式中,确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容为空时,将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
在一种可能的实施方式中,确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容不为空时,根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
在一种可能的实施方式中,根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定读取的序列号大于所述相匹配的表项中的序列号时,确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
确定读取的序列号不大于所述相匹配的表项中的序列号时,确定保留所述相匹配的表项中的内容。
在一种可能的实施方式中,根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中,包括:
按行依次读取新建立的L2P表中的内容,确定物理地址以及数据版本中的内容为空时,跳过该行内容,并将全0数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上;
否则,根据所述物理地址编号读取存储在固态硬盘的用户数据。
在一种可能的实施方式中,所述备份盘的容量不小于所述固态硬盘的容量;
将所述固态硬盘的数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上。
第二方面,本申请提供了一种固态硬盘的数据恢复装置,所述装置包括:
读取模块,用于通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中Spare区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号;
匹配模块,用于将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号;
填写模块,用于确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;
恢复数据模块,用于根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
第三方面,本申请提供了一种固态硬盘的数据恢复设备,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的方法。
第四方面,本申请提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面的方法。
本申请提供了一种固态硬盘的数据恢复方法、装置及设备,通过新建立一个L2P表,根据新建立的L2P表即可以读取待修复数据的固态硬盘中的数据,通过本申请提供的方法可以解决当出现L2P表丢失或者错误时,导致的严重丢数据或者数据错误问题。
附图说明
图1为根据本发明示例性实施例示例的一种固态硬盘的数据恢复方法流程示意图;
图2为根据本发明示例性实施例示例的一种新建立的L2P表示意图;
图3为根据本发明示例性实施例示例的第一种L2P表建立过程示意图;
图4为根据本发明示例性实施例示例的第二种L2P表建立过程示意图;
图5为根据本发明示例性实施例示例的第三种L2P表建立过程示意图;
图6为根据本发明示例性实施例示例的一种固态硬盘的数据恢复方法具体流程示意图;
图7为根据本发明示例性实施例示例的一种数据写入备份盘示意图;
图8为根据本发明示例性实施例示例的一种固态硬盘的数据恢复装置示意图;
图9为根据本发明示例性实施例示例的一种固态硬盘的数据恢复设备示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对固态硬盘的结构进行说明:
固态硬盘由主控芯片和闪存组成,其中主控芯片是固件运行的载体,闪存是数据保存的载体。由于闪存接口的读写方式跟硬盘的读写方式不一致,固件中需要一个闪存转换层先对数据进行处理,再发给闪存。FTL转换层最重要的职责就是构建主机逻辑地址和闪存物理地址的映射表。FTL转换层需要实时维护一张最新的L2P表。当有数据写入时,需要把最新的物理地址写入L2P表的对应位置。当主机读取数据时,FTL转换层先通过查表找到逻辑地址所对应的闪存物理地址,再根据查到的物理地址从闪存读取数据,返回给主机。
闪存的每个页包含数据区和一个spare区,数据写入时,需要把该数据对应的逻辑地址和序列号同时写入Spare区。其中序列号是递增的,即后面写入数据的序列号比之前写入的序列号大,数据恢复时,可以根据序列号的大小,判断数据的新旧。
如果L2P表丢失或部分损坏,就会因为找不到数据的物理地址而出现找不到数据问题。在主机端的表现,就是数据丢失。但其实数据本身还是在保存在闪存中的,只是不知道数据和主机逻辑地址之间的对应关系,因此无法将存储在固态硬盘中的用户数据读取出来,所以恢复数据的过程,本质上就是重建L2P表的过程,基于此本申请实施例提供了一种固态硬盘的数据恢复方法,如图1所示,所述方法包括:
S101:通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中Spare区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号。
数据区用于存储用户数据,Spare区用于存储用户数据对应的逻辑地址和数据版本的序列号,一般16KB的用户数据,对应2KB的Spare区数据,固件里叫Meta数据。
因为重建L2P表需要占用较大的内存,一般固态硬盘的内存比较有限,所以建议在主机端实现数据恢复。如果固态硬盘内存足够,也可以在固态硬盘内部实现。若在固态硬盘端进行数据恢复的过程,则不需要通过接口协议读取Spare区的数据。
S102:将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号。
当固态硬盘中的L2P表丢失或者出现错误,虽然数据还完好地保存在固态硬盘的闪存中,但是还是会出现找不到用户数据存储的具体的物理地址,进而导致用户数据无法读取的情况。针对上述情况,本申请实施例通过建立一个全新的L2P表,以使固态硬盘中的用户数据可以被读取。
在一种可能的实施方式中,采取如下方式建立L2P表:
通过建立二维数组建立多个表项,所述二维数组的各行与逻辑地址编号一一对应,所述二维数组的列项包物理地址以及数据版本;
其中,所述新建立的L2P表在初始化时,将所述固态硬盘的所有逻辑地址编号填入列项为逻辑地址的列中,列项为物理地址以及数据版本的对应列中内容为空。
具体如图2所示为新建立的L2P表,为了使得所述L2P表更简洁以及节约内存,将所述L2P表设置为n行2列,其中各行与逻辑地址编号一一对应,例如逻辑地址包括100个扇区,则该表中包括100行,即从逻辑地址0到逻辑地址99,也可以是从逻辑地址99到逻辑地址0,其顺序可以根据用户需求进行设定;另外其起始的逻辑地址编号也可以为1,即从逻辑地址1到逻辑地址100,此处均不做具体限定。表中的第1行为设置的列项名称:第一列物理地址,表示为物理地址的编号,如:A、B、C;第二列为数据版本,通过序列号进行表示,如0000、0001、0002,此处不对编号的格式进行具体限定。
S103:确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表。
首先需要进行表项的匹配,即将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,若匹配,则将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。例如,读取的逻辑地址编号为0,则找到L2P表中逻辑地址编号为0的表项,将所述逻辑地址编号0对应的固态硬盘的物理地址单元的编号及Spare区数据中的序列号填入L2P表中逻辑地址编号0对应的表项中。
例如固态硬盘的物理地址单元的编号及Spare区数据中的序列号分别为A和0000,则将A和0000填入如图3所示的表项中。
S104:根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
确定新的L2P表建立完成后,即可读取固态硬盘中的用户数据,此时需要准备另外一块可正常使用的硬盘(这里叫备份盘),可以是机械硬盘或固态硬盘,此处不做具体限定。然后按行依次读取新建立的L2P表中的内容,确定物理地址以及数据版本中的内容为空时,跳过该行内容,并将全0数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上;
否则,根据所述物理地址编号读取存储在固态硬盘的用户数据。
如图3左侧的L2P表所示,若只有逻辑地址0对应的表项中有内容,则读取固态硬盘编号A的物理地址单元中的用户数据,并将所述用户数据写入备份盘中,而其余逻辑地址编号对应的表项中均为空,则跳过其余行,表明除了编号A的物理地址单元,其余物理地址单元中没有存储数据,并将全0数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上。
在选取备份盘时,需要遵循:所述备份盘的容量不小于所述固态硬盘的容量;将所述固态硬盘的数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上,即所述备份盘的数据可覆盖。
本申请实施例通过新建立一个L2P表,能够实现将用户数据从L2P表损坏的固态硬盘中读取出来。
上述S103中将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,具体包括如下3种实施方式:
(1)直接填入所述相匹配的表项。
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容为空时,将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
如图3所示,若相匹配的逻辑地址为逻辑地址1,读取的固态硬盘的物理地址单元的编号及Spare区数据中的序列号分别为B和0001,则将B和0001填入逻辑地址编号为1的对应表项中。
(2)替换相匹配表项中原有的内容。
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容不为空时,根据读取的序列号与表项中数据版本的内容比较结果,确定读取的序列号大于所述相匹配的表项中的序列号时,确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
如图4所示,若相匹配的逻辑地址为逻辑地址0,读取的固态硬盘的物理地址单元的编号及Spare区数据中的序列号分别为B和0003(0003大于0002),则将B和0003替换逻辑地址0对应的A和0002。
(3)保留所述相匹配表项中的内容。
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容不为空时,根据读取的序列号与表项中数据版本的内容比较结果,确定读取的序列号不大于所述相匹配的表项中的序列号时,确定保留所述相匹配的表项中的内容。
如图5所示,若相匹配的逻辑地址为逻辑地址0,读取的固态硬盘的物理地址单元的编号及Spare区数据中的序列号分别为C和0001(0001小于0002),则保留逻辑地址0对应的A和0002。
下面根据图6和图7对数据恢复的过程进行详细的说明:
S601:将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配;
S602:确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
S603:判断相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容是否为空,若是则执行S604,否则执行S605;
S604:确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
S605:比较序列号;
S606:判断读取的序列号是否大于所述相匹配的表项中原来的序列号,若是,则执行S607,否则执行S608:
S607:确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
S608:处理下一条,即读取下一个逻辑地址编号与新建立的L2P表中的逻辑地址编号进行匹配。
如图7所示,主机根据新建立的L2P表将固态硬盘中数据区的用户数据读取出来,然后写入备份盘中。
通过新建立L2P表修复数据,而不是从最底层的原始用户数据出发,对用户数据进行恢复。假设数据能恢复出来,但对应的L2P表项不能恢复,数据还是会丢失,本申请实施例提供的固态硬盘的数据恢复方法可以解决此问题。
基于相同的发明构思,本申请实施例提供了一种固态硬盘的数据恢复装置800,如图8所示,所述装置包括:
读取模块801,用于通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中Spare区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号;
匹配模块802,用于将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号;
填写模块803,用于确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;
恢复数据模块804,用于根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
在一种可能的实施方式中,建表模块用于采取如下方式建立L2P表:
通过建立二维数组建立多个表项,所述二维数组的各行与逻辑地址编号一一对应,所述三维数组的列项包括物理地址以及数据版本;
其中,所述新建立的L2P表在初始化时,将所述固态硬盘的所有逻辑地址编号填入列项为逻辑地址的列中,列项为物理地址以及数据版本的对应列中内容为空。
在一种可能的实施方式中,匹配模块802用于确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容为空时,将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
在一种可能的实施方式中,填写模块803用于确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容不为空时,根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
在一种可能的实施方式中,填写模块803用于根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定读取的序列号大于所述相匹配的表项中的序列号时,确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
确定读取的序列号不大于所述相匹配的表项中的序列号时,确定保留所述相匹配的表项中的内容。
在一种可能的实施方式中,恢复数据模块804用于根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,包括:
按行依次读取新建立的L2P表中的内容,确定物理地址以及数据版本中的内容为空时,跳过该行内容,并将全0数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上;
否则,根据所述物理地址编号读取存储在固态硬盘的用户数据。
在一种可能的实施方式中,恢复数据模块804用于确定所述备份盘的容量不小于所述固态硬盘的容量;
将所述固态硬盘的数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上。
基于相同的发明构思,本申请实施例还提供了一种固态硬盘的数据恢复设备,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行固态硬盘的数据恢复的方法。
下面参照图9来描述根据本申请的这种实施方式的电子设备130。图9显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
所述处理器131用于读取所述存储器132中的指令并执行,以使所述至少一个处理器能够执行上述实施例提供的固态硬盘的数据恢复的方法。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种固态硬盘的数据恢复方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种固态硬盘的数据恢复的方法的步骤。
另外,本申请还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序所述计算机程序用于使计算机执行上述实施例中任何一项所述的方法。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种固态硬盘的数据恢复方法,其特征在于,所述方法包括:
通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中冗余Spare区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号;
将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号;
确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;
根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
2.根据权利要求1所述的方法,其特征在于,采取如下方式建立L2P表:
通过建立二维数组建立多个表项,所述二维数组的各行与逻辑地址编号一一对应,所述二维数组的列项包括物理地址以及数据版本;
其中,所述新建立的L2P表在初始化时,将所述固态硬盘的所有逻辑地址编号填入列项为逻辑地址的列中,列项为物理地址以及数据版本的对应列中内容为空。
3.根据权利要求1所述的方法,其特征在于,确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容为空时,将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
4.根据权利要求1所述的方法,其特征在于,确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定相匹配的表项中的逻辑地址编号所在行的物理地址以及数据版本中的内容不为空时,根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项。
5.根据权利要求4所述的方法,其特征在于,根据读取的序列号与表项中数据版本的内容比较结果,确定是否将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,包括:
确定读取的序列号大于所述相匹配的表项中的序列号时,确定将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项;
确定读取的序列号不大于所述相匹配的表项中的序列号时,确定保留所述相匹配的表项中的内容。
6.根据权利要求1所述的方法,其特征在于,根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中,包括:
按行依次读取新建立的L2P表中的内容,确定物理地址以及数据版本中的内容为空时,跳过该行内容,并将全0数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上;
否则,根据所述物理地址编号读取存储在固态硬盘的用户数据。
7.根据权利要求1所述的方法,其特征在于,所述备份盘的容量不小于所述固态硬盘的容量;
将所述固态硬盘的数据写到所述备份盘与新建立的L2P表逻辑地址编号对应的地址上。
8.一种固态硬盘的数据恢复装置,其特征在于,所述装置包括:
读取模块,用于通过接口协议获取固态硬盘中物理地址单元,并依次读取所述物理地址单元中Spare区的数据,其中,每个物理地址单元包括数据区和Spare区,所述Spare区的数据包括数据区的用户数据对应的逻辑地址编号及数据版本的序列号;
匹配模块,用于将读取的所述逻辑地址编号与新建立的逻辑地址与物理地址的映射L2P表中的逻辑地址编号进行匹配,所述新建立的L2P表包括多个表项,各表项包括物理地址编号、逻辑地址编号及数据版本的序列号;
填写模块,用于确定相匹配的表项,并将读取的所述逻辑地址编号对应的物理地址单元的编号及序列号填入所述相匹配的表项,得到所述固态硬盘对应新建立的L2P表;
恢复数据模块,用于根据所述新建立的L2P表读取所述固态硬盘中存储的用户数据,并将所述用户数据写入备份盘中。
9.一种固态硬盘的数据恢复设备,其特征在于,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任何一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-7任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211092642.XA CN116225776A (zh) | 2022-09-08 | 2022-09-08 | 一种固态硬盘的数据恢复方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211092642.XA CN116225776A (zh) | 2022-09-08 | 2022-09-08 | 一种固态硬盘的数据恢复方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225776A true CN116225776A (zh) | 2023-06-06 |
Family
ID=86584806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211092642.XA Pending CN116225776A (zh) | 2022-09-08 | 2022-09-08 | 一种固态硬盘的数据恢复方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225776A (zh) |
-
2022
- 2022-09-08 CN CN202211092642.XA patent/CN116225776A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430279B1 (en) | Dynamic raid expansion | |
EP3519969B1 (en) | Physical media aware spacially coupled journaling and replay | |
US9136020B2 (en) | Semiconductor memory device | |
CN101739352B (zh) | 用来管理一记忆装置的方法以及其相关的记忆装置 | |
US9286198B2 (en) | Method and system for storage of data in non-volatile media | |
EP2793132B1 (en) | Method and system for recovery of metadata in a flash memory system | |
US11474708B2 (en) | Memory system for handling a bad block and operation method thereof | |
US7788244B2 (en) | Method and system for copying a snapshot tree | |
CN109977034B (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN102378969A (zh) | 拷贝卷中存储的数据的去重复 | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
CN103995784A (zh) | 快闪存储器控制器与存储装置以及快闪存储器控制方法 | |
CN105122220A (zh) | 固态驱动器中的原子写入命令支持 | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
CN104246707A (zh) | 存储系统和存储装置 | |
CN103164342A (zh) | 数据可用性的挂载时协调 | |
US20110320689A1 (en) | Data Storage Devices and Data Management Methods for Processing Mapping Tables | |
US9465538B2 (en) | Flash memory control chip and data storage device and flash memory control method | |
CN111831476A (zh) | 控制raid系统的操作的方法 | |
CN101957765A (zh) | 一种实现设备固件更新的方法及系统、设备 | |
CN1311327C (zh) | 成块可擦存储器的管理数据组的复原方法 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN116225776A (zh) | 一种固态硬盘的数据恢复方法、装置及设备 | |
CN110286850B (zh) | 固态硬盘元数据的写入方法、恢复方法及固态硬盘 | |
CN103870355A (zh) | Bios存取系统及方法 |
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 |