CN112749135B - 文件***的存储空间的平衡的方法、设备和计算机程序产品 - Google Patents

文件***的存储空间的平衡的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN112749135B
CN112749135B CN201911046051.7A CN201911046051A CN112749135B CN 112749135 B CN112749135 B CN 112749135B CN 201911046051 A CN201911046051 A CN 201911046051A CN 112749135 B CN112749135 B CN 112749135B
Authority
CN
China
Prior art keywords
metadata
storage space
proportion
file system
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.)
Active
Application number
CN201911046051.7A
Other languages
English (en)
Other versions
CN112749135A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201911046051.7A priority Critical patent/CN112749135B/zh
Priority to US16/877,910 priority patent/US11681447B2/en
Publication of CN112749135A publication Critical patent/CN112749135A/zh
Application granted granted Critical
Publication of CN112749135B publication Critical patent/CN112749135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/0614Improving the reliability of 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/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例提供了文件***的存储空间的平衡的方法、设备和计算机程序产品。在一个实施例中,确定文件***的一种或多种类型的元数据中的第一类型的元数据的第一元数据存储空间的第一分配比例是否大于第一阈值比例。如果第一分配比例大于第一阈值比例,在文件***的存储空间中为第一类型的元数据预留存储空间。

Description

文件***的存储空间的平衡的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及计算机技术,更具体地,涉及文件***的存储空间的平衡的方法、设备和计算机程序产品。
背景技术
元数据和数据都广泛用于现代文件***中。有不同类型的元数据,用于描述文件的各种特征。索引节点(inode)是一种很重要的元数据类型,每个索引节点对应于文件***中的一个文件***对象,用于保存文件的访问权限、所有者、时间戳和存储位置等等文件信息。除了索引节点之外,文件***中还有其他类型的元数据。例如,虚拟块可以作为用于内置数据压缩和去重的元数据块。
对于精简文件***,存储空间是按需分配的。但是,某些元数据(例如索引节点)的存储空间是在最初创建文件***时静态分配的。然而,随着文件***的存储空间分配跟随不同的客户工作负载而变化,数据布局可能已发生重大变化。例如,如果创建了大量的小文件和目录,则索引节点块的消耗速度将很快。相对地,数据块消耗速度则较慢。因此,索引节点和数据块的存储空间之间将会失衡。随着时间经过,情况将变得更糟。
发明内容
总体上,本公开的实施例提出了文件***的存储空间的平衡的方法、设备和计算机程序产品。
在第一方面,本公开的实施例提供了一种文件***的存储空间的平衡的方法。在该方法中,确定文件***的一种或多种类型的元数据中的第一类型的元数据的第一元数据存储空间的第一分配比例是否大于第一阈值比例。如果第一分配比例高于第一阈值比例,在文件***的存储空间中为第一类型的元数据预留存储空间。
在第二方面,本公开的实施例提供了一种文件***的存储空间的平衡的设备。该设备包括处理器以及存储有计算机可执行指令的存储器。计算机可执行指令在被处理器执行时使得设备执行动作,动作包括:确定用于文件***的一种或多种类型的元数据中的第一类型的元数据的第一元数据存储空间的第一分配比例是否大于第一阈值比例;以及根据确定第一分配比例高于第一阈值比例,在文件***的存储空间中,为第一类型的元数据预留存储空间。
在第三方面,本公开的实施例提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使机器执行根据第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了元数据块和数据块的存储空间之间的失衡;
图2示出了本公开的实施例可以在其中实施的示例环境;
图3示出了根据本公开的某些实施例的文件***的存储空间分配的阈值比例的示例设置;
图4示出了根据本公开的某些实施例的在文件***的存储空间中分配元数据存储空间的示例过程;
图5示出了根据本公开的某些实施例的释放为元数据预留的存储空间的示例过程;
图6示出了根据本公开的某些实施例的用于平衡元数据存储空间和数据存储空间的示例过程的流程图;
图7示出了根据本公开的某些实施例的文件***的存储空间的平衡的示例方法的流程图;以及
图8示出了适合实现本公开的实施例的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在此使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
在此使用的术语“第一”、“第二”等在本文中可用于描述各种元件,这些元件不应受这些术语限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所用,术语“和/或”包括一个或多个所列术语的任何和所有组合。
如前所述,某些元数据(例如索引节点)的存储空间是在最初创建文件***时静态分配的。因此,随着文件***的存储空间分配和使用情况的变化,元数据块和数据块的存储空间之间会出现失衡。然而,传统的静态元数据分配方式没有考虑元数据块和数据块使用之间的这种不平衡状态,从而导致了文件***的存储空间的浪费。例如,诸如索引节点的元数据块已经用完了,但是仍然有大量数据块剩余。这将导致出现数据不可用(DU)情况,但是此时仍然有客户可见的可用空间。
图1示出了元数据块和数据块的存储空间的这种失衡。在图1中,曲线105和曲线110分别表示元数据块和数据块随时间的消耗。如图1所示,元数据块和数据块之间的消耗速度不平衡。元数据块将在时间115(标记为T15)耗尽,但是此时仍然有很多数据块可用。
这种失衡将导致客户进入数据不可用(DU)状态。虽然文件***并非完全无法从图形用户接口(GUI)或者命令行接口(CLI)使用,但是客户无法创建任何新的文件和/或目录。此时,即使文件***中存在可用空间,存储管理员也必须扩展文件***以增加元数据块的可用空间,这严重降低了存储效率。
本公开的实施例提出了一种文件***的元数据存储空间和数据存储空间之间的自平衡方案,以避免出现DU情况并且提高文件***的存储效率。该方案在文件***的某种类型的元数据的相应元数据存储空间的分配比例较高时,为此种类型的元数据预留存储空间。以此方式,可以在不扩展文件***的情况下,通过存储空间复用来平衡元数据存储空间和数据存储空间的使用情况。
根据该方案,元数据块分配将是动态的,从而可以自动适应客户工作量负载模式变化,减轻了存储管理员前期的文件***布局规划工作。而且,该方案还可以避免因元数据存储空间和数据存储空间失衡而导致文件***出现DU情况,提高了文件***的存储空间效率,节约了扩展文件***的存储阵列的成本。
图2示出了本公开的实施例可以在其中实施的示例环境200。
环境200中包括空间管理器(SM)205,其负责在文件***的存储空间中对元数据存储空间和数据存储空间进行动态管理。空间管理器205可以通过软件、固件、硬件或者其任意组合来实现。
在空间管理器205中,为文件***的三种类型的元数据配置了相应的元数据存储空间210、215和220。为讨论方便,三种类型的元数据将分别称为第一类型的元数据(标记为元数据1)、第二类型的元数据(标记为元数据2)和第三类型的元数据(标记为元数据3),而相应的元数据存储空间分别称为第一元数据存储空间210、第二元数据存储空间215和第三元数据存储空间220。
应当理解,在图2中仅出于说明的目的示出了三种类型的元数据以及相应的三个元数据存储空间。在实际中,文件***中可以包括任意数目的元数据类型以及相应的元数据存储空间。
如图2所示,除了元数据存储空间之外,在空间管理器205中,还为文件数据分配了数据存储空间225。元数据存储空间210、215和220以及数据存储空间225可以具有任意大小,例如可以包括任意数目的存储块。
根据本公开的实施例,为了避免在元数据存储空间耗尽时仍然有可用的数据块,也即,仍然向客户显示文件***中有可用的存储空间,将预留代理(RA)230引入文件***。与空间管理器205类型,预留代理230也可以通过软件、固件、硬件或者其任意组合来实现。
预留代理230在必要时(例如,当元数据块将在数据块之前用完时)被调用或启动,以用于从空间管理器205中为元数据预留存储空间。所预留的存储空间将仅用于存储元数据,而不用于存储数据。换句话说,所预留的存储空间会首先满足元数据块的空间分配要求。由此,防止出现客户的DU问题。
所预留的存储空间可以具有任意大小。在某些实施例中,所预留的存储空间可以包括一个存储切片(例如,256MB),其也可以被称为元数据预留切片(Metadata ReservedSlice,简称为MRS)。下面讨论MRS的一个示例数据结构。
Metadata Reserved Slice{
SliceId /切片的唯一标识(ID)
Seqid /序列ID,其在MRS被预留时被预留代理230单调地递增
id /MRS被预留用于的元数据ID
Duration /MRS被预留的持续时间,其在MRS被分配时被置零
}
在本公开的实施例中,如果第一元数据存储空间210的分配比例超过了阈值比例235(表示为Rh),则预留代理230将为相应的第一元数据预留存储空间240,其表示为Ri。为讨论方便,阈值比例235将被称为第一阈值比例235,其具体取值可以根据实际需求来确定,其可以是固定的,也可以是动态配置的。是作为示例,第一阈值比例235可以设置为90%。
元数据存储空间的分配比例可以通过元数据存储空间中的已分配空间所占的比例来确定。例如,可以通过以下公式来判定是否创建预留存储空间:
已分配的元数据存储空间/元数据存储空间>Rh (1)
在某些实施例中,关于元数据存储空间的分配比例的判断可以通过文件***的使用情况来触发。例如,可以基于文件***的存储空间的分配比例大于或等于阈值比例245(被称为第二阈值比例245)而触发元数据存储空间的分配比例与第一阈值比例235的比较。与第一阈值比例235类似,第二阈值比例245可以通过文件***的存储空间中的已分配空间所占的比例来确定。
在某些实施例中,可以在空间管理器205中设置多个阈值比例。例如,如图2所示,除了第二阈值比例245之外,还可以设置较低阈值比例250和较高阈值比例255,为讨论方便,分别称为第三阈值比例250和第四阈值比例255。
图3示出了根据本公开的某些实施例的文件***的存储空间分配的阈值比例的示例设置300。
如图3所示,根据文件***的存储空间305中的已分配的存储空间310所占的比例,设置了三个阈值比例,也即,第二阈值比例250、第三阈值比例245和第四阈值比例255,其也被称为低水位标记(LWM)、中水位标记(MWM)和高水位标记(HWM)。与第一阈值比例235类似,第二阈值比例245、第三阈值比例250和第四阈值比例255的具体取值也可以根据实际需求来确定。作为示例,第二阈值比例245可以设置为90%,第三阈值比例250可以设置为80%,第四阈值比例255可以设置为95%。
在已分配的存储空间310所占的比例到达不同的阈值比例时,空间管理器205将采用不同的方式来分配文件***的存储块。例如,在已分配的存储空间310所占的比例小于或等于第三阈值比例250(也即,低水位标记)时,将按照常规方式,从存储空间305中为各个元数据210、215和220分配存储空间,如图4所示。
在已分配的存储空间310所占的比例大于或等于第二阈值比例245(也即,中水位标记)时,如图2所示,预留代理230将被初始化或调用,以便为元数据预留存储单元。预留代理230可以将每种类型的元数据的相应存储空间210、215和220的分配比例都与第一阈值比例235比较。如果某种类型的元数据的相应存储空间的分配比例超过了第一阈值比例235,则预留代理230就为该种类型的元数据预留存储空间,例如,预留一个256MB的切片。在图2所示的示例中,仅第一元数据的第一元数据存储空间210的分配比例超过了第一阈值比例235,所以仅为第一元数据预留了存储空间240。
在某些实施例中,可以为不同类型的元数据分配不同的优先级。在多种类型的元数据的相应存储空间的分配比例都超过了第一阈值比例235的情况下,可以优先为优先级高的元数据预留存储空间。该优先级可以每种类型的元数据的相应存储空间的当前分配状态、每种类型的元数据的相应存储空间的消耗速度等等来确定。可以将存储空间最可能最先用完的元数据的优先级设置为较高。
例如,当文件***的存储空间的当前分配比例达到了第二阈值比例245时,预留代理230可以创建预留的存储空间。继而,预留代理230将检查元数据和数据块的当前分配状态和消耗速度。如果在某种元数据块与数据块之间出现失衡状态,则可以首先在预留的存储空间中为失衡的元数据分配存储块。以此方式,可以进一步提高存储空间的使用效率。
在某些实施例中,在为某种类型的元数据(例如,第一元数据210)预留了存储空间(例如,存储空间240)之后,预留代理230可以确定预留条件是否满足。例如,上面的公式(1)是否仍然成立。如果预留条件不满足,则将释放所预留的存储空间(例如,存储空间240)。
除了上述公式(1)之外,可以根据实际需求采用其他任何适当的预留条件。在某些实施例中,可以根据文件***的存储空间305中的已分配存储空间310所占的比例来确定预留的存储空间是否保留。例如,如果已分配存储空间310所占的比例再次低于第三阈值比例250(也即,低水位标记),则所有为元数据预留的存储空间都将返回给空间管理器205。此时,预留代理230将停止,并且按照常规方式从文件***的存储空间305中为元数据分配存储空间。
为了进一步促进元数据存储空间和数据存储空间之间的重新平衡,在某些实施例中,可以从文件***的已分配的数据存储空间中回收在预定时间段内未被访问的数据存储空间。例如,如图2所示,预留代理230可以扫描已分配的数据存储空间225,并且回收预定时间段内未被访问的数据存储空间260,以用于后续预留给元数据使用。作为示例,预留代理230可以回收最近最少使用(LRU)的空闲后台数据块。这些数据块已在磁盘中分配,但未被用户使用。
以此方式,数据块中的可用空间将被主动回收到空间管理器205,从而将文件***中的空间从数据块释放到元数据块。这降低了文件***的碎片级别,并且提高了文件***的存储效率。通过为元数据预留存储空间,以及将空闲的数据存储空间回收以用于后续预留给元数据使用,可以在无需扩展文件***的存储空间的情况下,实现元数据存储空间和数据存储空间之间的分配状态的自动重新平衡。
如果预留的存储空间已经被充分利用,而仍然有元数据的存储空间的分配比例超过第一阈值比例235,可以继续为该元数据预留新的存储空间。可以采用如上所述的处理方式,在此不再赘述。
在已分配的存储空间310所占的比例大于或等于第四阈值比例255(也即,高水位标记)时,表明空间管理器205中的空间受限。此时,可以释放预留的存储空间。下面参考图5来讨论一个具体示例。
在此示例中,如图5所示,第二类型的元数据(标记为元数据2)的第二元数据存储空间215的分配比例以及第三类型的元数据(标记为元数据3)的第三元数据存储空间220的分配比例都超过了第一阈值比例235(例如为90%)。因此,为这两种元数据也预留了存储空间505和510,分别表示为Rm和Rv。
如果预留代理230监测到文件***的已分配存储空间的比例超过了第四阈值比例255(例如,超过95%),这表明文件***的存储空间受限。此时,预留代理230可以确定是否有可回收的数据存储空间,例如,是否有在预定时间段内未被访问的数据存储空间。作为示例,预留代理230可以按照预定的时间间隔(例如,2分钟)扫描数据空间,以找到可回收的数据块。
如果数据块将在元数据块之前用完,则预留代理230将无法从数据空间向空间管理器205回收任何块。在空间管理器205中,除了预留的存储空间以外没有可用的空间或块。在这种情况下,预留代理230可以释放已预留的存储空间。
在图5所示的示例中,预留代理230从多个预留的存储空间240、505和510选择要释放的存储空间。例如,可以根据各预留存储空间的相应生成状态,选择在不久的将来用尽的可能性较小的存储空间来释放。作为示例,可以根据以下的公式(2)来确定预留存储空间的生成状态:
MGSi=Seqid/Duration×(1–空闲空间/已分配空间) (2)
其中MGSi(i=1,2,3…)表示第i个MRS的生成状态。
同时,预留代理230可以引起警报以指示文件***的存储空间受限,和/或元数据存储空间具有较高的使用率。从而,通知存储管理员或者用户无法实现文件***的存储空间的重新平衡,以便存储管理员或者客户可以采取相应的措施。
图6示出了根据本公开的某些实施例的用于平衡元数据存储空间和数据存储空间的示例过程600的流程图。
如图6所示,过程600在框605处开始。在框610,确定文件***的存储空间的当前分配比例。在框615,确定存储空间的当前分配比例是否大于或等于第二阈值比例245(例如,中水位标记)。如果是,则过程600进行到框620,在此调用预留代理230。在框625,检查定文件***的存储空间的当前分配比例。如果存储空间的当前分配比例大于或等于第二阈值比例245并且小于第四阈值比例255(例如,高水位标记),则过程600进行到框630,在此确定元数据存储空间的当前分配比例是否大于第一阈值比例235。如果是,则在框635为相应类型的元数据预留存储空间,并且回收预定时间段内未被访问的已分配的数据存储空间。
在框640,确定文件***的存储空间的最新分配比例。继而,在框645检查存储空间的最新分配比例。如果存储空间的最新分配比例仍然大于或等于第二阈值比例245并且小于第四阈值比例255,则返回到框630,继续进行元数据存储空间的分配比例的判断。如果存储空间的最新分配比例小于或等于第三阈值比例250(例如,低水位标记),则在框650,停止预留代理230。接下来,在框655,从文件***的存储空间中分配元数据存储空间。在框660,过程600结束。
如果在框645判断存储空间的最新分配比例大于或等于第四阈值比例255,则过程600进行到框660,在此根据预留的存储空间的生成状态释放相应的预留存储空间,并且通知管理员以便后续扩展。然后,在框670,停止预留代理230。继而,在框660,过程600结束。
下面的表1示出了在100GB的精简文件***中的元数据块和数据块使用改变状态。
表1
在时间T1,文件***的存储空间的分配比例为78%,小于第三阈值比例250(例如,80%)。此时,将按照常规方式,在文件***的存储空间中执行元数据块和数据块的分配。
在时间T2,已经创建了许多新的小文件或目录,文件***的存储空间的分配比例为90%,到达了第二阈值比例245。此时,预留代理230将被初始化或者调用,并且为元数据预留MRS。同时,预留代理230将开始扫描LRU空闲后端数据块以进行回收。
在时间T3,元数据块通过MRS增加了4GB。与此同时,预留代理230将减少空闲后端数据块,以便满足1)新的分配请求,以及2)将LRU空闲后端数据块回收到MRS,以供元数据使用。这样,元数据块和数据块之间的重新平衡。文件***中仍然存在空闲后端数据块,元数据块不会用完。
在时间T4,文件***的存储空间的分配比例为96%,超过了第四阈值比例255(例如,95%)。此时,已经没有空闲后端数据块,这意味着无法支持预留代理230的重新平衡请求。因而,将向客户发送警报,以指示文件***的存储空间受限以及元数据存储空间的使用率较高。
图7示出了根据本公开的某些实施例的文件***的存储空间的平衡的示例方法700的流程图。方法700可以在如图2所示的环境200中实施。为讨论方便,下面将结合图2描述方法700。
如图7所示,在框705,确定用于文件***的一种或多种类型的元数据中的第一类型的元数据的第一元数据存储空间的分配比例(称为“第一分配比例”)是否大于第一阈值比例。在框710,如果确定第一分配比例高于第一阈值比例,则在文件***的存储空间中为第一类型的元数据预留存储空间。
在某些实施例中,可以在文件***的已分配的数据存储空间中,确定在预定时间段内未被访问的数据存储空间。继而,可以回收未被访问的数据存储空间,以用于预留给一种或多种类型的元数据。
在某些实施例中,可以再次确定用于第一类型的元数据的第一元数据存储空间的当前分配比例是否大于第一阈值比例。如果确定当前分配比例小于或等于第一阈值比例,则可以释放所预留的存储空间。
在某些实施例中,可以确定用于一种或多种类型的元数据中的第二类型的元数据的第二元数据存储空间的分配比例(称为“第二分配比例”)是否大于第一阈值比例。如果确定第二分配比例大于第一阈值比例,则比较第一类型的元数据的第一优先级和第二类型的元数据的第二优先级。基于第一优先级高于第二优先级,可以优先在文件***的存储空间中为第一类型的元数据预留存储空间。
在某些实施例中,可以确定文件***的存储空间的分配比例(称为“第三分配比例”)是否大于或等于第二阈值比例。如果确定第三分配比例大于或等于第一阈值比例,则继而确定第一分配比例是否大于第一阈值比例。
在某些实施例中,可以确定文件***的存储空间的第三分配比例是否小于或等于第三阈值比例,其中第三阈值比例小于第二阈值比例。如果确定第三分配比例小于或等于第三阈值比例,则可以释放所预留的存储空间。
在某些实施例中,可以确定文件***的存储空间的第三分配比例是否大于或等于第四阈值比例,其中第四阈值比例大于第二阈值比例。如果确定第三分配比例大于或等于第四阈值比例,则可以释放所预留的存储空间。
在某些实施例中,如果确定第三分配比例大于或等于第四阈值比例,则可以确定在文件***的已分配的数据存储空间中是否存在预定时间段内未被访问的数据存储空间。如果确定不存在未被访问的数据存储空间,则可以释放所预留的存储空间。在某些实施例中,还可以引起警报以指示文件***的存储空间受限。
应理解,上文结合图2到图5描述的操作和特征同样适用于方法700,并且具有同样的效果,具体细节不再赘述。
图8示出了一个可以用来实施本公开的实施例的设备800的示意性框图。
如图8所示,设备800包括控制器或处理器,或者称中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802和/或随机访问存储器(RAM)803的程序而执行各种适当的动作和处理。ROM 802和/或RAM 803可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802和RAM 803通过总线804彼此相连。特别地,设备800还包括一个或多个专用处理单元(未示出),这些专用处理单元也可以连接至总线804。
输入/输出(I/O)接口805也连接至总线804。设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。特别地,在本公开的实施例中,通信单元809支持与客户端或者其他设备的通信。
在某些实施例中,CPU 801可被配置为执行上文所描述的各个过程和处理,例如方法700。例如,在一些实施例中,方法700可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM803并由CPU 801执行时,可以执行上文描述的方法700的一个或多个步骤。备选地,在其他实施例中,CPU 801也可以以其他任何适当的方式被配置以实现上述过程/方法。
特别地,根据本公开的实施例,上文参考图1至图7描述的过程可以被实现为计算机程序产品,其可以被有形地存储在非瞬态计算机可读存储介质上,并且包括计算机可执行指令,该指令在被执行时使得设备实现根据本公开的各个方面。
计算机可读存储介质可以是可以存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的、非穷举的例子包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的设备、方法和计算机程序产品的框图和/或流程图描述了本公开的各个方面。应当理解,框图和/或流程图的每个方框以及框图和/或流程图中各方框的组合,都可以由计算机可读程序指令实现。
已经出于示例的目的描述了本公开的各个实施例,但是本公开并不意图限于所公开的这些实施例。在不脱离本公开实质的前提下,所有修改和变型均落入由权利要求所限定的本公开的保护范围之内。

