存储管理方法、设备和计算机程序产品与流程

文档序号:30953456发布日期:2022-07-30 08:46阅读:121来源:国知局
存储管理方法、设备和计算机程序产品与流程

1.本公开的实施例一般地涉及存储系统,并且更特别地,涉及一种存储管理方法、电子设备和计算机程序产品。


背景技术:

2.瘦供应(thin provision)存储配置因为能够有效地使用存储空间而被广泛使用。在采用瘦供应存储配置的存储系统中,基于具有一定存储容量的物理存储设备来创建一个或多个文件系统,其中为创建的文件系统配置的虚拟存储空间的大小总和可以大于物理存储设备的存储容量。
3.瘦供应存储配置有利于根据文件系统的用户对存储容量的需求来扩展物理存储空间而无需再修改文件系统的设置。具体地,在创建文件系统时,可能向文件系统分配较小的物理存储空间,其小于所配置的存储空间。随着新数据被存入文件系统中,为文件系统扩展更多存储空间。同时,随着数据从文件系统中删除,所分配的存储空间被释放,并且还可以将文件系统的空闲存储空间回收到存储池。
4.在管理文件系统时,对文件系统的存储空间的扩展还是回收的决策会影响到存储池的空间使用效率以及文件系统的访问性能。期望应用更好的方案来确定针对文件系统的存储空间扩展或回收。


技术实现要素:

