CN111722802B - 一种元数据lsa卷的存储空间分配方法、装置及设备 - Google Patents

一种元数据lsa卷的存储空间分配方法、装置及设备 Download PDF

Info

Publication number
CN111722802B
CN111722802B CN202010537308.5A CN202010537308A CN111722802B CN 111722802 B CN111722802 B CN 111722802B CN 202010537308 A CN202010537308 A CN 202010537308A CN 111722802 B CN111722802 B CN 111722802B
Authority
CN
China
Prior art keywords
block
linked list
candidate
grains
grain
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
CN202010537308.5A
Other languages
English (en)
Other versions
CN111722802A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010537308.5A priority Critical patent/CN111722802B/zh
Publication of CN111722802A publication Critical patent/CN111722802A/zh
Application granted granted Critical
Publication of CN111722802B publication Critical patent/CN111722802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0608Saving storage space on 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
    • G06F3/064Management of blocks
    • 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

本申请公开了一种元数据LSA卷的存储空间分配方法,应用于主节点,该主节点设置有候选block链表和候选grain链表。该方法能够将传统的空间单位block进一步划分为更小的空间单位grain,实现对更小粒度的存储空间的分配管理;此外,该方法能够通过扫描位图预先搜索得到可用的block和grain,实现预分配存储空间,提升存储空间分配效率。此外,本申请还提供了一种元数据LSA卷的存储空间分配装置、设备、系统及可读存储介质,其技术效果与上述方法的技术效果相对应。

Description

