固态硬盘元数据的写入方法、恢复方法及固态硬盘技术

技术编号:22217988 阅读:45 留言:0更新日期:2019-09-30 00:50
本发明专利技术提出了一种固态硬盘元数据的写入方法、恢复方法及固态硬盘,固态硬盘的元数据的写入方法包括:针对元数据的每次修改生成一条更新日志;当已生成的更新日志的容量大小大于第一预设值时,将已生成的更新日志写入闪存;当累计写入至闪存内的更新日志的总容量大小超过第二预设值时;将写入闪存内的所有更新日志对应的元数据快照写入至闪存;重新累计写入至所述闪存内的所述更新日志的总容量大小。根据本发明专利技术的固态硬盘的元数据的写入方法,可以保证固态硬盘断电时,元数据的更新日志可以全部写入闪存内。而且,可以保证固态硬盘重启时,在启动时间内快速完成元数据的读取和更新。

Writing Method, Recovery Method and Solid State Hard Disk Metadata

【技术实现步骤摘要】
固态硬盘元数据的写入方法、恢复方法及固态硬盘
本专利技术涉及计算机
,尤其涉及一种固态硬盘元数据的写入方法、恢复方法及固态硬盘。
技术介绍
固态硬盘中的元数据包括逻辑地址到物理地址的映射表,描述闪存物理块的信息,例如擦除次数和有效页面等。这些数据用于寻址用户数据以及控制器内部的算法依据,是固态硬盘能够正常工作的关键。相关技术中,对固态硬盘的元数据不进行持久化处理,或者对固态硬盘的元数据进行部分持久化处理。固态硬盘上电重启后,固态硬盘控制器需扫描整个固态硬盘以重建这些元数据。但是重建大容量的固态硬盘的元数据需要很长的时间,通常会超过操作系统或BIOS(基本输入输出系统)允许的最长重启时间,造成系统重启失败甚至用户数据的丢失。也有相关技术对固态硬盘的元数据进行周期性持久化处理,这样上电重启后不需要重建元数据,可以在很短的时间完成重启。但是,如果掉电发生在元数据持久化时,对于大容量固态硬盘,例如4TB,映射单元如果是4K,则元数据至少是4GB,持久化整个元数据耗时较长。由此,会造成元数据的丢失。
技术实现思路
本专利技术要解决的技术问题是如何避免固态硬盘断电时元数据丢失并减少元数据恢复所需的时间,提供一种固态硬盘元数据的写入方法、恢复方法及固态硬盘。本专利技术提出一种固态硬盘元数据的写入方法,包括:日志生成步骤:针对元数据的每次修改生成一条更新日志;第一判断执行步骤:当已生成的所述更新日志的容量大小大于第一预设值时,将已生成的所述更新日志写入闪存,重复执行所述第一判断执行步骤;第二判断执行步骤:当累计写入至所述闪存内的所述更新日志的总容量大小超过第二预设值时,将写入所述闪存内的所有所述更新日志对应的元数据快照写入至所述闪存,重新累计写入至所述闪存内的所述更新日志的总容量大小,重复执行所述第二判断执行步骤。根据本专利技术的固态硬盘的元数据的写入方法,通过读取更新日志可以对元数据进行更新。而且,通过设置第一预设值,可以保证固态硬盘断电时,元数据的更新日志可以全部写入闪存内,避免了固态硬盘断电而导致元数据更新日志数据丢失的问题。而且,通过设置第二预设值,可以保证固态硬盘重启时,在启动时间内快速完成元数据的读取和更新,提高了固态硬盘运行的可靠性。根据本专利技术的一些实施例,所述方法还包括:记录相邻的两个所述数据快照之间生成的所述更新日志的索引,所述索引用于提供所述更新日志的地址指针。在本专利技术的一些实施例中,所述记录相邻的两个所述数据快照之间生成的所述更新日志的索引,具体包括:在相邻的两个所述数据快照中的前一个所述数据快照生成之后,记录生成的第一个所述更新日志的索引;在相邻的两个所述数据快照中的后一个所述数据快照生成前,记录生成的最后一个所述更新日志的索引。根据本专利技术的一些实施例,所述方法还包括:当所述固态硬盘断电时,将容量小于所述第一预设值的所述更新日志写入闪存。在本专利技术的一些实施例中,所述第一预设值的取值范围为2M字节至20M字节根据本专利技术的一些实施例,所述第二预设值的取值范围为512M字节至1G字节。根据本专利技术的固态硬盘元数据的恢复方法,包括:读取采用上述所述的固态硬盘数据的写入方法最后一次生成的数据快照;根据所述更新日志的索引,读取最后一次的所述数据快照之后生成的所述更新日志;基于所述更新日志对所述数据快照进行更新,并生成最新的数据快照。根据本专利技术的固态硬盘元数据的恢复方法,固态硬盘可以通过读取元数据的数据快照和数据快照后生成的更新日志,基于更新日志对元数据的数据进行更新,以使固态硬盘可以在启动时间内高效、可靠地完成元数据的更新和保存。而且,可以有效避免固态硬盘断电时导致元数据丢失问题。在本专利技术的一些实施例中,所述方法,还包括:在数据快照更新过程中断电时,重新读取最后一次所述数据快照和在最后一次所述数据快照之后生成的所述更新日志,基于所述更新日志对所述数据快照进行更新。根据本专利技术的固态硬盘,包括:存储单元,用于提供闪存;控制单元,用于针对元数据的每次修改生成一个更新日志;当所述更新日志的容量大于第一预设值时,将所述更新日志写入所述闪存;当累计写入至所述闪存内的所述更新日志的容量总和超过第二预设值时,将写入所述闪存内的所有所述更新日志对应的元数据快照写入至所述闪存,重新累计写入至所述闪存内的所述更新日志的总容量大小。根据本专利技术的固态硬盘,可以利用更新日志更新固态硬盘的元数据,当更新日志的数据量大于第一预设值时,即将更新日志及时写入闪存内。由此,可以避免固态硬盘断电时导致固态硬盘数据丢失的问题。当累积写入固态硬盘内的更新日志的总容量的大小大于第二预设值时,即将元数据写入闪存。由此,可以保证在固态硬盘的预定启动时间内完成固态硬盘的元数据的读取和更新,提高了固态硬盘的整体性能。根据本专利技术的一些实施例,所述控制单元还用于:当所述固态硬盘断电时,将容量小于所述第一预设值的更新日志写入所述闪存。附图说明图1是根据本专利技术实施例的固态硬盘元数据的写入方法流程图;图2是根据本专利技术实施例的固态硬盘元数据的恢复方法的流程图;图3是根据本专利技术实施例的固态硬盘的结构示意图。附图标记:固态硬盘100,闪存110,控制器120,固件算法模块130。具体实施方式为更进一步阐述本专利技术为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本专利技术进行详细说明如后。如图1所示,根据本专利技术实施例的固态硬盘100元数据的写入方法,包括:S101,日志生成步骤:针对元数据的每次修改生成一条更新日志。需要说明的是,固态硬盘100的元数据是固态硬盘100能够正常工作的关键,元数据可以包括flash(闪存)映射表和flash(闪存)描述表。其中,flash映射表可以为记录逻辑地址到物理地址的映射表,flash描述表可以用于描述flash块的bad/good,即flash描述表可以用于记录闪存110物理块的信息,例如flash描述表可以用于记录闪存110物理块的擦除次数和有效页面等。元数据的每次修改生成的changelog(更新日志)可以包括地址偏移和修改后的值,从而通过更新日志可以对元数据进行更新。需要说明的是,元数据的修改和更新日志的生成可以同步进行,即元数据修改时,同时生成更新日志;元数据的修改和跟新日志的生成也可以非同步运行。S102,第一判断执行步骤:当已生成的更新日志的容量大小大于第一预设值时,将已生成的更新日志写入闪存110,重复执行第一判断执行步骤。需要说明的是,固态硬盘100断电时,固态硬盘100的电容可以支撑将小容量的数据写入闪存110,第一预设值的取值范围可以根据固态硬盘的电容可以支撑写入内存的数据量进行计算设置。例如,第一预设值的取值范围可以设置为小于固态硬盘的电容可以支撑写入闪存内的最大数据量。由此,通过设置第一预设值,当生成的更新日志的容量大小大于第一预设值时,即将已生成的更新日志写入闪存110。而容量小于第一预设值的更新日志,即使在固态硬盘100发生断电时,也可以通过固态硬盘100的电容支撑写入至闪存110内。由此,可以避免固态硬盘100断电时,导致更新日志数据丢失的问题。S103,第二判断执行步骤:当累计写入至闪存110内的更新日志的总容量大小超过第二预设值时,将元数据的数据快照(snapshot)写入闪存110。需要说明的本文档来自技高网...

