CN115220647A - 存储管理的方法、电子设备和计算机程序产品 - Google Patents
存储管理的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN115220647A CN115220647A CN202110433325.9A CN202110433325A CN115220647A CN 115220647 A CN115220647 A CN 115220647A CN 202110433325 A CN202110433325 A CN 202110433325A CN 115220647 A CN115220647 A CN 115220647A
- Authority
- CN
- China
- Prior art keywords
- storage space
- data
- sub
- candidate sub
- ratio
- 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or systems
-
- 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
-
- 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]
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及存储管理的方法、电子设备和计算机程序产品。管理存储的方法包括确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联;以及至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。以此方式,由于降低了将SSD盘块中的有效数据移至新SSD盘块的操作,能够有效减小存储系统,特别是SSD的WAF,同时延长了SSD的使用寿命。
Description
技术领域
本公开的实施例一般地涉及数据处理系统,并且更特别地,涉及一种存储管理的方法、电子设备和计算机程序产品。
背景技术
在全闪存系统中至关重要的一个方面是降低固态盘(SSD)的写放大系数(WAF)。较高的WAF将使SSD的输入输出(I/O)变慢,并影响SSD的使用寿命。
特别是在重复数据删除系统中,由于具有复杂的子盘块数据(chunk data)引用关系,降低整个全闪存重复数据删除系统的WAF就更为重要。因为当一个过期的备份要被删除时,复杂的引用关系使得在一个SSD盘块中仅仅可以删除部分子盘块数据,而仍被其他有效备份引用的那些子盘块数据将被保留。
因此,在全闪存重复数据删除系统中,更有可能在SSD块中导致无效的漏洞页面,而这些无效的漏洞将增加SSD的WAF。
发明内容
本公开的实施例涉及一种存储管理的改进方案。
在本公开的第一方面,提供了一种用于数据处理的方法。该方法包括确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联;以及至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使电子设备执行动作。动作包括确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联;以及至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使设备执行第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了本公开的实施例可以在其中被实现的示例存储系统的框图;
图2示出了根据本公开的实施例的垃圾回收过程的示意图;
图3示出了根据本公开的实施例的垃圾回收过程的示意图;
图4示出了根据本公开的实施例的多个子存储空间的示意图;
图5示出了根据本公开的实施例的选择要被释放的子存储空间的示意图;
图6示出了根据本公开的实施例的用于存储管理的方法的流程图;
图7示出了可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
图1示出了本公开的实施例可以在其中被实现的示例存储系统100的示意图。如图1所示,存储系统100可以包括SSD 102。SSD 102可以由多个SSD盘块(block)组成,例如SSD盘块110、111、112和113。
每个SSD盘块可以包括多个子盘块(chunk)。例如,SSD盘块110包括子盘块120-0至120-9。SSD盘块111包括子盘块121-0至121-9。SSD盘块112包括子盘块122-0至122-9。SSD盘块113包括子盘块123-0至123-9。
存储系统100还可以包括计算设备101。该计算设备101可以用于管理SSD 102的读写、删除、存储空间释放等操作。
应当理解,图1仅仅示例性地示出了SSD 102的结构。然而,SSD 102可以包括任意数目的SSD盘块,而不局限于在图1中示出的示例。
上文已经提到,在全闪存系统中,至关重要的一个方面是降低SSD的WAF。较高的WAF将使SSD的I/O变慢,并影响SSD的使用寿命。
在图1示出的存储系统100例如可以是重复数据删除系统。在该重复数据删除系统中,每个SSD盘块所包括的子盘块均具有复杂的引用关系。因此,降低整个系统的WAF就显得尤为重要。
当一个过期的备份要被删除时,子盘块的复杂的引用关系将使得在一个SSD盘块中仅仅可以删除部分子盘块数据,而仍被其他有效备份引用的子盘块数据将被保留。
在这种情况下,常常在SSD盘块中导致无效的漏洞页面,而这些无效的漏洞将增加SSD的WAF。
对于备份系统而言,总是需要删除旧的过期备份数据并释放存储空间来存储新的备份数据。删除的数据存储空间在垃圾回收过程中释放。
在传统的垃圾收集方案中,存储空间将在一个垃圾收集过程中被尽可能地释放。同时,传统的垃圾回收方案通常会随机选择存储空间来释放它们。然而,传统的垃圾回收方案对于传统的HDD(硬盘)备份系统来说效果很好,但对于SSD(固态盘)备份系统却效果不佳。
在备份系统中,数据可以被用于重复数据删除的多个备份引用。因此,在删除了一些备份之后,某些子盘块数据可能仍然有效,因为它们仍被其他有效备份引用。这些删除的备份将导致SSD盘块中创建无效孔。
这些无效孔将增加WAF,因为SSD会将有效子盘块数据移至新SSD盘块并将旧的SSD盘块擦除。
新的SSD盘块中的有效子盘块数据有可能在下一次垃圾回收过程中变为无效。仍然有效的子盘块数据将再次被移至另一新SSD盘块中,旧的SSD盘块将再次被擦除。
图2示出了根据本公开的实施例的垃圾回收过程的示意图。如图2所示,SSD盘块110包括子盘块120-0至120-9。SSD盘块111包括子盘块121-0至121-9。SSD盘块112包括子盘块122-0至122-9。SSD盘块113包括子盘块123-0至123-9。
随着系统的使用,一些SSD盘块中的子盘块的数据变为无效。例如,SSD盘块110中的子盘块120-3以及120-6至120-9的数据变为无效。又例如,SSD盘块111中的子盘块121-2、121-3、121-6、121-7以及120-9的数据变为无效。
在一次垃圾回收过程中,在各个SSD盘块110、111、112和113中仍然有效的子盘块被移动到新的SSD盘块中。例如,SSD盘块110中的子盘块120-0至120-2、120-4和120-5被移动到SSD盘块114。SSD盘块112中的子盘块122-0、122-1、122-3、122-5和122-7被移动到SSD盘块115。
在本次垃圾回收过程中被移动到新的SSD盘块114和115的有效子盘块可能会继续变成无效子盘块。例如,SSD盘块114中的子盘块120-2、120-4、121-1、121-4和121-5的数据将变成无效子盘块。
在下一次垃圾回收过程中,被移动到新的SSD盘块114和115的仍然有效的子盘块将再次被移动至新的SSD盘块。例如,如图2所示,SSD盘块114中的有效子盘块120-0、120-1、120-5、121-0以及121-8被移动到新的SSD盘块116中。
由此可见,在图2示出的垃圾回收过程的示例中,在每次垃圾回收中都尽可能释放所有的无效存储空间,这不利于节省系统开销。
为了解决这一问题,期望的是延迟针对部分存储空间的释放进程。可以在更多的子盘块变成无效之后再释放相应的存储空间。由此可以避免写入一些子盘块数据,而在之后有奖这些子盘块数据从SSD盘块中删除。
图3示出了根据本公开的实施例的垃圾回收过程的示意图。如图3所示,当一些SSD盘块中的子盘块数据变为无效。例如,SSD盘块110中的子盘块120-3以及120-6至120-9的数据变为无效。又例如,SSD盘块111中的子盘块121-2、121-3、121-6、121-7以及120-9的数据变为无效。
然而,已失效的子盘块数据对应的存储空间并不急于被释放。可以等待SSD盘块中更多的子盘块数据变为无效。例如,随着系统的使用,SSD盘块110中的子盘块120-4的数据进一步变成无效,而SSD盘块111中的子盘块121-0和121-1的数据进一步变成无效。
接下来,在一次垃圾回收过程中,在各个SSD盘块110、111、112和113中仍然有效的子盘块被移动到新的SSD盘块中。例如,SSD盘块110中的子盘块120-0至120-1和120-5、SSD盘块111中的子盘块121-4至121-5和121-8、SSD盘块112中的子盘块122-0和125-5以及SSD盘块113中的子盘块123-1和123-5被移动到SSD盘块114。
为了进一步优化存储空间的释放过程,本公开的实施例提出一种存储管理方法。在本公开的方案中,可以分别确定盘的多个子存储空间中的相应的已失效数据的数据量,并且至少基于这些子存储空间的各自的已失效数据的数据量来选择要被释放是子存储空间。以此方式,能够有效减小存储系统,特别是SSD的WAF,同时延长了SSD的使用寿命。
图4示出了根据本公开的实施例的多个子存储空间的示意图。如图4所示,SSD 102的存储空间可以被划分成多个子存储空间401至405。这些子存储空间中的每个存储空间可以具有连续的物理地址。一个子存储空间的大小可以与组成SSD 102的多个SSD盘块的一个SSD盘块的存储空间大小相关联。例如,如果SSD盘块的存储空间大小为M,则子存储空间大小可以为N×M。
在一些实施例中,存储系统可以周期性地获取SSD盘的剩余空闲存储空间的大小。如果存储系统确定SSD盘的剩余空闲存储空间的大小低于阈值空间大小,则可以触发对于SSD盘的每个子存储空间的相应的已失效数据的数据量的确定。
在一些实施例中,对于SSD盘的每个子存储空间的相应的已失效数据的数据量的确定也可以通过新的读写请求的来触发。例如,如果存储系统接收到针对目标数据的写入请求,则存储系统可以确定当前SSD盘的剩余空闲存储空间的大小是否能够满足该目标数据的数据量。如果确定当前SSD盘的剩余空闲存储空间的大小低于该目标数据的数据量,则可以触发对于SSD盘的每个子存储空间的相应的已失效数据的数据量的确定。
通过确定SSD盘的每个子存储空间的相应的已失效数据的数据量,可以从这些子存储空间中选择将要被释放的目标存储空间。
图5示出了根据本公开的实施例的选择要被释放的子存储空间的示意图。将结合图4和图5来描述要被释放的子存储空间的选择过程。
如图5所示,子存储空间401可以包括多个有效数据511至513,以及多个已删除数据521至523,其可以被视作已失效数据。同样的,对于图4中的其他子存储空间402至405,也可以分别包括各自的有效数据和已删除数据。
在一些实施例中,可以确定各个子存储空间中的已删除数据的数据量。例如,在图5示出的子存储空间401中,假设已删除数据521的数据量为S1,已删除数据522的数据量为S2以及已删除数据523的数据量为S3,则子存储空间401中的已删除数据的总量为St=S1+S2+S3。假设子存储空间401的存储空间总量为S,则可以确定子存储空间401中的已失效数据的数据量与存储空间总量之比(Rd)为St/S。以此方式,可以确定在各个子存储空间401至405中的相应的Rd值。
在选择将要被释放的子存储空间的过程中,可以确定在各个子存储空间401至405中具有超出阈值Rd的Rd值的子存储空间。例如,如果确定子存储空间401的Rd值超出阈值Rd,则将子存储空间401确定为将要被释放的目标子存储空间。
在一些实施例中,如果确定两个以上的子存储空间的Rd值超出阈值Rd,则可以进一步对将要被释放的目标子存储空间进行选择。
例如,如果子存储空间401和子存储空间402的Rd值均超出Rd值,则可以确定在子存储空间401的已失效数据的数据量中的第一子数据量和子存储空间402的已失效数据的数据量中的第二子数据量。该第一子数据量可以对应于子存储空间401中的具有连续物理地址的一组存储空间,而第二数据量可以对应于子存储空间402中的具有连续物理地址的一组存储空间。
在一些实施例中,如果确定子存储空间401的已失效数据的数据量中的一组数据量所对应的一组存储空间具有连续物理地址且其连续总量大小超出阈值数据量,则将该组数据量确定为第一数据量。
同样的,如果确定子存储空间402的已失效数据的数据量中的一组数据量所对应的一组存储空间具有连续物理地址且其连续总量大小超出阈值数据量,则将该组数据量确定为第二数据量。
在一个实施例中,阈值数据量可以根据一个SSD盘块的存储空间大小来定义。例如,阈值数据量可以被确定为一个SSD盘块的存储空间大小的三倍。因此该阈值数据量可以确保已失效数据将覆盖一个或多个SSD盘块。如果删除这些已失效数据,则不会将任何数据重写到其他SSD盘块,因为没有需要移动到其他SSD盘块的有效数据,并且可以直接将整个SSD盘块擦除,因为在该SSD盘块中的所有数据均为已失效数据。
仍然参照图5,例如如果已删除数据521、522和523的数据量所对应的存储空间均具有连续物理地址,则确定已删除数据521、522和523各自的已删除数据的数据量是否超出阈值数据量Sn。
如果确定已删除数据521和523的已删除数据的数据量超出阈值数据量Sn,则在子存储空间401的已失效数据的数据量中的第一子数据量可以是Sc=S1+S3。假设子存储空间401的存储空间总量为S,则可以确定子存储空间401中的已失效数据的数据量中的第一数据量与存储空间总量之比(Rcd)为Sc/S。以此方式,还可以确定子存储空间402中的相应的Rcd值。
如果确定子存储空间401中的已失效数据的数据量中的第一数据量与子存储空间401的存储空间总量之比,即第一Rcd值,超出子存储空间402中的已失效数据的数据量中的第二数据量与子存储空间402的存储空间总量之比,即第二Rcd值,则将子存储空间401确定为将要被释放的目标子存储空间。
在一个实施例中,如果确定第一Rcd值与第二Rcd值相等,则可以通过在一定时间间隔内子存储空间401和子存储空间402中数据失效的趋势来进一步选择将被释放的目标子存储空间。该趋势在下文中也可以被称作温度。在最近的预定次数的垃圾回收中将被删除(已失效的数据)的数据越多,则该子存储空间的温度则越高。
可以通过下式来确定子存储空间的温度T:
其中Sgm为最近的预定次数的垃圾回收中将被删除数据的数据量,S为子存储空间的空间总量,N为温度系数。
在一个实施例中,如果确定子存储空间401的温度T1高于子存储空间402的温度T2,则将子存储空间401确定为将要被释放的目标子存储空间。
在一些实施例中,在释放了被选择的目标子存储空间之后,可以确定SSD盘的当前的空闲存储空间能否满足要写入的目标数据的数据量需求,如果当前的空闲存储空间无法满足要写入的目标数据的数据量需求,则可以进一步确定将要被释放的另一子存储空间。
以此方式,由于降低了将SSD盘块中的有效数据移至新SSD盘块的操作,能够有效减小存储系统,特别是SSD的WAF,同时延长了SSD的使用寿命。
图6示出了根据本公开的一些实施例的用于存储管理的方法600的流程图。方法600可以被实现在图1所示的系统100中。方法600例如可以由设置在图1示出的系统100中的计算设备101来实施。可以结合图1来描述方法600。
在框610,计算设备101确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联。
在框620,计算设备101至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。
在一些实施例中,计算设备101可以确定多个候选子存储空间中的第一候选子存储空间中已经失效的第一数据量与所述第一候选子存储空间的大小之间的第一比值。如果计算设备101确定所述第一比值超出阈值比值,将所述第一候选子存储空间选择为目标子存储空间。
在一些实施例中,计算设备101可以确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值。如果计算设备101确定第一比值和所述第二比值均超出阈值比值,则计算设备101可以确定在所述第一数据量中的第一子数据量与第一候选子存储空间的大小之间的第三比值和在所述第二数据量中的第二子数据量与第二候选子存储空间的大小之间的第四比值,所述第一子数据量对应于所述第一候选子存储空间中的具有连续物理地址的一组存储空间,所述第二子数据量对应于所述第二候选子存储空间中的具有连续物理地址的另一组存储空间。如果计算设备101确定所述第三比值大于所述第四比值,则将所述第一候选子存储空间选择为目标子存储存储空间。
在一些实施例中,如果确定所述第三比值等于所述第四比值,则计算设备101确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量。如果确定所述第三数据量超出所述第四数据量,则计算设备101将所述第一候选子存储空间选择为目标子存储空间。
在一些实施例中,计算设备101可以确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值。如果计算设备101确定第一比值和所述第二比值均超出阈值比值,则计算设备101可以确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量。如果确定所述第三数据量超出所述第四数据量,则计算设备101将所述第一候选子存储空间选择为目标子存储空间。
在一些实施例中,计算设备101可以确定将要被写入所述盘的目标数据的数据量是否超出所述盘的空闲存储空间的大小。如果确定所述目标数据的数据量超出空闲存储空间的大小,则计算设备101可以确定所述相应的已失效数据的数据量。
在一些实施例中,计算设备101可以确定所述盘的空闲存储空间的大小是否低于阈值空间大小。如果确定所述空闲存储空间低于所述阈值空间大小,则计算设备101确定所述相应的已失效数据的数据量。
在一些实施例中,计算设备101确定释放后的所述目标子存储空间中的空闲存储空间是否超出将要被写入所述盘的目标数据的数据量。如果确定释放后的所述目标子存储空间中的空闲存储空间超出将要被写入所述盘的所述目标数据的数据量,计算设备101将所述目标数据写入所述被释放的所述目标子存储存储空间。
在一些实施例中,如果确定释放后的所述目标子存储空间中的空闲存储空间小于将要被写入所述盘的所述目标数据的数据量,计算设备101从多个候选子存储空间中选择除了所述目标子存储空间之外的将要被释放的另一目标子存储空间。
图7示意性示出能够被用来实施本公开的实施例的设备700的框图。设备700可以被实现为或者被包括于图1的存储系统100或存储系统100的计算设备101处。
如图7中所示出的,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储设备(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储设备(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程600可由处理单元701来执行。例如,在一些实施例中,过程600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程600的一个或多个步骤。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
Claims (19)
1.一种存储管理的方法,包括:
确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联;以及
至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。
2.根据权利要求所述的方法,其中选择要被释放的目标子存储空间包括:
确定多个候选子存储空间中的第一候选子存储空间中已经失效的第一数据量与所述第一候选子存储空间的大小之间的第一比值;以及
如果确定所述第一比值超出阈值比值,将所述第一候选子存储空间选择为目标子存储空间。
3.根据权利要求1所述的方法,其中选择要被释放的目标子存储空间包括:
确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值;
如果所述第一比值和所述第二比值均超出阈值比值,确定在所述第一数据量中的第一子数据量与第一候选子存储空间的大小之间的第三比值和在所述第二数据量中的第二子数据量与第二候选子存储空间的大小之间的第四比值,所述第一子数据量对应于所述第一候选子存储空间中的具有连续物理地址的一组存储空间,所述第二子数据量对应于所述第二候选子存储空间中的具有连续物理地址的另一组存储空间;以及
如果确定所述第三比值大于所述第四比值,将所述第一候选子存储空间选择为目标子存储存储空间。
4.根据权利要求3所述的方法,还包括:
如果确定所述第三比值等于所述第四比值,确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量;以及
如果确定所述第三数据量超出所述第四数据量,则将所述第一候选子存储空间选择为目标子存储空间。
5.根据权利要求1所述的方法,其中选择要被释放的目标子存储空间包括:
确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值;
如果所述第一比值和所述第二比值均超出阈值比值,确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量;以及
如果确定所述第三数据量超出所述第四数据量,则将所述第一候选子存储空间选择为目标子存储空间。
6.根据权利要求1所述的方法,其中确定所述相应的已失效数据的数据量包括:
确定将要被写入所述盘的目标数据的数据量是否超出所述盘的空闲存储空间的大小;以及
如果确定所述目标数据的数据量超出空闲存储空间的大小,确定所述相应的已失效数据的数据量。
7.根据权利要求1所述的方法,其中确定所述相应的已失效数据的数据量包括:
确定所述盘的空闲存储空间的大小是否低于阈值空间大小;以及
如果确定所述空闲存储空间低于所述阈值空间大小,确定所述相应的已失效数据的数据量。
8.根据权利要求1所述的方法,还包括:
确定释放后的所述目标子存储空间中的空闲存储空间是否超出将要被写入所述盘的目标数据的数据量;以及
如果确定释放后的所述目标子存储空间中的空闲存储空间超出将要被写入所述盘的所述目标数据的数据量,将所述目标数据写入所述被释放的所述目标子存储存储空间。
9.根据权利要求8所述的方法,还包括:
如果确定释放后的所述目标子存储空间中的空闲存储空间小于将要被写入所述盘的所述目标数据的数据量,从多个候选子存储空间中选择除了所述目标子存储空间之外的将要被释放的另一目标子存储空间。
10.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器保存需要执行的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
确定盘的多个候选子存储空间中相应的已失效数据的数据量,所述多个候选子存储空间由所述盘的原始存储空间划分而成并且具有连续的物理地址,一个候选子存储空间的大小与组成所述盘的至少一个盘块的存储空间的大小相关联;以及
至少基于所述相应的已失效数据的数据量而从所述多个候选子存储空间中选择要被释放的目标子存储空间。
11.根据权利要求10所述的设备,其中通过以下方式选择要被释放的目标子存储空间:
确定多个候选子存储空间中的第一候选子存储空间中已经失效的第一数据量与所述第一候选子存储空间的大小之间的第一比值;以及
如果确定所述第一比值超出阈值比值,将所述第一候选子存储空间选择为目标子存储空间。
12.根据权利要求10所述的设备,其中通过以下方式选择要被释放的目标子存储空间:
确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值;
如果所述第一比值和所述第二比值均超出阈值比值并且所述第一比值等于所述第二比值,确定在所述第一数据量中的第一子数据量与第一候选子存储空间的大小之间的第三比值和在所述第二数据量中的第二子数据量与第二候选子存储空间的大小之间的第四比值,所述第一子数据量对应于所述第一候选子存储空间中的具有连续物理地址的一组存储空间,所述第二子数据量对应于所述第二候选子存储空间中的具有连续物理地址的另一组存储空间;以及
如果确定所述第三比值大于所述第四比值,将所述第一候选子存储空间选择为目标子存储存储空间。
13.根据权利要求12所述的设备,所述动作还包括:
如果确定所述第三比值等于所述第四比值,确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量;以及
如果确定所述第三数据量超出所述第四数据量,则将所述第一候选子存储空间选择为目标子存储空间。
14.根据权利要求10所述的设备,其中通过以下方式选择要被释放的目标子存储空间:
确定多个候选子存储空间中的第一候选子存储空间中已失效数据的第一数据量与所述第一候选子存储空间的大小之间的第一比值和多个候选子存储空间中的第二候选子存储空间中已失效数据的第二数据量与所述第二候选子存储空间的大小之间的第二比值;
如果所述第一比值和所述第二比值均超出阈值比值,确定在预定时间区间内所述第一候选子存储空间中发生失效的数据的第三数据量和所述第二候选子存储空间中发生失效的数据的第四数据量;以及
如果确定所述第三数据量超出所述第四数据量,则将所述第一候选子存储空间选择为目标子存储空间。
15.根据权利要求10所述的设备,其中通过以下方式确定所述相应的已失效数据的数据量:
确定将要被写入所述盘的目标数据的数据量是否超出所述盘的空闲存储空间的大小;以及
如果确定所述目标数据的数据量超出空闲存储空间的大小,确定所述相应的已失效数据的数据量。
16.根据权利要求10所述的设备,其中通过以下方式确定所述相应的已失效数据的数据量:
确定所述盘的空闲存储空间的大小是否低于阈值空间大小;以及
如果确定所述空闲存储空间低于所述阈值空间大小,确定所述相应的已失效数据的数据量。
17.根据权利要求10所述的设备,所述动作还包括:
确定释放后的所述目标子存储空间中的空闲存储空间是否超出将要被写入所述盘的所述目标数据的数据量;以及
如果确定释放后的所述目标子存储空间中的空闲存储空间超出将要被写入所述盘的所述目标数据的数据量,将所述目标数据写入所述被释放的所述目标子存储存储空间。
18.根据权利要求17所述的设备,所述动作还包括:
如果确定释放后的所述目标子存储空间中的空闲存储空间小于将要被写入所述盘的所述目标数据的数据量,从多个候选子存储空间中选择除了所述目标子存储空间之外的将要被释放的另一目标子存储空间。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至9任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110433325.9A CN115220647A (zh) | 2021-04-21 | 2021-04-21 | 存储管理的方法、电子设备和计算机程序产品 |
US17/327,356 US11567671B2 (en) | 2021-04-21 | 2021-05-21 | Method, electronic device, and computer program product for storage management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110433325.9A CN115220647A (zh) | 2021-04-21 | 2021-04-21 | 存储管理的方法、电子设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220647A true CN115220647A (zh) | 2022-10-21 |
Family
ID=83607001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110433325.9A Pending CN115220647A (zh) | 2021-04-21 | 2021-04-21 | 存储管理的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11567671B2 (zh) |
CN (1) | CN115220647A (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7330931B2 (en) * | 2003-06-26 | 2008-02-12 | Copan Systems, Inc. | Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system |
JP4681249B2 (ja) * | 2004-04-09 | 2011-05-11 | 株式会社日立製作所 | ディスクアレイ装置 |
US8135907B2 (en) * | 2008-06-30 | 2012-03-13 | Oracle America, Inc. | Method and system for managing wear-level aware file systems |
US8065558B2 (en) * | 2009-03-24 | 2011-11-22 | Lsi Corporation | Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance |
US9110919B2 (en) * | 2009-10-30 | 2015-08-18 | Symantec Corporation | Method for quickly identifying data residing on a volume in a multivolume file system |
US8453036B1 (en) * | 2010-02-01 | 2013-05-28 | Network Appliance, Inc. | System and method for dynamically resizing a parity declustered group |
US9503517B1 (en) * | 2012-05-07 | 2016-11-22 | Amazon Technologies, Inc. | Data volume placement techniques |
US10108644B1 (en) * | 2014-03-12 | 2018-10-23 | EMC IP Holding Company LLC | Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration |
US9940073B1 (en) * | 2014-06-30 | 2018-04-10 | EMC IP Holding Company LLC | Method and apparatus for automated selection of a storage group for storage tiering |
-
2021
- 2021-04-21 CN CN202110433325.9A patent/CN115220647A/zh active Pending
- 2021-05-21 US US17/327,356 patent/US11567671B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11567671B2 (en) | 2023-01-31 |
US20220342564A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200249849A1 (en) | Method and apparatus for managing storage system | |
US9256542B1 (en) | Adaptive intelligent storage controller and associated methods | |
US6615318B2 (en) | Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries | |
US9063945B2 (en) | Apparatus and method to copy data | |
JP4681249B2 (ja) | ディスクアレイ装置 | |
US20140115244A1 (en) | Apparatus, system and method for providing a persistent level-two cache | |
JP2008015769A (ja) | ストレージシステム及び書き込み分散方法 | |
US10013473B2 (en) | Fast snapshots | |
US11449402B2 (en) | Handling of offline storage disk | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
CN114063883B (zh) | 存储数据方法、电子设备和计算机程序产品 | |
US9369527B2 (en) | File server, file server control method, and storage system | |
CN112748865B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
CN109344011B (zh) | 一种数据备份方法及装置 | |
CN115220647A (zh) | 存储管理的方法、电子设备和计算机程序产品 | |
US11163446B1 (en) | Systems and methods of amortizing deletion processing of a log structured storage based volume virtualization | |
KR101295210B1 (ko) | 데이터베이스 관리 방법 및 장치 | |
US8688916B2 (en) | Storage system and data processing method using cache memory | |
JP7548609B1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2015194878A (ja) | 管理システム、管理装置、管理対象装置、及び管理プログラム | |
US11645198B2 (en) | Buffer pool maintenance improvement | |
US11226881B2 (en) | Responding to a fault of a disk which stores metadata and user data in different disk slices | |
CN115129680A (zh) | 一种提高数据库性能的方法、装置、设备及可读介质 | |
CN117827117A (zh) | 降低磁盘i/o的方法、装置和电子设备 | |
CN114896203A (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 |