Claims (18)

1.一种文件***的存储空间的平衡的方法,包括:
确定用于所述文件***的多种类型的元数据中的第一类型的元数据的第一元数据存储空间的第一分配比例是否大于第一阈值比例;以及
响应于确定所述第一分配比例大于所述第一阈值比例:
在所述文件***的所述存储空间中,为所述第一类型的元数据预留元数据存储空间,其中为所述第一类型的元数据预留所述元数据存储空间包括:
确定用于所述多种类型的元数据中的第二类型的元数据的第二元数据存储空间的第二分配比例是否大于所述第一阈值比例,
响应于确定所述第二分配比例大于所述第一阈值比例,执行所述第一类型的元数据的第一优先级与所述第二类型的元数据的第二优先级的比较,以及
响应于确定所述第一优先级高于所述第二优先级,相比于为所述第二类型的元数据预留元数据存储空间,优先从所述文件***的所述存储空间为所述第一类型的元数据预留所述元数据存储空间;
在所述文件***的已分配的数据存储空间中,确定在预定时间段内未被访问的数据存储空间;以及
将所述未被访问的数据存储空间回收到为所述多种类型的元数据分配元数据存储空间的空间管理器。
2.根据权利要求1所述的方法,还包括:
确定用于第一类型的元数据的第一元数据存储空间的当前分配比例是否大于所述第一阈值比例;以及
根据确定所述当前分配比例小于或等于所述第一阈值比例,释放所预留的元数据存储空间。
3.根据权利要求1所述的方法,其中确定所述第一分配比例是否大于所述第一阈值比例包括:
确定所述文件***的所述存储空间的第三分配比例是否大于或等于第二阈值比例;以及
根据确定所述第三分配比例大于或等于第一阈值比例,确定所述第一分配比例是否大于所述第一阈值比例。
4.根据权利要求3所述的方法,还包括:
确定所述文件***的所述存储空间的所述第三分配比例是否小于或等于第三阈值比例,所述第三阈值比例小于所述第二阈值比例;
根据确定所述第三分配比例小于或等于所述第三阈值比例,释放所预留的元数据存储空间。
5.根据权利要求3所述的方法,还包括:
确定所述文件***的所述存储空间的所述第三分配比例是否大于或等于第四阈值比例,所述第四阈值比例大于所述第二阈值比例;
根据确定所述第三分配比例大于或等于所述第四阈值比例,释放所预留的元数据存储空间。
6.根据权利要求5所述的方法,还包括:
引起警报以指示所述文件***的所述存储空间受限。
7.根据权利要求5所述的方法,其中释放所预留的元数据存储空间包括:
根据确定所述第三分配比例大于或等于所述第四阈值比例,确定在所述文件***的已分配的数据存储空间中是否存在预定时间段内未被访问的数据存储空间;以及
根据确定不存在所述未被访问的数据存储空间,释放所预留的元数据存储空间。
8.根据权利要求1所述的方法,还包括:
由所述空间管理器为所述多种类型的元数据中的每一种类型的元数据分配相应的元数据存储空间;以及
除了多个元数据存储空间之外,由所述空间管理器分配数据存储空间。
9.根据权利要求1所述的方法,还包括:
其中所预留的元数据存储空间后续被用于仅存储所述第一类型的元数据;以及
其中所预留的元数据存储空间后续被用于满足用以存储所述第一类型的元数据的至少一个空间分配请求。
10.根据权利要求1所述的方法,还包括:
基于为所述第一类型的元数据预留的所述元数据存储空间被消耗以存储所述第一类型的元数据的速度,确定所述第一类型的元数据的所述第一优先级;以及
基于为所述第二类型的元数据预留的所述第二元数据存储空间被消耗以存储所述第二类型的元数据的速度,确定所述第二类型的元数据的所述第二优先级。
11.一种文件***的存储空间的平衡的设备,包括:
处理器,以及
存储有计算机可执行指令的存储器,所述计算机可执行指令在被所述处理器执行时使得所述设备执行动作,所述动作包括:
确定用于所述文件***的多种类型的元数据中的第一类型的元数据的第一元数据存储空间的第一分配比例是否大于第一阈值比例;以及
响应于确定所述第一分配比例大于所述第一阈值比例:
在所述文件***的所述存储空间中,为所述第一类型的元数据预留元数据存储空间,其中为所述第一类型的元数据预留所述元数据存储空间包括:
确定用于所述多种类型的元数据中的第二类型的元数据的第二元数据存储空间的第二分配比例是否大于所述第一阈值比例,
响应于确定所述第二分配比例大于所述第一阈值比例,执行所述第一类型的元数据的第一优先级与所述第二类型的元数据的第二优先级的比较,以及
响应于确定所述第一优先级高于所述第二优先级,相比于为所述第二类型的元数据预留元数据存储空间,优先从所述文件***的所述存储空间为所述第一类型的元数据预留所述元数据存储空间;
在所述文件***的已分配的数据存储空间中,确定在预定时间段内未被访问的数据存储空间;以及
将所述未被访问的数据存储空间回收到为所述多种类型的元数据分配元数据存储空间的空间管理器。
12.根据权利要求11所述的设备,其中所述动作还包括:
确定用于第一类型的元数据的第一元数据存储空间的当前分配比例是否大于所述第一阈值比例;以及
根据确定所述当前分配比例小于或等于所述第一阈值比例,释放所预留的元数据存储空间。
13.根据权利要求11所述的设备,其中确定所述第一分配比例是否大于所述第一阈值比例包括:
确定所述文件***的所述存储空间的第三分配比例是否大于或等于第二阈值比例;以及
根据确定所述第三分配比例大于或等于第一阈值比例,确定所述第一分配比例是否大于所述第一阈值比例。
14.根据权利要求13所述的设备,其中所述动作还包括:
确定所述文件***的所述存储空间的所述第三分配比例是否小于或等于第三阈值比例,所述第三阈值比例小于所述第二阈值比例;
根据确定所述第三分配比例小于或等于所述第三阈值比例,释放所预留的元数据存储空间。
15.根据权利要求13所述的设备,其中所述动作还包括:
确定所述文件***的所述存储空间的所述第三分配比例是否大于或等于第四阈值比例,所述第四阈值比例大于所述第二阈值比例;
根据确定所述第三分配比例大于或等于所述第四阈值比例,释放所预留的元数据存储空间。
16.根据权利要求15所述的设备,其中所述动作还包括:
引起警报以指示所述文件***的所述存储空间受限。
17.根据权利要求15所述的设备,其中释放所预留的元数据存储空间包括:
根据确定所述第三分配比例大于或等于所述第四阈值比例,确定在所述文件***的已分配的数据存储空间中是否存在预定时间段内未被访问的数据存储空间;以及
根据确定不存在所述未被访问的数据存储空间,释放所预留的元数据存储空间。
18.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中任一项所述的方法。
CN201911046051.7A 2019-10-30 2019-10-30 文件***的存储空间的平衡的方法、设备和计算机程序产品 Active CN112749135B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911046051.7A CN112749135B (zh) 2019-10-30 2019-10-30 文件***的存储空间的平衡的方法、设备和计算机程序产品
US16/877,910 US11681447B2 (en) 2019-10-30 2020-05-19 Method, device and computer program product of balance of storage space for file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911046051.7A CN112749135B (zh) 2019-10-30 2019-10-30 文件***的存储空间的平衡的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN112749135A CN112749135A (zh) 2021-05-04
CN112749135B true CN112749135B (zh) 2024-06-07

