一种主机构建SSDFTL映射表的方法及装置制造方法及图纸

技术编号:33639146 阅读:19 留言:0更新日期:2022-06-02 01:56
本发明专利技术涉及SSD FTL映射表构建领域,具体公开一种主机构建SSD FTL映射表的方法及装置,主机分N次向故障SSD下发FTL映射表预置命令;其中N≥2;故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表;其中预置完成的FTL映射表中逻辑块地址个数小于对应分区空间的存储单元个数;主机在故障SSD当次FTL映射表预置完成后,读取故障SSD NAND数据,在本地内存构建真实的SSD FTL映射表;待主机完成全部次数的SSD FTL映射表构建后,将最终重建的SSD FTL映射表发送至故障SSD。本发明专利技术实现快速稳定地将故障SSD NAND中所有有效数据对应的FTL映射关系重建出来,为下一步做数据恢复和备份提供前置条件。为下一步做数据恢复和备份提供前置条件。为下一步做数据恢复和备份提供前置条件。

【技术实现步骤摘要】
一种主机构建SSD FTL映射表的方法及装置


[0001]本专利技术涉及SSD FTL映射表构建领域,具体涉及一种主机构建SSD FTL映射表的方法及装置。

技术介绍

[0002]FTL映射表是一种以FTL LBA为索引,PBA为内容的线性表。SSD接收到主机写入请求后,将host LBA转换获得FTL LBA,并将请求命令中host LBA关联的逻辑数据写入PBA指定的NAND空间后,将FTL LBA与PBA的映射关系更新到FTL映射表中。SSD接收到主机读取请求后,将host LBA转换成FTL LBA后,根据FTL LBA查找FTL映射表获得PBA后,读取NAND数据返回给主机。SSD运行时,FTL映射表驻留在SSD DDR指定空间中,SSD断电前需要整体刷写到NAND中永久存储,SSD上电后再从NAND中读出来并恢复到DDR指定空间中。
[0003]SSD断电失败,再次上电时往往会遭遇包括FTL映射表在内的元数据丢失。此时,全盘数据深度恢复重建FTL映射表是一种有效找回丢失数据的常用方式,但该方式并不是SSD的一种必备功能。全盘数据深度恢复功能可以在SSD中执行,也可以借助外部主机实现。
[0004]一般因SSD内部资源受限等原因,数据深度恢复会借助主机端实现,主机端通常借助专用的读取方式将发生故障的SSD内部NAND数据全部读取到主机端中,然后再进行数据提取和分析,将有效数据恢复出来,但这种恢复方式耗时较长,极大影响数据恢复效率。

技术实现思路

[0005]为解决上述问题,本专利技术提供一种主机构建SSD FTL映射表的方法及装置,通过在故障SSD中预置FTL映射表,主机根据预置的FTL映射表构建真实FTL映射表,实现快速稳定地将故障SSD NAND中所有有效数据对应的FTL映射关系重建出来,为下一步做数据恢复和备份提供前置条件。
[0006]第一方面,本专利技术的技术方案提供一种主机构建SSD FTL映射表的方法,包括以下步骤:主机分N次向故障SSD下发FTL映射表预置命令;其中N≥2;故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表;其中,预置完成的FTL映射表中逻辑块地址个数小于对应分区空间的存储单元个数;主机在故障SSD当次FTL映射表预置完成后,读取故障SSD NAND数据,在本地内存构建真实的SSD FTL映射表;待主机完成全部次数的SSD FTL映射表构建后,将最终重建的SSD FTL映射表发送至故障SSD。
[0007]进一步地,N的取值由预置FTL映射表的粒度确定,具体地,N=(分区空间的存储单元个数+(每次预置的FTL entry个数

1))/每次预置的FTL entry个数;
其中,每次预置的FTL entry个数的取值范围为[1,命名空间大小/分区空间个数];故障SSD上电后,整盘被配置成一个4k格式的命名空间,整个命名空间容量为用户容量,命名空间大小=命名空间容量/命名空间格式大小;前N