【技术保护点】
1.一种固态硬盘元数据的写入方法,其特征在于,包括:日志生成步骤:针对元数据的每次修改生成一条更新日志;第一判断执行步骤:当已生成的所述更新日志的容量大小大于第一预设值时,将已生成的所述更新日志写入闪存,重复执行所述第一判断执行步骤;第二判断执行步骤:当累计写入至所述闪存内的所述更新日志的总容量大小超过第二预设值时;将写入所述闪存内的所有的所述更新日志对应的元数据快照写入至所述闪存,重新累计写入至所述闪存内的所述更新日志的总容量大小,重复执行所述第二判断执行步骤。

【技术特征摘要】
1.一种固态硬盘元数据的写入方法,其特征在于,包括:日志生成步骤:针对元数据的每次修改生成一条更新日志;第一判断执行步骤:当已生成的所述更新日志的容量大小大于第一预设值时,将已生成的所述更新日志写入闪存,重复执行所述第一判断执行步骤;第二判断执行步骤:当累计写入至所述闪存内的所述更新日志的总容量大小超过第二预设值时;将写入所述闪存内的所有的所述更新日志对应的元数据快照写入至所述闪存,重新累计写入至所述闪存内的所述更新日志的总容量大小,重复执行所述第二判断执行步骤。2.根据权利要求1所述的固态硬盘元数据的写入方法,其特征在于,所述方法,还包括:记录相邻的两个所述数据快照之间生成的所述更新日志的索引,所述索引用于提供所述更新日志的地址指针。3.根据权利要求2所述的固态硬盘元数据的写入方法,其特征在于,所述记录相邻的两个所述数据快照之间生成的所述更新日志的索引,具体包括:在相邻的两个所述数据快照中的前一个所述数据快照生成之后,记录生成的第一个所述更新日志的索引;在相邻的两个所述数据快照中的后一个所述数据快照生成前,记录生成的最后一个所述更新日志的索引。4.根据权利要求1所述的固态硬盘元数据的写入方法,其特征在于,所述方法,还包括:当所述固态硬盘断电时,将容量小于所述第一预设值的所述更新日志写入闪存。5.根据权利要求1所述的固态硬盘元数据的写入方法,其特...

【专利技术属性】
技术研发人员:邓辉周炎钧
申请(专利权)人:青岛镕铭半导体有限公司
类型:发明
国别省市:山东,37

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

1