Family

ID=75640640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911046051.7A Active CN112749135B (zh) 2019-10-30 2019-10-30 文件***的存储空间的平衡的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11681447B2 (zh)
CN (1) CN112749135B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295031B2 (en) 2019-10-08 2022-04-05 International Business Machines Corporation Event log tamper resistance
US11392348B2 (en) * 2020-02-13 2022-07-19 International Business Machines Corporation Ordering records for timed meta-data generation in a blocked record environment
US11237738B2 (en) 2020-03-16 2022-02-01 EMC IP Holding Company, LLC Managing operation of a data storage system with reservation of metadata space
US11372846B2 (en) * 2020-07-17 2022-06-28 International Business Machines Corporation Generating and utilizing pre-allocated storage space
US20240202080A1 (en) * 2022-12-20 2024-06-20 Dell Products L.P. Prioritization in cloud migration for deduplication systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002039279A2 (en) * 2000-11-07 2002-05-16 Surgient Networks, Inc. Systems and methods for resource monitoring in information storage environments
US6928459B1 (en) * 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US8443153B1 (en) * 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129048A1 (en) * 2000-03-03 2002-09-12 Surgient Networks, Inc. Systems and methods for resource monitoring in information storage environments
US9355121B1 (en) * 2013-06-28 2016-05-31 Emc Corporation Segregating data and metadata in a file system
CN105740165A (zh) * 2014-12-10 2016-07-06 国际商业机器公司 用于管理统一存储***的文件***的方法和装置
US9870366B1 (en) * 2015-09-18 2018-01-16 EMC IP Holding Company LLC Processing storage capacity events in connection with file systems
US9678683B1 (en) * 2016-11-01 2017-06-13 Red Hat, Inc. Lazy persistent storage volume provisioning
US10168910B2 (en) * 2017-03-09 2019-01-01 International Business Machines Corporation Storage area network reclamation for virtual environments
US10936195B2 (en) 2017-10-30 2021-03-02 EMC IP Holding Company LLC Data storage system using in-memory structure for reclaiming space from internal file system to pool storage
US10235286B1 (en) 2017-10-30 2019-03-19 EMC IP Holding Company LLC Data storage system dynamically re-marking slices for reclamation from internal file system to pool storage
US10613787B2 (en) * 2018-01-31 2020-04-07 EMC IP Holding Company LLC Techniques for rebalancing storage between subspaces
US10866869B2 (en) * 2019-01-16 2020-12-15 Vmware, Inc. Method to perform crash and failure recovery for a virtualized checkpoint protected storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928459B1 (en) * 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
WO2002039279A2 (en) * 2000-11-07 2002-05-16 Surgient Networks, Inc. Systems and methods for resource monitoring in information storage environments
US8443153B1 (en) * 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system

Also Published As

Publication number Publication date
US11681447B2 (en) 2023-06-20
CN112749135A (zh) 2021-05-04
US20210132829A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
CN112749135B (zh) 文件***的存储空间的平衡的方法、设备和计算机程序产品
KR101357397B1 (ko) 데이터 프로세싱 시스템의 메모리 사용을 추적하는 방법
US8583756B2 (en) Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system
US20170031622A1 (en) Methods for allocating storage cluster hardware resources and devices thereof
US8332611B2 (en) Method and system for managing memory
CN102027453B (zh) 用于在虚拟环境中优化中断处理的***和方法
WO2012103231A1 (en) Computing platform with resource constraint negotiation
CN102063338A (zh) 一种请求独占资源的方法及装置
EP3865992A2 (en) Distributed block storage system, method, apparatus and medium
US8458719B2 (en) Storage management in a data processing system
CN114168490A (zh) 确定内存回收阈值的方法及相关设备
CN111464331B (zh) 一种线程创建的控制方法、***及终端设备
KR101896497B1 (ko) 성능 제어 방법 및 이를 위한 장치
US10896062B2 (en) Inter-process memory management
CN112346848A (zh) 一种管理内存池的方法、装置及终端
WO2022048674A1 (zh) 基于服务器机柜的虚拟机管理方法及装置
CN114518962A (zh) 内存的管理方法及装置
CN113391757B (zh) 一种节点扩展方法、装置及迁入节点
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
CN111813564A (zh) 集群资源管理方法、装置及容器集群管理***
CN107515727B (zh) 用于在存储***中管理存储器的方法和***
CN117331493A (zh) 数据存储的方法、装置、设备和计算机可读介质
CN117873694A (zh) 堆空间分配方法、装置、电子设备和存储介质
CN111752712A (zh) 虚拟机资源利用率提高方法及装置
CN117827874A (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
GR01 Patent grant