5.本公开的实施例涉及一种存储管理方案。
6.在本公开的第一方面,提供了一种存储管理方法。该方法包括:确定文件系统的物理存储空间的空闲程度和文件系统的访问特性;利用供应操作分类模型,基于空闲程度和访问特性,从多个存储供应操作中确定要针对文件系统执行的目标存储供应操作,多个存储供应操作至少包括存储空间扩展操作和存储空间回收操作,供应操作分类模型表征文件系统的不同空闲程度和不同访问特性与多个存储供应操作之间的关联关系;以及针对文件系统执行所确定的目标存储供应操作。
7.在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器以及存储有计算机程序指令的至少一个存储器。至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使得电子设备执行动作。动作包括确定文件系统的物理存储空间的空闲程度和文件系统的访问特性;利用供应操作分类模型,基于空闲程度和访问特性,从多个存储供应操作中确定要针对文件系统执行的目标存储供应操作,多个存储供应操作至少包括存储空间扩展操作和存储空间回收操作,供应操作分类模型表征文件系统的不同空闲程度和不同访问特性与多个存储供应操作之间的关联关系;以及针对文件系统执行所确定的目标存储供应操作。
8.在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读存储介质上并且包括计算机可执行指令,计算机可执行指令在由设备的
处理器执行时使设备执行第一方面的方法。
9.应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
10.通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
11.图1示出了本公开的实施例可以在其中被实现的示例存储系统的框图;
12.图2示出了根据本公开的一些实施例的存储管理方法的流程图;
13.图3示出了根据本公开的一些实施例的文件系统中用于顺序写的存储单元的示例;
14.图4示出了根据本公开的一些实施例的具有累计分布特性的函数的示例曲线;
15.图5示出了根据本公开的一些实施例的分类标签到供应操作分类模型的得分范围的示例映射;
16.图6示出了根据本公开的一些实施例的用于训练供应操作分类模型的方法的流程图;
17.图7示出了根据本公开的一些实施例的训练空闲程度、训练访问特性和分类标签的采集的示例;
18.图8示出了根据本公开的一些实施例的存储供应与基于常规方案的存储供应的性能比较;
19.图9示出了根据本公开的一些实施例的针对文件系统的存储供应的示例流程图;以及
20.图10示出了可以被用来实施本公开的实施例的设备的示意性框图。
21.贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
22.下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
23.如本文中所使用的,术语“机器学习”指的是涉及高性能计算、机器学习和人工智能算法的处理。在本文中,术语“机器学习模型”也可以称为“学习模型”、“学习网络”、“网络模型”、或“模型”。“神经网络”或“神经网络模型”是一种深度学习模型。概括来说,机器学习模型能够接收输入数据并且基于输入数据执行预测和输出预测结果。
24.机器学习模型可以包括多个处理层,每个处理层具有多个处理单元。处理单元有时也称为卷积核。在卷积神经网络(cnn)的卷积层中,处理单元称为卷积核或卷积滤波器。每个处理层中的处理单元基于对应的参数对该处理层的输入执行相应变化。处理层的输出被提供作为下一处理层的输入。机器学习模型的第一个处理层的输入是机器学习模型的模
型输入,最后一个处理层的输出是机器学习模型的模型输出。中间处理层的输入有时也称为机器学习模型提取的特征。机器学习模型的处理单元的全部参数的值形成机器学习模型的参数值集合。
25.机器学习主要可以划分为三个阶段,即训练阶段、测试阶段和应用阶段(也称为推理阶段)。在训练阶段,给定的机器学习模型可以使用大量的训练样本进行训练,不断迭代,直到机器学习模型能够从训练样本学习到预期目标。机器学习模型通过训练,可以被认为能够从训练数据中学习从输入到输出之间的映射或关联关系。经过训练后,机器学习模型的参数值集合被确定。在测试阶段,可以利用测试样本对已训练的机器学习模型进行测试,以确定机器学习模型的性能。在应用阶段,机器学习模型可以被用于基于训练得到的参数值集合,对实际的输入数据进行处理,以给出对应的输出。
26.图1示出了本公开的实施例可以在其中被实现的示例性存储系统100的示意图。如图1所示,存储系统100包括存储池130,基于存储池130创建的一个或多个文件系统120-1、120-2、
……
120-n(n是大于等于1的整数),以及存储管理系统110。为便于讨论,文件系统120-1、120-2、
……
120-n有时被统称为或分别称为文件系统120。
27.文件系统120可以被暴露给用户,以用于数据访问(例如,输入输出i/o访问)。存储池130包括一个或多个存储设备132-1、132-2、
……
、132-m(m是大于等于1的整数)等等,以用于提供文件系统120的物理存储空间。为便于讨论,存储设备132-1、132-2、
……
、132-m有时被统称为或分别称为存储设备132。
28.存储设备132可以包括各种类型的具有存储功能的设备,包括但不限于,硬盘(hdd)、固态盘(ssd)、可移除盘、紧致盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘、串行附接小型计算机系统接口(scsi)盘(sas)、串行高级技术附接(sata)盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。存储管理系统110被配置为控制和管理存储池130,包括对存储池130的存储空间分配,数据访问,数据重建,数据备份,等等。
29.文件系统120可以基于动态存储空间分配的方式被创建。例如,文件系统120可以基于瘦供应存储配置被创建。在基于瘦供应存储配置,可以根据文件系统120的用户对存储空间的实际需求来扩展或缩小为该文件系统120供应的物理存储空间而无需再修改文件系统的设置。
30.因此,基于瘦供应存储配置,为文件系统120配置的虚拟存储空间的总大小可以大于存储池130的物理存储空间。例如,在具有10tb存储容量的存储池的基础上,可以根据瘦供应存储创建被配置有10tb的虚拟存储空间的文件系统和配置有5tb的虚拟存储空间的另一文件系统。这两个文件系统根据存储需求从存储池获取存储空间。每个文件系统120允许使用为其配置的最大虚拟存储空间的额度。
31.通常,在创建文件系统120时,可以首先向文件系统120分配较小的物理存储空间,其小于所配置的存储空间。随着新数据被存入文件系统中,为文件系统扩展更多存储空间。同时,随着数据从文件系统中删除,所分配的存储空间被释放,并且还可以将文件系统的空闲存储空间回收到存储池。这样的动态存储空间扩展和回收有利于对存储池130的物理存储空间的有效利用,因为不需要从存储池130分配某个文件系统120所需的全部存储资源,从而可以将空闲存储空间分配给企图文件系统120使用。
32.应当理解,图1仅示意性地示出了存储系统100中的与本公开的实施例相关的单元、模块或组件。图1中示出的各个组件仅是一种示例存储系统管理架构,可能存在其他架构划分方式,用于其他功能的其他单元、模块或组件,等等。因此,本公开的实施例不限于图1所描绘的具体设备、单元、模块或组件,而是一般性地适用于任何基于raid技术的存储系统。图1中示出的各个组件(除存储设备132之外)可以被实现在单个或多个计算系统中。
33.对文件系统的存储空间的扩展和回收是一个需要权衡的问题。存储空间的扩展指的是(例如从存储池)向文件系统分配更多的物理存储空间,存储空间的回收指的是解除对文件系统的部分存储空间(空闲存储空间)的分配。
34.通常,如果向文件系统分配更多的存储空间,文件系统的i/o性能可以得到提升。发明人发现原因在于,随着对文件系统的写入、删除和覆盖,文件系统的空闲存储空间将变得碎片化。如果对非连续的空闲存储区域执行写入时,i/o性能会下降。特别是如果后端的存储池基于混合类型的存储设备并且存储设备包括hdd时,存储空间碎片化对i/o性能的影响更明显。因为hdd的i/o性能对文件系统的顺序写能力更敏感。如果文件系统能够从存储池获得更多的空闲存储空间,那么要写入的文件可以被写入到连续存储空间中,从而获得更好的i/o性能。
35.另一方面,如果为某个文件系统分配更多的存储空间,那么该文件系统对物理存储空间的利用效率可能会降低。此外,其他文件系统能够使用的存储空间变少。特别是在基于超额分配的瘦供应存储配置的系统中,可能会使一些文件系统无法获得预先配置的存储空间。
36.因此,在为文件系统提供的存储空间以提高i/o性能与出于存储空间效率考虑而在存储池保留空闲存储空间之间,需要进行权衡。
37.当前,对文件系统的存储空间的扩展或回收是基于阈值来实现。简而言之,当文件系统的空闲存储空间小于低水位线(lwm)时,文件系统的存储空间将被扩展,而当文件系统存储空间大于高水位线(hwm)时,要对文件系统的存储空间执行回收操作。
38.然而,发明人发现,基于阈值的扩展和回收决策对文件大小的适应能力较弱。通常lwm和hwm可以按百分比定义。例如,lwm可以被定义为25%,hwm可以被定义为30%。基于这样的lwm和hwm,对于已分配有100gb空间的文件系统,当空闲空间小于25gb时,可以对文件系统执行存储空间的扩展。当空闲空间超过30gb时,可以开始向存储池回收空间。然而,对于具有1tb空间分配的文件系统,触发存储空间扩展的绝对空闲空间将变为250gb,而触发存储空间回收的对应空闲空间为300gb。这将导致存储池在存储空间供应方面的过度投入,使瘦供应存储配置的空间效率降低。
39.发明人通过研究还发现,另一方面,基于阈值的扩展和回收决策难以适应不同文件系统的i/o性能要求。lwm和hwm这样的阈值,仅对文件系统的存储空间敏感,而不会考虑其他因素。虽然可以针对不同文件系统配置不同的lwm和hwm,但合适的lwm和hwm需要专业知识和对文件系统的深入研究才能够达到。此外,文件系统的具体应用可能会改变,那么i/o性能要求也可能会改变。
40.因此,需要改进的方案来确定如何执行文件系统的存储空间扩展和回收,从而在存储效率和i/o性能之间实现更好的平衡。
41.根据本公开的示例实施例,提出了一种改进的存储管理方案。根据该方案,利用供
应操作分类模型来表征文件系统的存储空间的不同空闲程度和不同访问特性与多个存储供应操作之间的关联关系。对于某个文件系统,利用供应操作分类模型,基于文件系统的存储空间的空闲程度并且确定文件系统的访问特性,从多个存储供应操作中确定要针对文件系统执行的目标存储供应操作。
42.通过综合考虑文件系统的空闲存储空间和与访问特性相关的信息,估计适合于文件系统当前存储空间和访问状况的存储供应操作,例如扩展存储空间或回收存储空间。以此方式,可以优化为文件系统分配的物理存储空间并且还能够满足文件系统的访问需求,从而实现在存储效率和i/o性能之间实现更好的平衡。
43.下文将结合附图来更详细讨论本公开的示例实施例。
44.图2示出了根据本公开的实施例的存储管理方法200的流程图。在一些实施例中,方法200可以被实现在存储管理系统110处。为便于描述,在下文中将参考图1来描述方法200。
45.在框210,存储管理系统110确定文件系统120的物理存储空间的空闲程度和文件系统120的访问特性。文件系统120可以是基于存储池130创建的任何文件系统。文件系统120的物理存储空间指的是为文件系统120提供的实际存储容量。在基于瘦供应的存储系统中,为文件系统120提供的物理存储空间可以动态变化,并且可能小于等于对文件系统120配置的虚拟存储空间。
46.在本公开的示例实施例中,期望考虑文件系统120的多个方面的因素来确定如何更好地从存储池130供应文件系统120的存储空间。这些因素包括涉及文件系统120的空闲存储空间的因素(例如,空闲程度),以及与文件系统120的访问相关的因素(例如,访问特性)。在此,对文件系统120的访问指的是针对文件系统120的i/o操作。通过考虑与访问相关的因素,可以根据文件系统的访问压力、性能降低、用户行为等来确定合适的存储空间供应,以确保文件系统的i/o性能。
47.在一些实施例中,在确定空闲程度时,存储管理系统110可以确为文件系统120已分配的存储空间的总大小和空闲存储空间的大小,并基于已分配的物理存储空间的总大小和空闲存储空间的大小来确定空闲空间比(ssp)。在一些示例中,已分配的存储空间的总大小可以由文件系统120已分配用于存储数据的分配单元(allocation unit,au)的数目和空闲au的数目之和来指示,每个分配单元具有预定大小。相应地,空闲存储空间的大小由空闲au的数目来指示。这样,空闲空间ssp比可以被确定为如下:
[0048][0049]
在一些示例中,文件系统120的已分配的物理存储空间的总大小和空闲存储空间的大小还可以由其他指标来指示,这里不做限制。在一些实施例中,除以百分比表示的空闲空间比ssp之外或者作为备选,文件系统120的空闲程度还也可以用其他方式来表示,例如可以被映射到多个离散空闲级别中的特定空闲级别。如以下将讨论,空闲程度会作为供应操作分类模型的输入以用于预测目标存储供应操作,因此每个离散空闲等级可以对应于不同的离散值,以便于后续处理。
[0050]
在一些实施例中,针对文件系统120的存储供应操作的预测,要考虑的访问特性可以包括文件系统120的顺序写能力,因为文件系统120的存储空间分配会影响到文件系统
120的顺序写能力,进而影响文件系统的i/o性能。
[0051]
在一些实施例中,文件系统120的顺序写能力可以由文件系统120的碎片化率(fragmentation ratio,fr)来度量。具体地,碎片化率fr可以以下两者的比率来确定:文件系统120的物理存储空间中用于顺序写的存储单元的总数目(有时称为“第一数目”)与这些用于顺序写的存储单元中被部分写入数据的存储单元的数目(有时称为“第二数目”)。例如,碎片化率fr可以被确定为如下:
[0052][0053]
用于顺序写的存储单元是能够用于提供顺序写的连续存储区段。这样的存储单元有时也称为“存储窗口”或“窗口”。这样的存储单元可以包括多个au。被部分写入数据的存储单元指的是部分被写入数据而部分仍空闲的存储单元,也称为部分空闲的存储单元。
[0054]
如果向完全空闲的存储单元写入数据,那么可以实现对实际物理存储空间的顺序i/o访问,这可以显著提升i/o性能。否则,如果这样的存储单元中被部分写入数据,那么对该存储单元中空闲部分的写入会导致非顺序i/o访问,使i/o性能降低。
[0055]
图3示出了根据本公开的一些实施例的文件系统120中用于顺序写的存储单元的示例。图3中示出了文件系统120的物理存储空间包括n个用于顺序写的存储单元,包括单元1、单元2、
……
单元n-1,单元n。每个存储单元被示出为包括4个au。在这些存储单元中,单元1和单元2的au中被部分写入数据,还有部分空闲空间;单元n-1和单元n的所有au都是空闲的。因此,单元1和单元2属于被部分写入的存储单元。
[0056]
通过碎片化率fr,可以确定被部分写入的存储单元占全部用于顺序写的存储单元的比例。如果被部分写入的存储单元的数目所占比例越大,碎片化率fr越大,那么文件系统120的顺序写能力就会越低。在这种情况下,倾向于扩展文件系统120的物理存储空间,以便获得更多的完全空闲存储单元来指示后续的写操作。反之,如果被部分写入的存储单元的数目所占比例越小,碎片化率fr越大,那么文件系统120的顺序写能力就会越强。
[0057]
应当理解,除碎片化率fr之外或者作为备选,还可以以其他方式来衡量文件系统120的顺序写能力。
[0058]
在一些实施例中,附加地或作为备选,文件系统120的访问特性还可以包括针对文件系统120的待执行访问操作中对空闲存储空间的预计消耗程度。针对文件系统120的待执行访问操作可以包括各种i/o操作,包括读、写、覆写、删除等。在这些待访问操作中,要分配空闲存储空间的待执行访问操作包括要将数据写入到新的空闲存储空间的写操作。覆写操作涉及对已分配的au中存储的数据的修改,而读和删除等操作也不会消耗空闲存储空间。
[0059]
在一些实施例中,对空闲存储空间的预计消耗程度可以由以下的新写入比率(new write ratio,nwr)来衡量:文件系统120的待执行访问操作的总数目(有时成为“第三数目”)与待执行操作中要分配空闲存储空间用于写数据的访问操作的数目(有时成为“第四数目”)。例如,新写入比率nwr可以被确定为如下:
[0060][0061]
在一些实施例中,文件系统120的待访问操作可以包括针对文件系统120的i/o缓
冲区中等待执行的待访问操作。通过新写入比率nwr,可以确定要分配空闲存储空间的待访问操作占全部待访问操作的比例。这可以反映文件系统120的实际i/o行为和对空闲存储空间的消耗程度。
[0062]
通过考虑新写入比率nwr,可以基于文件系统120当前对空闲存储空间的消耗程度,来估计文件系统120未来对空闲存储空间的需求程度。例如,在某些应用场景中,文件系统的大多数访问操作是修改已有数据,即对先前已分配的au进行覆写操作。在这种情况下,虽然文件系统的访问操作很频繁,例如单位时间内i/o操作的数目(例如,iops)较高,但该文件系统对空闲存储空间的需求较低。相比于iops或i/o带宽,新写入比率nwr能够从i/o性能方面更好地反映对空闲存储空间的消耗程度。通过预测文件系统120对空闲存储空间的消耗程度,可以更好地判断是否要为文件系统120分配更多的存储空间。
[0063]
应当理解,除新写入比率nwr之外或者作为备选,还可以通过与对文件系统120的访问行为相关的其他信息,例如iops、i/o贷款等,来预测文件系统120对空闲存储空间的预计消耗程度。
[0064]
上文讨论了用于后续确定对文件系统120的供应操作的空闲程度和访问特性的示例。在其他实施例中,还可以利用与文件系统120的空闲存储空间、已分配用于存储数据的存储空间、以及访问操作等相关的其他信息来确定对文件系统120的供应操作。在一些实施例中,存储管理系统110可以针对文件系统120的供应操作调整被触发时,采集与该文件系统120相关的空闲程度和访问特性。
[0065]
继续参考回方法200,在框220,存储管理系统110利用供应操作分类模型,基于所确定的空闲程度和访问特性,从多个存储供应操作中确定要针对文件系统120执行的目标存储供应操作。
[0066]
多个存储供应操作至少包括存储空间扩展操作和存储空间回收操作。存储空间扩展操作指的是(例如从存储池130)向文件系统120分配更多的物理存储空间,使文件系统120的物理存储空间增加。存储空间回收操作指的是解除对文件系统的部分存储空间(空闲存储空间)的分配,使文件系统120的物理存储空间减少。在一些实施例中,多个存储供应操作还可以供应维持操作,指的是维持文件系统120的当前物理存储空间的供应。也就是说,在当前状况下,不对文件系统120执行存储空间扩展或存储空间回收。
[0067]
根据本公开的实施例,利用机器学习技术,将对文件系统120的存储空间的供应管理转换为机器学习中的分类问题,多个存储供应操作对应于多个类别。通过训练供应操作分类模型,来表征文件系统120的不同空闲程度和不同访问特性与多个存储供应操作之间的关联关系。通过该供应操作分类模型可以从与文件系统120相关的训练数据中学习到在不同空闲程度和不同访问特性情况下执行何种存储供应操作是合适的,从而建立起对应的关联关系。对供应操作分类模型的训练将在下文更详细讨论。在一些实施例中,可以针对的那个文件系统120或者某个类型的文件系统120训练特定的供应操作分类模型。
[0068]
在一些实施例中,在执行涉及多个存储供应操作的分类时,所构建的供应操作分类模型可以被配置为将文件系统120的空闲程度和访问特性映射到特定得分范围内的一个得分(有时成为“目标得分”),并基于目标得分来要对文件系统120执行的目标存储供应操作。具体地,供应操作分类模型可以执行从文件系统120的空闲程度和访问特性提取特性值,并且将特征值映射到特定得分范围。
[0069]
在一些实施例中,供应操作分类模型可以基于逻辑回归模型来预测文件系统120的目标存储供应操作。在基于逻辑回归模型的一些实施例中,供应操作分类模型可以被配置为利用具有累计分布特性的函数来执行文件系统120的空闲程度和访问特性(更具体地,将所提取的特征值)映射到特定得分范围的映射。具有累计分布特性的函数能够提供在一个取值区间内连续分布和递增或递减特性。具有累计分布特性的函数的示例包括sigmoid函数。sigmoid函数是具有特征“s”形曲线的函数。sigmoid函数具有许多变形。下文将用一个示例sigmoid函数来介绍供应操作分类模型。
[0070]
基于sigmoid函数的供应操作分类模型例如可以被表示为如下:
[0071][0072]
其中s表示供应操作分类模型的输出,也称为分类标签;z表示从空闲程度和访问特性提取特性值,其例如可以被表示为z=w0x0+w1x1+w2x2+

