CN114968839A - 硬盘垃圾回收方法、装置、设备及计算机可读存储介质 - Google Patents
硬盘垃圾回收方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114968839A CN114968839A CN202210611287.6A CN202210611287A CN114968839A CN 114968839 A CN114968839 A CN 114968839A CN 202210611287 A CN202210611287 A CN 202210611287A CN 114968839 A CN114968839 A CN 114968839A
- Authority
- CN
- China
- Prior art keywords
- data block
- garbage collection
- garbage
- data
- source data
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本申请涉及存储技术领域,具体公开了一种硬盘垃圾回收方法、装置、设备及计算机可读存储介质,通过预先创建垃圾回收状态机,利用处理器对状态机的处理是以轮询的方式读取状态并执行的特点,使得在垃圾回收的环节中若出现卡顿,不会影响其他正常的用户读写任务的执行,且在下一次轮询到垃圾回收状态机时能够从上一次卡顿的状态继续执行。基于此,在确定满足垃圾回收触发条件后,查看垃圾回收状态机的状态,若垃圾回收状态机处于空闲状态,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务,从而提高了垃圾回收任务的流畅性,在提高垃圾回收任务的执行效率的同时减小了对正常的用户读写请求的影响。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种硬盘垃圾回收方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,人类社会已经步入了一个数据量呈指数级爆炸增长的大数据时代。大数据时代的到来更加需要存储技术的支撑,各种各样的大数据应用对存储系统的各方面性能和可靠性提出了更大的挑战。随着NAND闪存的出现和广泛的使用,基于NAND闪存的固态盘因具有更高的可靠性、更好的性能、更低的能耗等特点成为了存储领域的发展热点。
垃圾回旨在回收固态盘中闪存块的无效页,以重复使用闪存块,是保证固态盘可以正常运行的重要功能,也是影响固态盘性能的重要因素。
业内普遍采用的垃圾回收方法如下:当固态盘可用闪存块数量不足时,会触发垃圾回收,将回收块中的有效数据搬移到新的空闲块中,搬移完成后执行擦除操作,完成闪存块的回收再利用。
由于无论是回收过程中的数据搬移操作的时间消耗还是擦除操作都非常耗时,在执行垃圾回收任务的任何一个环节中都有可能会因为读写失败造成卡死,不仅导致垃圾回收的进程非常的低效,还会阻碍正常的用户读写请求。
如何更为流畅地执行垃圾回收任务,提高垃圾回收任务的执行效率的同时减小对正常的用户读写请求的影响,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种硬盘垃圾回收方法、装置、设备及计算机可读存储介质,用于提高垃圾回收任务的流畅性,提高垃圾回收任务的执行效率的同时减小对正常的用户读写请求的影响。
为解决上述技术问题,本申请提供一种硬盘垃圾回收方法,包括:
预先创建垃圾回收状态机;
在确定满足垃圾回收触发条件后,查看所述垃圾回收状态机的状态;
若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
可选的,所述若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务,具体包括:
基于所述垃圾回收触发条件,若所述垃圾回收状态机处于空闲状态,则进入获取目标数据块信息状态,以选择空闲的目标数据块;
当选定所述目标数据块之后,进入获取源数据块信息状态,以选择源数据块;
当选定所述源数据块之后,进入数据搬移状态,以将所述源数据块中的有效数据搬移至所述目标数据块;
当完成数据搬移后,进入源数据块擦除状态,以对所述源数据块执行擦除操作以将所述源数据块的空间释放。
可选的,所述选择空闲的目标数据块,具体包括:
若垃圾回收预留存储空间内存在空闲的数据块,则在所述垃圾回收预留存储空间内选择所述目标数据块;
若所述垃圾回收预留存储空间内不存在空闲的数据块,则在所述垃圾回收预留存储空间之外选择所述目标数据块。
可选的,所述选择空闲的目标数据块,具体为:
选择空闲的数据块中擦写次数最少的数据块为第一目标数据块,选择空闲的数据块中擦写次数最多的数据块为第二目标数据块;
所述将所述源数据块中的有效数据搬移至所述目标数据块,具体为:
将所述源数据块的有效数据中的热数据搬移至所述第一目标数据块,将所述源数据块的有效数据中的冷数据搬移至所述第二目标数据块。
可选的,所述选择源数据块,具体为:
选择有效数据量少、擦写次数少的数据块作为所述源数据块。
可选的,所述选择源数据块,具体为:
选择回收评估值最小的数据块为所述源数据块;
所述回收评估值通过下述等式计算得到:
其中,value为所述回收评估值,α为权衡因子,VDFC为当前时刻的待选源数据块中的有效数据量,Ndf为所述待选源数据块中可存储的数据总量,Npe为所述待选源数据块的擦写次数,MAXpe为所有所述待选源数据块中的最大擦写次数。
可选的,所述权衡因子具体通过下述等式计算得到:
其中,α为所述权衡因子,Nsrc_block为所述待选源数据块的数量,SUMblock为所在硬盘中所有数据块的数量,Nbad_block为所述硬盘中坏块的数量。
可选的,所述将所述源数据块中的有效数据搬移至所述目标数据块,具体为:
将有效数据访问频次比接近的有效数据聚合至同一批次,分批将所述源数据块中的有效数据搬移至所述目标数据块;
其中,所述有效数据访问频次比通过下述等式计算得到:
其中,F为所述有效数据访问频次比,Npv为当前时刻的各待选源数据块中的有效页数据访问次数均值,MAXpv为各所述待选源数据块中的有效页数据访问次数最大值。
可选的,所述有效数据访问频次比接近,具体为:不同有效数据的有效数据访问频次比之间的差值大于频次比接近阈值;
所述频次比接近阈值通过下述等式计算得到:
其中,T为所述频次比接近阈值,Pagepv为当前时刻读的页数据访问次数,Npv为各所述待选源数据块中的有效页数据访问次数均值,MAXpv为各所述待选源数据块中的有效页数据访问次数最大值,MINpv为各所述待选源数据块中的有效页数据访问次数最小值。
可选的,所述垃圾回收触发条件具体为:空闲数据块的数量小于垃圾回收启动阈值,和/或,检测到出错的数据块。
为解决上述技术问题,本申请还提供一种硬盘垃圾回收装置,包括:
创建单元,用于预先创建垃圾回收状态机;
查看单元,用于在确定满足垃圾回收触发条件后,查看所述垃圾回收状态机的状态;
执行单元,用于若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
为解决上述技术问题,本申请还提供一种硬盘垃圾回收设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述硬盘垃圾回收方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述硬盘垃圾回收方法的步骤。
本申请所提供的硬盘垃圾回收方法,以状态机的形式实现垃圾回收任务来提升垃圾回收任务的流畅性,通过预先创建垃圾回收状态机,利用处理器对状态机的处理是以轮询的方式读取状态并执行的特点,使得在垃圾回收的环节中若出现卡顿,不会影响其他正常的用户读写任务的执行,且在下一次轮询到垃圾回收状态机时能够从上一次卡顿的状态继续执行。基于此,在确定满足垃圾回收触发条件后,查看垃圾回收状态机的状态,若垃圾回收状态机处于空闲状态,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务,从而提高了垃圾回收任务的流畅性,在提高垃圾回收任务的执行效率的同时减小了对正常的用户读写请求的影响。
本申请还提供一种硬盘垃圾回收装置、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种硬盘垃圾回收方法的流程图;
图2为本申请实施例提供的一种垃圾回收状态机的运行过程示意图;
图3为本申请实施例提供的一种硬盘垃圾回收装置的结构示意图;
图4为本申请实施例提供的一种硬盘垃圾回收设备的结构示意图。
具体实施方式
本申请的核心是提供一种硬盘垃圾回收方法、装置、设备及计算机可读存储介质,用于提高垃圾回收任务的流畅性,提高垃圾回收任务的执行效率的同时减小对正常的用户读写请求的影响。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图1为本申请实施例提供的一种硬盘垃圾回收方法的流程图。
如图1所示,本申请实施例提供的硬盘垃圾回收方法包括:
S101:预先创建垃圾回收状态机。
S102:在确定满足垃圾回收触发条件后,查看垃圾回收状态机的状态。
S103:若垃圾回收状态机处于空闲状态,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
本申请实施例提供的硬盘垃圾回收方法通常应用于存储系统中的中央处理器(central processing unit,下文简称CPU)。相较于传统的固态硬盘垃圾回收任务在执行过程中若出现卡顿,不仅会无法继续执行此次垃圾回收任务,且会影响正常的用户读写任务的执行,本申请实施例提供的硬盘垃圾回收方法通过创建状态机形式的垃圾回收任务,利用处理器对状态机类型的任务是以轮询的方式读取状态并执行的特点,避免垃圾回收任务对磁盘管理软件抽象层FTL(Flash translation layer)的阻塞或者卡死,使得在垃圾回收的环节中若出现卡顿,不会影响其他正常的用户读写任务的执行,且在下一次轮询到垃圾回收状态机时能够从上一次卡顿的状态继续执行。
在存储系统中,具体可以针对每个逻辑单元(Logical Unit Number,LUN,逻辑单元号)创建一个或多个垃圾回收状态机。若创建多个垃圾回收状态机,则一个逻辑单元上的各垃圾回收状态机之间不可同时执行数据搬移任务。
对于S101,创建垃圾回收状态机,即以状态机的形式编写垃圾回收任务,将垃圾回收任务所需的各个环节编写为状态机对应的状态值,对每个状态机对应配置状态描述语句,形成垃圾回收状态机的各状态之间的切换顺序和切换条件,从而完成垃圾回收状态机的创建。参考现有的垃圾回收任务,可以为垃圾回收状态机配置空闲状态和垃圾回收状态。
对于S102,预先设置垃圾回收触发条件,以使CPU检测到当前存储系统满足垃圾回收触发条件时则尝试启动垃圾回收状态机。
垃圾回收触发条件具体可以为:空闲数据块的数量小于垃圾回收启动阈值,和/或,检测到出错的数据块。即是说,可以通过两种情形触发垃圾回收。在第一种情形下,预先根据硬件结构设定垃圾回收启动阈值,当空闲数据块的数量小于垃圾回收启动阈值后,检测当前垃圾回收状态机如果处于空闲状态,则启动垃圾回收任务,将垃圾回收状态机置为垃圾回收状态。在第二种情形下,当有数据块出错时(当用户写入数据后,会返回对真正写入硬盘的数据的校验值,若检验后发现写入的数据与用户想要写入的数据不同,则说明数据块出错了),需要对该数据块上的有效数据进行强制搬移,强制启动垃圾回收,以防数据丢失,该情形下可以不设置阈值。即一旦发现有出错的数据块,并且当前时刻垃圾回收状态机处于空闲状态,则强制启动垃圾回收,将垃圾回收状态机置为垃圾回收状态,对该出错数据块进行强制回收。
其中,垃圾回收启动阈值可以以硬盘为单位设置,也可以以逻辑单元为单位设置。例如可以设置逻辑单元对应的垃圾回收启动阈值为4,即当一个逻辑单元的空闲数据块的数量小于4时,若当前时刻该逻辑单元存在为空闲状态的垃圾回收状态机,则将垃圾回收状态机置为垃圾回收状态,对该逻辑单元执行垃圾回收任务;若当前时刻该逻辑单元无处于空闲状态的垃圾回收状态机,则等待下一次CPU轮询。
对于S103,若垃圾回收状态机未处于空闲状态,说明正在执行垃圾回收任务中。若所有的垃圾回收状态机均未处于空闲状态,则等待下一次轮询。若存在处于空闲状态的垃圾回收状态机,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收状态机中预置的垃圾回收程序。
实施例二
图2为本申请实施例提供的一种垃圾回收状态机的运行过程示意图。
在上述实施例的基础上,垃圾回收状态机具体可以包括GC_IDLE、GC_DST、GC_SRC、GC_RUN、GC_ERASE五种状态。
其中,GC_IDLE为空闲状态,是垃圾回收状态机的启动状态。
GC_DST为获取目标数据块信息状态,具体为根据预设的对目标数据块的评选条件选择目标数据块。目标数据块即用作数据搬移去向的数据块。
GC_SRC为获取源数据块信息状态,具体为根据预设的对源数据块的评选条件选择源数据块。源数据块即数据搬移源头的数据块。
GC_RUN为数据搬移状态,具体为将源数据块中的有效数据搬移至目标数据块的状态,是垃圾回收状态机的核心功能。
GC_ERASE为源数据块擦除状态,具体为在完成数据块上有效数据的搬移后,对源数据块执行擦除操作进行释放。
则S103:若垃圾回收状态机处于空闲状态,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务,具体包括:
基于垃圾回收触发条件,若垃圾回收状态机处于空闲状态,进入获取目标数据块信息状态,以选择空闲的目标数据块;
当选定目标数据块之后,进入获取源数据块信息状态,以选择源数据块;
当选定源数据块之后,进入数据搬移状态,以将源数据块中的有效数据搬移至目标数据块;
当完成数据搬移后,进入源数据块擦除状态,以对源数据块执行擦除操作以将源数据块的空间释放。
CPU依次轮询垃圾回收状态机的上述五种状态,则垃圾回收状态机的运行过程如图2所示,具体包括:
S201:GC_IDLE(空闲状态)。
S202:判断垃圾回收触发条件是否触发成功;如果是,则进入S203;如果否,则进入S211。
S203:GC_SRC(获取源数据块信息状态)。
S204:判断是否选定目标数据块的信息;如果是,则进入S205;如果否,则进入S211。
S205:GC_SRC(获取源数据块信息状态)。
S206:判断是否选定源数据块;如果是,则进入S207;如果否,则进入S211。
S207:GC_RUN(数据搬移状态)。
S208:判断是否完成数据搬移;如果是,则进入S209;如果否,则进入S211。
S209:GC_ERASE(源数据块擦除状态)。
S210:判断源数据块是否擦除成功;如果是,则返回S201;如果否,则进入S211。
S211:CPU轮询。具体为:记录当前垃圾回收状态机所处的状态,并在下一次CPU轮询中重新进入该状态。
为选择目标数据块,可以预先为垃圾回收状态机划定垃圾回收预留存储空间,在垃圾回收预留存储空间的数据块在处于空置状态时不接收正常的用户写入任务,只作为垃圾回收的待选目标数据块。
则选择可用的目标数据块,具体可以包括:
若垃圾回收预留存储空间内存在空闲的数据块,则在垃圾回收预留存储空间内选择目标数据块;
若垃圾回收预留存储空间内不存在空闲的数据块,则在垃圾回收预留存储空间之外选择目标数据块。
垃圾回收预留存储空间可以为固定的一块空间,随着垃圾回收预留存储空间中的空闲数据块均被使用后,某些数据块也会符合源数据块的条件而被执行垃圾回收任务而清空,完成有效数据的聚合。
选择源数据块的标准可以为:选择有效数据量少、擦写(PE)次数少的数据块作为源数据块。选择有效数据量少的数据块作为源数据块,可以减少每个数据块上需要数据搬移的数据量,从而最快完成释放得到可用的数据块。选择擦写次数少的数据块作为源数据块,即将一些寿命更长的数据块置为空置数据块,将下一次擦写任务向擦写次数少的数据块倾斜,有助于均衡硬盘上各数据块之间的擦写次数均衡。选择的源数据块可以为一个或多个,如可以将多个源数据块的有效数据聚合在一起后迁移至一个目标数据块,从而释放出更多可用的空闲数据块。
具体地,通过设定有效数据量阈值、擦写次数阈值,可以选定一些待选源数据块,再根据有效数据量和擦写次数两个指标综合评定,从待选数据块中选定源数据块。
实施例三
上述实施例提供了实现垃圾回收状态机以提高垃圾回收任务流畅性的方案。在此基础上,本申请实施例进一步通过优化垃圾回收任务流程以提高垃圾回收效率和垃圾回收质量。
在本申请实施例提供的硬盘垃圾回收方法中,选择空闲的目标数据块,具体为:选择空闲的数据块中擦写次数最少的数据块为第一目标数据块,选择空闲的数据块中擦写次数最多的数据块为第二目标数据块。
将源数据块中的有效数据搬移至目标数据块,具体为:将源数据块的有效数据中的热数据搬移至第一目标数据块,将源数据块的有效数据中的冷数据搬移至第二目标数据块。
可以理解的是,热数据指被访问频次较高的数据,冷数据被访问频次较低的数据。通过将源数据块的有效数据中的热数据搬移至擦写次数最少的第一目标数据块,将源数据块的有效数据中的冷数据搬移至擦写次数最多的第二目标数据块,使得第一目标数据块的擦写次数快速增加,而第二目标数据块的擦写次数缓慢增加,从而平衡第一目标数据块的擦写次数和第二目标数据块的擦写次数之间的差异,实现磨损均衡,进而延长硬盘的使用寿命;通过冷、热数据区分进行数据搬移,还能有效减少垃圾回收任务启动次数,减少垃圾回收任务对NAND的影响,进而延长硬盘的使用寿命。
实施例四
上述实施例提供了实现垃圾回收状态机以提高垃圾回收任务流畅性的方案。在此基础上,本申请实施例进一步通过优化垃圾回收任务流程以提高垃圾回收效率和垃圾回收质量。
在此基础上,在本申请实施例提供的硬盘垃圾回收方法中,选择源数据块,具体为:
选择回收评估值最小的数据块为源数据块;
回收评估值通过下述等式计算得到:
其中,value为回收评估值,α为权衡因子,VDFC为当前时刻的待选源数据块中的有效数据量,Ndf为待选源数据块中可存储的数据总量,Npe为待选源数据块的擦写次数,MAXpe为所有待选源数据块中的最大擦写次数。
具体地,可以先选出多个待选源数据块,例如可以从有效数据占比最小的角度选定多个源数据块,再从擦写次数最少的角度选定多个源数据块,从而圈定多个待选源数据块。通过设置权衡因子,控制有效数据占比和擦写次数占比两个影响因素对源数据块选择的影响,加权计算后得到可以认为是有限数据量少、擦写次数少的数据块作为源数据块。权衡因子的大小可以由运维人员设定。
可选的,权衡因子具体通过下述等式计算得到:
其中,α为权衡因子,Nsrc_block为待选源数据块的数量,SUMblock为所在硬盘中所有数据块的数量,Nbad_block为硬盘中坏块的数量。
具体地,有效数据越多的源数据块,越不容易被回收;优先回收擦写次数少的源数据块,有助于实现硬盘的磨损均衡。基于上述权衡因子α的等式,权衡因子α代表待选源数据块的占比,权衡因子α越小代表可选的数据块越少,此时侧重选择有效数据量少的源数据块,避免频繁触发垃圾回收,快速释放数据块以获取有效空间。权衡因子α越大代表可选的数据块越多,此时侧重选择擦写次数较少的数据块,兼顾磨损均衡。随着使用年限增加,擦写次数增加,坏块数量越来越多。权衡因子α在待选源数据块的数量Nsrc_block相同的情况下,硬盘中坏块的数量Nbad_block越来越大,权衡因子α相对变大,更加侧重磨损均衡,延长硬盘的使用寿命。
实施例五
可以通过在数据搬移的过程中将有效数据聚合的方式来提升垃圾回收效率。具体可以根据系统配置,将多个源数据块上、相同配置下的有效数据聚合至一起后统一进行数据搬移,从而不仅提升了垃圾回收效率,还提高了数据分布合理性。
此外,还可以以有效数据访问频次作为将有效数据聚合的依据,将有效数据访问频次比接近的有效数据聚合至同一批次,分批将源数据块中的有效数据搬移至目标数据块。
其中,有效数据访问频次比通过下述等式计算得到:
其中,F为有效数据访问频次比,Npv为当前时刻的各待选源数据块中的有效页数据访问次数均值,MAXpv为各待选源数据块中的有效页数据访问次数最大值。
结合本申请实施例三提供的将源数据块的有效数据中的热数据搬移至擦写次数最少的第一目标数据块、将源数据块的有效数据中的冷数据搬移至擦写次数最多的第二目标数据块的方案,通过将有效数据访问频次比接近的有效数据聚合至同一批次进行数据搬移,有助于高效实现冷数据、热数据的分批迁移。
具体地,固件中维护的数据块信息中会有数据块访问次数和每个页(page)的访问次数,通过上述等式(3)的计算后,将有效数据访问频次比接近的页数据聚合到一起。
可以设置冷数据、热数据的有效数据访问频次比区分阈值为0.4,即认为有效数据访问频次比小于0.4的有效数据为冷数据,认为有效数据访问频次比大于等于0.4的有效数据为热数据。
在此基础上,本申请实施例进一步提供一种量化有效数据访问频次比接近概念的方案。在本申请实施例提供的硬盘垃圾回收方法中,有效数据访问频次比接近,具体为:不同有效数据的有效数据访问频次比之间的差值大于频次比接近阈值。
频次比接近阈值通过下述等式计算得到:
其中,T为频次比接近阈值,Pagepv为当前时刻读的页数据访问次数,Npv为各待选源数据块中的有效页数据访问次数均值,MAXpv为各待选源数据块中的有效页数据访问次数最大值,MINpv为各待选源数据块中的有效页数据访问次数最小值。
通过等式(4)的计算,将有效数据访问频次比接近(大于频次比接近阈值T)的有效数据聚合至一起搬移。
上文详述了硬盘垃圾回收方法对应的各个实施例,在此基础上,本申请还公开了与上述方法对应的硬盘垃圾回收装置、设备及计算机可读存储介质。
实施例六
图3为本申请实施例提供的一种硬盘垃圾回收装置的结构示意图。
如图3所示,本申请实施例提供的硬盘垃圾回收装置包括:
创建单元301,用于预先创建垃圾回收状态机;
查看单元302,用于在确定满足垃圾回收触发条件后,查看垃圾回收状态机的状态;
执行单元303,用于若垃圾回收状态机处于空闲状态,则将垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
具体地,执行单元303具体包括:
第一选择子单元,用于基于垃圾回收触发条件,若垃圾回收状态机处于空闲状态,则进入获取目标数据块信息状态,以选择空闲的目标数据块;
第二选择子单元,用于当选定目标数据块之后,进入获取源数据块信息状态,以选择源数据块;
数据搬移子单元,用于当选定源数据块之后,进入数据搬移状态,以将源数据块中的有效数据搬移至目标数据块;
数据擦除子单元,用于当完成数据搬移后,进入源数据块擦除状态,以对源数据块执行擦除操作以将源数据块的空间释放。
进一步的,第一选择子单元选择空闲的目标数据块,具体包括:
若垃圾回收预留存储空间内存在空闲的数据块,则在垃圾回收预留存储空间内选择目标数据块;
若垃圾回收预留存储空间内不存在空闲的数据块,则在垃圾回收预留存储空间之外选择目标数据块。
进一步的,第一选择子单元选择空闲的目标数据块,具体为:
选择空闲的数据块中擦写次数最少的数据块为第一目标数据块,选择空闲的数据块中擦写次数最多的数据块为第二目标数据块;
数据搬移子单元将源数据块中的有效数据搬移至目标数据块,具体为:
将源数据块的有效数据中的热数据搬移至第一目标数据块,将源数据块的有效数据中的冷数据搬移至第二目标数据块。
进一步的,第二选择子单元选择源数据块,具体为:
以有效数据量少、擦写次数少的数据块作为源数据块。
进一步的,第二选择子单元选择源数据块,具体为:
选择回收评估值最小的数据块为源数据块;
回收评估值通过下述等式计算得到:
其中,value为回收评估值,α为权衡因子,VDFC为当前时刻的待选源数据块中的有效数据量,Ndf为待选源数据块中可存储的数据总量,Npe为待选源数据块的擦写次数,MAXpe为所有待选源数据块中的最大擦写次数。
具体的,权衡因子具体通过下述等式计算得到:
其中,α为权衡因子,Nsrc_block为待选源数据块的数量,SUMblock为所在硬盘中所有数据块的数量,Nbad_block为硬盘中坏块的数量。
进一步的,数据搬移子单元将源数据块中的有效数据搬移至目标数据块,具体为:
将有效数据访问频次比接近的有效数据聚合至同一批次,分批将源数据块中的有效数据搬移至目标数据块;
其中,有效数据访问频次比通过下述等式计算得到:
其中,F为有效数据访问频次比,Npv为当前时刻的各待选源数据块中的有效页数据访问次数均值,MAXpv为各待选源数据块中的有效页数据访问次数最大值。
具体的,有效数据访问频次比接近,具体为:不同有效数据的有效数据访问频次比之间的差值大于频次比接近阈值;
频次比接近阈值通过下述等式计算得到:
其中,T为频次比接近阈值,Pagepv为当前时刻读的页数据访问次数,Npv为各待选源数据块中的有效页数据访问次数均值,MAXpv为各待选源数据块中的有效页数据访问次数最大值,MINpv为各待选源数据块中的有效页数据访问次数最小值。
进一步的,垃圾回收触发条件具体为:空闲数据块的数量小于垃圾回收启动阈值,和/或,检测到出错的数据块。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
实施例七
图4为本申请实施例提供的一种硬盘垃圾回收设备的结构示意图。
如图4所示,本申请实施例提供的硬盘垃圾回收设备包括:
存储器410,用于存储计算机程序411;
处理器420,用于执行计算机程序411,该计算机程序411被处理器420执行时实现如上述任意一项实施例所述硬盘垃圾回收方法的步骤。
其中,处理器420可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器420可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器420也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器420可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器420还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器410可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器410还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器410至少用于存储以下计算机程序411,其中,该计算机程序411被处理器420加载并执行之后,能够实现前述任一实施例公开的硬盘垃圾回收方法中的相关步骤。另外,存储器410所存储的资源还可以包括操作系统412和数据413等,存储方式可以是短暂存储或者永久存储。其中,操作系统412可以为Windows。数据413可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,硬盘垃圾回收设备还可包括有显示屏430、电源440、通信接口450、输入输出接口460、传感器470以及通信总线480。
本领域技术人员可以理解,图4中示出的结构并不构成对硬盘垃圾回收设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的硬盘垃圾回收设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的硬盘垃圾回收方法,效果同上。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。
为此,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如硬盘垃圾回收方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-OnlyMemory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的硬盘垃圾回收方法的步骤,效果同上。
以上对本申请所提供的一种硬盘垃圾回收方法、装置、设备及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (13)
1.一种硬盘垃圾回收方法,其特征在于,包括:
预先创建垃圾回收状态机;
在确定满足垃圾回收触发条件后,查看所述垃圾回收状态机的状态;
若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
2.根据权利要求1所述的硬盘垃圾回收方法,其特征在于,所述若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务,具体包括:
基于所述垃圾回收触发条件,若所述垃圾回收状态机处于空闲状态,则进入获取目标数据块信息状态,以选择空闲的目标数据块;
当选定所述目标数据块之后,进入获取源数据块信息状态,以选择源数据块;
当选定所述源数据块之后,进入数据搬移状态,以将所述源数据块中的有效数据搬移至所述目标数据块;
当完成数据搬移后,进入源数据块擦除状态,以对所述源数据块执行擦除操作以将所述源数据块的空间释放。
3.根据权利要求2所述的硬盘垃圾回收方法,其特征在于,所述选择空闲的目标数据块,具体包括:
若垃圾回收预留存储空间内存在空闲的数据块,则在所述垃圾回收预留存储空间内选择所述目标数据块;
若所述垃圾回收预留存储空间内不存在空闲的数据块,则在所述垃圾回收预留存储空间之外选择所述目标数据块。
4.根据权利要求2所述的硬盘垃圾回收方法,其特征在于,所述选择空闲的目标数据块,具体为:
选择空闲的数据块中擦写次数最少的数据块为第一目标数据块,选择空闲的数据块中擦写次数最多的数据块为第二目标数据块;
所述将所述源数据块中的有效数据搬移至所述目标数据块,具体为:
将所述源数据块的有效数据中的热数据搬移至所述第一目标数据块,将所述源数据块的有效数据中的冷数据搬移至所述第二目标数据块。
5.根据权利要求2所述的硬盘垃圾回收方法,其特征在于,所述选择源数据块,具体为:
选择有效数据量少、擦写次数少的数据块作为所述源数据块。
10.根据权利要求1所述的硬盘垃圾回收方法,其特征在于,所述垃圾回收触发条件具体为:空闲数据块的数量小于垃圾回收启动阈值,和/或,检测到出错的数据块。
11.一种硬盘垃圾回收装置,其特征在于,包括:
创建单元,用于预先创建垃圾回收状态机;
查看单元,用于在确定满足垃圾回收触发条件后,查看所述垃圾回收状态机的状态;
执行单元,用于若所述垃圾回收状态机处于空闲状态,则将所述垃圾回收状态机置为垃圾回收状态,以执行垃圾回收任务。
12.一种硬盘垃圾回收设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至10任意一项所述硬盘垃圾回收方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任意一项所述硬盘垃圾回收方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611287.6A CN114968839A (zh) | 2022-05-31 | 2022-05-31 | 硬盘垃圾回收方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611287.6A CN114968839A (zh) | 2022-05-31 | 2022-05-31 | 硬盘垃圾回收方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968839A true CN114968839A (zh) | 2022-08-30 |
Family
ID=82958223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210611287.6A Pending CN114968839A (zh) | 2022-05-31 | 2022-05-31 | 硬盘垃圾回收方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968839A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115269451A (zh) * | 2022-09-28 | 2022-11-01 | 珠海妙存科技有限公司 | 闪存垃圾回收方法、装置及可读存储介质 |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储系统中块的垃圾数据回收方法、装置以及介质 |
CN118113231A (zh) * | 2024-04-30 | 2024-05-31 | 山东云海国创云计算装备产业创新中心有限公司 | 存储设备垃圾回收方法、装置、目标存储设备及存储介质 |
-
2022
- 2022-05-31 CN CN202210611287.6A patent/CN114968839A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115269451A (zh) * | 2022-09-28 | 2022-11-01 | 珠海妙存科技有限公司 | 闪存垃圾回收方法、装置及可读存储介质 |
CN115269451B (zh) * | 2022-09-28 | 2023-05-12 | 珠海妙存科技有限公司 | 闪存垃圾回收方法、装置及可读存储介质 |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储系统中块的垃圾数据回收方法、装置以及介质 |
CN118113231A (zh) * | 2024-04-30 | 2024-05-31 | 山东云海国创云计算装备产业创新中心有限公司 | 存储设备垃圾回收方法、装置、目标存储设备及存储介质 |
CN118113231B (zh) * | 2024-04-30 | 2024-07-23 | 山东云海国创云计算装备产业创新中心有限公司 | 存储设备垃圾回收方法、装置、目标存储设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968839A (zh) | 硬盘垃圾回收方法、装置、设备及计算机可读存储介质 | |
CN111090398A (zh) | 固态硬盘的垃圾回收方法、装置、设备及可读存储介质 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
KR20170042135A (ko) | 메모리 스케줄링 방법 및 메모리 시스템의 동작방법 | |
KR20060129873A (ko) | 휴대단말기의 메모리 정리 방법 | |
CN111881135A (zh) | 一种数据聚合方法、装置、设备及计算机可读存储介质 | |
CN110968524B (zh) | 数据存储控制方法、装置、存储介质及电子装置 | |
CN109086141B (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN111240601B (zh) | 一种分区空间的超级块确定方法、装置、设备及存储介质 | |
CN109491592B (zh) | 存储设备及其数据写入方法、存储装置 | |
CN115576505A (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
CN113778338A (zh) | 分布式存储数据读取效率优化方法、系统、设备和介质 | |
CN103677893B (zh) | 开机的映像文件的大小缩减方法及运算装置 | |
CN113268437A (zh) | 一种主动触发内存整理的方法与设备 | |
CN112035065B (zh) | 一种数据写入方法、装置、设备及计算机可读存储介质 | |
CN113574497A (zh) | 数据存储方法及存储芯片 | |
CN117472285A (zh) | 固态硬盘用智能运行加速方法、计算机设备及存储介质 | |
CN115840542B (zh) | 一种硬盘的请求处理方法、系统、存储介质和电子设备 | |
CN112269535A (zh) | 存储系统的空间资源分配方法、装置及可读存储介质 | |
CN114675785A (zh) | 一种分布式存储方法、装置、系统以及介质 | |
CN103176753A (zh) | 存储设备及其数据管理方法 | |
CN108121666B (zh) | 一种闪存的垃圾回收方法及装置 | |
CN103176813A (zh) | 于休眠机制的方法及其计算机系统 | |
CN106021124B (zh) | 一种数据的存储方法及存储系统 | |
CN110795034B (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 |