CN116414315A - 处理数据搬移的方法、装置、存储介质及电子设备 - Google Patents
处理数据搬移的方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116414315A CN116414315A CN202310443158.5A CN202310443158A CN116414315A CN 116414315 A CN116414315 A CN 116414315A CN 202310443158 A CN202310443158 A CN 202310443158A CN 116414315 A CN116414315 A CN 116414315A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- preset
- threshold value
- solid state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 title abstract description 23
- 239000007787 solid Substances 0.000 claims abstract description 51
- 230000014759 maintenance of location Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 8
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000004044 response Effects 0.000 abstract description 4
- 238000013403 standard screening design Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 239000008187 granular material Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000002245 particle Substances 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003631 expected effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000008188 pellet Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- 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/0647—Migration mechanisms
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种处理数据搬移的方法、装置、存储介质及电子设备,其中,该方法包括:获取预先设置的触发数据搬移的门限值;全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发对目标超级块的数据搬移。通过本申请避免数据扎堆搬移,避免了数据阻塞,保证了SSD的正常使用,解决了相关技术中的数据搬移策略容易导致数据阻塞,影响SSD的使用性能,以及响应超时等技术问题。
Description
技术领域
本申请实施例涉及数据处理领域,具体而言,涉及一种方法及装置。
背景技术
相关技术中,固态硬盘SSD中通常的处理策略是扫描所有超级块superblock的数据保持时间,对于满足搬移条件的直接触发强制搬移策略。但若SSD盘上的数据在某小段时间内都达到能够触发搬移的条件时,会造成数据的集中搬移,从而形成数据搬移风暴,容易造成数据阻塞,严重影响SSD的使用性能,甚至会造成SSD出现超时问题。
发明内容
本申请实施例提供了一种处理数据搬移的方法、装置、存储介质及电子设备,以至少解决相关技术中的数据搬移策略容易导致数据阻塞,影响SSD的使用性能,以及响应超时等技术问题。
根据本申请的一个实施例,提供了一种处理数据搬移的方法,包括:获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发对目标超级块的数据搬移。
在一个示例性实施例中,全盘扫描固态硬盘,包括:确定门限值与所有有效的超级块的数量的比值为目标周期,间隔目标周期全盘扫描固态硬盘。
在一个示例性实施例中,触发对目标超级块的数据搬移之后,方法还包括:获取触发的目标超级块对应的目标个数,将目标个数与预定值进行比较,根据比较结果确定是否对目标周期进行更新。
在一个示例性实施例中,根据比较结果确定是否对目标周期进行更新,包括:在目标个数小于预定值的情况下,则保持目标周期不变;在目标个数大于预定值的情况下,则将目标周期进行更新,其中,更新后的目标周期为原目标周期的第一预设倍数,其中,第一预设倍数大于1。
在一个示例性实施例中,方法还包括:在确定目标周期已经更新过的情况下,则对更新后的目标周期进行二次更新,其中,二次更新后的目标周期为原目标周期的第二预设倍数,其中,第二预设倍数大于第一预设倍数。
在一个示例性实施例中,还包括:在对目标周期进行更新之后,检测待执行的强制数据转移的目标块的数量是否小于预定值;在目标块的数量小于预定值的情况下,将目标周期恢复至原值。
在一个示例性实施例中,门限值为数据保持时长与预设比值的乘积,其中,预设比值小于1。
在一个示例性实施例中,上述方法还包括:间隔预设周期采集目标超级块中数据保持时长满足预设要求的超级块,其中,满足预设要求包括:各个目标超级块对应的数据保持时长按照从大到小进行排序位于该排序结果前N位;确定采集到的满足预设要求的超级块对应的数据保持时长中的最大数据保持时长,在最大数据保持时长大于门限值的情况下,则直接触发数据搬移。
根据本申请另一个实施例中,还提供了一种处理数据搬移的装置,包括:获取模块,用于获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;扫描模块,用于全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较模块,用于比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发模块,用于触发对目标超级块的数据搬移。
根据本申请的另一个实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被处理器执行时实现任意一种处理数据搬移的方法。
根据本申请的另一个实施例中,还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现任意一种处理数据搬移的方法。
在本申请的实施例中,通过设置触发数据搬移的门限值,即触发数据搬移的时间,在超级块的数据保持时间达到该触发时间时,提前触发数据搬移,通过避免数据扎堆搬移,避免了数据阻塞,保证了SSD的正常使用,解决了相关技术中的数据搬移策略容易导致数据阻塞,影响SSD的使用性能,以及响应超时等技术问题。
附图说明
图1是根据本申请实施例的处理数据搬移的方法的流程图;
图2是本申请一实施例中处理数据搬移的流程示意图;
图3是根据本申请另一个实施例中的一种处理数据搬移的装置的结构示意图;
图4是根据本申请的实施例的一种电子设备的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了便于本领域技术人员更好的理解本申请相关实施例,现对本申请可能涉及的技术术语或者部分名词解释如下:
1.super block超级块,它是硬盘分区开头——开头的第一个byte是byte 0,从byte 1024开始往后的一部分数据。由于block size最小是1024bytes,所以super block可能是在block 1中(此时block的大小正好是1024bytes),也可能是在block 0中。超级块中的数据其实就是文件卷的控制信息部分,也可以说它是卷资源表,有关文件卷的大部分信息都保存在这里。例如:硬盘分区中每个block的大小、硬盘分区上一共有多少个blockgroup、以及每个block group中有多少个inode。
2.SSD颗粒(Cell),页(Page)和块(Block)。SSD中有两个重要的部件,一个是颗粒(Cell),另一个是控制器,关于控制器我们一会儿再说,先说说存储单元。当今的主流SSD使用的是NAND颗粒(当然有更新的SSD使用了3D NAND)来存储数据,每个颗粒可以存储1bit(SLC),2bit(MLC),3bit(TLC)甚至4bit(QLC)数据。颗粒存储的bit数越多,其密度越高,制造成本越低,但是颗粒的耐久性(或者叫寿命,擦写次数)越低。而SSD读取或写入的最小单元并不是颗粒,而是由一组颗粒组成的页(Page),典型的Page大小是4KB。SSD有一个重要特性,是颗粒一旦被写入,就不能覆盖写了,这点和基于磁介质的机械盘不同。
3.Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。NAND Flash的数据是以bit的方式保存在memory cell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。
随着互联网、云计算、物联网等技术的发展及广泛应用,在人类生活中,时时刻刻都会产生海量的数据需要处理及存储,信息技术的高速发展对存储系统的性能提出了更高的要求。固态硬盘因其读写速度快、能耗较低,而被广泛采用。由于NAND本身的物理定性,在用户数据写入NAND后,随着时间的推移,cell内电荷会出现溢出现象。因此数据保持的时间是一定要求的,超过后必须将有效的数据进行搬移回收,否则会有较大概率出现纠错失败的情况。
目前SSD中通常的处理策略是扫描所有superblock的数据保持时间,对于满足搬移条件的直接触发强制搬移策略。但若SSD盘上的数据在某小段时间内都达到能够触发搬移的条件时,会造成数据的集中搬移,从而形成数据搬移风暴,此时会严重影响性能,影响正常使用,甚至会造成SSD出现超时问题。
为解决上述技术问题,在本实施例中提供了一种运行于固态硬盘的处理数据搬移的方法,图1是根据本申请实施例的处理数据搬移的方法的流程图,如图1所示,该流程包括如下步骤:
S102,获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;
可选地,上述预先设置的触发数据搬移的门限值为数据保持时长与预设比值的乘积,其中,预设比值小于1。例如,数据保持时长为30天,则预先设置的触发数据搬移的门限值为30*10%=3天。
需要说明的是,为了提高写入的效率,SSD内一般采用raid条带的方式,因此当触发搬移时,整个条带的block数据都需要搬移,当superblock内有效数据比例很高时,这个待搬移的数据量是比较大的。
考虑到实际的数据保持时间在不同颗粒存在差异性,因此可以适当采用提前一段时间作为触发条件,预留的时间能有效的缓解集中爆发的数据搬移数量。通过步骤S102的技术方案,可以获取预先设置的触发数据搬移的门限值,在剩余的数据保持时长小于门限值时,提前一段时间触发数据搬移,减少数据集中爆发迁移的次数以及数量。
S104,全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;
可选地,上述固态硬盘包括SATA接口型、PCIe接口型和M.2接口型等不同类型。其中,SATA接口的固态硬盘在传输速度上略逊于其他两种,但容量较大且价格相对较低;PCIe接口的固态硬盘则可以实现更快的读写速度,并具备更高的工作效率,适用于高性能计算领域;而M.2接口型则是近年来推出的一种新类型固态硬盘,体积小巧、便携性强。
S106,比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;
通过步骤S106的技术方案,可以筛选出剩余保持时长小于预先设置的触发数据搬移的门限值的目标超级块,然后对这些目标超级块进行数据搬移处理。需要说明的是,剩余数据保持时长小于门限值的超级块可以包括剩余数据保持时长等于门限值的超级块。即剩余保持时长上述小于门限值包括:剩余保持时长小于等于门限值。
例如,预设设置的触发数据搬移的门限值为30天,超级块A、B、C剩余的数据保持时间的有效时长(即剩余保持时长)分别为35天、30天以及28天,则可以确定超级块B、C为待进行数据搬移的目标超级块(可简称为目标块)。
S108,触发对目标超级块的数据搬移。
仍以预设设置的触发数据搬移的门限值为30天,超级块A、B、C剩余的数据保持时间的有效时长(即剩余保持时长)分别为35天、30天以及28天,则可以确定超级块B、C为待进行数据搬移的目标超级块为例,可触发对目标超级块B、C的数据搬移。
在上述处理数据搬移的方法中,采用设置触发数据搬移的门限值,即触发数据搬移的时间,在超级块的数据保持时间达到该触发时间时,提前触发数据搬移,通过获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发对目标超级块的数据搬移,避免数据扎堆搬移,避免了数据阻塞,保证了SSD的正常使用,解决了相关技术中的数据搬移策略容易导致数据阻塞,影响SSD的使用性能,以及响应超时等技术问题。
在本申请一可选的实施例中,在全盘扫描固态硬盘之前,可先通过如下方式确定扫描周期:确定门限值与所有有效的超级块的数量的比值为目标周期,间隔目标周期全盘扫描固态硬盘。例如,门限值为30天,所有有效的超级块的数量为300个,则可以确定目标周期为30/300=0.1天。然后每间隔0.1天(即每间隔2.4h)全盘扫描固态硬盘。
作为另一种可选的实施方式,上述全盘扫描固态硬盘,可以通过如下方式实现:
1.在设置有该固态硬盘中的终端中打开命令行,并用root管理员权限登录到系统。
2.使用以下命令检查文件系统:sudo fsck-c/dev/sdb,在此示例中,“/dev/sdb”是固态硬盘代号,您需要将其替换为实际设备代码。
3.执行该命令后,程序会扫描整个磁盘并找出任何super block错误或损坏。该过程可能需要较长时间以完成完整操作。但当发现任何错误时,它们都会被记录在日志文件中。
4.另外,为了更快速和全面的方法来扫描和测试超级块,则可以使用“badblocks”Linux工具执行手动扩展由控制器写入正在运行数据存储逻辑位置(LBA)地址区域与标签bit数组进行比对验证有效性。
5.执行以下命令:sudo badblocks-vsnw/dev/sdb 1000>badblock_result.txt,其中-v表示verbose详细输出,-s每次迭代显示进度条-N要预先搜索500M-1G-n要指定跳过区域-i设置容差数可以不一致-w运行读取修订算法强制保持唯一性-R重复智能化运行,并将扫描结果保存在名为“badblock_result.txt”的文本文件中。
6.最后,分析日志和badblocks检测数据超出指定安全百分比,则确定哪些superblock是有效的。如果问题仅限于特定区域,您可以用命令缩小测试范围——例如sudofdisk/dev/sdb使某一段可控制块被砍断捕获专注异常操作类型。
可以理解的,即使本申请的技术方案中,设置了触发数据搬移的门限值,保证了提前一段时间对需要进行数据搬移的目标块进行数据搬移,但是,提前量中,也有可能会有大量的超级块需要数据搬移,即目标块的数量较多,这时即使设置了提前量也有可能造成数据阻塞,为了避免这种情况的发生,在一个示例性实施例中,触发对目标超级块的数据搬移之后还可以获取触发的目标超级块对应的目标个数,将目标个数与预定值进行比较,根据比较结果确定是否对目标周期进行更新,可以理解的,扫描的周期越短,则扫描到的需要处理的目标块可能就会越多,通过目标周期的更新,可以适当调整扫描到的目标块的数量,进一步避免在数据搬移中对SDD的使用性能造成影响。
具体的,根据比较结果确定是否对目标周期进行更新,包括:在目标个数小于预定值的情况下,则保持目标周期不变;在目标个数大于预定值的情况下,则将目标周期进行更新,其中,更新后的目标周期为原目标周期的第一预设倍数,其中,第一预设倍数大于1。
例如,上述预定值为25个,目标周期为2.4h,在目标个数为20个的情况下,则保持2.4h的扫描周期不变,在目标个数为30个的情况下,则可以根据第一预设倍数对该目标周期进行调整,假设第一预设倍数为1.5,则更新后的目标周期,即在下一轮的扫描周期为2.4*1.5=3.6h。可以理解的是,扫描的周期越短,则可能扫描到的需要处理的目标块就会越多,通过上述技术方案可以拉长下一轮扫描时使用的目标周期,进而适当调整扫描到的目标块的数量。
由于一次更新,可能无法达到预期效果,SDD的数据搬移量依然较大,因此,作为一种可选的实施方式,在确定目标周期已经更新过的情况下,则对更新后的目标周期进行二次更新,其中,二次更新后的目标周期为原目标周期的第二预设倍数,其中,第二预设倍数大于第一预设倍数。例如,上述第二预设倍数为2,则二次更新后的目标周期为2.4*2=4.8h。
容易注意到的是,上述目标周期还可以根据实际情况进行多次调整,例如,目标周期*第三预设倍数,目标周期*第四预设倍数,目标周期*第四预设倍数,其中,第三预设倍数大于第二预设倍数,第三预设倍数,第四预设倍数,第五预设倍数依次增大。例如,第三预设倍数,第四预设倍数,第五预设倍数可以分别为2.5、3、3.5,需要说明的是,上述倍数均为示意性举例,不构成对本申请各个预设倍数的数值范围的限定,例如上述,第一预设倍数,第二预设倍数,第三预设倍数,第四预设倍数,第五预设倍数还可以分别为2.1、2.2、2.3、2.4、2.5等其他数值。
为了确保数据转移的效率,避免资源闲置,在一个示例性实施例中,在对目标周期进行更新之后,检测待执行的强制数据转移的目标块的数量是否小于预定值;在目标块的数量小于预定值的情况下,将目标周期恢复至原值。可以理解的,在目标块的数量小于预定值的情况下,由于需要进行数据搬移的目标块的个数较少,因此,SDD需要处理的数据搬移量会随着降低,这时可能造成处理资源的闲置,因此,可以将已经调大的扫描周期恢复至之前未调整的目标周期,甚至是一个更小的目标周期。
为了保证数据不会超过的最大数据保持时间的门限,在一个示例性实施例中,可间隔预设周期采集目标超级块中数据保持时长满足预设要求的超级块,其中,满足预设要求包括:各个目标超级块对应的数据保持时长按照从大到小进行排序位于该排序结果前N位;确定采集到的满足预设要求的超级块对应的数据保持时长中的最大数据保持时长,在最大数据保持时长大于门限值的情况下,则直接触发数据搬移。上述N的取值可以为4。
图2是本申请一实施例中处理数据搬移的流程示意图,以下结合图2对该实施例中进行说明,具体实施步骤如下:
1.预先定义前提触发数据搬移的时间PRE_MOVE_DELAY(即预先设置的触发数据搬移的门限值),可以是数据保持时间上限的10%。
2.预先设置SSD盘内已触发且未完成的强制数据搬移的次数上限为Movedata_Limit。
3.定义定时器T0,检测周期为PRE_MOVE_DELAY,等时间间隔T1的扫描全盘中全部有效的superblock。
注:T1=T0/SUPER_BLK_NUM(即目标周期)。
4.当检测到数据保持时间进入最后的PRE_MOVE_DELAY区间内时,则发送superblock的强制数据搬移的请求处理消息,更新已触发但未完成的强制数据搬移的数量。
5.设置了触发数据搬移的门限值,保证了提前一段时间对需要进行数据搬移的目标块进行数据搬移,但是提前量中,也有可能会有大量的超级块需要数据搬移,即目标块的数量较多,这时及时也有可能造成数据阻塞,为了避免这种情况的发生,触发对目标超级块的数据搬移之后还可以获取触发的目标超级块对应的目标个数,将目标个数与预定值进行比较,根据比较结果确定是否对目标周期进行更新,可以理解的,扫描的周期越短,则扫描到的需要处理的目标块就会越多,通过目标周期的更新,可以适当调整扫描到的目标块的数量,进一步避免在数据搬移中对SDD的使用性能造成影响,因此,同时判断已触发的数量是否小于预定值。
1)若是,则保持检测superblock的周期不变(即目标个数小于预定值的情况下,则保持目标周期不变)。
2)若否,则调整触发条件,即拉长下轮检测的周期为1.5倍T1(即在目标个数大于预定值的情况下,则将目标周期进行更新,其中,更新后的目标周期为原目标周期的第一预设倍数,其中,第一预设倍数大于1)。
3)若已调整过检测周期,则需要继续拉长检测的周期为2倍T1(需要说明的是,虽然已经进行了一次更新,可能无法达到预期效果,SDD的数据搬移量依然较大,因此,作为一种可选的实施方式,在确定目标周期已经更新过的情况下,则对更新后的目标周期进行二次更新,其中,二次更新后的目标周期为原目标周期的第二预设倍数,其中,第二预设倍数大于第一预设倍数)。
6.监控强制数据搬移的完成情况,即当检测到待执行的强制数据搬移superblock的数量降低到预设门限时,恢复为最初的检测周期T1。(即为了避免资源闲置,在一个示例性实施例中,在对目标周期进行更新之后,检测待执行的强制数据转移的目标块的数量是否小于预定值;在目标块的数量小于预定值的情况下,将目标周期恢复至原值)。
7.考虑到动态调整了检测周期,因此部分superblock会掉到SSD盘支持的数据保持时间的上限之外。基于搜索加速单元,抓取superblock info中时间RT值最大的4个superblock:
设置定时器T2,即每隔1小时,扫描选中RT最大的4个block,若有最大的超过数据保持的门限时,则直接触发强制搬移。(即为了保证数据不会超过的最大数据保持时间的门限,可间隔预设周期采集目标超级块中数据保持时长满足预设要求的超级块,其中,满足预设要求包括:各个目标超级块对应的数据保持时长按照从大到小进行排序位于该排序结果前N位;确定采集到的满足预设要求的超级块对应的数据保持时长中的最大数据保持时长,在最大数据保持时长大于门限值的情况下,则直接触发数据搬移)。
图3是根据本申请另一个实施例中的一种处理数据搬移的装置,如图3所示,该装置包括:
获取模块30,用于获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;
扫描模块32,用于全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;
比较模块34,用于比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;
触发模块36,用于触发对目标超级块的数据搬移。
该处理数据搬移的装置中,获取模块30,用于获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;扫描模块32,用于全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较模块34,用于比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发模块36,用于触发对目标超级块的数据搬移,避免数据扎堆搬移,避免了数据阻塞,保证了SSD的正常使用,解决了相关技术中的数据搬移策略容易导致数据阻塞,影响SSD的使用性能,以及响应超时等技术问题。
在本申请一些实施例中,上述扫描模块,包括:确定单元,用于确定门限值与所有有效的超级块的数量的比值为目标周期,间隔目标周期全盘扫描固态硬盘。例如,门限值为30天,所有有效的超级块的数量为300个,则可以确定目标周期为30/300=0.1天。然后每间隔0.1天(即每间隔2.4h)全盘扫描固态硬盘。
作为一种可选的实施例中,上述装置还包括:更新模块,用于触发对目标超级块的数据搬移之后,获取触发的目标超级块对应的目标个数,将目标个数与预定值进行比较,根据比较结果确定是否对目标周期进行更新,可以理解的,扫描的周期越短,则扫描到的需要处理的目标块可能就会越多,通过目标周期的更新,可以适当调整扫描到的目标块的数量,进一步避免在数据搬移中对SDD的使用性能造成影响。
可选的,更新模块,包括:保持单元,用于在目标个数小于预定值的情况下,则保持目标周期不变;第一更新单元,用于在目标个数大于预定值的情况下,则将目标周期进行更新,其中,更新后的目标周期为原目标周期的第一预设倍数,其中,第一预设倍数大于1。
例如,上述预定值为25个,目标周期为2.4h,在目标个数为20个的情况下,则保持2.4h的扫描周期不变,在目标个数为30个的情况下,则可以根据第一预设倍数对该目标周期进行调整,假设第一预设倍数为1.5,则更新后的目标周期,即在下一轮的扫描周期为2.4*1.5=3.6h。可以理解的是,扫描的周期越短,则可能扫描到的需要处理的目标块就会越多,通过上述技术方案可以拉长下一轮扫描时使用的目标周期,可以适当调整扫描到的目标块的数量。
由于一次更新,可能无法达到预期效果,SDD的数据搬移量依然较大,因此,作为一种可选的实施例,上述装置还包括:第二更新单元,用于在确定目标周期已经更新过的情况下,则对更新后的目标周期进行二次更新,其中,二次更新后的目标周期为原目标周期的第二预设倍数,其中,第二预设倍数大于第一预设倍数。例如,上述第二预设倍数为2,则二次更新后的目标周期为2.4*2=4.8h。
容易注意到的是,上述目标周期还可以根据实际情况进行多次调整,例如,目标周期*第三预设倍数,目标周期*第四预设倍数,目标周期*第四预设倍数,其中,第三预设倍数大于第二预设倍数,第三预设倍数,第四预设倍数,第五预设倍数依次增大。例如,第三预设倍数,第四预设倍数,第五预设倍数可以分别为2.5、3、3.5,需要说明的是,上述倍数均为示意性举例,不构成对本申请各个预设倍数的数值范围的限定,例如上述,第一预设倍数,第二预设倍数,第三预设倍数,第四预设倍数,第五预设倍数还可以分别为2.1、2.2、2.3、2.4、2.5等其他数值。
作为一种可选的实施例中,上述装置还包括:检测单元,用于在对目标周期进行更新之后,检测待执行的强制数据转移的目标块的数量是否小于预定值;恢复单元,用于在目标块的数量小于预定值的情况下,将目标周期恢复至原值。
需要说明的是,门限值为数据保持时长与预设比值的乘积,其中,预设比值小于1。
本申请一些实施例中,上述装置还包括:采集模块,用于间隔预设周期采集目标超级块中数据保持时长满足预设要求的超级块,其中,满足预设要求包括:各个目标超级块对应的数据保持时长按照从大到小进行排序位于该排序结果前N位;数据搬移模块,用于确定采集到的满足预设要求的超级块对应的数据保持时长中的最大数据保持时长,在最大数据保持时长大于门限值的情况下,则直接触发数据搬移。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请的另一个实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被处理器执行时实现任意一种处理数据搬移的方法。
具体地,上述存储介质用于存储以下功能的程序指令,实现以下功能:获取预先设置的触发数据搬移的门限值,其中,门限值小于数据保持时长,数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;全盘扫描固态硬盘,确定固态硬盘中所有有效的超级块;比较超级块对应的剩余数据保持时长与门限值的大小,并确定剩余数据保持时长小于门限值的超级块为目标超级块;触发对目标超级块的数据搬移。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请的另一个实施例中,还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现任意一种处理数据搬移的方法。。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
图4示出了可以用来实施本申请的实施例的示例电子设备400的示意性框图。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如处理数据搬移的方法。例如,在一些实施例中,处理数据搬移的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的处理数据搬移的方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行处理数据搬移的方法。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种处理数据搬移的方法,其特征在于,包括:
获取预先设置的触发数据搬移的门限值,其中,所述门限值小于数据保持时长,所述数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;
全盘扫描所述固态硬盘,确定所述固态硬盘中所有有效的超级块;
比较所述超级块对应的剩余数据保持时长与所述门限值的大小,并确定所述剩余数据保持时长小于所述门限值的所述超级块为所述目标超级块;
触发对所述目标超级块的数据搬移。
2.根据权利要求1所述的方法,其特征在于,在全盘扫描所述固态硬盘,包括:
确定所述门限值与所述所有有效的超级块的数量的比值为目标周期,间隔所述目标周期全盘扫描所述固态硬盘。
3.根据权利要求2所述的方法,其特征在于,触发对所述目标超级块的数据搬移之后,所述方法还包括:
获取触发的所述目标超级块对应的目标个数,将所述目标个数与预定值进行比较,根据比较结果确定是否对所述目标周期进行更新。
4.根据权利要求3所述的方法,其特征在于,根据比较结果确定是否对所述目标周期进行更新,包括:
在所述目标个数小于所述预定值的情况下,则保持所述目标周期不变;
在所述目标个数大于所述预定值的情况下,则将所述目标周期进行更新,其中,更新后的目标周期为原目标周期的第一预设倍数,其中,所述第一预设倍数大于1。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在确定所述目标周期已经更新过的情况下,则对所述更新后的目标周期进行二次更新,其中,二次更新后的目标周期为所述原目标周期的第二预设倍数,其中,所述第二预设倍数大于所述第一预设倍数。
6.根据权利要求3所述的方法,其特征在于,所述还包括:
在对所述目标周期进行更新之后,检测待执行的强制数据转移的所述目标块的数量是否小于所述预定值;
在所述目标块的数量小于所述预定值的情况下,将所述目标周期恢复至原值。
7.根据权利要求1所述的方法,其特征在于,所述门限值为所述数据保持时长与预设比值的乘积,其中,所述预设比值小于1。
8.根据权利要求1至权利要求7任意一项所述的方法,其特征在于,所述方法还包括:
间隔预设周期采集所述目标超级块中数据保持时长满足预设要求的超级块,其中,所述满足预设要求包括:各个所述目标超级块对应的数据保持时长按照从大到小进行排序位于该排序结果前N位;
确定采集到的满足所述预设要求的超级块对应的数据保持时长中的最大数据保持时长,在所述最大数据保持时长大于所述门限值的情况下,则直接触发数据搬移。
9.一种处理数据搬移的装置,其特征在于,包括:
获取模块,用于获取预先设置的触发数据搬移的门限值,其中,所述门限值小于数据保持时长,所述数据保持时长是数据存储至固态硬盘中第一页时对应的第一时刻与目标时刻的差值;
扫描模块,用于全盘扫描所述固态硬盘,确定所述固态硬盘中所有有效的超级块;
比较模块,用于比较所述超级块对应的剩余数据保持时长与所述门限值的大小,并确定所述剩余数据保持时长小于所述门限值的所述超级块为所述目标超级块;
触发模块,用于触发对所述目标超级块的数据搬移。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的处理数据搬移的方法。
11.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至8任一项中所述的处理数据搬移的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443158.5A CN116414315A (zh) | 2023-04-23 | 2023-04-23 | 处理数据搬移的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443158.5A CN116414315A (zh) | 2023-04-23 | 2023-04-23 | 处理数据搬移的方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414315A true CN116414315A (zh) | 2023-07-11 |
Family
ID=87049453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310443158.5A Pending CN116414315A (zh) | 2023-04-23 | 2023-04-23 | 处理数据搬移的方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414315A (zh) |
-
2023
- 2023-04-23 CN CN202310443158.5A patent/CN116414315A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9612953B1 (en) | Data placement based on data properties in a tiered storage device system | |
US9811457B2 (en) | Data placement based on data retention in a tiered storage device system | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
CN104572489B (zh) | 磨损均衡方法及装置 | |
US8086819B2 (en) | Solid state drive optimizer | |
US20150193154A1 (en) | Data Migration Method, Data Migration Apparatus, and Storage Device | |
US10521294B2 (en) | Patrol scrub periods based on power status | |
CN107918523B (zh) | 数据储存装置及其数据写入方法 | |
US11430540B2 (en) | Defective memory unit screening in a memory system | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CN105573681A (zh) | 一种ssd盘片内部raid组建方法及系统 | |
CN105005450A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
KR102282879B1 (ko) | 고체 상태 드라이브의 전송 버퍼 사용률을 향상시키기 위해 nand 페이지 버퍼들을 사용하는 방법 및 시스템 | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
EP4078380A1 (en) | Behavior-driven die management on solid-state drives | |
CN101794622B (zh) | 存储设备的数据扫描方法和装置 | |
US10783982B2 (en) | Probation bit for data storage memory | |
US11204841B2 (en) | Meta data protection against unexpected power loss in a memory system | |
CN111651126B (zh) | 存储器的写操作方法、系统、电子设备和介质 | |
CN112732181A (zh) | 一种ssd的数据迁移方法及相关装置 | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
CN116414315A (zh) | 处理数据搬移的方法、装置、存储介质及电子设备 | |
CN106021124B (zh) | 一种数据的存储方法及存储系统 | |
US9880926B1 (en) | Log structured reserved zone for a data storage device | |
CN117075824B (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 |