+wnxn。利用向量表示的方式,可以得到z=wx
t
,其中w=[w0,w1,w2,

,wn],x=[x0,x1,x2,

,xn]。
[0073]
x或x0,x1,x2,

,xn指的是供应操作分类模型的n个输入,对应于空闲程度和访问特性。如果空闲程度由空闲空间比ssp指示,访问特性包括碎片化率fr和新写入比率nwr,那么n=3。也就是说,供应操作分类模型的输入包括x0=ssp,x1=fr和x0=nwr。w或w0,w1,w2,

,wn表示供应操作分类模型的参数集。通过对供应操作分类模型的训练过程(这在下文将描述),该参数集的取值将被确定。
[0074]
图4示出了根据本公开的一些实施例的具有累计分布特性的sigmoid函数的示例曲线410。可以看出,sigmoid函数具有[0,1]的连续取值区间。基于sigmoid函数,供应操作分类模型可以将文件系统120的空闲程度和访问特性映射到[0,1]的得分范围,即供应操作分类模型的输出s在[0,1]的得分区间。应当理解,图4仅是关于供应操作分类模型的输出的一个示例。在其他示例中,供应操作分类模型的输出还可以具有其他得分范围。
[0075]
在一些实施例中,可以将供应操作分类模型对应的得分划分为不同的得分区间,每个得分区间被关联到多个存储供应操作中的一个存储供应操作。例如,得分范围中的第一得分区间可以与存储空间扩展操作,得分范围中的第二得分区间可以与存储空间回收操作相关联。第一得分区间和第二得分彼此不重叠,以便能够将存储空间扩展操作和存储空间回收操作进行区分。
[0076]
在供应操作分类模型的输入包括x0=ssp,x1=fr和x0=nwr,如果ssp、fr和/或nwr越小,意味着文件系统120需要更多的空闲存储空间,因此更趋向于要执行存储空间扩展操作。反之,如果如果ssp、fr和/或nwr越大,意味着更趋向于要执行存储空间扩展操作。在输出基于公式(4)的sigmoid函数的实施例中,如果输入的ssp、fr和/或nwr越小,那么输出s的取值会越大,反之输出s的取值会越大。
[0077]
基于这样的取值规则,在一些实施例中,可以与存储空间扩展操作相关联的第一得分区间可以包括供应操作分类模型的得分范围中更大的得分区间,而与存储空间回收操作相关联的第二得分区间可以包括更小的得分区间。例如,如果供应操作分类模型的得分范围是[0,1],与存储空间扩展操作相关联的第一得分区间可以被设置为[0.56,1],而与存储空间回收操作相关联的第二得分区间可以被设置为[0,0.4]。
[0078]
如果存储管理系统110利用供应操作分类模型输出的目标得分s落入第一得分区
间,例如s》0.56,那么存储管理系统110可以确定要针对文件系统120执行存储空间扩展操作。如果目标得分s落入第二得分区间,例如s≤0.4,那么存储管理系统110可以确定要针对文件系统120执行存储空间回收操作。
[0079]
图5示出了根据本公开的一些实施例的分类标签到供应操作分类模型的得分范围的示例映射。在图5中,供应操作分类模型的输出由基于sigmoid函数的曲线705表示。由s的取值范围[0.56,1]限定的区域510对应于存储空间扩展操作,由s的取值范围[0.56,1]限定的区域520对应于存储空间回收操作。
[0080]
注意到,在得分范围的第一得分区间和第二得分区间之间可以存在一个间隔区间,例如[0.4,0.56]的取值区间。这个间隔区间的设置是为了防止出现在存储空间扩展操作与存储空间回收操作之间的“乒乓”现象。在一些实施例中,该间隔区间被关联到供应维持操作,以指示维持文件系统120的物理存储空间的供应。如果利用供应操作分类模型输出的目标得分s落入间隔区间,存储管理系统110可以确定要针对文件系统120执行的是供应维持操作,以维持文件系统120的物理存储空间的供应。
[0081]
应当理解,以上给出的各个得分区间的划分仅是示例,还可以存在其他得分区间的划分方式。在其他实施例中,取决于供应操作分类模型的输入取值大小和输出取值大小的正比例或反比例关系,与存储空间扩展操作相关联的第一得分区间可能被设置成比与存储空间回收操作相关联的第二得分区间小的得分区间。
[0082]
继续参考回图2,在框230,利用供应操作分类模型确定针对文件系统120的目标存储供应操作后,存储管理系统110针对文件系统120执行所确定的目标存储供应操作,例如存储空间扩展操作或存储空间回收操作。如果目标存储供应操作为供应维持操作,存储管理系统110可以确定不需要对文件系统120的存储空间供应的额外处理。
[0083]
以上讨论了利用供应操作分类模型来确定对文件系统120的存储空间的供应操作。为了使用供应操作分类模型,通常需要通过训练过程来训练供应操作分类模型,以确定其参数集的取值,例如w的取值。下文将来讨论对供应操作分类模型的训练。
[0084]
图6示出了根据本公开的一些实施例的用于训练供应操作分类模型的方法600的流程图。对供应操作分类模型的训练可以由存储管理系统110来执行或者由其他计算系统来执行。作为示例,将以存储管理系统110执行方法600来进行描述后续实施例。
[0085]
在框610,存储管理系统110获取文件系统120在特定时间点处的训练空闲程度和训练访问特性。训练空闲程度和训练访问特性的确定类似于上文讨论的空闲程度和访问特性的确定。例如,训练空闲程度可以包括文件系统120在某个时间点的空闲空间比ssp,训练访问特性可以包括文件系统120在某个时间点的碎片化率fr和/或新写入比率nwr。存储管理系统110可以在一段时间内从文件系统120采集训练空闲程度和训练访问特性用于训练供应操作分类模型。
[0086]
在框620,存储管理系统110确定与训练空闲程度和训练访问特性对应的分类标签。分类标签指示要对文件系统120执行多个存储供应操作中的一个存储供应操作。该分类标签也被用作供应操作分类模型的训练数据的一部分。针对文件系统120的特定空闲程度和访问特性,可能不存在直接指示对应的存储供应操作的参数。在一些实施例中,存储管理系统110可以在采集训练空闲程度和训练访问特性的特定时间点之后的一个时间段内文件系统120的存储空间的利用情况来确定对应的分类标签。
[0087]
具体地,在采集训练空闲程度和训练访问特性的特定时间点之后的一个时间段内,存储管理系统110可以确定文件系统120的存储空间中被分配用于存储数据的第一存储空间大小和被释放的第二存储空间大小,并且基于第一存储空间大小与第二存储空间大小来确定与训练空闲程度和训练访问特性相对应的分类标签。在一些示例中,第一存储空间大小可以由在所观察的一个时间段内被分配用于存储数据的au的数目来指示。类似地,在一些示例中,第二存储空间大小可以由在所观察的一个时间段内被释放的au的数目。在文件系统120中,存储空间的释放可能是由于其中存储的数据被删除或迁移,从而该部分存储空间变为空闲。应当理解,被分配用于存储数据的第一存储空间大小和被释放的第二存储空间大小还可以用其他指标来衡量。
[0088]
在一些实施例中,存储管理系统110可以基于第一存储空间大小与第二存储空间大小的比率来确定与训练空闲程度和训练访问特性相对应的分类标签,特别是如果要训练的供应操作分类模型的输出处于或者被归一化到[0,1]的得分范围内时。
[0089]
第一存储空间大小与第二存储空间大小的比较可以指示在当前的训练空闲程度和训练访问特性的情况下,文件系统120由于i/o操作的执行,是否被要求分配更多存储空间用于数据存储。在一些实施例中,存储管理系统110可以基于第一存储空间大小(表示为au1)相对于第一和第二存储空间大小(表示为au2)之和(即,au1+au2)的比率,来确定分类标签,这可以被表示为如下:
[0090][0091]
基于上述公式(5),存储管理系统110可以确定第一存储空间大小au1与第二存储空间大小au2的比率是否大于与存储空间扩展操作相关联的第一阈值,并在au1/au2大于第一阈值时,将分类标签确定为第一得分区间内的第一得分。
[0092]
第一阈值可以基于与存储空间扩展操作相关联的第一得分区间,例如[0.56,1]来确定。要使得公式(5)中的分类标签取值s落入第一得分区间,例如[0.56,1]内,au1》1.3*au2,也就是说第一存储空间大小au1与第二存储空间大小au2的比率au1/au2》1.3。这里的1.3是基于第一得分区间和得分范围确定的与存储空间扩展操作相关联的第一阈值。取决于第一得分区间和得分范围的取值,第一阈值还可以被设置为其他值。针对当前确定的au1和au2,分类标签对应的具体得分可以直接由公式(5)确定。
[0093]
在一些实施例中,存储管理系统110可以确定第一存储空间大小au1与第二存储空间大小au2的比率是否小于与存储空间回收操作相关联的第二阈值,并在au1/au2小于第二阈值时,将分类标签确定为第二得分区间内的第二得分。
[0094]
第二阈值可以基于与存储空间扩展操作相关联的第二得分区间,例如[0,0.4]来确定。要使得公式(5)中的分类标签取值s落入第二得分区间,例如[0,0.4]内,au1《0.7*au2,也就是说第一存储空间大小au1与第二存储空间大小au2的比率au1/au2》0.7。这里的0.7是基于第二得分区间和得分范围确定的与存储空间扩展操作相关联的第二阈值。取决于第二得分区间和得分范围的取值,第二阈值还可以被设置为其他值。针对当前确定的au1和au2,分类标签对应的具体得分可以直接由公式(5)确定。
[0095]
在一些实施例中,在一个时间段内观察到的第一存储空间大小au1与第二存储空间大小au2还可能出现边界值,这些只需要特别处理,以将分类标签对应的得分映射到供应
操作分类模型的得分范围内(例如,[0,1]区间)。
[0096]
在一些实施例中,如果第一存储空间大小au1和所述第二存储空间大小au2均为零,这意味着从存储的角度看,文件系统120在所观察的时间段内没有任何i/o操作,这种情况下保持文件系统120的存储供应是合理的。因此,可以将分类标签直接确定为得分范围中的间隔区间内的第三得分,例如0.5,或者在[0.4,0.56]中的任何其他得分。
[0097]
在一些实施例中,如果第一存储空间大小au1为零而第二存储空间大小au2不为零,这意味着文件系统120在所观察的时间段内没有数据写入,仅有数据删除(即存储空间释放),在这种情况下,倾向于对文件系统120执行存储空间回收操作。因此,可以将分类标签确定为与存储空间回收操作相关联的第二得分区间内的第四得分。例如,可以直接将第一存储空间大小au1设置为1个au(或其他较小的数目),并通过公式(5)来确定分类标签对应的得分。这样,分类标签可以被映射到[0,1]得分范围内的有效值。
[0098]
在一些实施例中,如果第二存储空间大小au2为零而第一存储空间大小au1不为零,这意味着文件系统120在所观察的时间段内仅有数据写入(即存储空间不断被分配),而没有数据删除,在这种情况下,倾向于对文件系统120执行存储空间扩展操作。因此,可以将分类标签确定为与存储空间扩展操作相关联的第一得分区间内的第五得分。例如,可以直接将第二存储空间大小au2设置为1个au(或其他较小的数目),并通过公式(5)来确定分类标签对应的得分。这样,分类标签可以被映射到[0,1]得分范围内的有效值。
[0099]
在一些实施例中,由于要在一个时间段内观察文件系统120的存储空间分配和释放,以确定与训练空闲程度和训练访问特性对应的分类标签,存储管理系统110确定这个时间段内不对文件系统的物理存储空间执行扩展或回收,以避免对分类标签的污染。在一些实施例中,还可以在采集训练空闲程度和训练访问特性的特定时间点之后的一个较长时间段内采集多个分类标签样本,并通过多个分类标签样本执行平均来确定最终的分类样本,这可以避免瞬时异常值的干扰。采集每个多个分类标签样本的时间段可以具有不同长度,例如在短、中和长时间段内分别确定三个分类标签样本。
[0100]
图7示出了根据本公开的一些实施例的训练空闲程度、训练访问特性和分类标签的采集的示例。假设在t0时间处获取文件系统120训练空闲程度和训练访问特性。在从t0到t1的时间段d1内,确定第一分类标签样本。在从t0到t2的时间段d2内,确定第二分类标签样本。在从t0到t3的时间段d3内,确定第三分类标签样本。每个分类标签样本的确定与以上讨论的分类标签确定类似。
[0101]
每个分类标签样本对应于供应操作分类模型的得分范围内的一个得分。最终,可以确定落入在得分范围内的多个得分。通过对这些得分进行平均,或者加权平均,可以确定与t0时间采集到的训练空闲程度和训练访问特性对应的分类标签。
[0102]
在一些实施例中,对单个分类标签的采集或多个分类标签样本的采集要在文件系统120的存储空间扩展或回收的周期性触发点之前完成。例如,在图7的示例中,在t4时间点可能要触发对文件系统120的存储空间扩展或回收。要在t4时间点之前采集用于确定分类标签所需的存储空间信息。注意,在供应操作分类模型未训练完成之前,可以基于其他方案,例如基于阈值的算法来执行对文件系统120的存储空间扩展或回收。在一些实施例中,取决于对文件系统120的存储空间扩展或回收的触发周期的长度,可以在一个周期内执行对训练空闲程度和训练访问特性以及对应的分类标签的一次或多次采集。
[0103]
在框630,存储管理系统110基于训练空闲程度、训练访问特性和分类标签来训练供应操作分类模型。可以利用各种适合于机器学习的算法来执行模型训练,以确定供应操作分类模型的参数集w的取值。在训练过程中,(训练空闲程度、训练访问特性)与(分类标签)组成的一个训练样本。该训练样本中,(训练空闲程度、训练访问特性)被用作供应操作分类模型的训练输入,分类标签被用作该训练输入对应的目标输出。在一些实施例中,为了将供应操作分类模型训练到收敛目标,存储管理系统110可以采集(训练空闲程度、训练访问特性)与(分类标签)组成的多个训练样本。
[0104]
仅作为示例,在一些实现中,可以使用梯度上升法作为训练算法来确定供应操作分类模型的参数集w的最优取值。该训练算法可简化为以下伪代码:
[0105][0106]
参数集w中的各个参数可以被初始化为1,或者其他值。根据上述训练算法,利用sigmoid函数,基于参数集w的当前取值来处理每个训练样本中的输入x,以计算分类器标签h,生成训练样本中的分类器标签s与sigmoid函数输出结果h之间的差异。通过上述公式

