CN113311992A - 固态硬盘预留空间的动态调整方法及装置 - Google Patents

固态硬盘预留空间的动态调整方法及装置 Download PDF

Info

Publication number
CN113311992A
CN113311992A CN202010899351.6A CN202010899351A CN113311992A CN 113311992 A CN113311992 A CN 113311992A CN 202010899351 A CN202010899351 A CN 202010899351A CN 113311992 A CN113311992 A CN 113311992A
Authority
CN
China
Prior art keywords
block
reserved space
block group
target
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.)
Granted
Application number
CN202010899351.6A
Other languages
English (en)
Other versions
CN113311992B (zh
Inventor
王正勇
颜红波
刘攀
刘飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010899351.6A priority Critical patent/CN113311992B/zh
Publication of CN113311992A publication Critical patent/CN113311992A/zh
Application granted granted Critical
Publication of CN113311992B publication Critical patent/CN113311992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种固态硬盘预留空间的动态调整方法及装置。其中,该方法包括:确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,该文件系统中包括多个块组,每个块组预先配置了预留空间块;从多个块组中确定目标块组;对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间。本发明解决了相关技术中对固态硬盘在线动态调整预留空间时,无法保留固态硬盘上的数据的技术问题。

Description

固态硬盘预留空间的动态调整方法及装置
技术领域
本发明涉及固态硬盘控制技术领域,具体而言,涉及一种固态硬盘预留空间的动态调整方法及装置。
背景技术
预留空间(Over Provisioning,简称OP)指的是固态硬盘中用户不可操作的那一部分空间,预留空间大小为固态硬盘实际的容量减去用户的可用容量。而这部分预留空间的空间主要被用于对固态硬盘的性能进行优化操作,包括但不限于:磨损均衡、垃圾回收和坏块映射等,往往预留空间越多,磁盘性能越高,寿命越长。
对于实际用户来说,可以操作的主要是动态预留空间,即厂商预留给用户可配置的空间。通过预留给固态硬盘额外的空间牺牲用户容量,能够获得如下好处:提高写性能:基于固态硬盘的特性,由于有预留空间的存在,写入数据时并不需要经常做垃圾回收,加快了写入速度。降低写放大:预留空间多了之后,每个块的有效数据减少,垃圾更多,因此需要重写更少的数据,因此写放大更小。增加固态硬盘使用寿命减少数据的搬迁,就是减少固态硬盘的读写次数,增加使用寿命。因此,在需要高性能,高寿命的场景下,往往用户需要通过增加固态硬盘的预留空间并牺牲一定的存储空间。
由于预留空间有着上述的几种好处,对于追求性能的用户来说,往往都希望能够适当的增加预留空间来提升固态硬盘的性能。目前业界普遍的做法包括以下几种:硬件层面:用户在使用固态硬盘之前,通过固态硬盘厂商提供的配置工具手动调整预留空间,或者用户和厂商协商好,在固态硬盘出厂设置的时候就把预留空间配置好。文件系统层面:在分区时预留一部分空间不使用或者强制预先确定好一部分空间不使用。底层驱动层面:限制可使用固态硬盘的最大的逻辑区块地址,这样在操作系统层面,用户看不到这部分容量。但是,上述这些方法都有一个比较显著的缺点:需要在使用固态硬盘之前就确定并配置好预留空间,固态硬盘的性能以及容量也就从一开始确定好了。下次用户再需要更改预留空间的话就得进行全盘数据的擦除。而用户的使用场景却非常复杂,很多用户往往在使用之初认为性能能够满足需求,而随着时间的推移,发现性能无法满足业务需求时,那就只能擦除固态硬盘上的所有数据。用户无法在保留数据的情况下对固态硬盘进行动态调整预留空间,这往往是不可接受的。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种固态硬盘预留空间的动态调整方法及装置,以至少解决相关技术中对固态硬盘在线动态调整预留空间时,无法保留固态硬盘上的数据的技术问题。
根据本发明实施例的一个方面,提供了一种固态硬盘预留空间的动态调整方法,包括:确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;从所述多个块组中确定目标块组;对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
进一步地,在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,所述方法还包括:基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;对所述目标块组执行目标操作包括:依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
进一步地,从所述多个块组中确定目标块组包括:扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;若存在没有存储数据的块组,则将没有存储数据的块组作为所述目标块组;若不存在没有存储数据的块组,则选择剩余容量最多的块组作为所述目标块组。
进一步地,对所述目标块组执行目标操作包括:对所述目标块组执行TRIM操作。
进一步地,在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,所述方法还包括:若检测到用户输入的删除指令,则基于所述删除指令执行删除块组中的预留空间块。
进一步地,基于所述删除指令执行删除块组中的预留空间块包括:依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;基于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
进一步地,所述方法还包括:在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;若接收到用户在所述交互界面输入的选择执行所述目标操作的指令,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
进一步地,所述方法还包括:所述文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据所述固态硬盘的容量确定。
根据本发明实施例的一个方面,提供了一种固态硬盘预留空间的动态调整装置,包括:第一确定单元,用于确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;第二确定单元,用于从所述多个块组中确定目标块组;第一执行单元,用于对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
进一步地,所述装置还包括:更新单元,用于在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;所述第一执行单元用于依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
进一步地,所述第二确定单元包括:判断模块,用于扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;第一确定模块,用于在存在没有存储数据的块组的情况下,则将没有存储数据的块组作为所述目标块组;第二确定模块,用于在不存在没有存储数据的块组的情况下,则选择剩余容量最多的块组作为所述目标块组。
进一步地,所述第一执行单元还用于对所述目标块组执行TRIM操作。
进一步地,所述装置还包括:第二执行单元,用于在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,在检测到用户输入的删除指令的情况下,则基于所述删除指令执行删除块组中的预留空间块。
进一步地,所述第二执行单元包括:定位模块,用于依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;更新模块,用于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
根据本发明实施例的一个方面,提供了一种非易失性存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的固态硬盘预留空间的动态调整方法。
根据本发明实施例的一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的固态硬盘预留空间的动态调整方法。
在本发明实施例中,采用动态调整固态硬盘的预留空间的方式,通过确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,文件系统中包括多个块组,每个块组预先配置了预留空间块;从多个块组中确定目标块组;对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间,达到了在保留固态硬盘上的数据的前提下,对固态硬盘的预留空间进行动态调整的目的,从而实现了提升固态硬盘的性能,延长固态硬盘的使用寿命的技术效果,进而解决了相关技术中对固态硬盘在线动态调整预留空间时,无法保留固态硬盘上的数据的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的计算机终端的硬件结构框图;
图2是根据本发明实施例一提供的固态硬盘预留空间的动态调整方法的流程图;
图3是根据本发明实施例一提供的文件系统中数据块的示意图;
图4是根据本发明实施例一提供的执行TRIM操作的示意图;
图5是根据本发明实施例一提供的可选的固态硬盘预留空间的动态调整方法的示意图;
图6是根据本发明实施例二提供的固态硬盘预留空间的调整装置的示意图;以及
图7是根据本发明实施例的可选的计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种固态硬盘预留空间的动态调整方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现固态硬盘预留空间的动态调整方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的固态硬盘预留空间的动态调整方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的固态硬盘预留空间的动态调整方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图2所示的固态硬盘预留空间的动态调整方法。图2是根据本发明实施例一的固态硬盘预留空间的动态调整方法的流程图。
步骤S101,确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块。
在用户认为固态硬盘的剩余可用空间容量不满足需求时,用户可以指定需要预留空间容量,然后触发调整操作,对于计算机而言,响应该调整操作,确定待调整预留空间的固态硬盘。
通常,相关技术中固态硬盘中的文件系统的数据块中包含有引导块、块组这两部分,其中,引导块主要起到引导数据加载以及记录文件系统分区的一些信息,而块组则将整个磁盘空间划分成固定大小的逻辑区域,每个块组内均包含有元数据信息(数据块位图、inode位图、inode表)和用户数据。
在本申请中,为了能够支持动态调整预留的机制,如图3所示,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,该方法还包括:所述文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据所述固态硬盘的容量确定。
上述方式是在本申请中引入了一种新的数据块组:预留块组(对应图3中的OP块组)。该预留块组不实际存储用户数据,并且也没有属于自己的逻辑空间区域。该预留块组中的OP数据块均来自于数据块中别的块组中的OP块。每个数据块的块组中包括OP块位图和OP块,OP块用于存储OP操作需要预留的磁盘空间。OP块组描述符表中记录了含有OP块的那些块组,通过上述方案,对文件系统中文件的存储格式进行了调整(也可以理解为本申请提供了定制化的文件存储格式),从而能够后续在线对预留空间进行调整。
步骤S102,从多个块组中确定目标块组。
在进行动态调整固态硬盘的预留空间之前,用户会指定的预留空间容量。根据用户指定的预留空间容量从多个块组中确定目标块组。
可选的,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,从多个块组中确定目标块组包括:扫描固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;若存在没有存储数据的块组,则将没有存储数据的块组作为目标块组;若不存在没有存储数据的块组,则选择剩余容量最多的块组作为目标块组。
也即,根据用户指定的预留空间容量,全盘扫描当前固态硬盘中有剩余空间的块组,优先选择没有数据的块组作为目标块组,如果所有的块组均已经存储有部分数据,则可以选择剩余容量最多的块组作为目标块组。通过上述操作能够在保留固态硬盘的存储的数据的前提下,选择出后续能够执行OP操作的块组。
可选的,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,在从多个块组中确定目标块组之后,在对目标块组执行目标操作之前,该方法还包括:基于目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息;对目标块组执行目标操作包括:依据预留空间块位图中的信息对目标块组执行目标操作。
在上述方案中,在从多个块组中确定目标块组之后,更新块组中的OP块位图以及OP块组的元数据信息。在后续对目标块组执行目标操作时,依据OP块位图中的信息执行预留空间调整操作。这样,虽然用户实际可操作的固态硬盘的容量减少了,但是固态硬盘中的数据得到了保留。
步骤S103,对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间。
通过上述步骤,在保留固态硬盘上的数据的前提下,实现对固态硬盘的预留空间进行动态调整的目的,从而实现了提升固态硬盘的性能,延长固态硬盘的使用寿命。
可选的,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,该方法还包括:在对目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,第一提示信息用于提示用户是否选择执行目标操作,并提示若对目标块组执行目标操作后会带来的影响;若接收到用户在交互界面输入的选择执行目标操作的指令,则控制对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间。
在上述方案中,通过把启动执行目标操作的过程呈现给用户,让用户自己选择是否对目标块组执行目标操作,并提示用户选择执行目标操作后会带来的影响,比如,会带来的好处或会引起的坏处。通过上述方案,可以与用户及时信息交互,让用户在获知对固态硬盘的预留空间进行动态调整会带来的影响的情况下,选择是否启动执行调整,以便更加准确的表达用户意图,提升用户体验。
如图4所示,在本申请中利用固态硬盘提供的TRIM机制(SCSI里面同等命名叫unmap,nvme里面叫deallocate,指的是同一功能),将目标块组中的部分数据执行擦除处理,以使目标块组交由固态硬盘回收。需要说明的是,上述的TRIM机制,它使操作系统得以通知固态硬盘那个块组不再包含有效数据,也相当于通知固态硬盘哪些数据块已不再考虑使用,可以被擦除。并通过更新预留空间块位图,将这部分区域的逻辑区块地址让用户不可见。这样操作之后,对于固态硬盘来说,FTL(闪存转换层)表中的逻辑区块地址减少了,留有更多的物理区块地址(Physics Block Address,简称PBA)给固态硬盘内部使用,从而达到动态预留空间的效果。
可选的,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,在对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间之后,该方法还包括:若检测到用户输入的删除指令,则基于删除指令执行删除块组中的预留空间块。
若用户希望固态硬盘保留更多的存储空间,则可以执行删除OP的操作,删除OP后,将预留空间进行了释放,将其作为存储空间,从而增加了固态硬盘的存储空间。
可选的,在根据本发明实施例一提供的固态硬盘预留空间的动态调整方法中,基于删除指令执行删除块组中的预留空间块包括:依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;基于删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
在上述方案中,对OP块组中的OP块组描述符表(对应上述的信息描述表)进行扫描,依次定位到对应的块组中的OP块数据,并执行释放操作,将这些块组的信息设置为空闲,并更新OP块组和各个块组的信息描述表。
如图5所示,图5中描述了固态硬盘预留空间的动态调整方法的整体流程。第一步:对格式化文件系统。首先需要对固态硬盘进行格式化,然后使用该定制化文件系统,在文件系统层创建op块组以及相关的元数据。第二步,正常读写操作。正常读写数据,填充数据,由于OP块分组对用户透明,使用起来与普通文件系统没有任何区别。文件系统层面会将分配可用的逻辑区块地址,并填充数据块位图。同时固态硬盘内部建立逻辑区块地址和物理区块地址的映射。第三步:动态执行OP操作。根据用户指定的OP容量,对文件系统进行动态OP操作。具体地,全盘扫描当前有剩余空间的块组,优先选择没有数据的块组,如果所有的块组均已经有部分数据,则按照一定的比例,依次选择剩余容量最多的块组。同时更新块组中的OP块位图以及OP块组的元数据信息。这样,虽然用户实际可操作的容量减少了,但是数据得到了保留。第四步,动态删除OP操作。如果用户希望保留更多的存储空间,可以执行删除OP的操作。对OP块组中的OP块组描述符表进行扫描,依次定位到对应的块组中的OP块数据,并执行释放操作,将这些块设置为空闲,并更新OP块组和各个块组的信息描述表。
上述方案,通过定制化文件系统的存储格式,增加了对于OP操作的机制。能够实现在不删除数据的情况下,对固态磁盘进行在线动态调整OP,从而达到提升性能和固态硬盘使用寿命的目的。本申请的方案,适用于云计算等大规模分布式存储的场景,对固态磁盘性能的要求会随着上层应用变化,通过动态调整OP的方案,可满足不同性能要求,降低了存储的成本。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述固态硬盘预留空间的动态调整方法的装置,如图6所示,该装置包括:第一确定单元601、第二确定单元602和第一执行单元603。
具体地,第一确定单元601,用于确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;
第二确定单元602,用于从多个块组中确定目标块组;
第一执行单元603,用于对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间。
综上所述,在本申请实施例二提供的固态硬盘预留空间的调整装置中,通过第一确定单元601,用于确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,所述文件系统中包括多个块组,每个块组预先配置了预留空间块;第二确定单元602,用于从多个块组中确定目标块组;第一执行单元603,用于对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,该装置还包括:更新单元,用于在从多个块组中确定目标块组之后,在对目标块组执行目标操作之前,基于目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息;第一执行单元用于依据预留空间块位图中的信息对目标块组执行目标操作。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,第二确定单元包括:判断模块,用于扫描固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;第一确定模块,用于在存在没有存储数据的块组的情况下,则将没有存储数据的块组作为目标块组;第二确定模块,用于在不存在没有存储数据的块组的情况下,则选择剩余容量最多的块组作为目标块组。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,第一执行单元还用于对目标块组执行TRIM操作。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,该装置还包括:第二执行单元,用于在对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间之后,在检测到用户输入的删除指令的情况下,则基于删除指令执行删除块组中的预留空间块。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,第二执行单元包括:定位模块,用于依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;更新模块,用于删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,该装置还包括:显示单元,用于在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;控制单元,用于在接收到用户在所述交互界面输入的选择执行所述目标操作的指令的情况下,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
可选地,在本申请实施例二提供的固态硬盘预留空间的调整装置中,该装置还包括:文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据固态硬盘的容量确定。
此处需要说明的是,上述的第一确定单元601、第二确定单元602和第一执行单元603对应于实施例1中的步骤S101至步骤S103,三个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
实施例3
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;从所述多个块组中确定目标块组;对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,所述方法还包括:基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;对所述目标块组执行目标操作包括:依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:从所述多个块组中确定目标块组包括:扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;若存在没有存储数据的块组,则将没有存储数据的块组作为所述目标块组;若不存在没有存储数据的块组,则选择剩余容量最多的块组作为所述目标块组。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:对所述目标块组执行目标操作包括:对所述目标块组执行TRIM操作。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,所述方法还包括:若检测到用户输入的删除指令,则基于所述删除指令执行删除块组中的预留空间块。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:基于所述删除指令执行删除块组中的预留空间块包括:依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;基于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;若接收到用户在所述交互界面输入的选择执行所述目标操作的指令,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
上述计算机终端还可以执行应用程序的固态硬盘预留空间的动态调整方法中以下步骤的程序代码:所述文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据所述固态硬盘的容量确定。
可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端可以包括:一个或多个(图7中仅示出一个)处理器、存储器。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的固态硬盘预留空间的动态调整方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的固态硬盘预留空间的动态调整方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;从所述多个块组中确定目标块组;对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,所述方法还包括:基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;对所述目标块组执行目标操作包括:依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:从所述多个块组中确定目标块组包括:扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;若存在没有存储数据的块组,则将没有存储数据的块组作为所述目标块组;若不存在没有存储数据的块组,则选择剩余容量最多的块组作为所述目标块组。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:对所述目标块组执行目标操作包括:对所述目标块组执行TRIM操作。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,所述方法还包括:若检测到用户输入的删除指令,则基于所述删除指令执行删除块组中的预留空间块。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:基于所述删除指令执行删除块组中的预留空间块包括:依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;基于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;若接收到用户在所述交互界面输入的选择执行所述目标操作的指令,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:所述文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据所述固态硬盘的容量确定。
采用本发明实施例,提供了一种固态硬盘预留空间的动态调整方法的方案。采用动态调整固态硬盘的预留空间的方式,通过确定待调整预留空间的固态硬盘,其中,文件系统建立在固态硬盘上,所述文件系统中包括多个块组,每个块组预先配置了预留空间块;从多个块组中确定目标块组;对目标块组执行目标操作,以将目标块组中的预留空间块调整为固态硬盘的预留空间,达到了在保留固态硬盘上的数据的前提下,对固态硬盘的预留空间进行动态调整的目的,从而实现了提升固态硬盘的性能,延长固态硬盘的使用寿命的技术效果,进而解决了相关技术中对固态硬盘在线动态调整预留空间时,无法保留固态硬盘上的数据的技术问题。
本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种非易失性存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的固态硬盘预留空间的动态调整方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;从所述多个块组中确定目标块组;对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
存储介质还被设置为存储用于执行以下步骤的程序代码:在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,所述方法还包括:基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;对所述目标块组执行目标操作包括:依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
存储介质还被设置为存储用于执行以下步骤的程序代码:从所述多个块组中确定目标块组包括:扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;若存在没有存储数据的块组,则将没有存储数据的块组作为所述目标块组;若不存在没有存储数据的块组,则选择剩余容量最多的块组作为所述目标块组。
存储介质还被设置为存储用于执行以下步骤的程序代码:对所述目标块组执行目标操作包括:对所述目标块组执行TRIM操作。
存储介质还被设置为存储用于执行以下步骤的程序代码:在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,所述方法还包括:若检测到用户输入的删除指令,则基于所述删除指令执行删除块组中的预留空间块。
存储介质还被设置为存储用于执行以下步骤的程序代码:基于所述删除指令执行删除块组中的预留空间块包括:依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;基于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
存储介质还被设置为存储用于执行以下步骤的程序代码:在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;若接收到用户在所述交互界面输入的选择执行所述目标操作的指令,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
存储介质还被设置为存储用于执行以下步骤的程序代码:所述文件系统中包括:引导块、多个块组和预留空间块组,其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,其中,多个块组的数量是根据所述固态硬盘的容量确定。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (16)

1.一种固态硬盘预留空间的动态调整方法,其特征在于,包括:
确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;
从所述多个块组中确定目标块组;
对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
2.根据权利要求1所述的动态调整方法,其特征在于,
在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,所述方法还包括:基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息;
对所述目标块组执行目标操作包括:依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
3.根据权利要求1所述的动态调整方法,其特征在于,从所述多个块组中确定目标块组包括:
扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;
若存在没有存储数据的块组,则将没有存储数据的块组作为所述目标块组;
若不存在没有存储数据的块组,则选择剩余容量最多的块组作为所述目标块组。
4.根据权利要求1所述的动态调整方法,其特征在于,对所述目标块组执行目标操作包括:对所述目标块组执行TRIM操作。
5.根据权利要求1所述的动态调整方法,其特征在于,在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,所述方法还包括:
若检测到用户输入的删除指令,则基于所述删除指令执行删除块组中的预留空间块。
6.根据权利要求5所述的调整方法,其特征在于,基于所述删除指令执行删除块组中的预留空间块包括:
依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;
基于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
7.根据权利要求1所述的调整方法,其特征在于,所述方法还包括:
在对所述目标块组执行目标操作之前,在交互界面显示第一提示信息,其中,所述第一提示信息用于提示用户是否选择执行目标操作,并提示若对所述目标块组执行所述目标操作后会带来的影响;
若接收到用户在所述交互界面输入的选择执行所述目标操作的指令,则控制对所述目标块组执行所述目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
8.根据权利要求1所述的调整方法,其特征在于,所述方法还包括:
所述文件系统中包括:引导块、多个块组和预留空间块组,
其中,每个块组中包括:超级块,块组描述符表、预留全局描述符表、数据块位图、预留空间块位图、节点位图、节点表、数据块和预留空间块,
其中,所述预留空间块组中包括:预留空间块组描述符表、预留空间数据块位图、多个块组的预留空间块,
其中,多个块组的数量是根据所述固态硬盘的容量确定。
9.一种固态硬盘预留空间的动态调整装置,其特征在于,包括:
第一确定单元,用于确定待调整预留空间的固态硬盘,其中,文件系统建立在所述固态硬盘上,所述文件系统中包括多个块组,每个块组中预先配置了预留空间块;
第二确定单元,用于从所述多个块组中确定目标块组;
第一执行单元,用于对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间。
10.根据权利要求9所述的动态调整装置,其特征在于,
所述装置还包括:更新单元,用于在从所述多个块组中确定目标块组之后,在对所述目标块组执行目标操作之前,基于所述目标块组的信息更新预留空间块位图中的信息,其中,所述预留空间块位图用于记录预留空间块的信息,其中,所述预留空间块位图用于记录预留空间块的信息;
所述第一执行单元用于依据所述预留空间块位图中的信息对所述目标块组执行目标操作。
11.根据权利要求9所述的动态调整装置,其特征在于,所述第二确定单元包括:
判断模块,用于扫描所述固态硬盘中当前有剩余容量的块组,判断是否存在没有存储数据的块组;
第一确定模块,用于在存在没有存储数据的块组的情况下,则将没有存储数据的块组作为所述目标块组;
第二确定模块,用于在不存在没有存储数据的块组的情况下,则选择剩余容量最多的块组作为所述目标块组。
12.根据权利要求9所述的动态调整装置,其特征在于,所述第一执行单元还用于对所述目标块组执行TRIM操作。
13.根据权利要求9所述的动态调整装置,其特征在于,所述装置还包括:
第二执行单元,用于在对所述目标块组执行目标操作,以将所述目标块组中的预留空间块调整为所述固态硬盘的预留空间之后,在检测到用户输入的删除指令的情况下,则基于所述删除指令执行删除块组中的预留空间块。
14.根据权利要求13所述的调整装置,其特征在于,所述第二执行单元包括:
定位模块,用于依据各个块组的信息描述表中的信息,定位各个块组中的预留空间块;
更新模块,用于所述删除指令对各个预留空间块进行释放,以使释放后的预留空间块的逻辑区域地址对用户可见,并更新各个块组的信息描述表。
15.一种非易失性存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的固态硬盘预留空间的动态调整方法。
16.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的固态硬盘预留空间的动态调整方法。
CN202010899351.6A 2020-08-31 2020-08-31 固态硬盘预留空间的动态调整方法及装置 Active CN113311992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010899351.6A CN113311992B (zh) 2020-08-31 2020-08-31 固态硬盘预留空间的动态调整方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010899351.6A CN113311992B (zh) 2020-08-31 2020-08-31 固态硬盘预留空间的动态调整方法及装置

Publications (2)

Publication Number Publication Date
CN113311992A true CN113311992A (zh) 2021-08-27
CN113311992B CN113311992B (zh) 2024-01-23

Family

ID=77370771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010899351.6A Active CN113311992B (zh) 2020-08-31 2020-08-31 固态硬盘预留空间的动态调整方法及装置

Country Status (1)

Country Link
CN (1) CN113311992B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023051713A1 (en) * 2021-09-29 2023-04-06 Zhejiang Dahua Technology Co., Ltd. Systems, methods, devices, and media for data processing
CN117149093A (zh) * 2023-10-27 2023-12-01 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法
WO2024066483A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种硬盘管理方法、硬盘控制方法及相关设备
WO2024077993A1 (zh) * 2022-10-14 2024-04-18 华为技术有限公司 资源分配方法、装置、存储介质及程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
CN103543955A (zh) * 2013-08-05 2014-01-29 记忆科技(深圳)有限公司 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘
CN103562842A (zh) * 2011-05-24 2014-02-05 马维尔国际贸易有限公司 用于存储设备的用低预留空间实现低写入放大的方法
CN105867851A (zh) * 2016-03-30 2016-08-17 联想(北京)有限公司 一种存储设备调整方法及装置
CN106205706A (zh) * 2015-04-30 2016-12-07 旺宏电子股份有限公司 存储器装置与其相关的抹除方法
US20170242592A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
US10628301B1 (en) * 2018-06-21 2020-04-21 Lightbits Labs Ltd. System and method for optimizing write amplification of non-volatile memory storage media
CN111090398A (zh) * 2019-12-13 2020-05-01 北京浪潮数据技术有限公司 固态硬盘的垃圾回收方法、装置、设备及可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103562842A (zh) * 2011-05-24 2014-02-05 马维尔国际贸易有限公司 用于存储设备的用低预留空间实现低写入放大的方法
CN103543955A (zh) * 2013-08-05 2014-01-29 记忆科技(深圳)有限公司 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
CN106205706A (zh) * 2015-04-30 2016-12-07 旺宏电子股份有限公司 存储器装置与其相关的抹除方法
US20170242592A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
CN105867851A (zh) * 2016-03-30 2016-08-17 联想(北京)有限公司 一种存储设备调整方法及装置
US10628301B1 (en) * 2018-06-21 2020-04-21 Lightbits Labs Ltd. System and method for optimizing write amplification of non-volatile memory storage media
CN111090398A (zh) * 2019-12-13 2020-05-01 北京浪潮数据技术有限公司 固态硬盘的垃圾回收方法、装置、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
段星辉;陈仁;: "通过重组超级块改善固态硬盘寿命和性能的算法", 计算机应用, no. 2 *
郭建伟;: "简单技巧, 提升固态硬盘性能", 电脑知识与技术(经验技巧), no. 09 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023051713A1 (en) * 2021-09-29 2023-04-06 Zhejiang Dahua Technology Co., Ltd. Systems, methods, devices, and media for data processing
WO2024066483A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种硬盘管理方法、硬盘控制方法及相关设备
WO2024077993A1 (zh) * 2022-10-14 2024-04-18 华为技术有限公司 资源分配方法、装置、存储介质及程序产品
CN117149093A (zh) * 2023-10-27 2023-12-01 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Also Published As

Publication number Publication date
CN113311992B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
CN113311992A (zh) 固态硬盘预留空间的动态调整方法及装置
CN107111450B (zh) 使用分区表进行的磁盘分区拼接和重新均衡
EP3252592A1 (en) Method and device for storing and reading data
CN106610790B (zh) 一种重复数据删除方法及装置
US20220197818A1 (en) Method and apparatus for performing operations to namespaces of a flash memory device
US11650942B2 (en) Method and apparatus for data reads in host performance acceleration mode
JP2018518733A (ja) ファイル操作方法及び装置
CN107835986B (zh) 一种电子设备的数据操作方法及电子设备
CN109189772B (zh) 用于无文件系统存储介质的文件管理方法及系统
CN111046164A (zh) 一种用于更新待阅读书籍的方法与设备
CN103995855A (zh) 存储数据的方法和装置
CN103744614A (zh) 固态硬盘访问的方法及其固态硬盘
CN111124280A (zh) 一种数据追加写入方法、装置及电子设备和存储介质
CN107329904A (zh) 数据读取方法及装置
US20080147375A1 (en) System, method, device, and computer program product for providing a portable device having drive emulation capabilities
CN110928397B (zh) 用户界面刷新方法、装置、存储介质及电子装置
CN104219356A (zh) 一种显示搜索联系人信息的方法、装置和移动终端
CN104808953A (zh) 控制数据存储的方法、装置及移动终端
CN101908021B (zh) 一种闪存擦写方法及闪存存储器
CN112463055B (zh) 一种优化并使用固态硬盘l2p表的方法、系统、设备及介质
CN104408126B (zh) 一种数据库的持久化写入方法、装置和系统
CN107148612A (zh) 一种扩展用户分区的方法和装置
CN113434470A (zh) 数据分布方法、装置及电子设备
CN112434494A (zh) 一种文本编辑的方法、装置、终端及存储介质
WO2020113421A1 (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40058040

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant