CN113126889A - 管理存储空间的方法、设备和计算机程序产品 - Google Patents
管理存储空间的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN113126889A CN113126889A CN202010043305.6A CN202010043305A CN113126889A CN 113126889 A CN113126889 A CN 113126889A CN 202010043305 A CN202010043305 A CN 202010043305A CN 113126889 A CN113126889 A CN 113126889A
- Authority
- CN
- China
- Prior art keywords
- space
- file system
- determining
- storage
- threshold
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及管理存储空间的方法、设备和计算机程序产品。提出了一种管理存储空间的方法,包括:基于存储池的存储空间的大小和存储空间中的针对多个文件系统的已分配空间的大小,确定存储池的分配率;基于存储池的存储空间的大小,确定存储池的阈值分配率;根据确定存储池的分配率大于阈值分配率,基于多个文件系统的已分配空间中未使用部分的大小,从多个文件系统中确定目标文件系统;以及释放目标文件系统的已分配空间中的未使用部分。通过本公开的实施例,可以提高存储系统的空间释放的效率同时降低空间释放过程对存储系统的性能的不利影响。
Description
技术领域
本公开的实施例总体上涉及存储领域,具体涉及管理存储空间的方法、设备和计算机程序产品。
背景技术
在当前的存储系统中,如果所存储的文件系统实际使用的存储空间小于所分配的存储空间,且持续一段时间,则系统会触发文件系统的空间释放(也被称为文件系统的收缩)。然而,文件系统的空间释放过程很容易遇到数据不可用的问题,且该过程十分耗时。过于频繁的空间释放还会引起文件系统的抖动状况,即,在空间释放和空间扩展之间的切换状况,这是不希望发生的。
发明内容
本公开的实施例提供了管理存储空间的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种管理存储空间的方法。该方法包括:基于存储池的存储空间的大小和存储空间中的针对多个文件系统的已分配空间的大小,确定存储池的分配率;基于存储池的存储空间的大小,确定存储池的阈值分配率;根据确定存储池的分配率大于阈值分配率,基于多个文件系统的已分配空间中未使用部分的大小,从多个文件系统中确定目标文件系统;以及释放目标文件系统的已分配空间中的未使用部分。
在本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时,使得电子设备执行动作,该动作包括:基于存储池的存储空间的大小和存储空间中的针对多个文件系统的已分配空间的大小,确定存储池的分配率;基于存储池的存储空间的大小,确定存储池的阈值分配率;根据确定存储池的分配率大于阈值分配率,基于多个文件系统的已分配空间中未使用部分的大小,从多个文件系统中确定目标文件系统;以及释放目标文件系统的已分配空间中的未使用部分。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的重要特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中被实现的示例空间管理系统的框图;
图2示出了根据本公开的实施例的用于管理存储空间的示例方法的流程图;
图3示出了根据本公开的实施例的存储池的阈值分配率随存储空间的大小变化的示意图;
图4示出了根据本公开的实施例的用于确定目标文件系统的示例方法的流程图;
图5示出了根据本公开的实施例的对多个文件系统进行聚类的结果的示意图;以及
图6示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所提及的,在当前的存储系统中,文件系统的空间释放是根据针对文件系统所设置的已使用空间阈值和持续时间来触发的。换言之,系统使用检测器定期(例如,每两分钟)检测文件系统的状态,如果检测到文件系统在一段持续时间(例如,一小时)内所实际使用的空间都小于被分配给该文件系统的已分配空间,则触发该文件系统的空间释放过程。
文件系统的自动空间释放是提高存储系统的存储效率的一种主要方法。然而,由于在该过程中发生的大量内部IO、竞争状况、冲突锁定状态和操作取消,在空间释放过程中,很容易遇到存储阵列的数据不可用(DU)问题。在一些情况下,存储阵列上的文件系统空间释放功能不得不被禁用以保持系统稳定性。
此外,文件系统的空间释放过程非常耗时,因为它将消耗一些内部IO来重新组织块以收回并重新分配被释放的空间。其他锁定也将被使用以避免与其他空间管理过程和主机IO相冲突。此外,文件系统的元数据更新需要开销。这些都会影响存储系统的性能。
因此,一方面期望尽可能多地收回存储空间的未使用部分,一方面又不期望存储空间的释放和重新分配被过于频繁的触发。虽然已经实现了针对个体文件系统的动态空间阈值和持续时间来避免文件系统的抖动状况等。但是由于空间阈值和持续时间是根据个体文件系统来确定的,因此,对于每个文件系统自身,该空间释放可能是优化的,但是对于文件系统所在的整个存储池来说未必是优化的。
本公开的实施例提出了一种管理存储空间的解决方案,以解决上述问题和其他潜在问题中的一个或多个问题。该解决方案通过以整体优化的方式来管理文件系统的空间释放过程,从而提高整个存储池的存储效率,同时不引入预期之外的性能影响和冲突问题。
图1示出了本公开的实施例能够在其中被实现的示例空间管理系统100的框图。如图1所示,空间管理系统100包括空间管理设备110以及存储池120。在存储池120中,存在文件系统130-1至130-4(统称为文件系统130)。根据本公开的实施例的各个方法可以在空间管理设备110处实现。应当理解,仅出于示例性的目的描述空间管理系统100的结构,而不暗示对于本公开的范围的任何限制。例如,本公开的实施例还可以被应用到与空间管理系统100不同的系统中。应当理解,上述各设备的具体数目仅出于说明性目的给出,而不暗示对本公开范围的任何限制。例如,本公开的实施例还可以被应用于更多的或更少的设备。
空间管理设备110是确定何时以及对哪些文件系统进行空间释放的设备。空间管理设备110可以例如是计算机、虚拟机、服务器等,本公开在此方面不受限制。存储池120由一组存储设备(未示出)组成。存储设备可以例如是硬盘、磁盘、软盘等。存储池120中的存储设备一起提供存储池的存储空间。该存储空间可以被分配给不同的文件系统130。文件系统130中的每个文件系统可以被存储在存储池120中的单个物理存储设备上,也可以被存储在跨多个物理存储设备的虚拟存储设备上。本公开在此方面不受限制。在一些实施例中,空间管理设备110和存储池120通过网络彼此通信,网络可以例如是互联网、内联网等。备选地,在另一些实施例中,空间管理设备110和存储池120可以被集成在相同设备中。
图2示出了根据本公开的实施例的用于管理存储空间的示例方法200的流程图。例如,方法200可以由如图1所示的空间管理设备110来执行。应当理解,方法200还可以由其他设备来执行,本公开的范围在此方面不受限制。还应当理解,方法200还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在210,空间管理设备110确定存储池120的分配率。分配率可以指示存储池120中的存储空间被分配的程度,并可以通过多种方式来确定。在一些实施例中,空间管理设备110可以获取针对存储池120中的多个文件系统130的已分配空间的大小,并确定该大小与存储池120的存储空间的大小的百分比,由此可以得到存储池120的分配率。
在220,空间管理设备110根据存储池120的存储空间的大小来确定存储池120的阈值分配率。
在一些实施例中,考虑到恒定的阈值分配率(例如,75%)对于大容量的存储池来说是低效的,因此采用随存储空间大小变化的阈值分配率。例如,假设采用恒定的75%作为阈值分配率,那么对于100TB的存储池来说,当达到该阈值分配率时,仍然具有250GB的空闲空间(未分配的空间)。如上文所提及的,由于空间释放过程本身会对存储系统的性能造成一定的影响,因此,在还具有足够存储空间的情况下,没有必要进行后续的空间释放过程而导致潜在的DU问题或抖动状况等。
在一些实施例中,空间管理设备110可以确定存储池的存储空间的大小是否大于第一空间阈值。如果确定不大于第一空间阈值,则空间管理设备110将阈值分配率确定为恒定的第一预定阈值。反之,如果确定大于第一空间阈值,则空间管理设备110与存储空间的大小相关联地确定阈值分配率。
以下结合图3来进一步描述阈值分配率与存储空间之间的关系。图3示出了根据本公开的实施例的存储池的阈值分配率随存储空间的大小变化的示意图300。
在一些实施例中,当存储池的存储空间大小Psize不大于100TB时,空间管理设备110可以根据以下的公式(1)将阈值分配率PWM设置为恒定的75%:
PWM=72%(0<Psize≤100TB) (1)
由于PWM=1-Pfreespace/Psize,从公式(1)可以推导出,当达到阈值分配率时,存储池中的空闲空间Pfreespace为:
Pfreespace=(1-75%)*Psize(0<Psize≤100TB) (2)
附加地,在另一些实施例中,当Psize大于100TB时,空间管理设备110可以根据以下的公式(3)与Psize相关联地确定阈值分配率PWM的值。
从公式(3)可以推导出,当达到阈值分配率时,存储池中的空闲空间Pfreespace为:
附加地,在另一些实施例中,当根据公式(3)计算出的PWM大于90%时,空间管理设备110可以将PWM确定为仍为90%。这是因为在通用实现中,当存储池的分配率大于90%时,存储系统会自动停止存储池的空间分配,因此,此时需要触发文件系统的空间释放过程以收回一些已分配空间的未使用部分。
如图3所示,示意图300中的坐标系横轴表示以TB为单位的存储池的存储空间大小,纵轴表示阈值分配率。曲线310示出了阈值分配率的变化曲线。曲线310与上述的公式(1)和(3)相对应。从曲线310可以看出,当存储池的存储空间变大时,所确定的阈值分配率的值的变化在变缓。以这种方式,空间管理设备110可以为不同大小的存储池设定更合理的阈值分配率,从而避免不必要地触发文件系统的空间释放过程。
应当理解,仅出于示例性的目的示出了图3,而不暗示对于本公开的范围的任何限制。例如,还可以通过不同的公式来确定阈值分配率。本公开在此方面不受限制。
现在返回图2,在230,空间管理设备110根据确定存储池的分配率大于阈值分配率,根据多个文件系统的已分配空间中未使用部分的大小,从多个文件系统中确定目标文件系统。
如上文所提及的,由于文件系统的空间释放过程会导致潜在的DU问题或抖动状况等,因此不希望过于频繁地触发空间释放过程。在空间管理设备110确定存储池的分配率不大于分配率阈值的情况下,存储池被认为具有足够的空闲空间,则空间管理设备110对存储池120中的所有文件系统130禁用空间释放操作。
在空间管理设备110确定存储池的分配率大于分配率阈值的情况下,存储池的存储空间被认为趋于耗尽,此时空间管理设备110应当触发空间释放过程,来收回已分配空间的未使用部分以进行重新分配。
在一些实施例中,空间管理设备110从存储池120中的多个文件系统130中确定能够较高效地释放空间、同时对存储系统的性能影响较小的目标文件系统。
附加地,在一些实施例中,空间管理设备110可以首先获取与多个文件系统有关的信息,然后根据该信息对多个文件系统130进行聚类,得到多个文件系统群。每个文件系统群指示空间释放的不同效率和对存储系统性能的不同影响。接着,空间管理设备110可以将空间释放最高效且对存储系统性能影响最小的文件系统群确定为目标文件系统群,从目标文件系统群中确定目标文件系统。
附加地或备选地,在一些实施例中,空间管理设备110可以将目标文件系统群中的所有文件系统确定为目标文件系统一起释放。附加地或备选地,在另一些实施例中,空间管理设备110可以在释放目标文件系统之前,根据目标文件系统的已分配空间的未使用部分,预估释放之后存储池的分配率是否降到阈值分配率之下,如果没有,则选择更多的文件系统来释放。
附加地,在一些实施例中,空间管理设备110可以在对多个文件系统130进行聚类之前,从多个文件系统130中排除已使用率超过预定阈值的文件系统,即,排除已使用空间与已分配空间的百分比超过一定阈值的文件系统。这是因为当一个文件系统的已使用率很高时,其所能释放的空间较少,此外,在通用的实现中,这样的已使用率很高的文件系统会自动向存储池请求更多的分配空间来扩展,因此,对这样的文件系统进行空间释放是低效的且会导致抖动状况的发生。
关于确定目标文件系统的过程将在下文关于图4详细描述。
在240,空间管理设备110释放目标文件系统的已分配空间中的未使用部分。在一些实施例中,空间管理设备110可以在目标文件系统的空间释放过程中监测目标文件系统的状态,从而更新与目标文件系统有关的信息。例如,如果目标文件系统在空间释放过程中发生了自动扩展而被中断,则递增记录中断次数的参数(下文中将详细描述的Pi),该参数可以反映该目标文件系统的空间释放过程对存储系统性能的影响。
在一些实施例中,空间管理设备110可以定期执行方法200。附加地,在实施例中,空间管理设备110可以每7.5小时执行方法200。
在上述示例性实施例中,通过考虑整个存储池而不是只考虑个体文件系统,从存储池中选择空间释放较高效且对存储系统的性能影响较小的文件系统来释放,可以提高存储系统的空间释放的效率同时降低空间释放过程对存储系统的性能的不利影响。
图4示出了根据本公开的实施例的用于确定目标文件系统的示例方法400的流程图。方法400是方法200中的框230的实施例。例如,方法400可以由如图1所示的空间管理设备110来执行。应当理解,方法400还可以由其他设备来执行,本公开的范围在此方面不受限制。还应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在410,空间管理设备110获取与多个文件系统130有关的信息。
在一些实施例中,空间管理设备110可以获取每个文件系统的已分配空间中的未使用部分的大小。未使用部分越大,表明文件系统的已使用空间和已分配空间之间的差距越大,那么,对这样的文件系统执行空间释放操作就可以收回越多的存储空间。
附加地或备选地,在一些实施例中,空间管理设备110可以获取每个文件系统的快照数目和/或快照增量。文件系统的快照数目越大,表明在空间释放过程中由块共享带来的影响越大。文件系统的快照之间的增大越大,表明对内部IO的影响越大。
附加地或备选地,在一些实施例中,空间管理设备110可以获取每个文件系统的碎片率。文件系统的碎片率越高,表明存储系统需要花费更多的工作在空间释放过程中找出连续的空闲区块来进行块重新分配。
附加地或备选地,在一些实施例中,空间管理设备110可以获取每个文件系统的已分配空间的先前释放过程被中断的次数。次数越多,表明越多的抖动状况发生。
附加地或备选地,在一些实施例中,空间管理设备110可以获取每个文件系统的复制状态信息,即文件系统是否被复制。如果针对该文件系统创建了复制,内部/系统快照会被创建,则存储系统需要花费更多的工作进行空间释放。
在420,空间管理设备110根据该信息对多个文件系统进行聚类。
在一些实施例中,空间管理设备110可以根据所获取的信息,用一组参数即特征向量来表示每个文件系统。例如,空间管理设备110可以用Vishrink/Pi、Visnap、Visnapdelta、Vifrag和Ri来表示每个文件系统,其中Vishrink表示归一化的已分配空间中的未使用部分的大小,即个体文件系统的已分配空间中的未使用部分的大小与多个文件系统的已分配空间中的最大未使用部分的大小的比;Visnap表示归一化的快照数目,即个体文件系统的快照数目与多个文件系统的最大快照数目的比;Visnapdelta表示归一化的快照增量,即个体文件系统的总快照增量与多个文件系统的最大总快照增量的比;Vifrag表示归一化的碎片率,即个体文件系统的碎片率与多个文件系统的最大碎片率的比;Ri表示文件系统的复制状态,0表示没有被复制,1表示被复制;Pi表示空间释放过程被中断的次数,其初始值为1。
然后,空间管理设备110可以根据表示各个文件系统的特征向量、使用强化学习方法对多个文件系统进行聚类。强化学习方法是一种无监督的机器学习方法。在一些实施例中,空间管理设备110可以采用K均值聚类算法、K均值++聚类算法等强化学习方法,以对多个文件系统进行聚类。
应当理解,仅出于示例性的目的说明了与文件系统有关的信息和特征向量,而不暗示对于本公开的范围的任何限制。例如,还可以通过使用更多的、更少的或其他的信息和特征向量对多个文件系统进行聚类。本公开在此方面不受限制。
图5示出了根据本公开的实施例的对多个文件系统进行聚类的结果的示意图500。如图5所示,每个文件系统可以由其所对应的三维坐标值、形状和大小来表示,在对多个文件系统进行聚类之后,多个文件系统被划分为三个文件系统群510-1、510-2和510-3,这三个文件系统群的中心坐标点分别为520-1、520-2和520-3,由三角形来表示。
现在返回图4,在430,空间管理设备110根据聚类的结果来确定目标文件系统。
仍然参考图5,在图5中,点530表示预定的理想坐标点,其对应于对于空间释放过程来说理想的文件系统,即能够释放较多的已分配空间中的未使用部分且对存储系统的性能影响较小(例如,消耗较少的内部IO、发生DU问题的风险较小等)的文件系统。在一些实施例中,该预定的理想坐标点被设定为Vishrink=1、Visnap=0、Visnapdelta=0、Vifrag=0、Ri=0并且Pi=1。空间管理设备110可以根据以下的公式(5)来计算各个文件系统群的中心坐标点和理想坐标点之间的欧式距离Li:
然后对计算所得到的各个距离进行排序,将与最短距离相对应的文件系统群作为目标文件系统群。例如,如图5所示,文件系统群510-3可以被确定为目标文件系统群。
如上文描述230时所提及的,在一些实施例中,空间管理设备110可以从目标文件系统群中选择一个目标文件系统来释放。附加地或备选地,在另一些实施例中,空间管理设备110可以将目标文件系统群中的所有文件系统确定为目标文件系统一起释放。
附加地或备选地,在又一些实施例中,空间管理设备110可以在释放目标文件系统之前,根据目标文件系统的已分配空间中的未使用部分的大小,预估释放之后存储池的分配率是否降到阈值分配率之下,如果没有,则选择更多的文件系统来释放。例如,如图5所示,如果空间管理设备110预估释放文件系统群510-3之后,存储池的分配率仍然在阈值分配率之上,则从与第二短的距离相对应的文件系统群(在图5中为文件系统群510-2)中选择更多的文件系统来释放。
以下描述一个示例实现。在该示例实现中,空间管理设备110确定存储池的分配率大于阈值分配率。在该存储池中,存在处于不同状况的99个文件系统。这些文件系统的已使用空间与已分配空间的百分比均小于预定阈值。下面的表1示出了其中的10个文件系统的各种信息。
表1
根据表1所示出的与文件系统有关的信息,可以得到各个文件系统的特征向量。下面的表2示出了这10个文件系统的5维特征向量。
表2
通过对这些文件系统使用K均值聚类算法,可以得到如图5示意性示出的三个文件系统群。以下的表3示出了各个文件系统群的中心坐标点的值。
表3
然后,空间管理设备110可以计算出每个文件系统群与“理想文件系统”之间的距离分别为:
由于Lb<Lc<La,因此,空间管理设备110首先选择文件系统群b进行空间释放操作,如果释放之后,存储池的分配率仍然高于阈值分配率,则空间管理设备110选择文件系统群c继续执行空间释放操作。在空间释放过程之后,空间管理设备110将由于自动扩展而中断空间释放过程的文件系统所对应的Pi的值加1;将完成空间释放过程而无中断的文件系统所对应的Pi的值减1(如果Pi>1)。
应当理解,仅出于示例性的目的示出了图5以及表1至表3,而不暗示对于本公开的范围的任何限制。例如,还可以将多个文件系统聚类为更多数目或更少数目的文件系统群;还可以使用其他的坐标点作为理想坐标点。本公开在这些方面不受限制。
在上述示例性实施例中,通过使用诸如K均值聚类算法的强化学习方法对多个文件系统进行聚类,可以有效地从多个文件系统中找出空间释放较高效且对存储系统的性能影响较小的文件系统,同时不会增加过多的计算量而影响存储系统的其他操作。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。例如,如图1所示的空间管理设备110可以由电子设备600实施。如图6所示,电子设备600包括中央处理装置(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储电子设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
电子设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200和400,可由处理装置601执行。例如,在一些实施例中,方法200和400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200和400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理装置,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理装置执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (15)
1.一种管理存储空间的方法,包括:
基于存储池的存储空间的大小和所述存储空间中的针对多个文件系统的已分配空间的大小,确定所述存储池的分配率;
基于所述存储池的所述存储空间的大小,确定所述存储池的阈值分配率;
根据确定所述存储池的所述分配率大于所述阈值分配率,基于所述多个文件系统的已分配空间中未使用部分的大小,从所述多个文件系统中确定目标文件系统;以及
释放所述目标文件系统的已分配空间中的未使用部分。
2.根据权利要求1所述的方法,其中确定所述存储池的所述阈值分配率包括:
根据确定所述存储空间的大小不大于第一空间阈值,将所述阈值分配率设置为第一预定阈值;以及
根据确定所述存储空间的大小大于所述第一空间阈值,与所述存储空间的大小相关联地确定所述阈值分配率。
3.根据权利要求2所述的方法,还包括:
根据确定所述阈值分配率大于第二预定阈值,将所述阈值分配率确定为所述第二预定阈值,所述第二预定阈值大于所述第一预定阈值。
4.根据权利要求1所述的方法,其中确定所述目标文件系统包括:
获取与所述多个文件系统有关的信息;
基于所述信息,对所述多个文件系统进行聚类;以及
基于所述聚类的结果,确定所述目标文件系统。
5.根据权利要求4所述的方法,其中获取与所述多个文件系统有关的信息包括获取与每个文件系统有关的以下中的至少一项:
已分配空间中的未使用部分的大小、快照数目、快照增量、碎片率、复制状态、以及已分配空间的先前释放过程被中断的次数。
6.根据权利要求4所述的方法,其中对所述多个文件系统进行聚类包括:
基于强化学习方法对所述多个文件系统进行聚类。
7.根据权利要求4所述的方法,其中基于所述聚类的结果来确定所述目标文件系统包括:
基于所述聚类的结果,确定多个文件系统群;
将所述多个文件系统群映射到多个坐标点;
基于所述多个坐标点和预定坐标点之间的距离,从所述多个文件系统群中确定目标文件系统群;以及
从所述目标文件系统群中确定所述目标文件系统。
8.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述电子设备执行动作,所述动作包括:
基于存储池的存储空间的大小和所述存储空间中的针对多个文件系统的已分配空间的大小,确定所述存储池的分配率;
基于所述存储池的所述存储空间的大小,确定所述存储池的阈值分配率;
根据确定所述存储池的所述分配率大于所述阈值分配率,基于所述多个文件系统的已分配空间中未使用部分的大小,从所述多个文件系统中确定目标文件系统;以及
释放所述目标文件系统的已分配空间中的未使用部分。
9.根据权利要求8所述的电子设备,其中确定所述存储池的所述阈值分配率包括:
根据确定所述存储空间的大小不大于第一空间阈值,将所述阈值分配率设置为第一预定阈值;以及
根据确定所述存储空间的大小大于所述第一空间阈值,与所述存储空间的大小相关联地确定所述阈值分配率。
10.根据权利要求9所述的电子设备,其中所述动作还包括:
根据确定所述阈值分配率大于第二预定阈值,将所述阈值分配率确定为所述第二预定阈值,所述第二预定阈值大于所述第一预定阈值。
11.根据权利要求8所述的电子设备,其中确定所述目标文件系统包括:
获取与所述多个文件系统有关的信息;
基于所述信息,对所述多个文件系统进行聚类;以及
基于所述聚类的结果,确定所述目标文件系统。
12.根据权利要求11所述的电子设备,其中获取与所述多个文件系统有关的信息包括获取与每个文件系统有关的以下中的至少一项:
已分配空间中的未使用部分的大小、快照数目、快照增量、碎片率、复制状态、以及已分配空间的先前释放过程被中断的次数。
13.根据权利要求11所述的电子设备,其中对所述多个文件系统进行聚类包括:
基于强化学习方法对所述多个文件系统进行聚类。
14.根据权利要求11所述的电子设备,其中基于所述聚类的结果来确定所述目标文件系统包括:
基于所述聚类的结果,确定多个文件系统群;
将所述多个文件系统群映射到多个坐标点;
基于所述多个坐标点和预定坐标点之间的距离,从所述多个文件系统群中确定目标文件系统群;以及
从所述目标文件系统群中确定所述目标文件系统。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-7中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010043305.6A CN113126889A (zh) | 2020-01-15 | 2020-01-15 | 管理存储空间的方法、设备和计算机程序产品 |
US16/935,974 US11593307B2 (en) | 2020-01-15 | 2020-07-22 | Method, device and computer program product for managing storage spaces |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010043305.6A CN113126889A (zh) | 2020-01-15 | 2020-01-15 | 管理存储空间的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113126889A true CN113126889A (zh) | 2021-07-16 |
Family
ID=76761065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010043305.6A Pending CN113126889A (zh) | 2020-01-15 | 2020-01-15 | 管理存储空间的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11593307B2 (zh) |
CN (1) | CN113126889A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11595319B2 (en) * | 2020-12-21 | 2023-02-28 | Microsoft Technology Licensing, Llc | Differential overbooking in a cloud computing environment |
CN114817169A (zh) | 2021-01-22 | 2022-07-29 | 伊姆西Ip控股有限责任公司 | 存储管理方法、设备和计算机程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110185135A1 (en) * | 2009-02-25 | 2011-07-28 | Hitachi, Ltd. | Storage apparatus and its control method |
US20120096059A1 (en) * | 2010-10-13 | 2012-04-19 | Hitachi, Ltd. | Storage apparatus and file system management method |
CN102708063A (zh) * | 2012-04-25 | 2012-10-03 | 北京天地云箱科技有限公司 | 磁盘空间管理方法及装置 |
CN104040512A (zh) * | 2012-12-28 | 2014-09-10 | 华为技术有限公司 | 存储空间的处理方法、装置及非易失性计算机可读存储介质 |
US20140297781A1 (en) * | 2013-04-01 | 2014-10-02 | Ctera Networks, Ltd. | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system |
CN104820575A (zh) * | 2015-04-27 | 2015-08-05 | 西北工业大学 | 实现存储系统自动精简的方法 |
US20150277767A1 (en) * | 2014-03-28 | 2015-10-01 | Fujitsu Limited | Storage management apparatus, and performance adjusting method |
CN110389905A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 资源释放方法、资源分配方法、设备和计算机程序产品 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802599A (en) * | 1994-02-08 | 1998-09-01 | International Business Machines Corporation | System and method for allocating storage in a fragmented storage space |
US8521987B2 (en) | 2009-03-18 | 2013-08-27 | Hitachi, Ltd. | Allocation and release of storage areas to virtual volumes |
US8812555B2 (en) * | 2011-06-18 | 2014-08-19 | Microsoft Corporation | Dynamic lock-free hash tables |
US9383924B1 (en) | 2013-02-27 | 2016-07-05 | Netapp, Inc. | Storage space reclamation on volumes with thin provisioning capability |
US9983817B2 (en) * | 2016-02-24 | 2018-05-29 | Netapp, Inc. | Adaptive, self learning consistency point triggers |
US10346057B1 (en) * | 2016-12-30 | 2019-07-09 | EMC IP Holding Company LLC | Probability-based allocation of storage from storage pools |
US11023128B2 (en) | 2018-03-16 | 2021-06-01 | Portworx, Inc. | On-demand elastic storage infrastructure |
US10678456B2 (en) | 2018-09-28 | 2020-06-09 | International Business Machines Corporation | Storage capacity usage management |
CN112486860A (zh) * | 2019-09-11 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储系统的地址映射的方法、设备和计算机程序产品 |
CN112765046A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 用于回收存储空间的方法、设备和计算机程序产品 |
-
2020
- 2020-01-15 CN CN202010043305.6A patent/CN113126889A/zh active Pending
- 2020-07-22 US US16/935,974 patent/US11593307B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110185135A1 (en) * | 2009-02-25 | 2011-07-28 | Hitachi, Ltd. | Storage apparatus and its control method |
US20120096059A1 (en) * | 2010-10-13 | 2012-04-19 | Hitachi, Ltd. | Storage apparatus and file system management method |
CN102708063A (zh) * | 2012-04-25 | 2012-10-03 | 北京天地云箱科技有限公司 | 磁盘空间管理方法及装置 |
CN104040512A (zh) * | 2012-12-28 | 2014-09-10 | 华为技术有限公司 | 存储空间的处理方法、装置及非易失性计算机可读存储介质 |
US20140297781A1 (en) * | 2013-04-01 | 2014-10-02 | Ctera Networks, Ltd. | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system |
US20150277767A1 (en) * | 2014-03-28 | 2015-10-01 | Fujitsu Limited | Storage management apparatus, and performance adjusting method |
CN104820575A (zh) * | 2015-04-27 | 2015-08-05 | 西北工业大学 | 实现存储系统自动精简的方法 |
CN110389905A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 资源释放方法、资源分配方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US11593307B2 (en) | 2023-02-28 |
US20210216505A1 (en) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6713906B2 (ja) | ソリッドステートドライブ及びその動作方法 | |
CN108694075B (zh) | 处理报表数据的方法、装置、电子设备和可读存储介质 | |
WO2015196686A1 (zh) | 一种数据存储方法以及一种数据存储管理服务器 | |
US10067696B2 (en) | Capacity exhaustion prevention for distributed storage | |
CN113126889A (zh) | 管理存储空间的方法、设备和计算机程序产品 | |
CN112559908B (zh) | 数据标识生成方法、装置、设备、介质和程序产品 | |
CN112486860A (zh) | 管理存储系统的地址映射的方法、设备和计算机程序产品 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
CN112748867A (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN112765046A (zh) | 用于回收存储空间的方法、设备和计算机程序产品 | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN111245732A (zh) | 一种流量控制方法、装置及设备 | |
CN111367677A (zh) | 集群资源分配方法及系统 | |
CN111158905A (zh) | 调整资源的方法和装置 | |
CN113590329A (zh) | 资源处理方法及装置 | |
EP4073639A1 (en) | Gpu packet aggregation system | |
CN111736975A (zh) | 请求控制方法、装置、计算机设备及计算机可读存储介质 | |
CN111625180B (zh) | 数据写入方法及装置、存储介质 | |
CN111221468B (zh) | 存储块数据删除方法、装置、电子设备及云存储系统 | |
US8607245B2 (en) | Dynamic processor-set management | |
CN109271538A (zh) | 一种图片存储方法及相关设备 | |
JP2009282664A (ja) | ストレージデータ管理システム及びストレージデータ管理プログラム | |
CN105095197A (zh) | 一种处理数据的方法及装置 | |
CN113297003A (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 |