CN114780014A - 管理元数据存储单元的方法、电子设备和计算机程序产品 - Google Patents

管理元数据存储单元的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN114780014A
CN114780014A CN202110090582.7A CN202110090582A CN114780014A CN 114780014 A CN114780014 A CN 114780014A CN 202110090582 A CN202110090582 A CN 202110090582A CN 114780014 A CN114780014 A CN 114780014A
Authority
CN
China
Prior art keywords
metadata
metadata storage
storage
storage units
determining
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
Application number
CN202110090582.7A
Other languages
English (en)
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 CN202110090582.7A priority Critical patent/CN114780014A/zh
Priority to US17/464,128 priority patent/US11941265B2/en
Publication of CN114780014A publication Critical patent/CN114780014A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

根据本公开的示例实施例,提供了一种管理元数据存储单元的方法、电子设备和计算机程序产品。该方法包括:响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目;以及如果第一数目不小于预留数目,从元数据存储空间中分配目标数目个元数据存储单元,以供客户端使用,其中预留数目与存储系统中元数据存储单元的使用情况相关联。由此,本方案可以有效地管理元数据,提高系统的性能。

Description

管理元数据存储单元的方法、电子设备和计算机程序产品
技术领域
本公开的实施例总体涉及管理元数据存储单元的方法、电子设备和计算机程序产品。
背景技术
在存储系统中,在写入用户数据的同时需要相应地写入与其对应的元数据,元数据输入/输出(I/O)的性能对于系统性能至关重要。通常存储系统需要预留一定大小的元数据存储空间。当存储系统中的元数据存储空间将要用尽时,存储系统可能进入写保护模式。在写保护模式下,存储系统仅允许读操作和其他一些有限的操作。当存储系统进入写保护模式后,用户数据可能无法被及时地存储到后端存储设备中。这可能会阻碍一些后续操作的执行,导致存储系统无法退出写保护模式,进而影响存储系统的可用性。
发明内容
本公开的实施例提供了管理元数据存储单元的方法、电子设备和计算机程序产品。
在本公开的第一方面,提供了一种管理元数据存储单元的方法。该方法包括:响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目;以及如果第一数目不小于预留数目,从元数据存储空间中分配目标数目个元数据存储单元,以供客户端使用,其中预留数目与存储系统中元数据存储单元的使用情况相关联。
在本公开的第二方面,提供了一种电子设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目;以及如果第一数目不小于预留数目,从元数据存储空间中分配目标数目个元数据存储单元,以供客户端使用,其中预留数目与存储系统中元数据存储单元的使用情况相关联。
在本公开的第三方面,提供了一种计算机程序产品。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器实现根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了本公开的实施例可以在其中被实现的示例环境的示意图;
图2示出了根据本公开的实施例的分配元数据存储单元的方法的流程图;
图3示出了根据本公开的实施例的确定元数据存储单元的预留数目的方法的流程图;
图4示出了根据本公开的实施例的退出写保护模式的方法的流程图;以及
图5示出了可以用来实施本公开的实施例的示例设备的框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
传统上,在存储系统中,通常使用将元数据分配到可用的元数据存储单元,例如叶间接指针块(IDP)页面,其占用4KB的存储空间并且与用于写入用户数据的连续2MB逻辑存储空间相关联。在上述情况中,传统方案通常固定大小(例如,1GB)的元数据存储空间。然而,在最坏情况中,在连续2M逻辑存储空间中仅仅写入4KB用户数据的,也即用户数据与元数据的比例为1:1。在该最坏情况中,1GB 的元数据存储空间明显不足并且存储系统很容易进入写保护模式。当存储系统进入写保护模式后,用户数据将无法被及时地冲刷到后端存储设备中。这可能会阻碍一些后续操作的执行,导致存储系统无法退出写保护模式,进而影响存储系统的可用性。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种管理元数据存储单元的方案。该方案根据存储系统中元数据存储单元的使用情况来动态调整预留的元数据存储空间的大小(也即,预留的可供分配的元数据存储单元的数目)。在接收到分配目标数目个元数据存储单元的请求时,该方案确定在执行该分配后元数据存储空间中剩余的可用元数据存储单元的数目。如果该数目不小于预留数目则执行该分配,否则在对元数据存储空间进行扩展后再执行该分配。以此方式,本方案能有效管理存储系统的元数据存储空间,进而提高存储系统的可用性。
在下文中,将结合图1至图5更详细地描述本方案的具体示例。图1示出了根据本公开的实施例的存储系统100的示例的示意图。图 1示出了本公开的实施例能够在其中被实现的示例环境100的框图。如图1所示,环境100包括存储客户端110-1和110-2、存储管理器120-1和120-2以及持久存储设备130。应当理解,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。例如,本公开的实施例还可以被应用到与环境100不同的环境中。存储客户端110-1和存储客户端110-2(下文可以被统称为存储客户端110)的功能是类似的,并且存储管理器120-1和120-2(下文可以被统称为存储管理器120)的功能是类似的。在下文中,将仅以存储客户端110-1和存储管理器120-1为示例描述其功能。
持久存储设备130可以包括磁盘、光盘、机械硬盘(HDD)或固态盘(SSD)等。根据所存储的数据类型,持久存储设备130可以包括不同的存储空间,例如用于存储用户数据的用户数据存储空间和用于存储元数据的元数据存储空间。每个存储空间可以包括多个存储单元。例如,每个存储单元可以具有相同大小。也即,根据所存储的不同数据类型或根据所划分的逻辑层,存储设备130可以包括各种类型的存储单元,例如,用于存储用户数据的存储单元(也称为“用户数据存储单元”)、用于存储元数据的存储单元(也称为“元数据存储单元”)等。元数据存储单元可以存储与用户数据有关的映射信息、索引信息、状态信息等,例如存储单元到物理盘的映射信息、存储单元的状态(诸如,正常状态或故障状态)等。持久存储设备130中的多个存储单元中所存储的数据可以是互相关联的。
存储管理器120-1可以接收来自存储客户端110-1的数据读/写请求。当接收到用户数据读请求时,存储管理器120-1可以从持久存储设备130读取用户数据并返回给存储客户端110-1。当接收到用户数据写请求时,存储管理器120-1需要分配合适大小的元数据存储单元以写入与用户数据对应的元数据。针对待写入的用户数据,存储管理器120-1可以首先将待写入的用户数据写入到存储管理器120-1处的缓存中。缓存中的数据也被称为“脏数据”。存储管理器120-1可以利用后台进程将脏数据冲刷至持久存储设备130中。
在上述示例中,例如,用户数据写入请求可以触发分配一个或多个元数据存储单元的请求。在这种情况中,存储管理器120-1可以确定在持久存储设备130的元数据存储空间中分配该一个或多个元数据存储单元后的剩余可用元数据存储单元的数目。存储管理器120-1可以根据剩余可用元数据存储单元的数目与预留的元数据存储单元的数目进行比较,并且根据比较结果来执行后续操作。预留的元数据存储单元的数目可以基于元数据存储单元的使用情况而动态调整。以此方式,能够降低存储系统100进入写保护模式的可能性。此外,在存储系统100进入写保护模式的情况下存储管理器120-1可以确定何时退出写保护模式。
存储管理器120-2的操作也是类似的。存储管理器120-1和存储管理器120-2可以分别独立地处理来自存储客户端110-1和存储客户端110-2的数据读/写请求。存储管理器120-1和120-2可以分别具有各自的缓存以用于缓存脏数据,并且可以定期将脏数据冲刷到持久存储设备130中。此外,存储管理器120-1和120-2之间可以具有通信接口,以用于同步数据和/或状态信息。
应当理解,虽然图示为存在两个存储客户端和两个存储管理器,然而这仅仅是示例性的,还可以存在任意数目的存储客户端和存储管理器,图示的数目不旨在限制本公开的范围。以下将结合图2至图4 进一步详细描述本公开的各种实施例。
图2示出了根据本公开的实施例的用于分配元数据存储单元的示例方法200的流程图。方法200例如可以由如图1所示的存储管理器 120(例如,存储管理器120-1或120-2)来执行。应当理解,方法200 还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。以下结合图1至图4来详细描述方法200。
如图2所示,在框210处,存储管理器120响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目。例如,在存储管理器120接收到来自存储客户端110的分配元数据存储单元的请求后,存储管理器120可以确定在执行该分配后持久存储设备130中的元数据存储空间中剩余的可用元数据存储单元的数目(本文中也称为“第一数目”)。
在一个实施例中,存储管理器120在接收到分配N个元数据存储单元的请求收,存储管理器120可以确定在执行该分配后元数据存储空间中剩余的可用元数据存储单元的数目L。例如,存储管理器120 确定元数据存储空间的容量为T,即其中总共的元数据存储单元的数目为T。存储管理器120查询最后一次配置的逻辑区块地址(LBA) 为X,其指示元数据存储空间中已分配的元数据存储单元的数目。存储管理器可以确定元数据存储空间中可供分配的元数据存储单元的数目为T-X。然后,存储管理器120可以确定在执行该分配后元数据存储空间中剩余的可用元数据存储单元的第一数目为L=T-X-N。
请注意,上述计算第一数目的实施例仅仅是示例性的。根据不同的存储结构,可以利用不同的方法确定在分配所请求的元数据存储单元后元数据存储空间中剩余的可用元数据存储单元的数目。
在框220处,存储管理器120如果确定第一数目不小于预留数目,从元数据存储空间中分配目标数目个元数据存储单元,以供客户端 110使用。该预留数目与存储系统中元数据存储单元的使用情况相关联。具体地,该预留数目可以根据存储系统中在历史时间段内被冲刷的用户数据存储单元的数目、被使用的元数据存储单元的数目和待冲刷的用户数据存储单元的数目来进行动态调整。以下结合图3进一步详细说明。
图3示出了根据本公开的实施例的确定预留数目的示例方法300 的流程图。如上文所述的,需要预留一定数目的元数据存储单元(以下称为预留数目),以降低存储系统100进入写保护模式的可能性。下面描述如何根据存储系统中元数据存储单元的使用情况来动态地确定该预留数目。
在框310处,存储管理器120确定在历史时间段内被使用的元数据存储单元的第三数目。
以存储管理器120-1为例,存储管理器120-1可以在时间T处确定本地被释放的元数据存储单元的数目F1。例如,被释放的元数据存储单元可以被存放在存储设备130中与存储管理器120-1相关联的待回收存储空间中。存储管理器120-1可以在时间T处例如通过存储管理器120-1和120-2之间的通信接口获取在存储管理器120-2处被释放的元数据存储单元的数目PF1。例如,被释放的元数据存储单元可以被存放在存储设备130中与存储管理器120-2相关联的待回收存储空间中。存储管理器120-1还可以在时间T处确定持久存储设备130 中的元数据存储空间中的最后配置的逻辑区块地址为LBA1,其指示在时间T处元数据存储空间中已分配的元数据存储单元的数目。然后,存储管理器120可以在时间T+20s处确定本地被释放的元数据存储单元的数目F2,以及存储管理器120-2处被释放的元数据存储单元的数目PF2。存储管理器120还可以在时间T+20s处确定在持久存储设备130中的元数据存储空间中的最后配置的逻辑区块地址为 LBA2,其指示在时间T+20s处元数据存储空间中已分配的元数据存储单元的数目。然后,存储管理器120可以确定在20s的历史时间段内在存储系统中被使用的元数据存储单元的第三数目M=(LBA2- LBA2)+(F1-F2)+(PF2-PF1)。上述20s的历史时间段仅仅是示例性的,还可以根据存储系统的需要配置其他的时间间隔来确定被使用的元数据存储单元。
备选地,在一些实施例中,如果存储管理器120确定上述第三数目M为负,即表示在该历史时间段内没有元数据存储单元被消耗,并且一些元数据存储单元被释放。则存储管理器120可以不再调整之前设置的元数据存储单元的预留数目。
在框320处,存储管理器120确定在该历史时间段内被冲刷到存储系统的持久存储设备130中的用户数据存储单元的第四数目。例如,可以根据用户数据被存储的数据结构来确定被冲刷到持久存储设备 130中的用户数据存储单元的数目。
在一些实施例中,存储系统100中的用户数据可以按照数据环的方式被存储,即可以按照被添加至数据环的时间顺序来存储。具体地,数据环可以包括两个端部(例如,头部和尾部)。当由存储管理器120 处理的写请求在存储系统中100中产生脏数据时,产生的数据可以被添加至两个端部中的第一端部(例如,头部)。可以在每次产生脏数据时,数据环的头部将会向前移动一个单位。
在一些实施例中,可以按照脏数据被添加至数据环中的顺序,来从数据环的第二端部(例如,尾部)冲刷数据。具体地,可以每次将位于尾部的脏数据冲刷至存储系统100的持久存储设备130中。此时,数据环的尾部将会向前移动一个单位,并且已经被冲刷的脏数据不再被包括在数据环中。
在一些实施例中,存储管理器120可以在时间T处确定用户数据环的尾部索引为T1,并且在时间T+20s处确定用户数据环的尾部索引为T2。以此方式,存储管理器120可以确定在20s的历史时间段内被冲刷到存储系统100的持久存储设备130中的用户数据存储单元的第四数目为U=(T2-T1)。
上述计算用户数据的实施例仅仅是示例性的,还可以根据不同的数据存数方式应用合适的方法来确定用户数据的数目,本公开在此不做限制。
在框330处,存储管理器120基于第三数目和第四数目的比值以及待冲刷到持久存储设备的用户数据存储单元的第七数目,确定预留数目。例如,存储管理器120可以根据上述历史时间段内元数据和用户数据的比值以及待存储的用户数据来确定需要预留的元数据存储单元的数目。
继续以上述20s的历史时间段为示例进行描述。存储管理器120 在时间T+20s处确定用户数据环的尾部索引为T2并且头部索引为H,则存储管理器120可以确定待冲刷到持久存储设备的用户数据存储单元的第七数目为(H-T2)。接着存储管理器120根据上述确定的M和U确定第三数目和第四数目的比值C=M/U。最后存储管理器120 确定预留数目为R=C*(H–T2)。
在一些实施例中,存储管理器120可以预先设置上述比值C,例如将其分类为1、1/2、1/4、1/8…等。当所存储管理器120确定上述 C例如为0.35时,因为0.35在1/2、1/4之间,存储管理器120可以确定该比例为1/2或者1/4。例如,出于不同的存储系统配置和不同的场景,为了元数据空间的高效利用,可以预留更少的元数据空间,例如确定C为1/4。或者,出于在最大程度上防止系统进入写保护模式的情况中,可以确定C为1/2以预留更多的元数据空间。通过使用预设的比例,可以将精确计算出的比例根据场景而选择比其更激进或者更保守的比例,从而满足不同数据存储场景的需要。
备选地,在一些实施例中,存储管理器120将上述计算的R与例如预定数目(1GB)进行比较,当确定R大于预定数目则选择R作为元数据存储单元的预留数目,否则确定预定数目(1GB)作为元数据存储单元的预留数目。
附加地或者备选地,存储管理器120可以根据存储系统100中元数据存储单元的使用情况,周期性地确定和更新该预留数目。例如每隔一天确定和更新一次预留数目。该周期的频率仅仅是示例性的,其不旨在限制本公开的范围。
通过根据历史元数据的信息动态地确定需要预留的元数据存储单元的数目,可以在保持对元数据存储空间的高效利用的同时,最大程度地防止存储系统用尽所有元数据存储单元而进入写保护模式。上述方案提高了存储系统的稳定性和性能,从而提高了用户体验。
在一些实施例中,存储管理器120可以将在框210处确定的L与通过方法400确定的R进行比较。在一些情况中,如果确定L≥R,则存储管理器120可以所请求的分配并且可以向客户端110返回分配成功的响应。下面讨论L<R的情况。
在一些实施例中,存储管理器120确定上述第一数目小于上述确定的预留数目,则存储管理器120可以扩展元数据存储空间单元。在一些实施例中,如果扩展成功,则存储管理器120可以从经扩展的元数据存储空间中分配目标数目个元数据存储单元,以供客户端110使用。例如,如果扩展成功,则存储管理器120可以继续执行所请求的分配并且向客户端110返回分配成功的响应。实施例中的RAID存储系统仅仅是示例性的。将会理解,可以利用任何已知或将来开发的手段来扩展元数据存储空间,本公开在此不做限制。
备选地,在一些实施例中,如果扩展失败,存储管理器120可以确定存储系统100中被释放的元数据存储单元的第二数目并且如果存储管理器120确定第一数目和第二数目之和小于与预留数目相关联的第一预定阈值,使存储系统100进入写保护模式,其中在写保护模式下存储系统100不响应写请求。
以存储管理器120-1为例,如果扩展失败(例如,不存在可用于扩展元数据存储空间的存储空间),存储管理器120-1可以确定被释放的元数据存储单元的第二数目F。例如,第二数目F可以仅是本地被释放的元数据存储单元的数目,或者可以是本地及对端存储管理器 120-2被释放的元数据存储单元的数目之和。然后,存储管理器120 判断上述在框210处确定的第一数目L和第二数目F之和F+L是否大于与预留数目相关联的第一预定阈值。在一些实施例中,第一预定阈值可以是比R大的值,例如1.5*R、1.3*R、1.1*R等。在一些情况中,例如如果存储管理器120确定F+L≥1.5*R,则执行元数据存储单元的分配并且向客户端110返回分配成功的响应。在一些其他情况中,如果存储管理器120确定F+L<1.5*R,则存储管理器120使存储系统100进入写保护模式,其中存储系统100仅允许读操作和其他一些有限的操作。以下将结合图3对如何退出写保护模式进行详细描述。
图4示出了根据本公开的实施例的退出写保护模式的方法400的流程图。例如,方法400可以响应于存储系统100进入写保护模式而被执行。
在框410处,存储管理器120确定元数据存储空间中剩余的可用元数据存储单元的第五数目。例如,存储管理器120确定元数据存储空间的容量为T,即其中总共的元数据存储单元的数目为T。存储管理器120查询最后一次配置的LBA为X,其指示元数据存储空间中已分配的元数据存储单元的数目。在此情况下,存储管理器120可以确定存储空间中剩余的可用的元数据存储单元的第五数目为T-X。
在框420处,存储管理器120确定存储系统中被释放的元数据存储单元的第六数目。以存储管理器120-1为例,第六数目可以是本地被释放的元数据存储单元的数目F和/或对端存储管理器120-2被释放的元数据存储单元的数目PF。
在框430处,存储管理器120如果确定第五数目和第六数目之和超过与预留数目相关联的第二预定阈值,使存储系统100退出写保护模式,其中第二预定阈值超过第一预定阈值。
以存储管理器120-1为例,存储管理器120-1可以确定第五数目与第六数目的和LL=T–X+F或者PL=T–X+PF是否大于与预留数目相关联的第二预定阈值。在这里,与预留数目相关联的第二预定阈值为大于上述第一预定阈值的值,例如预留数目为R,第一预定阈值为1.5R,第二预定值为2R。只要满足第二预定值>第一预定值大于R的关系即可,本公开对其具体取值不做限定。在一些实施例中,存储管理器120-1如果确定LL>2R并且PL>2R均被满足,则使存储系统100退出写保护模式。
备选地,在一些实施例中,存储管理器120-1如果确定上述条件不被满足,其可以触发与存储管理器120-1相关联的待回收存储空间和与存储管理器120-2相关联的待回收存储空间之间的重新平衡,从而促进上述条件的满足。然后,存储管理器120-1可以等待一段时间之后进行新一轮的检验以确定是否满足退出写保护模式的条件。
通过将退出写保护模式的条件与上述动态地确定的预留数目相关联,可以确保在退出写保护模式时存储系统中剩余可分配的元数据存储单元是足够多的,由此提高了存储系统的可用性。
图5示出了可以用来实施本公开内容的实施例的示例设备500的示意性框图。例如,如图1所示的存储管理器120(例如,存储管理器120-1和/或120-2)可以由设备500来实施。如图所示,设备500 包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储空间508加载到随机访问存储器 (RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可以存储设备500操作所需的各种程序和数据。 CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口550,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储空间508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/ 数据。
上文所描述的各个过程和处理,例如方法200、300和400,可由处理单元501执行。例如,在一些实施例中,方法200、300和400 可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储空间508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到RAM503并由CPU 501执行时,可以执行上文描述的方法200、300和400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (15)

1.一种管理元数据存储单元的方法,包括:
响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行所述分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目;以及
如果所述第一数目不小于预留数目,从所述元数据存储空间中分配所述目标数目个元数据存储单元,以供所述客户端使用,
其中所述预留数目与所述存储系统中元数据存储单元的使用情况相关联。
2.根据权利要求1所述的方法,还包括:
如果所述第一数目小于所述预留数目,扩展所述元数据存储空间;以及
如果所述扩展成功,从经扩展的所述元数据存储空间中分配所述目标数目个元数据存储单元,以供所述客户端使用。
3.根据权利要求2所述的方法,还包括:
如果所述扩展失败,确定所述存储系统中被释放的元数据存储单元的第二数目;以及
如果所述第一数目和所述第二数目之和小于与所述预留数目相关联的第一预定阈值,使所述存储系统进入写保护模式,其中在所述写保护模式下所述存储系统不响应写请求。
4.根据权利要求3所述的方法,还包括:
响应于所述存储系统进入所述写保护模式,
确定所述元数据存储空间中剩余的可用元数据存储单元的第五数目;
确定所述存储系统中被释放的元数据存储单元的第六数目;以及
如果所述第五数目和所述第六数目之和超过与所述预留数目相关联的第二预定阈值,使所述存储系统退出所述写保护模式,其中所述第二预定阈值超过所述第一预定阈值。
5.根据权利要求1所述的方法,还包括:
基于所述存储系统中元数据存储单元的所述使用情况,确定所述预留数目。
6.根据权利要求5所述的方法,其中确定所述预留数目包括:
确定在历史时间段内被使用的元数据存储单元的第三数目;
确定在所述历史时间段内被冲刷到所述存储系统的持久存储设备中的用户数据存储单元的第四数目;以及
基于所述第三数目和所述第四数目的比值以及待冲刷到所述持久存储设备的用户数据存储单元的第七数目,确定所述预留数目。
7.根据权利要求5所述的方法,其中确定所述预留数目包括:
周期性地确定所述预留数目。
8.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于从客户端接收到分配目标数目个元数据存储单元的请求,确定在执行所述分配后存储系统的元数据存储空间中剩余的可用元数据存储单元的第一数目;以及
如果所述第一数目不小于预留数目,从所述元数据存储空间中分配所述目标数目个元数据存储单元,以供所述客户端使用,
其中所述预留数目与所述存储系统中元数据存储单元的使用情况相关联。
9.根据权利要求8所述的电子设备,其中所述动作还包括:
如果所述第一数目小于所述预留数目,扩展所述元数据存储空间;以及
如果所述扩展成功,从经扩展的所述元数据存储空间中分配所述目标数目个元数据存储单元,以供所述客户端使用。
10.根据权利要求9所述的电子设备,其中所述动作还包括:
如果所述扩展失败,确定所述存储系统中被释放的元数据存储单元的第二数目;以及
如果所述第一数目和所述第二数目之和小于与所述预留数目相关联的第一预定阈值,使所述存储系统进入写保护模式,其中在所述写保护模式下所述存储系统不响应写请求。
11.根据权利要求10所述的电子设备,其中所述动作还包括:
响应于所述存储系统进入所述写保护模式,
确定所述云数据存储空间中剩余的可用元数据存储单元的第五数目;
确定所述存储系统中被释放的元数据存储单元的第六数目;以及
如果所述第五数目和所述第六数目之和超过与所述预留数目相关联的第二预定阈值,使所述存储系统退出所述写保护模式,其中所述第二预定阈值超过所述第一预定阈值。
12.根据权利要求8所述的电子设备,其中所述动作还包括:
基于所述存储系统中元数据存储单元的所述使用情况,确定所述预留数目。
13.根据权利要求12所述的电子设备,其中确定所述预留数目包括:
确定在历史时间段内被使用的元数据存储单元的第三数目;
确定在所述历史时间段内被冲刷到所述存储系统的持久存储设备中的用户数据存储单元的第四数目;以及
基于所述第三数目和所述第四数目的比值以及待冲刷到所述持久存储设备的用户数据存储单元的第七数目,确定所述预留数目。
14.根据权利要求12所述的电子设备,其中确定所述预留数目包括:
周期性地确定所述预留数目。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法的步骤。
CN202110090582.7A 2021-01-22 2021-01-22 管理元数据存储单元的方法、电子设备和计算机程序产品 Pending CN114780014A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110090582.7A CN114780014A (zh) 2021-01-22 2021-01-22 管理元数据存储单元的方法、电子设备和计算机程序产品
US17/464,128 US11941265B2 (en) 2021-01-22 2021-09-01 Method, electronic equipment and computer program product for managing metadata storage unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110090582.7A CN114780014A (zh) 2021-01-22 2021-01-22 管理元数据存储单元的方法、电子设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN114780014A true CN114780014A (zh) 2022-07-22

Family

ID=82407694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110090582.7A Pending CN114780014A (zh) 2021-01-22 2021-01-22 管理元数据存储单元的方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11941265B2 (zh)
CN (1) CN114780014A (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US8281181B2 (en) * 2009-09-30 2012-10-02 Cleversafe, Inc. Method and apparatus for selectively active dispersed storage memory device utilization
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10019352B2 (en) * 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US11513702B2 (en) 2019-10-17 2022-11-29 EMC IP Holding Company LLC Placement of metadata on data storage drives in a first storage enclosure of a data storage system
CN112764662B (zh) 2019-10-21 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品

Also Published As

Publication number Publication date
US11941265B2 (en) 2024-03-26
US20220236898A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
CN110059037B (zh) 用于管理输入/输出的方法、设备和计算机程序产品
US9665493B2 (en) Increased cache performance with multi-level queues of complete tracks
CN109213696B (zh) 用于缓存管理的方法和设备
US11068413B2 (en) Allocation of cache storage among applications based on application priority and minimum retention time for tracks in least recently used demoting schemes
US11150949B2 (en) Resource release method, resource allocation method, devices, and computer program products
CN111949605A (zh) 用于实现文件系统的方法、设备和计算机程序产品
US11263080B2 (en) Method, apparatus and computer program product for managing cache
US10795579B2 (en) Methods, apparatuses, system and computer program products for reclaiming storage units
CN114327946A (zh) 共享内存访问控制方法、装置、电子设备及自动驾驶车辆
CN111066005B (zh) 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
CN111857557B (zh) Raid类型转换的方法、设备和计算机程序产品
US11403026B2 (en) Method, device and computer program product for managing storage system
CN113590019A (zh) 用于存储管理的方法、电子设备和计算机程序产品
US11341055B2 (en) Method, electronic device, and computer program product for storage management
US11169933B2 (en) Integration of application indicated maximum time to cache for a two-tiered cache management mechanism
CN111124253B (zh) 管理存储设备的方法、装置和计算机程序产品
US11176057B2 (en) Integration of application indicated minimum time to cache for a two-tiered cache management mechanism
US11287993B2 (en) Method, device, and computer program product for storage management
US10705742B2 (en) Managing input/output (I/O) concurrency numbers to control storage system responses
CN112748858A (zh) 用于管理盘阵列的方法、电子设备和计算机程序产品
CN114780014A (zh) 管理元数据存储单元的方法、电子设备和计算机程序产品
US11210237B2 (en) Integration of application indicated minimum and maximum time to cache for a two-tiered cache management mechanism
CN111857547B (zh) 用于管理数据存储的方法、设备和计算机可读介质
CN114816218A (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