一种元数据LSA卷的存储空间分配方法、装置及设备
技术领域
本申请涉及计算机技术领域,特别涉及一种元数据LSA卷的存储空间分配方法、装置、设备、系统及可读存储介质。
背景技术
随着SSD盘的广泛使用,为了使存储系统跟SSD发挥更好的存储性能,相关研究机构、存储厂商均致力于研究如何适配SSD,提出适配方案。然而,对于空间分配的实现和管理方式,目前的适配方案大都基于传统的存储空间单元,根据位图中存储空间单元的状态对其进行分配管理。这种存储空间管理分配方案效率低下,已经无法满足当前需求。
可见,如何提供一种存储空间分配方案,提升空间管理效率,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种元数据LSA卷的存储空间分配方法、装置、设备、系统及可读存储介质,用以解决当前的存储空间分配方案效率低下的问题。其具体方案如下:
第一方面,本申请提供了一种元数据LSA卷的存储空间分配方法,应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,所述方法包括:
在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
优选的,还包括:
接收从节点发送的空间申请请求,其中所述从节点设置有第二候选grain链表,所述空间申请请求为从节点在第二候选grain链表中grain的数量小于第三预设阈值时发出的;
根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点,以便于所述从节点从所述目标block中搜索可用的grain,将搜索得到的grain添加至所述第二候选grain链表,并更新对应的局部位图。
优选的,所述可用的block为在全局位图中标识符为第一标识符且内部存在连续的预设数量的未分配的grain的block,其中所述第一标识符用于表示存储空间的使用状态为未分配。
优选的,所述通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图,包括:
扫描全局位图,判断当前扫描的block的标识符是否为第一标识符;
若是,获取所述block对应的局部位图;若不是,则扫描下一block的标识符;
根据所述局部位图,判断所述block中是否存在连续的预设数量的未分配的grain;
若存在,则判定所述block为可用的block,将所述block作为搜索得到的block添加至所述候选block链表,并将全局位图中所述block的标识符更新为第二标识符,其中所述第二标识符用于表示存储空间的使用状态为已分配;若不存在,判定所述block为不可用的block,并扫描下一block的标识符。
优选的,所述根据所述局部位图,判断所述block中是否存在连续的预设数量的未分配的grain,包括:
一次性判断所述局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符,其中M为0或N的正整数倍,N为预设数量;
若是,则判定所述block中存在连续的预设数量的未分配的grain;
否则,重复判断过程直至未扫描的标识符的数量小于所述预设数量,判定所述block中不存在连续的预设数量的未分配的grain。
优选的,所述通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,包括:
一次性判断所述目标block的局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符;
若是,则将第M个grain到第M+N-1个grain作为搜索得到的grain一次性添加至所述第一候选grain链表,并进入下一判断过程,直至未扫描的标识符的数量小于所述预设数量。
优选的,所述更新所述局部位图,包括:
将所述局部位图的第M个标识符到第M+N-1个标识符一次性更新为第二标识符。
优选的,所述主节点设置有两个以上的数量区间,所述预设数量为与目标数量区间对应的数量,所述目标数量区间为block中全部未分配的grain的数量落入的数量区间。
第二方面,本申请提供了一种元数据LSA卷的存储空间分配装置,应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,所述装置包括:
block搜索模块:用于在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
第一grain提取模块:用于在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
第三方面,本申请提供了一种元数据LSA卷的存储空间分配设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的元数据LSA卷的存储空间分配方法的步骤。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的元数据LSA卷的存储空间分配方法的步骤。
第五方面,本申请提供了一种元数据LSA卷的存储空间分配系统,包括主节点;
所述主节点设置有候选block链表,在所述候选block链表中block的数量小于第一预设阈值时,所述主节点用于通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
所述主节点还设置有第一候选grain链表,在所述第一候选grain链表中grain的数量小于第二预设阈值时,所述主节点用于从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
优选的,还包括从节点;
所述从节点设置有第二候选grain链表,在所述第二候选grain链表中grain的数量小于第三预设阈值时,所述从节点用于向所述主节点发送空间申请请求;
所述主节点用于根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点;
所述从节点用于根据所述标识信息获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第二候选grain链表,并更新所述局部位图。
本申请所提供的一种元数据LSA卷的存储空间分配方法,应用于主节点,该主节点设置有候选block链表和第一候选grain链表,该方法包括:在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至候选block链表,并更新全局位图;在第一候选grain链表中grain的数量小于第二预设阈值时,从候选block链表选取目标block;获取目标block对应的局部位图,通过扫描局部位图搜索目标block中可用的grain,将搜索得到的grain添加至第一候选grain链表,并更新局部位图;其中,grain为IO操作的基本空间单位。
可见,一方面,该方法将传统的空间单位block进一步划分为更小的空间单位grain,实现对更小粒度的存储空间的分配管理;另一方面,该方法设置了候选block链表和候选grain链表,能够通过扫描位图预先搜索得到可用的block和grain,实现预分配存储空间,提升存储空间分配效率。
此外,本申请还提供了一种元数据LSA卷的存储空间分配装置、设备、系统及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种元数据LSA卷的存储空间分配方法实施例一的实现流程图;
图2为本申请所提供的元数据LSA卷空间布局示意图;
图3为本申请所提供的元数据LSA卷block数据组织方式示意图;
图4为本申请所提供的一种元数据LSA卷的存储空间分配方法实施例二的实现流程图;
图5为本申请所提供的一种元数据LSA卷的存储空间分配方法实施例三中可用block的搜索过程流程图;
图6为本申请所提供的一种元数据LSA卷的存储空间分配方法实施例三中S503的细化流程图;
图7为本申请所提供的一种元数据LSA卷的存储空间分配方法实施例三中可用grain提取过程流程图;
图8为本申请所提供的一种元数据LSA卷的存储空间分配装置实施例的功能框图。
具体实施方式
本申请的核心是提供一种元数据LSA卷的存储空间分配方法、装置、设备、系统及可读存储介质,能够将传统的空间单位block进一步划分为更小的空间单位grain,实现对更小粒度的存储空间的分配管理;还能够通过扫描位图预先搜索得到可用的block和grain,实现预分配存储空间,提升存储空间分配效率。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请提供的一种元数据LSA卷的存储空间分配方法实施例一进行介绍,参见图1,实施例一应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,所述方法包括:
S101、在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
S102、在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;其中,grain为IO操作的基本空间单位。
LSA(log Structure Architecture,日志结构的架构)为全闪存储系统的虚拟模块,常规情况下,LSA卷的基本空间管理单位为block,block是垃圾回收的基本空间单位,每个block的大小为128MB。
元数据LSA卷空间布局如图2所示,元数据LSA卷空间预留1GB空间用于存放元数据根节点,预留16GB空间用于在透传写模式下存放bitmap数据,其余空间为元数据写IO空间。因此,元数据LSA卷创建后大小原则上不应少于17GB。
本实施例中,元数据LSA卷block数据组织方式如图3所示,元数据LSA卷用于存放管理数据的元数据,它的空间管理的基本单位也是block,block大小为128MB,特别的是,元数据卷的block不用于垃圾回收。对于元数据LSA卷在元数据存盘区的block,会进一步划分为262144个512byte大小的grain,如图3所示。也就是说,grain是一种比Block小的数据粒度,是记录数据的空间单元,仅用于元数据卷。
元数据LSA卷在进行地址分配时,设置两种类型的链表。一种为候选block链表,用于存储可用的block;另一种为第一候选grain链表(此处称为第一候选grain链表是为了与下文的第二候选grain链表做区分),用于存储可用的grain。
每当候选block链表中block的数量小于第一预设阈值时,主节点会通过扫描全局位图搜索可用的block,将搜索得到的block添加至候选block链表,并更新全局位图。具体的,全局位图中记录有各个block的分配状态,作为一种具体的实施方式,每个block对应1bit,其中0位表示未分配,1位表示已分配。通过扫描全局位图,确定未分配的block,将其作为搜索得到的block添加至候选block链表,并将全局位图中该block的状态更改为已分配。扫描过程中保存游标,每次从游标位置开始扫描,扫描结束后保存新的游标。
作为一种优选的实施方式,在通过扫描全局位图确定未分配的block之后,不直接将其添加至候选block链表,而是对其作进一步筛选:判断该block内部是否存在连续的预设数量的未分配的grain,若存在,则将其作为搜索得到的block添加至候选block链表,否则继续扫描下一block。通过这种方式,能够评估未分配block中未分配grain的连续性,将评估结果较好的未分配block选取出来,进一步提升空间分配效率。
每当第一候选grain链表中grain的数量小于第二预设阈值时,主节点会从候选block链表选取一个或多个block作为目标block;获取目标block对应的局部位图,通过扫描局部位图搜索目标block中可用的grain,将搜索得到的grain添加至第一候选grain链表,并更新局部位图。具体的,局部位图中记录有一个block中各个grain的分配状态,作为一种具体的实施方式,每个grain对应1bit,其中0位表示未分配,1位表示已分配。通过扫描局部位图,确定未分配的grain,将其作为搜索得到的grain添加至第一候选grain链表,并将局部位图中该grain的状态更改为已分配。同样的,扫描过程中保存游标,每次从游标位置开始扫描,扫描结束后保存新的游标。
以上对未分配block的分配管理过程进行了说明,当对其进行分配时,需要将其状态从未分配修改为已分配。实际应用中,在垃圾回收时,可以将block的状态从已分配修改为未分配。例如,等到block被分配并且其中的grain均使用完后,主节点在全局位图中可以将该block的状态修改为未分配。
可以理解的是,当主节点更新全局位图或局部位图时,需要将更新结果同步至从节点。因此,在主节点发生故障时,可以利用从节点重建上述候选block链表和第一候选grain链表。
本实施例所提供一种元数据LSA卷的存储空间分配方法,应用于主节点,该主节点设置有候选block链表和第一候选grain链表。该方法将传统的空间单位block进一步划分为更小的空间单位grain,实现对更小粒度的存储空间的分配管理;此外,该方法设置了候选block链表和候选grain链表,能够通过扫描位图预先搜索得到可用的block和grain,实现预分配存储空间,提升存储空间分配效率。
下面开始详细介绍本申请提供的一种元数据LSA卷的存储空间分配方法实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。
具体的,实施例二中,从节点上设置有第二候选grain链表,前述第一候选grain链表由主节点内部完成对其维护管理,对于第二候选grain链表,则需要主节点和从节点相互配合完成对其的维护过程,其过程如图4所示,包括:
S401、从节点用于在所述第二候选grain链表中grain的数量小于第三预设阈值时,向主节点发送空间申请请求;
S402、主节点用于根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点;
上述目标block的标识信息具体可以为目标block的编码。
S403、从节点用于根据所述标识信息获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索到的grain加入所述第二候选grain链表,并更新所述局部位图。
下面开始详细介绍本申请提供的一种元数据LSA卷的存储空间分配方法实施例三,实施例三基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。
具体的,实施例三中,将可用的block定义为:在全局位图中标识符为第一标识符且内部存在连续的预设数量的未分配的grain的block,其中第一标识符用于表示存储空间的使用状态为未分配。
因此,本实施例对可用block的搜索过程如图5所示,包括:
S501、扫描全局位图,判断当前扫描的block的标识符是否为第一标识符;若是,进入S502,若不是,则扫描下一block的标识符;
S502、获取所述block对应的局部位图;
S503、根据所述局部位图,判断所述block中是否存在连续的预设数量的未分配的grain;若存在,进入S504,若不存在,判定所述block为不可用的block,并扫描下一block的标识符;
S504、判定所述block为可用的block,将所述block作为搜索得到的block添加至所述候选block链表,并将全局位图中所述block的标识符更新为第二标识符,其中所述第二标识符用于表示存储空间的使用状态为已分配。
为了提升可用的block的搜索效率,在搜索可用block的时候,可以一次性判断连续的多个grain是否为未分配的grain,减少判断次数。因此,如图6所示,上述S503进一步包括:
S601、一次性判断所述局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符,其中M为0或N的正整数倍,N为预设数量;若是,进入S602,否则进入S603;
具体的,N为常数,是指预先设置好的预设数量。M为变量,在执行S601之前先对M进行赋值,后续过程中,M以N递增。
S602、判定所述block中存在连续的预设数量的未分配的grain;
S603、判断未扫描的标识符的数量是否小于所述预设数量,若是,进入S604,否则,令M=M+N,进入S601;
S604、判定所述block中不存在连续的预设数量的未分配的grain。
相应的,为了提升从block中提取可用grain的效率,可用一次性提取连续的多个未分配grain,重复该提取过程直至结束。如图7所示,可用grain提取过程具体包括:
S701、一次性判断所述目标block的局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符;若是,进入S702;
S702、将第M个grain到第M+N-1个grain作为搜索得到的grain一次性添加至所述第一候选grain链表;
S703、判断未扫描的标识符的数量是否小于所述预设数量,若是,则提取过程结束,停止扫描,否则进入S701。
具体的,一个block中包含262144个grain,申请block的节点在收到主节点分配的目标block后,需要从目标block中提取可用的grain,也就是局部位图中对应bit为0的grain。在提取grain时,可以尽量保证取出来的grain需要在4KB粒度上连续且对齐,由于每个grain大小为512Byte,因此4KB对齐的空间相当于连续且对齐的8个grain,对应到bitmap正好需要1Byte来表示。相对应的连续且对齐的8个可用grain在bitmap中的表现为bitmap中1个字节的值为0。
相应的,为了提升局部位图的更新效率,可用一次性同步多个连续grain的状态,具体过程为:将所述局部位图的第M个标识符到第M+N-1个标识符一次性更新为第二标识符。
综上,正常情况下,从block中选取grain时,由于每个block对应一个32KB的局部位图,因此扫描局部位图来确定哪些grain为未分配grain,而后从block中取出grain,并更新局部位图。假设预设数量为8,那么从目标block中提取可用grain并更新局部位图的过程具体如下:将32KB的局部位图按字节划分为32768个字节;逐字节查看字节的值,如果字节值为0,表明该字节对应的8个grain的状态均为未分配,先将局部位图中对应的bit位置为1,然后再提取出grain;如果字节值部位0,则继续看下一个字节。
可以理解的是,由于需要扫描32768个字节,为提高效率,可以采用多线程分段并发扫描的方式,即将局部位图分为多个部分,每个线程分别扫描其中一部分,从而提高查找效率。
以上针对只设置一个预设数量的情况进行了说明,作为一种优选的实施方式,可以采用多水位策略,即设置两个以上的预设数量,并设置与预设数量一一对应的数量区间,其中数量区间表示block中全部未分配的grain的数量的范围区间。在实际应用中,首先确定block中全部未分配的grain的数量落入的目标数量区间,然后确定与目标数量区间对应的目标预设数量。也就是说,分以下两种情况考虑:
情况1、当block中未分配grain较多时,优先保证未分配grain的连续性。此时在评估block是否可以作为可用block时,采用一个较高的门槛值,即只有在block中未分配grain的分布和数量足够多时,才将其作为可用block。相应的,在从block中提取grain时,提高一次性提取的未分配grain的数量,即只提取block中较多的连续未分配的grain,例如只提取block中连续8个未分配的grain。
情况2、当block中未分配grain不足时,此时需优先保证的是能及时提供足够多的未分配grain,避免出现上层下发的IO无地址分配的状况。因此,此时需要降低block可以作为可用block的门槛值。相应的,在从block中提取grain时,可放宽选择标准,减少一次性提取的未分配grain的数量,即只提取block中较少的连续未分配的grain,例如只提取block中连续6个或7个未分配的grain。
具体的,预设数量的设定可以分为2级、3级或更多级,根据当block中未分配grain的数量来选择对应的预设数量,从而保证在grain的连续性和grain的数量之间达到较好的平衡。
可见,本实施例提供的一种元数据LSA卷的存储空间分配方法,是在存储领域中适配SSD的一种空间分配的实现方式,实现了小粒度空间分配,采用block申请、grain提取方式来查找和分配小粒度的空间,使用Block申请来提前预分配空间,以加快空间申请效率。使用多水位选取策略来优化空间分配方式,提升场景适应性。使用该空间分配方法,能够更好地完成对大量小粒度空间的管理,简单便捷的实现了空间分配,能好的适应SSD盘的特性、有效提高适配SSD盘的存储系统的空间管理效率。
下面对本申请实施例提供的一种元数据LSA卷的存储空间分配装置进行介绍,下文描述的一种元数据LSA卷的存储空间分配装置与上文描述的一种元数据LSA卷的存储空间分配方法可相互对应参照。
本实施例的元数据LSA卷的存储空间分配装置,应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,如图8所示,所述装置包括:
block搜索模块801:用于在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
第一grain提取模块802:用于在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;其中,grain为IO操作的基本空间单位。
本实施例的元数据LSA卷的存储空间分配装置用于实现前述的元数据LSA卷的存储空间分配方法,因此该装置中的具体实施方式可见前文中的元数据LSA卷的存储空间分配方法的实施例部分,例如,block搜索模块801、第一grain提取模块802,分别用于实现上述元数据LSA卷的存储空间分配方法中步骤S101,S102。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的元数据LSA卷的存储空间分配装置用于实现前述的元数据LSA卷的存储空间分配方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种元数据LSA卷的存储空间分配设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上文所述的元数据LSA卷的存储空间分配方法的步骤。
本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的元数据LSA卷的存储空间分配方法的步骤。
最后,本申请还提供了一种元数据LSA卷的存储空间分配系统,包括主节点;
所述主节点设置有候选block链表,在所述候选block链表中block的数量小于第一预设阈值时,所述主节点用于通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
所述主节点还设置有第一候选grain链表,在所述第一候选grain链表中grain的数量小于第二预设阈值时,所述主节点用于从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
在一些具体的实施例中,还包括从节点;
所述从节点设置有第二候选grain链表,在所述第二候选grain链表中grain的数量小于第三预设阈值时,所述从节点用于向所述主节点发送空间申请请求;
所述主节点用于根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点;
所述从节点用于根据所述标识信息获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第二候选grain链表,并更新所述局部位图。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种元数据LSA卷的存储空间分配方法,其特征在于,应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,所述方法包括:
在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
2.如权利要求1所述的方法,其特征在于,还包括:
接收从节点发送的空间申请请求,其中所述从节点设置有第二候选grain链表,所述空间申请请求为从节点在第二候选grain链表中grain的数量小于第三预设阈值时发出的;
根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点,以便于所述从节点从所述目标block中搜索可用的grain,将搜索得到的grain添加至所述第二候选grain链表,并更新对应的局部位图。
3.如权利要求1所述的方法,其特征在于,所述可用的block为在全局位图中标识符为第一标识符且内部存在连续的预设数量的未分配的grain的block,其中所述第一标识符用于表示存储空间的使用状态为未分配。
4.如权利要求3所述的方法,其特征在于,所述通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图,包括:
扫描全局位图,判断当前扫描的block的标识符是否为第一标识符;
若是,获取所述block对应的局部位图;若不是,则扫描下一block的标识符;
根据所述局部位图,判断所述block中是否存在连续的预设数量的未分配的grain;
若存在,则判定所述block为可用的block,将所述block作为搜索得到的block添加至所述候选block链表,并将全局位图中所述block的标识符更新为第二标识符,其中所述第二标识符用于表示存储空间的使用状态为已分配;若不存在,判定所述block为不可用的block,并扫描下一block的标识符。
5.如权利要求4所述的方法,其特征在于,所述根据所述局部位图,判断所述block中是否存在连续的预设数量的未分配的grain,包括:
一次性判断所述局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符,其中M为0或N的正整数倍,N为预设数量;
若是,则判定所述block中存在连续的预设数量的未分配的grain;
否则,重复判断过程直至未扫描的标识符的数量小于所述预设数量,判定所述block中不存在连续的预设数量的未分配的grain。
6.如权利要求5所述的方法,其特征在于,所述通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,包括:
一次性判断所述目标block的局部位图的第M个标识符到第M+N-1个标识符是否全部为第一标识符;
若是,则将第M个grain到第M+N-1个grain作为搜索得到的grain一次性添加至所述第一候选grain链表,并进入下一判断过程,直至未扫描的标识符的数量小于所述预设数量。
7.如权利要求6所述的方法,其特征在于,所述更新所述局部位图,包括:
将所述局部位图的第M个标识符到第M+N-1个标识符一次性更新为第二标识符。
8.如权利要求3-7任意一项所述的方法,其特征在于,所述主节点设置有两个以上的数量区间,所述预设数量为与目标数量区间对应的数量,所述目标数量区间为block中全部未分配的grain的数量落入的数量区间。
9.一种元数据LSA卷的存储空间分配装置,其特征在于,应用于主节点,所述主节点设置有候选block链表和第一候选grain链表,所述装置包括:
block搜索模块:用于在候选block链表中block的数量小于第一预设阈值时,通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
第一grain提取模块:用于在第一候选grain链表中grain的数量小于第二预设阈值时,从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
10.一种元数据LSA卷的存储空间分配设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1-8任意一项所述的元数据LSA卷的存储空间分配方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-8任意一项所述的元数据LSA卷的存储空间分配方法的步骤。
12.一种元数据LSA卷的存储空间分配系统,其特征在于,包括主节点;
所述主节点设置有候选block链表,在所述候选block链表中block的数量小于第一预设阈值时,所述主节点用于通过扫描全局位图搜索可用的block,将搜索得到的block添加至所述候选block链表,并更新所述全局位图;
所述主节点还设置有第一候选grain链表,在所述第一候选grain链表中grain的数量小于第二预设阈值时,所述主节点用于从所述候选block链表选取目标block;获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第一候选grain链表,并更新所述局部位图;
其中,grain为IO操作的基本空间单位。
13.如权利要求12所述的系统,其特征在于,还包括从节点;
所述从节点设置有第二候选grain链表,在所述第二候选grain链表中grain的数量小于第三预设阈值时,所述从节点用于向所述主节点发送空间申请请求;
所述主节点用于根据所述空间申请请求,从所述候选block链表中选取目标block,并将所述目标block的标识信息发送至所述从节点;
所述从节点用于根据所述标识信息获取所述目标block对应的局部位图,通过扫描所述局部位图搜索所述目标block中可用的grain,将搜索得到的grain添加至所述第二候选grain链表,并更新所述局部位图。
CN202010537308.5A 2020-06-12 2020-06-12 一种元数据lsa卷的存储空间分配方法、装置及设备 Active CN111722802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010537308.5A CN111722802B (zh) 2020-06-12 2020-06-12 一种元数据lsa卷的存储空间分配方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010537308.5A CN111722802B (zh) 2020-06-12 2020-06-12 一种元数据lsa卷的存储空间分配方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111722802A CN111722802A (zh) 2020-09-29
CN111722802B true CN111722802B (zh) 2022-07-22

