CN113626253A - 一种故障固态存储器的数据恢复方法、装置、设备及介质 - Google Patents
一种故障固态存储器的数据恢复方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113626253A CN113626253A CN202110741663.9A CN202110741663A CN113626253A CN 113626253 A CN113626253 A CN 113626253A CN 202110741663 A CN202110741663 A CN 202110741663A CN 113626253 A CN113626253 A CN 113626253A
- Authority
- CN
- China
- Prior art keywords
- data
- solid
- state memory
- failed
- host
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 135
- 238000011084 recovery Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 239000007787 solid Substances 0.000 claims abstract description 28
- 238000005192 partition Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000013403 standard screening design Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000035939 shock Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
Abstract
本申请公开了一种故障固态存储器的数据恢复方法、装置、电子设备及计算机可读存储介质,该方法应用于与故障固态存储器连接的主机,包括:在故障固态存储器以PCIe设备被识别后,将故障固态存储器中的数据导出至主机端;基于故障固态存储器的配置信息,重构出故障固态存储器的L2P映射表;根据L2P映射表将导出数据转换为主机端的用户数据;调用nvme cli工具将用户数据写入到备用固态存储器中。本申请在主机上重构故障固态存储器盘内数据的L2P映射表,将从故障固态存储器导入到主机的数据以user data的形式写入备用SSD中,快速简便地恢复了盘内重要数据,提高了数据恢复效率,可及时减轻故障盘对业务运行的影响。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种故障固态存储器的数据恢复方法、装置、电子设备及计算机可读存储介质。
背景技术
存储设备,作为数据存储的媒介,是计算机系统中至关重要的组成部分。信息爆炸的大数据时代,对存储设备的容量、读写速度、可靠性等提出了更高的要求。SSD(SolidState Drives,固态存储器或固态硬盘)具有读写性能快、容量大、抗震防摔、体积小巧等优势,正在成为存储界的主流设备。
常见的固态硬盘损坏概括为硬件损坏(电路板和主控)和固件损坏。硬件损坏可以通过更换电路板和主控来恢复硬盘数据。但是即使找到新的、吻合的电路板和主控,其更换过程也是非常耗时和有难度的,而且对操作环境和操作人员的专业素质都有很高的要求。
固件损坏常用的数据恢复方法就是拆芯片。而由于当前的固态硬盘基本都具备硬件数据加密功能,通过芯片提取的数据都是加密的,因此需要经过解密—重组—提取的过程才能最终恢复数据,而无疑这也是非常困难而耗时的。
鉴于此,提供一种解决上述技术问题的方案,已经是本领域技术人员所亟需关注的。
发明内容
本申请的目的在于提供一种故障固态存储器的数据恢复方法、装置、电子设备及计算机可读存储介质,以便有效缩短数据恢复时间,减轻对系统业务运行的影响。
为解决上述技术问题,一方面,本申请公开了一种故障固态存储器的数据恢复方法,包括:
应用于与所述故障固态存储器连接的主机,包括:
在所述故障固态存储器以PCIe设备被识别后,将所述故障固态存储器中的数据导出至主机端;
基于所述故障固态存储器的配置信息,重构出所述故障固态存储器的L2P映射表;
根据所述L2P映射表将导出数据转换为所述主机端的用户数据;
调用nvme cli工具将所述用户数据写入到备用固态存储器中。
可选地,所述将所述故障固态存储器中的数据导出至主机端,包括:
通过slow recovery工具,基于所述故障固态存储器支持的读操作导出所述配置信息至所述主机端;所述配置信息包括SuperBlock信息和ConfigData信息;
全盘扫描所述故障固态存储器中存储的数据,基于nvme cli工具或者DMI功能将所述数据导出至所述主机端。
可选地,所述全盘扫描所述故障固态存储器中存储的数据,包括:
基于所述故障固态存储器的配置信息重构FTL表以获取Flash地址;
基于Flash地址以分区并行的方式进行全盘扫描。
可选地,所述基于Flash地址以分区并行的方式进行全盘扫描,包括:
针对所述故障固态存储器的用户数据,以pba方式进行扫描;
针对所述故障固态存储器的元数据,以pca方式进行扫描。
可选地,所述将所述故障固态存储器中的数据导出至主机端,包括:
采用内存映射文件机制,以追加保存的方式存储所述导出数据。
可选地,所述调用nvme cli工具将所述用户数据写入到备用固态存储器中,包括:
解析所述故障固态存储器的SuperBlock信息以获取索引信息;
将所述L2P映射表中LKM LBA数据转换计算为control LBA数据;
基于所述索引信息将所述control LBA数据转换为host LBA数据;
调用nvme cli工具以固定host LBA的写入方式将所述用户数据写入到所述备用固态存储器中。
可选地,所述调用nvme cli工具将所述用户数据写入到备用固态存储器中,包括:
基于nvme写命令,将顺序读取所述L2P映射表所获取的对应内存位置处的用户数据依次写入至所述备用固态存储器。
又一方面,本申请公开了一种故障固态存储器的数据恢复装置,应用于与所述故障固态存储器连接的主机,包括:
导出模块,用于在所述故障固态存储器以PCIe设备被识别后,将所述故障固态存储器中的数据导出至主机端;
重构模块,用于基于所述故障固态存储器的配置信息,重构出所述故障固态存储器的L2P映射表;
转换模块,用于根据所述L2P映射表将导出数据转换为所述主机端的用户数据;
写入模块,用于调用nvme cli工具将所述用户数据写入到备用固态存储器中。
可选地,所述导出模块在将所述故障固态存储器中的数据导出至主机端时,具体用于:
通过slow recovery工具,基于所述故障固态存储器支持的读操作导出所述配置信息至所述主机端;所述配置信息包括SuperBlock信息和ConfigData信息;
全盘扫描所述故障固态存储器中存储的数据,基于nvme cli工具或者DMI功能将所述数据导出至所述主机端。
可选地,所述导出模块在全盘扫描所述故障固态存储器中存储的数据时,具体用于:
基于所述故障固态存储器的配置信息重构FTL表以获取Flash地址;基于Flash地址以分区并行的方式进行全盘扫描。
可选地,所述导出模块在基于Flash地址以分区并行的方式进行全盘扫描时,具体用于:
针对所述故障固态存储器的用户数据,以pba方式进行扫描;针对所述故障固态存储器的元数据,以pca方式进行扫描。
可选地,所述导出模块在将所述故障固态存储器中的数据导出至主机端,包括:
采用内存映射文件机制,以追加保存的方式存储所述导出数据。
可选地,所述写入模块在调用nvme cli工具将所述用户数据写入到备用固态存储器中时,具体用于:
解析所述故障固态存储器的SuperBlock信息以获取索引信息;
将所述L2P映射表中的LKM LBA数据转换计算为control LBA数据;
基于所述索引信息将所述control LBA数据转换为host LBA数据;
调用nvme cli工具以固定host LBA的写入方式将所述用户数据写入到所述备用固态存储器中。
可选地,所述写入模块在调用nvme cli工具将所述用户数据写入到备用固态存储器中时,具体用于:
基于nvme写命令,将顺序读取所述L2P映射表所获取的对应内存位置处的用户数据依次写入至所述备用固态存储器。
又一方面,本申请还公开了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上所述的任一种故障固态存储器的数据恢复方法的步骤。
又一方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种故障固态存储器的数据恢复方法的步骤。
本申请所提供的故障固态存储器的数据恢复方法、装置、电子设备及计算机可读存储介质所具有的有益效果是:本申请将故障固态存储器的数据通过PCIe链路导入主机,并根据在主机上重构的盘内数据的L2P映射表,将导入主机的数据以user data的形式写入到备用SSD设备中,快速简便地恢复了盘内重要数据,提高了数据恢复效率,可及时减轻故障盘对业务运行的影响。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请实施例公开的一种故障固态存储器的数据恢复方法的流程图;
图2为本申请实施例公开的host LBA、ctrl LBA、LKM LBA之间的转换关系示意图;
图3为本申请实施例公开的一种故障固态存储器的数据恢复装置的结构框图;
图4为本申请实施例公开的一种电子设备的结构框图。
具体实施方式
本申请的核心在于提供一种故障固态存储器的数据恢复方法、装置、电子设备及计算机可读存储介质,以便有效缩短数据恢复时间,减轻对系统业务运行的影响。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对于当前相关技术中,对故障固态硬盘的数据恢复普遍较为复杂、耗时,本申请提供了一种故障固态存储器的数据恢复方案,可有效解决上述问题。
参见图1所示,本申请实施例公开了一种故障固态存储器的数据恢复方法,应用于与故障固态存储器连接的主机,主要包括:
S101:在故障固态存储器以PCIe(PCI express)设备被识别后,将故障固态存储器中的数据导出至主机端。
S102:基于故障固态存储器的配置信息,重构出故障固态存储器的L2P映射表。
S103:根据L2P映射表将导出数据转换为主机端的用户数据。
S104:调用nvme cli工具将用户数据写入到备用固态存储器中。
需要说明的是,本申请实施例所提供的故障固态存储器的数据恢复方法,具有较高的数据恢复效率,且修复操作过程较为简单,特别适合于大容量固态硬盘的数据修复,例如容量已达TB级别的企业级固态硬盘。
企业级SSD具有容量大、速度快、可靠性高等优点,越来越多的数据中心和数据机房采用企业级SSD作为存储介质。企业级SSD内部带有备用电容,能保证异常断电、热插拔、静电击中等原因造成异常下电后,用户数据完整不丢失,且其带有其他的数据保护功能,使企业级SSD具有非常高的可靠性。但是因为企业级SSD定位的客户为公司、企业、国家机关等,如金融机构、互联网厂商、银行、政府等,对数据安全提出了更高要求。
为此,本申请所提出的故障固态硬盘的数据恢复方法可具体应用于企业级SSD,为其提供数据导出并恢复的策略,使在SSD发生不可识别的故障后,关键用户数据依旧可以从盘中导出。
具体地,当SSD设备由于意外状况导致异常下电流程没有走完时,再次上电后该SSD设备将不可被识别为存储设备,并进入slow recovery状态。在这种情况下,若该故障SSD可被识别为PCIe设备,则本申请具体将故障SSD的数据通过PCIe链路导入主机端,并把盘内数据转换为主机端的user data即用户数据,从而将user data通过写的方式导入到新的备用SSD设备中。相较于其他数据恢复方法,本申请首要保护了用户数据,并且数据恢复时间可预期,减轻了故障固态硬盘对客户业务的影响。
L2P(logic block address to physical block address)为逻辑地址与物理地址的映射表,记录了逻辑块地址(LBA,logic block address)与物理块地址(PBA,physicalblock address)之间的对应关系。当故障SSD的数据被导出完成后,在主机端可根据该故障SSD的型号、容量、固件版本等配置信息,基于slow recovery工具执行深度恢复功能,重建故障盘盘内数据的L2P表。由此,根据重建的L2P表可将导入主机端的数据转换为user data即系统的日志记录的用户数据,进而可通过nvme写的方式将这些user data导出至备用SSD中。其中,nvme(NVM Express)是非易失性内存主机控制器接口规范,用于访问通过PCIe总线附加的非易失性存储器介质(例如采用闪存的固态硬盘驱动器)。
可见,本申请所提供的故障固态存储器的数据恢复方法,将故障固态存储器的数据通过PCIe链路导入主机,并根据在主机上重构的盘内数据的L2P映射表,将导入主机的数据以user data的形式写入到备用SSD设备中,快速简便地恢复了盘内重要数据,提高了数据恢复效率,可及时减轻故障盘对业务运行的影响。
作为一种具体实施例,本申请实施例所提供的故障固态存储器的数据恢复方法在上述内容的基础上,将故障固态存储器中的数据导出至主机端,包括:
通过slow recovery工具,基于故障固态存储器支持的读操作导出配置信息至主机端;配置信息包括SuperBlock信息和ConfigData信息;
全盘扫描故障固态存储器中存储的数据,基于nvme cli工具或者DMI(DirectMedia Interface,直接媒体接口)功能将数据导出至主机端。
具体地,SuperBlock为保存关键数据的存储区的统称,ConfigData为与SSD配置有关的数据。这些信息内含有故障盘的重要配置信息,如namespace配置信息、format信息等。一般地,故障SSD上电后,SuperBlock信息可以从NAND(闪存的其中一种)加载到DDR(DoubleData Rate双倍速率同步动态随机存储器,内存的其中一种)中。这样,主机端可以通过pcie_memdump接口将SuperBlock信息读取上来。特殊地,若SuperBlock信息无法加载到DDR中,主机端需要通过扫描读取SuperBlock来获得SuperBlock信息。
作为一种具体实施例,本申请实施例所提供的故障固态存储器的数据恢复方法在上述内容的基础上,全盘扫描故障固态存储器中存储的数据,包括:
基于故障固态存储器的配置信息重构FTL(flash transfer layer,flash转换层)表以获取Flash地址;
基于Flash地址以分区并行的方式进行全盘扫描。
具体地,主机端在扫描故障SSD的全盘数据时,可采用全盘扫描所有的page的方式,将数据导出到主机。其中,扫描全盘导出数据时可以考虑按partition并行执行。其中,在基于Flash地址以分区并行的方式进行全盘扫描时,可具体包括:
针对故障固态存储器的用户数据,以pba方式进行扫描;
针对故障固态存储器的元数据,以pca方式进行扫描。
用户数据可以以单个4K+大小的数据为单位导出,元数据可以以单个16k大小的数据为单位导出。
由于NVME CLI中已经实现了读取故障SSD中flash数据的通道,因此可以通过node-debug函数读取flash并返回数据所在的DDR地址,再通过pcie-memdump函数将DDR地址中数据传输到主机端。
另外,上述方式虽然能将故障盘中flash数据导出到主机端,但效率相对较低,所以PCIe端需要考虑提供更高效批量导出的接口。比如,开启DMI功能,采用pcie-barread()方式将DDR中的数据传输到主机端。
作为一种具体实施例,本申请实施例所提供的故障固态存储器的数据恢复方法在上述内容的基础上,将故障固态存储器中的数据导出至主机端,包括:
采用内存映射文件机制,以追加保存的方式存储导出数据。
考虑到从故障SSD导出到主机端的数据量可能达到TB以上,通常的文件操作已经无法有效处理。因此,本申请中具体采用了专门解决大文件读写的“内存映射文件”机制,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问。
并且,从故障SSD导出的数据以追加保存的方式进行存储,以保证数据存储的连续性。在存储时,需要通过PCA(physical channel address,物理通道地址)计算当前数据存储在文件中的位置,便于数据以指针方式读写。其中,PCA一般由多个PBA(physical blockaddress,物理块地址)组成。
此外,由于主机端的slow recovery流程较为复杂,可以按照partition即分区并行执行,执行完成后,将生成partition份数的L2P表。
作为一种具体实施例,本申请实施例所提供的故障固态存储器的数据恢复方法在上述内容的基础上,调用nvme cli工具将所述用户数据写入到备用固态存储器中,包括:
解析故障固态存储器的SuperBlock信息以获取索引信息;
将L2P映射表中的LKM LBA数据转换计算为control LBA数据;
基于索引信息将control LBA数据转换为host LBA数据;
调用nvme cli工具以固定host LBA的写入方式将用户数据写入到所述备用固态存储器中。
需要说明的是,SSD在被使用时,从用户向SSD写入一组数据,到保存到非易失性存储器(NAND或Flash)上具体经历了一个复杂的过程;当要将盘上保存的数据转换成用户数据时,则必须要将这一复杂过程逆向转换。
具体地,正向的这一复杂过程具体是:SSD在接收到nvme的读写命令后,将命令中携带的host LBA,先转化为control LBA或简记为ctrl LBA,再将control LBA转换为LKM(lookup manager)LBA,最后把LKM LBA存到NAND的物理地址上,LKM LBA这一逻辑地址与NAND物理地址的映射关系便存储在L2P映射表中。
其中,从host LBA到LKM LBA间的转换关系具体可参见图2,图2为本申请实施例公开的host LBA、ctrl LBA、LKM LBA之间的转换关系示意图。
如图2所示,用户数据在主机与盘之间的传输时以及在盘内存储时的存储单元为4K,即每次用户读写数据是以4K为单位保存到SSD中的,每一个4K数据对应一个LBA。
首先,host LBA与ctrl LBA之间的转换关系具体为:
ctrl LBA=NS_LBA_UNIT_MAP[nsid][host LBA/LBA_NUM_PER_UNIT]*LBA_NUM_PER_UNIT+host LBA%LBA_NUM_PER_UNIT+config_data_LBA
其次,ctrl LBA与LKM LBA的之间的转换关系具体为:LKM_LBA=
((ctrl_LBA_bit2-bit31_value/lkm_nums)<<2)|ctrl_LBA_bit0-bit1_value
本申请在重构L2P映射表时便需要实现上述正向过程的逆过程,即,由LKM LBA转换为host LBA。首先,通过逆推可得到LKM LBA转换为ctrl LBA的关系式具体为:
ctrl_LBA=(LKM_LBA_bit2-bit31_value*lkm_nums)<<2)|LKM_LBA_bit0-bit1_value
其次,再结合host LBA与ctrl LBA之间的转换关系式进行逆推。虽然host LBA与ctrl LBA之间的转换关系式具体是一个复杂的非线性方程,但式中的NS_LBA_UNIT_MAP[nsid][index]是唯一的,标示了每个nameSpace实际占用的LBA_unit的index;而通过已经解析的super Block Info信息,可以获取相关的索引信息,以便明确该值具体属于哪个nameSpace,包括具体的nameSpace ID以及index。由此,可得到host LBA
host LBA=(ctrl_LBA-NS_LBA_UNIT_MAP[nsid][index]*LBA_NUM_PER_UNIT)+index*LBA_NUM_PER_UNIT]
其中,
NS_LBA_UNIT_MAP[nsid][index]=(ctrl_LBA-config_data_LBA)/LBA_NUM_PER_UNIT
上述host LBA是以4K格式对齐的host LBA,因此,对于4K格式的盘,host可以直接以4K大小将用户数据备份到备用固态硬盘上;对于512格式的盘,处理方式类似。其中一种处理方式是将8个512byte的用户数据整合为一个4K进行处理。
作为一种具体实施例,本申请实施例所提供的故障固态存储器的数据恢复方法在上述内容的基础上,调用nvme cli工具将用户数据写入到备用固态存储器中,包括:
基于nvme写命令,将顺序读取L2P映射表所获取的对应内存位置处的用户数据依次写入至备用固态存储器。
由于备用SSD已经建立了独立的系统环境,所以,只需要将主机端已导出的用户数据全部存储到该备用SSD中即可。
需要说明的是,在导出数据至备用SSD时,需要保证备用SSD能够正确恢复故障SSD原有的数据排布,即host通过同一个host LBA分别读取故障SSD和备用SSD时,应当获得相同的数据。所以,在将主机端的用户数据写入备份用的SSD时,需要保证host LBA一致。具体地,可以采用nvme write命令进行固定host LBA的写入,并且分区并行执行。在单个分区即partition中,顺序读取L2P表,获得用户数据存储的内存位置;根据LBA构建host LBA,再调用nvme wirte命令将用户数据写入备用SSD中。
参见图3所示,本申请实施例公开了一种故障固态存储器的数据恢复装置,应用于与故障固态存储器连接的主机,包括:
导出模块201,用于在故障固态存储器以PCIe设备被识别后,将故障固态存储器中的数据导出至主机端;
重构模块202,用于基于故障固态存储器的配置信息,重构出故障固态存储器的L2P映射表;
转换模块203,用于根据L2P映射表将导出数据转换为主机端的用户数据;
写入模块204,用于调用nvme cli工具将用户数据写入到备用固态存储器中。
可见,本申请实施例所公开的故障固态存储器的数据恢复装置,将故障固态存储器的数据通过PCIe链路导入主机,并根据在主机上重构的盘内数据的L2P映射表,将导入主机的数据以user data的形式写入到备用SSD设备中,快速简便地恢复了盘内重要数据,提高了数据恢复效率,可及时减轻故障盘对业务运行的影响。
关于上述故障固态存储器的数据恢复装置的具体内容,可参考前述关于故障固态存储器的数据恢复方法的详细介绍,这里就不再赘述。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,导出模块201在将故障固态存储器中的数据导出至主机端时,具体用于:
通过slow recovery工具,基于故障固态存储器支持的读操作导出配置信息至主机端;配置信息包括SuperBlock信息和ConfigData信息;
全盘扫描故障固态存储器中存储的数据,基于nvme cli工具或者DMI功能将数据导出至主机端。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,导出模块201在全盘扫描故障固态存储器中存储的数据时,具体用于:
基于故障固态存储器的配置信息重构FTL表以获取Flash地址;基于Flash地址以分区并行的方式进行全盘扫描。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,导出模块201在基于Flash地址以分区并行的方式进行全盘扫描时,具体用于:
针对故障固态存储器的用户数据,以pba方式进行扫描;针对故障固态存储器的元数据,以pca方式进行扫描。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,导出模块201在将故障固态存储器中的数据导出至主机端,包括:
采用内存映射文件机制,以追加保存的方式存储导出数据。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,写入模块204在调用nvme cli工具将所述用户数据写入到备用固态存储器中时,具体用于:
解析故障固态存储器的SuperBlock信息以获取索引信息;
将L2P映射表中的LKM LBA数据转换计算为control LBA数据;
基于索引信息将control LBA数据转换为host LBA数据;
调用nvme cli工具以固定host LBA的写入方式将用户数据写入到所述备用固态存储器中。
作为一种具体实施例,本申请实施例所公开的故障固态存储器的数据恢复装置在上述内容的基础上,写入模块204在调用nvme cli工具将用户数据写入到备用固态存储器中时,具体用于:
基于nvme写命令,将顺序读取L2P映射表所获取的对应内存位置处的用户数据依次写入至备用固态存储器。
参见图4所示,本申请实施例公开了一种电子设备,包括:
存储器301,用于存储计算机程序;
处理器302,用于执行所述计算机程序以实现如上所述的任一种故障固态存储器的数据恢复方法的步骤。
进一步地,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种故障固态存储器的数据恢复方法的步骤。
关于上述电子设备和计算机可读存储介质的具体内容,可参考前述关于故障固态存储器的数据恢复方法的详细介绍,这里就不再赘述。
本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
Claims (10)
1.一种故障固态存储器的数据恢复方法,其特征在于,应用于与所述故障固态存储器连接的主机,包括:
在所述故障固态存储器以PCIe设备被识别后,将所述故障固态存储器中的数据导出至主机端;
基于所述故障固态存储器的配置信息,重构出所述故障固态存储器的L2P映射表;
根据所述L2P映射表将导出数据转换为所述主机端的用户数据;
调用nvme cli工具将所述用户数据写入到备用固态存储器中。
2.根据权利要求1所述的数据恢复方法,其特征在于,所述将所述故障固态存储器中的数据导出至主机端,包括:
通过slow recovery工具,基于所述故障固态存储器支持的读操作导出所述配置信息至所述主机端;所述配置信息包括SuperBlock信息和ConfigData信息;
全盘扫描所述故障固态存储器中存储的数据,基于nvme cli工具或者DMI功能将所述数据导出至所述主机端。
3.根据权利要求2所述的数据恢复方法,其特征在于,所述全盘扫描所述故障固态存储器中存储的数据,包括:
基于所述故障固态存储器的配置信息重构FTL表以获取Flash地址;
基于所述Flash地址以分区并行的方式进行全盘扫描。
4.根据权利要求3所述的数据恢复方法,其特征在于,所述基于所述Flash地址以分区并行的方式进行全盘扫描,包括:
针对所述故障固态存储器的用户数据,以pba方式进行扫描;
针对所述故障固态存储器的元数据,以pca方式进行扫描。
5.根据权利要求4所述的数据恢复方法,其特征在于,所述将所述故障固态存储器中的数据导出至主机端,包括:
采用内存映射文件机制,以追加保存的方式存储所述导出数据。
6.根据权利要求5所述的数据恢复方法,其特征在于,所述调用nvme cli工具将所述用户数据写入到备用固态存储器中,包括:
解析所述故障固态存储器的SuperBlock信息以获取索引信息;
将所述L2P映射表中的LKM LBA数据转换计算为control LBA数据;
基于所述索引信息将所述control LBA数据转换为host LBA数据;
调用nvme cli工具以固定host LBA的写入方式将所述用户数据写入到所述备用固态存储器中。
7.根据权利要求1至6任一项所述的数据恢复方法,其特征在于,所述调用nvme cli工具将所述用户数据写入到备用固态存储器中,包括:
基于nvme写命令,将顺序读取所述L2P映射表所获取的对应内存位置处的用户数据依次写入至所述备用固态存储器。
8.一种故障固态存储器的数据恢复装置,其特征在于,应用于与所述故障固态存储器连接的主机,包括:
导出模块,用于在所述故障固态存储器以PCIe设备被识别后,将所述故障固态存储器中的数据导出至主机端;
重构模块,用于基于所述故障固态存储器的配置信息,重构出所述故障固态存储器的L2P映射表;
转换模块,用于根据所述L2P映射表将导出数据转换为所述主机端的用户数据;
写入模块,用于调用nvme cli工具将所述用户数据写入到备用固态存储器中。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的故障固态存储器的数据恢复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如权利要求1至7任一项所述的故障固态存储器的数据恢复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741663.9A CN113626253A (zh) | 2021-06-30 | 2021-06-30 | 一种故障固态存储器的数据恢复方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110741663.9A CN113626253A (zh) | 2021-06-30 | 2021-06-30 | 一种故障固态存储器的数据恢复方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626253A true CN113626253A (zh) | 2021-11-09 |
Family
ID=78378683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110741663.9A Withdrawn CN113626253A (zh) | 2021-06-30 | 2021-06-30 | 一种故障固态存储器的数据恢复方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626253A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675999A (zh) * | 2022-03-25 | 2022-06-28 | 苏州浪潮智能科技有限公司 | 数据恢复方法、数据恢复装置、电子设备及保存介质 |
CN116701038A (zh) * | 2023-06-25 | 2023-09-05 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
-
2021
- 2021-06-30 CN CN202110741663.9A patent/CN113626253A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675999A (zh) * | 2022-03-25 | 2022-06-28 | 苏州浪潮智能科技有限公司 | 数据恢复方法、数据恢复装置、电子设备及保存介质 |
CN116701038A (zh) * | 2023-06-25 | 2023-09-05 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
CN116701038B (zh) * | 2023-06-25 | 2024-04-02 | 深圳市东方聚成科技有限公司 | 一种用于存储器快速恢复存储数据的控制方法与控制系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10037158B2 (en) | Vertically integrated storage | |
CN103136116B (zh) | 存储器存储系统及其中控装置、管理方法与断电恢复方法 | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
TWI548990B (zh) | 記憶體儲存裝置及其還原方法與記憶體控制器 | |
CN104461391A (zh) | 一种存储设备元数据管理处理方法及系统 | |
CN103270500A (zh) | 事务日志恢复 | |
CN104461964A (zh) | 一种存储装置 | |
US20210240584A1 (en) | Data recovery method, system, and apparatus in storage system | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
US11989452B2 (en) | Read-disturb-based logical storage read temperature information identification system | |
CN109144899A (zh) | 用于管理表恢复的方法 | |
TW201508748A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN116126251A (zh) | 一种实现多并发写入的方法、控制器和固态存储设备 | |
US11922067B2 (en) | Read-disturb-based logical storage read temperature information maintenance system | |
CN103578566A (zh) | 存储器存储装置及其修复方法 | |
CN113626253A (zh) | 一种故障固态存储器的数据恢复方法、装置、设备及介质 | |
US11055190B1 (en) | System and method for facilitating storage system operation with global mapping to provide maintenance without a service interrupt | |
US20240192860A1 (en) | Method and device for log structured merge-tree based key-value data storage | |
US11922020B2 (en) | Read-disturb-based read temperature information persistence system | |
CN114968849B (zh) | 提高编程缓存利用率的方法及其设备 | |
CN113204315B (zh) | 一种固态硬盘读写方法和装置 | |
CN111142792B (zh) | 一种存储装置的掉电保护方法 | |
CN114968630A (zh) | 提高存储设备可用性的故障管芯管理方法 | |
US11188511B2 (en) | Offloading file-indexing to memory card firmware |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211109 |
|
WW01 | Invention patent application withdrawn after publication |