CN115080454B - 一种ssd元数据快照保存与恢复方法、装置及设备 - Google Patents
一种ssd元数据快照保存与恢复方法、装置及设备 Download PDFInfo
- Publication number
- CN115080454B CN115080454B CN202210904975.1A CN202210904975A CN115080454B CN 115080454 B CN115080454 B CN 115080454B CN 202210904975 A CN202210904975 A CN 202210904975A CN 115080454 B CN115080454 B CN 115080454B
- Authority
- CN
- China
- Prior art keywords
- size
- ssd
- determining
- delta
- module
- 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.)
- Active
Links
Classifications
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机技术领域,公开了一种SSD元数据快照保存与恢复方法,针对采用delta+base快照保存元数据的方式,该方法通过预设上电恢复时间反推SSD元数据刷写帧中base buffer大小与deltabuffer大小的比值,进而获得写放大值。然后评估写放大是否满足要求,如果不满足,则调整比值,即调整base buffer大小与delta buffer大小的比值,从而平衡上电恢复时间和写放大要求,在延长SSD的寿命的同时,让SSD上电之后可以快速进入工作状态。此外,本申请还提供了一种SSD元数据快照保存与恢复装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种SSD元数据快照保存与恢复方法、装置、设备及可读存储介质。
背景技术
元数据,也称为管理数据,是SSD(Solid State Drives,固态硬盘)系统正常运行的核心数据,包括L2P(Logical To Physical Table,逻辑块到物理块的映射表),trim表和block info等类型。SSD运行时,元数据驻留在SSD的DDR中。SSD下电时,需要将DDR中驻留的元数据刷写到NAND中;SSD上电时,需要从NAND中将元数据读出再恢复到DDR中所在位置。
元数据常用的保存方式有两种:整份保存方式和快照保存方式。整份保存方式是SSD在下电的过程中将该类型的元数据全部刷写到NAND中,适用于数据量比较小的元数据,通常是NAND SLC Page大小的个数倍;快照保存方式,也称为增量保存方式,SSD在运行过程中收集元数据的改变量(增量数据)存储在cache buffer中,当增量数据的数量满足阈值条件时,可以按照一定规则将DDR中定量的元数据拷贝到cache buffer中,然后将cachebuffer刷写到NAND中。显然,快照方式适用于数据量比较大的元数据。异常掉电时,由于SSD内部备用电源仅能提供几十ms的电量,SSD只需要刷写少量的partial cache buffer到NAND中就可以。
上电恢复时,对于采用整份保存方式的元数据,SSD只需要全部读出并恢复到DDR中相应位置即可;对于采用快照方式保存的元数据,SSD需要依次从NAND中读取快照,在单个快照内,先把保存过程中cache buffer存储的定量元数据恢复到DDR中相应位置,再把快照中存储的增量数据按序更新到DDR中的对应位置。
对于上述快照保存方式,如何实现写放大和上电恢复时间之间的平衡,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种SSD元数据快照保存与恢复方法、装置、设备及可读存储介质,用以解决目前缺乏有效的平衡写放大和上电恢复时间的方案的问题。其具体方案如下:
第一方面,本申请提供了一种SSD元数据快照保存与恢复方法,包括:
S1、根据预设上电恢复时间,确定delta数据更新量;
S2、根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量;
S3、根据所述delta数据更新量和L2P表的大小,确定比值;
S4、根据所述delta数据更新量和所述L2P表的大小,以及所述用户数据的写入量计算写放大值;
S5、判断所述写放大值是否落入目标范围,若是,则输出所述比值;否则,调整所述比值,回到S4;
S6、按照最终输出的所述比值,进行元数据的快照保存和恢复。
可选的,所述根据预设上电恢复时间,确定delta数据更新量,包括:
根据L2P表的大小和读带宽,确定从NAND中读取整份所述L2P表消耗的时间;
对预设上电恢复时间和所述读取所述整份L2P表消耗的时间做差,得到更新所述L2P表消耗的时间;
根据所述更新所述L2P表消耗的时间,确定delta数据更新量。
可选的,在所述根据L2P表的大小和读带宽,确定从NAND中读取整份所述L2P表消耗的时间之前,还包括:
获取SSD容量,根据所述SSD容量确定L2P表的大小。
可选的,所述根据所述SSD容量确定L2P表的大小,包括:
按照目标公式,根据所述SSD容量计算L2P表的大小,所述目标公式为:L2P_TABLE_SIZE=SSD_CAP/1000,其中,L2P_TABLE_SIZE表示L2P表的大小,单位为GB;SSD_CAP表示SSD容量,单位为TB。
可选的,所述根据所述更新所述L2P表消耗的时间,确定delta数据更新量,包括:
通过构建测试case,获得SSD控制器以预设大小随机访问DDR的速度;根据所述速度和所述更新所述L2P表消耗的时间,确定delta数据更新量。
可选的,在所述根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量之前,还包括:
设置写缓存的大小等于SLC page大小,所述写缓存包括头部缓存、delta buffer和base buffer。
可选的,所述调整所述比值,包括:
按照10%的比例缩小所述base buffer大小。
第二方面,本申请提供了一种SSD元数据快照保存与恢复装置,包括:
delta数据更新量确定模块,用于根据预设上电恢复时间,确定delta数据更新量;
base数据总量确定模块,用于根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量;
比值确定模块,用于根据所述delta数据更新量和L2P表的大小,确定比值;
写放大值计算模块,用于根据所述delta数据更新量和所述L2P表的大小,以及所述用户数据的写入量计算写放大值;
判断模块,用于判断所述写放大值是否落入目标范围,若是,则输出所述比值;否则,触发调整模块,用于调整所述比值,回到所述写放大值计算模块;
保存和恢复模块,用于按照最终输出的所述比值,进行元数据的快照保存和恢复。
可选地,delta数据更新量确定模块包括时间消耗子模块、差运算子模块和确定子模块;
时间消耗子模块,用于根据L2P表的大小和读带宽,确定从NAND中读取整份L2P表消耗的时间;
差运算子模块,用于对预设上电恢复时间和读取整份L2P表消耗的时间做差,得到更新L2P表消耗的时间;
确定子模块,用于根据更新L2P表消耗的时间,确定delta数据更新量。
可选地,还包括L2P表的大小确定模块;
L2P表的大小确定模块,用于获取SSD容量,根据SSD容量确定L2P表的大小。
可选地,L2P表的大小确定模块,用于按照目标公式,根据SSD容量计算L2P表的大小,目标公式为:L2P_TABLE_SIZE=SSD_CAP/1000,其中,L2P_TABLE_SIZE表示L2P表的大小,单位为GB;SSD_CAP表示SSD容量,单位为TB。
可选地,确定子模块,用于通过构建测试case,获得SSD控制器以预设大小随机访问DDR的速度;根据速度和更新L2P表消耗的时间,确定delta数据更新量。
可选地,还包括设置模块;
设置模块,用于设置写缓存的大小等于SLC page大小,写缓存包括头部缓存、delta buffer和base buffer。
可选地,调整模块,用于按照10%的比例缩小base buffer大小。
第三方面,本申请提供了一种SSD元数据快照保存与恢复设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的SSD元数据快照保存与恢复方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的SSD元数据快照保存与恢复方法。
本申请所提供的一种SSD元数据快照保存与恢复方法,包括:根据预设上电恢复时间,确定delta数据更新量;根据delta数据更新量和用户数据单元大小,确定用户数据的写入量;根据delta数据更新量和L2P表的大小,确定比值;根据delta数据更新量和L2P表的大小,以及用户数据的写入量计算写放大值;判断写放大值是否落入目标范围,若是,则输出比值;否则,调整比值,回到计算写放大值的步骤;按照最终输出的比值,进行元数据的快照保存和恢复。
可见,针对采用delta+base快照保存元数据的方式,该方法通过预设上电恢复时间反推SSD元数据刷写帧中base buffer大小与delta buffer大小的比值,进而获得写放大值。然后评估写放大是否满足要求,如果不满足,则调整比值,即调整base buffer大小与delta buffer大小的比值,从而平衡上电恢复时间和写放大要求,在延长SSD的寿命的同时,让SSD上电之后可以快速进入工作状态。
此外,本申请还提供了一种SSD元数据快照保存与恢复装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的SSD元数据快照保存与恢复方法实施例一的整体流程图;
图2为本申请所提供的SSD元数据快照保存与恢复方法实施例一的缓存结构示意图;
图3为本申请所提供的SSD元数据快照保存与恢复方法实施例一中步骤S11的细化流程图;
图4为本申请所提供的SSD元数据快照保存与恢复装置实施例的是示意图;
图5为本申请所提供的SSD元数据快照保存与恢复设备实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
本申请的核心在于提供一种SSD元数据快照保存与恢复方法、装置、设备及可读存储介质,通过预设上电恢复时间反向计算元数据刷写帧中delta数据与base数据的比值,并获得写放大值。在此基础上,通过调节比值,平衡上电恢复时间和保存元数据引起的写放大。
下面对本申请提供的SSD元数据快照保存与恢复方法实施例一进行介绍,参见图1,实施例一包括:
S11、根据预设上电恢复时间,确定delta数据更新量;
S12、根据delta数据更新量和用户数据单元大小,确定用户数据的写入量;
S13、根据delta数据更新量和L2P表的大小,确定比值;
S14、根据delta数据更新量和L2P表的大小,以及用户数据的写入量计算写放大值;
S15、判断写放大值是否落入目标范围,若是,则输出比值;否则,调整比值,回到S14;
S16、按照最终输出的比值,进行元数据的快照保存和恢复。
上电恢复时间是SSD的一个重要指标,恢复时间越短,SSD就会越快进入工作状态。通常,恢复时间要求10s左右。由于元数据中L2P表的数据量最大,比如4TB SSD的L2P表有4GB。SSD整个上电恢复耗时基本都在恢复L2P表的过程中,其他元数据的恢复时间基本可以忽略。所以,本实施例主要考虑L2P表的恢复过程。
本实施例基于SSD采用快照保存方式保存元数据,即采用delta+base的方式保存元数据,其中delta是指增量数据,来源于base数据。具体的,将DDR中的整份L2P表称为base数据,L2P表的某个表项(lba0,pba0)复写成(lba0,pba1),则(lba0,pba1)就是一个L2P类型的delta数据。
如图2所示,元数据刷写帧包括buffer header信息、delta数据和base数据,在DDR中开辟若干write buffer(即写缓存,用于缓存元数据刷写帧),每个write buffer的前header size大小用于缓存buffer header信息,紧跟的delta buffer size大小用于缓存delta数据,剩下的base buffer size大小用于缓存base数据,其中write buffer=(header buffer,delta buffer,base buffer)。
由此可以看出,write buffer size=header size+delta buffer size+basebuffer size。值得一提的是,L2P表都存储在SLC中,NAND以page为单位进行读写,所以,write buffer size一般取SLC page大小,即16K。而header size一般取64bytes大小。所以,delta buffer size与base buffer size的和也是定值。
设delta buffer size:base buffer size=1:N,若将N调大,delta buffer size相应变小,SSD刷写write buffer的速度就会变快,但是写放大也会增加;相反,若将N调小,delta buffer size相应变大,可以存储的增量数据就会增多,而上电恢复时间主要与L2P类型的增量数据数量有关,增量数据越大上电恢复时间也就越长。所以,N的取值影响到写放大和上电恢复时间,如何确定一个N的数值从而保证写放大和上电恢复时间之间的平衡,是非常关键的。
如图3所示,上述S11具体包括以下步骤:
S31、根据L2P表的大小和读带宽,确定从NAND中读取整份L2P表消耗的时间;
具体的,获取SSD容量,根据SSD容量计算L2P表的大小。具体计算方式为L2P_TABLE_SIZE=SSD_CAP/1000,其中,L2P_TABLE_SIZE表示L2P表的大小,单位为GB;SSD_CAP表示SSD容量,单位为TB。
S32、对预设上电恢复时间和读取整份L2P表消耗的时间做差,得到更新L2P表消耗的时间;
S33、根据更新L2P表消耗的时间,确定delta数据更新量。
具体的,通过构建测试case,获得SSD控制器以预设大小随机访问DDR的速度;根据该速度和更新所述L2P表消耗的时间,确定delta数据更新量。
如上文所述,delta buffer size与base buffer size的和是定值,所以调整basebuffer大小,相当于同时调整delta buffer的大小,也即调整二者的比值N。
在调整过程中,若将N调大,delta buffer size相应变小,SSD刷写write buffer的速度就会变快,但是写放大也会增加;相反,若将N调小,delta buffer size相应变大,上电恢复时间也就越长。上文所述的预设上电恢复时间为理想值,所以,为保证写放大满足要求,一般是将N向更小的方向调整,即将base buffer大小调小。同时,为了避免调整后的上电恢复时间过大,需要逐步微调,如按照较小的比例调小base buffer大小,具体的调整策略可以根据实际需求设定,本实施例不做限定。
本实施例所提供的SSD元数据快照保存与恢复方法,针对采用delta+base快照方式保存元数据的方案中,需要确定write buffer中delta buffer与base buffer的比值N问题,提出了一种通过预设上电恢复时间反向推算比值的方法,再获得写放大值。进一步的,在合理的写放大范围内,通过微调增大N值,可以优化SSD上电恢复时间;在可接受的上电恢复时间要求下,通过微调减小N值,可以降低SSD刷写元数据引起的写放大,提高SSD寿命。该方法可有效平衡刷写元数据引起的写放大和上电恢复时间的要求。总之,本实施例调整N值的方法,既保证了写放大在合理范围内,又满足了上电恢复时间符合开发需求。
下面开始详细介绍本申请提供的SSD元数据快照保存与恢复方法实施例二。实施例二在前述实施例一的基础上,以实际应用为例对整个方案进行详尽说明。下面分四部分进行介绍:元数据保存流程、元数据恢复流程、比值计算流程、比值调整流程。
第一,保存流程
SSD中由JM(Journal Manager,日志管理器)负责L2P表的保存和恢复。在保存L2P表时,JM将DDR中的整份L2P表视作base数据,以base buffer size将整份L2P表分段,每一段都称为base段。Base段的数量等于L2P表的JM_LBA的数量,每一个JM_LBA唯一对应一个base段,JM_LBA用于索引L2P表的JM_l2p_entry。
JM接收L2P的增量数据并存储在write buffer中的delta buffer区,待增量数据将delta buffer填满之后,按序拷贝base段到write buffer中的base buffer区,添加对应的JM_LBA等信息到buffer header中,而后将16K的write buffer刷写到SLC中。刷写的SLCflash address记为PCA,与JM_LBA产生一对映射关系(JM_LBA,PCA)更新到JM l2p表中。当所有的base段保存一轮之后,整份L2P表就完成了一次刷写。JM_LBA可以循环使用。
第二,元数据恢复流程
上电恢复是保存流程的逆向过程。JM首先根据JM_LBA,依次读取JM_l2p表,获得PCA后发送读NAND请求。NAND控制器会将当前的16K SLC page大小的数据搬移到writebuffer中。JM先将base数据恢复到DDR中的相应位置,再依次读取delta数据,更新到L2P表中。当所有JM_LBA读取完成,整个L2P表就恢复到DDR的相应位置了。
第三,write buffer中delta buffer和base buffer的比值
获取上电恢复时间,上电恢复时间是要求指标,这里定义为RECVOERY_TIME_IN_SEC;获取读带宽,读带宽是SSD的主要性能指标之一,这里定义为READ_THROUGHPUT;对于SSD_CAP容量(单位TB)的SSD,其L2P表大小的计算方式如下:L2P_TABLE_SIZE=(SSD_CAP/1000)GB。
那么,从NAND中读取整份L2P表的SLC的时间消耗为:
READ_SLC_TIME=L2P_TABLE_SIZE/READ_THROUGHPUT;
剩余用于l2p delta更新L2P表的时间为:
PATCH_L2P_TOTAL_TIME=RECVOERY_TIME_IN_SEC-READ_SLC_TIME;
通过构建测试case获得SSD控制器以DWORD大小随机访问DDR的速度,定义为WRITE_DWORD_CNT_PER_SEC。那么在要求的delta更新时间内,可以更新的数据量为:
TOTAL_L2P_PATCH_CNT=WRITE_DWORD_CNT_PER_SEC*PA TCH_L2P_TOTAL_TIME;
假设SSD HOST_DATA_UINT_SIZE=4KiB,即每一个l2p delta都对应一笔4KiB的用户数据,那么更新的用户数据总量为:
TOTAL_HOST_DATA_SIZE=TOTAL_L2P_PATCH_CNT*HOST_D ATA_UINT_SIZE;
从上可知,Host写入SSD的用户数据量TOTAL_HOST_DATA_SIZE时,SSD就需要刷写一整份L2P表。而L2P delta的形式为(HOST LBA,PBA),其大小记录为L2P_DELTA_SIZE,那么产生的L2P delta数据总量为:
TOTAL_L2P_DELTA_SIZE=TOTAL_L2P_PATCH_CNT*L2P_DEL TA_SIZE;
那么,delta与base的比值为:
Delta:base=TOTAL_L2P_DELTA_SIZE:L2P_TABLE_SIZE=1:N;
写放大为:
SSD_WA=(L2P_TABLE_SIZE+TOTAL_L2P_DELTA_SIZE+TOTA L_HOST_DATA_SIZE)/TOTAL_HOST_DATA_SIZE。
综上,通过上述推算计算的写放大SSD_WA如果不符合写放大需求,可以适当微调减小N值,这样会对不同程度的延长上电恢复时间,这时可以通过优化上电恢复流程或者借助多核恢复的并发等方式,压缩上电恢复时间。
第四,Delta与base比例调整过程
通过上电恢复时间反向推算的方法,获得write buffer中delta与base的比例delta:base=1:N,其中N值可视为基础比例值以及写放大WA值。
一般地,刷写元数据引起的写放大与总的写放大量的比例小于5%是可以接受的。比如,N=3情况下,16k write buffer中delta buffer=4kiB,base buffer=12kiB,每一个L2P delta大小为8bytes,那么delta buffer可以存储delta_num_per_buf=512(4kiBwrite_buf_size/8L2P_delta_size),需要刷写的用户数据为512delta_num_per_buf*4kiBhost_data_unit=2048kiB。写放大WA=(16kiB write_buf_size+2048kiB host_data_size)/2048kiB host_data_size=1+1/128。而一般地,SSD总的写放大量至少在2以上。所以,比例值(1/128)/2*100%=0.3%,这个值远小于5%的上限值。
进一步地,如果采用N值的SSD实测上电恢复时间不满足需求,可以微调N值来获得符合需求的上电恢复时间:
(1)减小N值可以减少delta buffer中保存的delta数量,有利于缩减上电恢复时间。采用10%的比例缩小base buffer大小,就是delta_num_per_buf的十分之一的数量,即(delta_num_per_buf/10),来减少delta buffer中保存的delta数量,直到实测上电恢复时间满足需求。但是,减少delta buffer中delta的数量会加快write buffer的刷写速度,写放大也会有所增加,进一步影响SSD的写入性能。因此,减少delta buffer中保存的delta数量的最低限度是以不影响SSD的写入性能为主,这可以通过SSD实测进行验证。在最低限度下,如果上电恢复时间还不能满足需求,就要在此基础上,考虑其他上电恢复时间的优化方法,比如增加上电恢复过程的CPU参与个数等。
(2)增大N值可以增加delta buffer中保存的delta数量,有利于减小元数据刷写引起的写放大。但是,刷写元数据引起的写放大往往影响都很小,因此,一般很少会有该种方式的调节,而是更多的关注缩减上电恢复时间指标。
下面对本申请实施例提供的SSD元数据快照保存与恢复装置进行介绍,下文描述的SSD元数据快照保存与恢复装置与上文描述的SSD元数据快照保存与恢复方法可相互对应参照。
如图4所示,本实施例的SSD元数据快照保存与恢复装置,包括:
delta数据更新量确定模块41,用于根据预设上电恢复时间,确定delta数据更新量;
base数据总量确定模块42,用于根据delta数据更新量和用户数据单元大小,确定用户数据的写入量;
比值确定模块43,用于根据delta数据更新量和L2P表的大小,确定比值;
写放大值计算模块44,用于根据delta数据更新量和L2P表的大小,以及用户数据的写入量计算写放大值;
判断模块45,用于判断写放大值是否落入目标范围,若是,则输出比值;否则,触发调整模块46,用于调整比值,回到写放大值计算模块44;
保存和恢复模块47,用于按照最终输出的比值,进行元数据的快照保存和恢复。
本实施例的SSD元数据快照保存与恢复装置用于实现前述的SSD元数据快照保存与恢复方法,因此该装置的具体实施方式可见前文中的SSD元数据快照保存与恢复方法的实施例部分,这里不再赘述。
可选地,delta数据更新量确定模块包括时间消耗子模块、差运算子模块和确定子模块;
时间消耗子模块,用于根据L2P表的大小和读带宽,确定从NAND中读取整份L2P表消耗的时间;
差运算子模块,用于对预设上电恢复时间和读取整份L2P表消耗的时间做差,得到更新L2P表消耗的时间;
确定子模块,用于根据更新L2P表消耗的时间,确定delta数据更新量。
可选地,还包括L2P表的大小确定模块;
L2P表的大小确定模块,用于获取SSD容量,根据SSD容量确定L2P表的大小。
可选地,L2P表的大小确定模块,用于按照目标公式,根据SSD容量计算L2P表的大小,目标公式为:L2P_TABLE_SIZE=SSD_CAP/1000,其中,L2P_TABLE_SIZE表示L2P表的大小,单位为GB;SSD_CAP表示SSD容量,单位为TB。
可选地,确定子模块,用于通过构建测试case,获得SSD控制器以预设大小随机访问DDR的速度;根据速度和更新L2P表消耗的时间,确定delta数据更新量。
可选地,还包括设置模块;
设置模块,用于设置写缓存的大小等于SLC page大小,写缓存包括头部缓存、delta buffer和base buffer。
可选地,调整模块,用于按照10%的比例缩小base buffer大小。
本申请所提供的一种SSD元数据快照保存与恢复装置,delta数据更新量确定模块,用于根据预设上电恢复时间,确定delta数据更新量;base数据总量确定模块,用于根据delta数据更新量和用户数据单元大小,确定用户数据的写入量;比值确定模块,用于根据delta数据更新量和L2P表的大小,确定比值;写放大值计算模块,用于根据delta数据更新量和L2P表的大小,以及用户数据的写入量计算写放大值;判断模块,用于判断写放大值是否落入目标范围,若是,则输出比值;否则,触发调整模块,用于调整比值,回到写放大值计算模块;保存和恢复模块,用于按照最终输出的比值,进行元数据的快照保存和恢复。
可见,针对采用delta+base快照保存元数据的方式,该方法通过预设上电恢复时间反推SSD元数据刷写帧中base buffer大小与delta buffer大小的比值,进而获得写放大值。然后评估写放大是否满足要求,如果不满足,则调整比值,即调整base buffer大小与delta buffer大小的比值,从而平衡上电恢复时间和写放大要求,在延长SSD的寿命的同时,让SSD上电之后可以快速进入工作状态。
此外,本申请还提供了一种SSD元数据快照保存与恢复设备,如图5所示,包括:
存储器100:用于存储计算机程序;
处理器200:用于执行所述计算机程序,以实现如上文所述的SSD元数据快照保存与恢复方法。
其中,处理器200可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器200可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器200也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器200可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器200还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器100可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器100还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。
可以理解的是,如果上述实施例中的SSD元数据快照保存与恢复方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的SSD元数据快照保存与恢复方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种SSD元数据快照保存与恢复方法,其特征在于,包括:
S1、根据预设上电恢复时间,确定delta数据更新量;
S2、根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量;
S3、根据所述delta数据更新量和L2P表的大小,确定比值;
S4、根据所述delta数据更新量和所述L2P表的大小,以及所述用户数据的写入量计算写放大值;
S5、判断所述写放大值是否落入目标范围,若是,则输出所述比值;否则,调整所述比值,回到S4;
S6、按照最终输出的所述比值,进行元数据的快照保存和恢复;
所述根据预设上电恢复时间,确定delta数据更新量,包括:
根据L2P表的大小和读带宽,确定从NAND中读取整份所述L2P表消耗的时间;
对预设上电恢复时间和所述读取所述整份L2P表消耗的时间做差,得到更新所述L2P表消耗的时间;
根据所述更新所述L2P表消耗的时间,确定delta数据更新量。
2.如权利要求1所述的方法,其特征在于,在所述根据L2P表的大小和读带宽,确定从NAND中读取整份所述L2P表消耗的时间之前,还包括:
获取SSD容量,根据所述SSD容量确定L2P表的大小。
3.如权利要求2所述的方法,其特征在于,所述根据所述SSD容量确定L2P表的大小,包括:
按照目标公式,根据所述SSD容量计算L2P表的大小,所述目标公式为:L2P_TABLE_SIZE=SSD_CAP/1000,其中,L2P_TABLE_SIZE表示L2P表的大小,单位为GB;SSD_CAP表示SSD容量,单位为TB。
4.如权利要求1所述的方法,其特征在于,所述根据所述更新所述L2P表消耗的时间,确定delta数据更新量,包括:
通过构建测试case,获得SSD控制器以预设大小随机访问DDR的速度;根据所述速度和所述更新所述L2P表消耗的时间,确定delta数据更新量。
5.如权利要求1至4任意一项所述的方法,其特征在于,在所述根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量之前,还包括:
设置写缓存的大小等于SLC page大小,所述写缓存包括头部缓存、delta buffer和base buffer。
6.如权利要求5所述的方法,其特征在于,所述调整所述比值,包括:
按照10%的比例缩小所述base buffer大小。
7.一种SSD元数据快照保存与恢复装置,其特征在于,包括:
delta数据更新量确定模块,用于根据预设上电恢复时间,确定delta数据更新量;
base数据总量确定模块,用于根据所述delta数据更新量和用户数据单元大小,确定用户数据的写入量;
比值确定模块,用于根据所述delta数据更新量和L2P表的大小,确定比值;
写放大值计算模块,用于根据所述delta数据更新量和所述L2P表的大小,以及所述用户数据的写入量计算写放大值;
判断模块,用于判断所述写放大值是否落入目标范围,若是,则输出所述比值;否则,触发调整模块,用于调整所述比值,回到所述写放大值计算模块;
保存和恢复模块,用于按照最终输出的所述比值,进行元数据的快照保存和恢复;
delta数据更新量确定模块包括时间消耗子模块、差运算子模块和确定子模块;时间消耗子模块,用于根据L2P表的大小和读带宽,确定从NAND中读取整份L2P表消耗的时间;差运算子模块,用于对预设上电恢复时间和读取整份L2P表消耗的时间做差,得到更新L2P表消耗的时间;确定子模块,用于根据更新L2P表消耗的时间,确定delta数据更新量。
8.一种SSD元数据快照保存与恢复设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1至6任意一项所述的SSD元数据快照保存与恢复方法。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1至6任意一项所述的SSD元数据快照保存与恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904975.1A CN115080454B (zh) | 2022-07-29 | 2022-07-29 | 一种ssd元数据快照保存与恢复方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904975.1A CN115080454B (zh) | 2022-07-29 | 2022-07-29 | 一种ssd元数据快照保存与恢复方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115080454A CN115080454A (zh) | 2022-09-20 |
CN115080454B true CN115080454B (zh) | 2025-01-24 |
Family
ID=83243411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210904975.1A Active CN115080454B (zh) | 2022-07-29 | 2022-07-29 | 一种ssd元数据快照保存与恢复方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080454B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591790A (zh) * | 2011-12-30 | 2012-07-18 | 记忆科技(深圳)有限公司 | 基于固态硬盘的数据存储快照实现方法及固态硬盘 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4704893B2 (ja) * | 2005-11-15 | 2011-06-22 | 株式会社日立製作所 | 計算機システム及び管理計算機とストレージシステム並びにバックアップ管理方法 |
US11188261B2 (en) * | 2019-11-18 | 2021-11-30 | International Business Machines Corporation | Memory controllers for solid-state storage devices |
US11625370B2 (en) * | 2020-04-07 | 2023-04-11 | Vmware, Inc. | Techniques for reducing data log recovery time and metadata write amplification |
-
2022
- 2022-07-29 CN CN202210904975.1A patent/CN115080454B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591790A (zh) * | 2011-12-30 | 2012-07-18 | 记忆科技(深圳)有限公司 | 基于固态硬盘的数据存储快照实现方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN115080454A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732857B2 (en) | Techniques for reducing memory write operations using coalescing memory buffers and difference information | |
US10062442B2 (en) | Method for managing data blocks and method of data management for data storage device | |
US8171356B2 (en) | Reducing writes, and estimating and displaying estimated remaining lifetime of non-volatile memories | |
US7809900B2 (en) | System, method, and computer program product for delaying an operation that reduces a lifetime of memory | |
CN107608908B (zh) | 用于数据储存装置的磨损平均方法 | |
US8949512B2 (en) | Trim token journaling | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
JP5814335B2 (ja) | 書込みの削減、及び不揮発性メモリの残り寿命の推定と表示 | |
US20110125956A1 (en) | Techniques for multi-memory device lifetime management | |
US9213646B1 (en) | Cache data value tracking | |
CN108369818A (zh) | 一种闪存设备的刷新方法和装置 | |
US8825946B2 (en) | Memory system and data writing method | |
US20080126685A1 (en) | System, method, and computer program product for reducing memory write operations using an instruction set | |
CN111752487A (zh) | 一种数据恢复方法、装置及固态硬盘 | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
TWI759795B (zh) | 固態驅動器及用於固態驅動器的映射表的刷新方法 | |
JP2020191055A (ja) | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 | |
CN115080454B (zh) | 一种ssd元数据快照保存与恢复方法、装置及设备 | |
CN116225335A (zh) | 一种固态硬盘性能优化方法、装置以及介质 | |
US10896004B2 (en) | Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection | |
CN113076062A (zh) | 一种提升qlcssd寿命的方法和设备 | |
CN112631518A (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 |