1次的每个分区空间所预置的FTL映射表的逻辑块地址个数为每次预置的FTL entry个数。
[0008]进一步地,故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表,具体包括:故障SSD接收到当次FTL映射表预置命令后,按照PBA格式扫描对应分区空间的存储单元,将存储单元的物理块地址依次与FTL映射表的逻辑块地址进行映射。
[0009]进一步地,该方法具体还包括:故障SSD接收到当次FTL映射表预置命令后,按照PBA格式扫描对应分区空间的剩余未扫描存储单元,将存储单元的物理块地址依次与FTL映射表的逻辑块地址进行映射时,从FTL映射表的起始逻辑块地址开始写入,覆写前一次写入的物理块地址。
[0010]进一步地,该方法具体还包括:若故障SSD接收到当次FTL映射表预置命令后,所扫描的存储单元个数少于前一次所扫描的存储单元个数,则将FTL映射表中未被覆写的物理块地址清除。
[0011]进一步地,主机在故障SSD当次FTL映射表预置完成后,读取故障SSD NAND数据,在本地内存构建真实的SSD FTL映射表,具体包括:主机根据当次故障SSD预置的FTL映射表的可访问逻辑块地址个数计算当次最大主机逻辑块地址;从主机逻辑块地址为0开始直到当次最大主机逻辑块地址,通过NVME IO路径方式读取故障SSD的数据;在本地内存开辟与故障SSD分区空间个数相同份数的FTL映射表空间,以逻辑块地址为索引,以物理块地址和从故障SSD读取到的相应数据为内容构建真实的SSD FTL映射表。
[0012]进一步地,主机所读取故障SSD的数据为相应存储单元数据框架的序列号。
[0013]进一步地,该方法具体还包括:若多个物理块地址读取的数据内容中逻辑块地址相同,那么选取序列号最大的存储单元数据框架的序列号以及关联的物理块地址作为FTL映射表中关联的逻辑块地址索引的表项内容。
[0014]进一步地,主机根据当次故障SSD的预置FTL映射表的可访问逻辑块地址个数计算当次最大主机逻辑块地址,具体为:最大主机逻辑块地址=当次预置的FTL映射表可访问的逻辑块地址个数*分区空间个数

1。
[0015]第二方面,本专利技术的技术方案提供一种主机构建SSD FTL映射表的装置,包括,预置命令下发模块:主机分N次向故障SSD下发FTL映射表预置命令;其中N≥2;预置FTL映射表模块:故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表;其中,预置完成的FTL映射表中逻辑块地址个数小于对应分区空间的存储单元个数;
真实FTL映射表构建模块:主机在故障SSD当次FTL映射表预置完成后,读取故障SSD NAND数据,在本地内存构建真实的SSD FTL映射表;真实FTL映射表发送模块:待主机完成全部次数的SSD FTL映射表构建后,将最终重建的SSD FTL映射表发送至故障SSD。
[0016]第三方面,本专利技术的技术方案提供一种终端,包括:存储器,用于存储主机构建SSD FTL映射表程序;处理器,用于执行所述主机构建SSD FTL映射表程序时实现如上述任一项所述主机构建SSD FTL映射表方法的步骤。
[0017]第四方面,本专利技术的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有主机构建SSD FTL映射表程序,所述主机构建SSD FTL映射表程序被处理器执行时实现如上述任一项所述主机构建SSD FTL映射表方法的步骤。
[0018]本专利技术提供的一种主机构建SSD FTL映射表的方法、装置、终端及存储介质,相对于现有技术,具有以下有益效果:在故障SSD中预置FTL映射表,FTL映射表预置完成后,主机获取目标数据,在本地内存构建真实的FTL映射表,再将最终构建的真实FTL映射表发送给故障SSD,实现快速稳定地将故障SSD NAND中所有有效数据对应的FTL映射关系重建出本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种主机构建SSD FTL映射表的方法,其特征在于,包括以下步骤:主机分N次向故障SSD下发FTL映射表预置命令;其中N≥2;故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表;其中,预置完成的FTL映射表中逻辑块地址个数小于对应分区空间的存储单元个数;主机在故障SSD当次FTL映射表预置完成后,读取故障SSD NAND数据,在本地内存构建真实的SSD FTL映射表;待主机完成全部次数的SSD FTL映射表构建后,将最终重建的SSD FTL映射表发送至故障SSD。2.根据权利要求1所述的主机构建SSD FTL映射表的方法,其特征在于,N的取值由预置FTL映射表的粒度确定,具体地,N=(分区空间的存储单元个数+(每次预置的FTL entry个数

1))/每次预置的FTL entry个数;其中,每次预置的FTL entry个数的取值范围为[1,命名空间大小/分区空间个数];故障SSD上电后,整盘被配置成一个4k格式的命名空间,整个命名空间容量为用户容量,命名空间大小=命名空间容量/命名空间格式大小;前N

1次的每个分区空间所预置的FTL映射表的逻辑块地址个数为每次预置的FTL entry个数。3.根据权利要求2所述的主机构建SSD FTL映射表的方法,其特征在于,故障SSD接收到当次FTL映射表预置命令后,基于其分区空间预置每个分区空间的FTL映射表,具体包括:故障SSD接收到当次FTL映射表预置命令后,按照PBA格式扫描对应分区空间的存储单元,将存储单元的物理块地址依次与FTL映射表的逻辑块地址进行映射。4.根据权利要求3所述的主机构建SSD FTL映射表的方法,其特征在于,该方法具体还包括:故障SSD接收到当次FTL映射表预置命令后,按照PBA格式扫描对应分区空间的剩余未扫描存储单元,将存储单元的物理块地址依次与FTL映射表的逻辑块地址进行映射时,从FTL映射表的起始逻辑块地址开始写入,覆写前一次写入的物理块地址。5.根据权利要求4所述的主机构建SSD FTL映射表的方法,其特征在于,该方法具体还包括:若故障SSD接收到当次FTL映射表预置命令后,所扫描的存储单元个数少于前一次所扫描的存储单元个数...

【专利技术属性】
技术研发人员:陈庆陆
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1