Family

ID=72566621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010537308.5A Active CN111722802B (zh) 2020-06-12 2020-06-12 一种元数据lsa卷的存储空间分配方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111722802B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463046B (zh) * 2020-11-24 2023-01-10 苏州浪潮智能科技有限公司 一种动态调整位图空间的方法、系统、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546447A (ja) * 1991-08-08 1993-02-26 Hitachi Ltd 空き領域検索方法
US6874062B1 (en) * 2000-02-22 2005-03-29 Unisys Corporation System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute
JP2007264692A (ja) * 2006-03-27 2007-10-11 Nec Corp メモリ管理方法、装置、およびプログラム

Also Published As

Publication number Publication date
CN111722802A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN105589812B (zh) 磁盘碎片整理方法、装置及主机
EP3296996B1 (en) Method for processing data, storage apparatus, solid state disk and storage system
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US7933938B2 (en) File storage system, file storing method and file searching method therein
US20140059277A1 (en) Storage for adaptively determining a processing technique with respect to a host request based on partition data and operating method for the storage device
WO2012168960A1 (en) Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
CN107239412B (zh) 基于Thin-LUN的存储空间配置方法、数据写入方法及存储设备
KR102349999B1 (ko) 반도체 장치 및 그 동작 방법
EP3958107A1 (en) Storage system, memory management method, and management node
CN103858125B (zh) 重复数据处理方法、装置及存储控制器和存储节点
JPWO2017149592A1 (ja) ストレージ装置
US9372641B2 (en) Sliding-window multi-class striping
US20170003911A1 (en) Information processing device
CN115599544A (zh) 内存管理方法、装置、计算机设备及存储介质
CN110955488A (zh) 一种持久性内存的虚拟化方法及系统
CN111722802B (zh) 一种元数据lsa卷的存储空间分配方法、装置及设备
CN115712500A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
CN113672171A (zh) 分布式对象存储方法、装置、系统和元数据服务器
CN117215485A (zh) Zns ssd管理方法及数据写入方法、存储装置、控制器
US8996786B2 (en) Nonvolatile memory system and block management method
CN114115738B (zh) 一种基于分布式存储的磁盘空间管理方法及系统
CN115756838A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN114625318A (zh) 应用于固态硬盘的数据写入方法、装置、设备
US10552086B2 (en) Global pool of garbage collection units (GCUs) in a shared non-volatile memory device

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
GR01 Patent grant