中的误差调整参数集w的取值,得到调整后的取值w。在上述公式

中,alpha是表示学习率,其可以是预定值。前述调整过程可以迭代预定的最大次数或迭代直到误差小于预定阈值t,从而达到收敛目标,完成模型训练。在收敛后确定的参数集w的取值用作训练得到的供应操作分类模型的最优参数值。
[0107]
在一些情况下,在文件系统120中使用供应操作分类模型来管理存储空间的供应后,还可以评估这样的存储管理方案的性能。如上文讨论过程的,对于具有动态存储空间分配的文件系统,特别是基于瘦供应存储配置的文件系统,关注点在于如何平衡存储空间有效性和i/o性能。在一些实施例中,合理的存储空间供应通常可以取得更高的i/o性能增益。如果向文件系统120分配过多的空闲存储空间,那么i/o性能增益将会下降,
[0108]
在一些实施例中,在文件系统120中使用供应操作分类模型来管理存储空间的供应后,例如在应用由供应操作分类模型确定的一个或多个目标存储供应操作后,可以确定文件系统120的单位空闲存储空间的利用率(io earnings per spare space,ioeps),以用于衡量训练得到的供应操作分类模型的性能。ioeps指示在一个时间段内增加的访问量与该时间段内空闲存储空间的增加量的比例。
[0109]
在确定ioeps时,存储管理系统110可以确定在一个时间段内文件系统120中空闲存储空间的增加量,并且确定在该时间段内文件系统120的访问容量。访问容量可以由在该
时间段内的平均i/o带宽和该时间段的持续长度的乘积来确定。可以基于访问量与所述增加量的比率来确定ioeps,例如ioeps可以被确定为:
[0110][0111]
ioeps指示在所观察的时间段内,单位空闲存储空间能够带来多少i/o增益。ioeps越大,意味着单位空闲存储空间能够获得更多的i/o增益,因此这样的存储供应方案越好。
[0112]
图8示出了根据本公开的一些实施例的存储供应与基于常规方案的存储供应的性能比较。在图8中,由ioeps来表示基于不同存储供应方案的文件系统的性能。在图8中,曲线810指示文件系统的平均i/o带宽。曲线820指示在利用常规存储供应(即基于阈值的存储供应)的文件系统中确定的ioeps随时间的变化,曲线830指示在根据本公开的示例实施例的存储供应(即基于阈值的存储供应)的文件系统中确定的ioeps随时间的变化。
[0113]
在图8所示的对比中,假设两个方案中文件系统的i/o带宽均设置为曲线810所示的带宽,并且按如下模式控制文件系统的i/o行为:在每30分钟的随机写操作后,将i/o操作暂停30分钟。可以看出,根据本公开的示例实施例的存储供应能够获得更高的ioeps,具有更好的性能。
[0114]
在一些实施例中,针对某个文件系统120确定的供应操作分类模型还可以不断被更新,因为文件系统120由于用户使用的需要而表现出在空闲存储空间使用和访问特性方面的改变。例如,某个文件系统120可能原先被用户主要用于存储归档数据,因此写入操作并不频繁。然而,用户根据使用需要,可能将该文件系统120用作活跃数据库,会频繁向文件系统120写入数据。在这种情况下,原先为该文件系统120训练的供应操作分类模型可能不再适合当前的应用场景,可能无法给出关于存储空间扩展或回收的准确预测。
[0115]
因此,期望能够重新训练供应操作分类模型,以进一步学习到文件系统120的不同空闲程度和不同访问特性与多个存储供应操作之间的新的关联关系。在一些实施例中,存储管理系统110可以周期性或者根据特定事件,来确定是否触发对供应操作分类模型的重新训练。例如,存储管理系统110可以确定供应操作分类模型的误差率,和/或确定文件系统120的ioeps,以确定是否要重新训练供应操作分类模型。
[0116]
在一些实施例中,如果确定模型的误差率较高,例如超过阈值误差率,这意味着当前训练出的供应操作分类模型的性能不令人满意,可以重新训练供应操作分类模型。备选地或附加地,如果确定ioeps相对于先前的ioeps具有下降趋势,也就是说在一段时间内确定的多个ioeps呈现下降趋势,那么可以确定供应操作分类模型不能很好地适应到当前的文件系统120,无法获得不令人满意的性能。在这种情况下,也可以确定要重新训练供应操作分类模型。
[0117]
在一些实施例中,在针对文件系统120的供应操作分类模型的训练或重新训练期间,可以基于常规的基于阈值的算法来管理文件系统120的存储空间供应。
[0118]
图9示出了根据本公开的一些实施例的针对文件系统的存储供应的示例流程900。这个流程可以由存储管理系统110来实现,或者其中的一个或多个阶段可以由其他计算系统来实现,例如模型的训练或更新可以由其他计算系统来实现。
[0119]
在流程900中,在阶段910处,存储管理系统110创建文件系统120。在阶段920处,存
储管理系统110利用基于阈值的算法来管理文件系统120的存储空间供应。在这个过程中,还在阶段930执行训练数据的采样。在采集到足够的训练数据后,阶段940,利用采集到的训练数据对供应操作分类模型进行训练。训练完成的供应操作分类模型被提供到阶段950,以利用供应操作分类模型来执行对文件系统120的存储空间供应。
[0120]
在供应操作分类模型的训练完成时,在阶段960,所采集到的训练数据中的部分训练数据还可以被确定为测试数据,以用于测试供应操作分类模型的误差率。备选地或附加地,在供应操作分类模型的使用期间,可以观察和确定文件系统120在利用供应操作分类模型确定存储供应操作后,文件系统120所展示的ioeps。
[0121]
流程900还包括模型性能确定的阶段970。在该阶段可以包括第一子阶段972和/或第二子阶段974。在第一子阶段972中,供应操作分类模型的性能可以由供应操作分类模型的误差率来确定。在第二子阶段974中,供应操作分类模型的性能可以由针对文件系统120确定的ioeps来确定。
[0122]
在一些实施例中,如果第一子阶段972中确定模型的误差率较高,例如超过阈值误差率,这意味着当前训练出的供应操作分类模型的性能不令人满意,可以重新训练供应操作分类模型。备选地或附加地,如果第二子阶段974中确定ioeps相对于先前的ioeps具有下降趋势,那么可以确定供应操作分类模型不能很好地适应到当前的文件系统120,无法获得不令人满意的性能。在这种情况下,也可以确定要重新训练供应操作分类模型。在一些实施例中,可以在一段时间内多次确定多个ioeps,并确定这些ioeps的变化程度,例如梯度。如果在一段时间内ioeps呈现下降趋势,可以确定要重新训练供应操作分类模型。
[0123]
在一些实施例中,可以在第一子阶段972和第二阶段974均判断要重新训练供应操作分类模型,才执行供应操作分类模型的重新训练。
[0124]
如果确定要重新训练供应操作分类模型,存储管理系统110可以返回阶段920,以启用基于阈值的算法来管理文件系统120的存储空间供应。流程900可以在文件系统120的操作过程中循环执行。
[0125]
图10示意性示出能够被用来实施本公开的实施例的设备1000的框图。存储管理系统110例如可以被实现为设备1000,或者包括一个或多个设备1000。
[0126]
如图10中所示出的,设备1000包括中央处理单元(cpu)1001,其可以根据存储在只读存储设备(rom)1002中的计算机程序指令或者从存储单元1008加载到随机访问存储设备(ram)1003中的计算机程序指令,来执行各种适当的动作和处理。在ram 1003中,还可存储设备1000操作所需的各种程序和数据。cpu 1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0127]
设备1000中的多个部件连接至i/o接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0128]
上文所描述的各个过程和处理,例如方法200、方法600和/或过程900可由处理单元1001来执行。例如,在一些实施例中,方法200、方法600和/或过程900可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由rom 1002和/或通信单元1009而被载入和/或安装到设备
1000上。当计算机程序被加载到ram 1003并由cpu1001执行时,可以执行上文描述的方法200、方法600和/或过程900的一个或多个步骤。
[0129]
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
[0130]
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
[0131]
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
[0132]
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0133]
虽然已经参考若干具体实施例描述了本公开,但应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1