一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种空间回收方法、装置、设备及可读存储介质与流程

2021-11-05 22:44:00 来源:中国专利 TAG:


1.本发明涉及存储技术领域,特别是涉及一种空间回收方法、装置、设备及可读存储介质。


背景技术:

2.当前很多全闪存存储系统中在进行数据的管理过程中会引入元数据,基于元数据可以实现各种高级特性比如重删、垃圾回收等,因此元数据的管理对于存储系统的整体运行来说十分重要。
3.元数据的空间分配需要通过位图来进行管理,通过位图记录元数据的空间占用状态。元数据空间位图一些是在内存中预分配的,在发生系统故障或者设备故障的时候会导致位图的丢失,单次或者有限的多次故障导致的位图丢失可能不会导致系统崩溃,但是超过阈值后由于元数据位图的丢失可能会导致系统不可用,而目前针对该种情况没有有效的处理方式。
4.综上所述,如何实现元数据位图的有效管理,保障系统的稳定性,是目前本领域技术人员急需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种空间回收方法、装置、设备及可读存储介质,可以实现元数据位图的有效管理,保障系统的稳定性。
6.为解决上述技术问题,本发明提供如下技术方案:
7.一种空间回收方法,包括:
8.确定目标位图;
9.在磁盘中扫描所述目标位图对应的元数据,确定所述元数据的占用状态;
10.若所述元数据被占用,将所述目标位图置为1;
11.若所述元数据未被占用,将所述目标位图置为0。
12.可选地,所述确定目标位图,包括:
13.在系统重启后,获取预分配的位图,作为所述目标位图。
14.可选地,在所述确定目标位图之前,还包括:
15.判断当前是否存在主机io数据写入进程;
16.若不存在,执行所述确定目标位图的步骤。
17.可选地,所述在磁盘中扫描所述目标位图对应的元数据,确定所述元数据的占用状态,包括:
18.在磁盘中查找所述目标位图对应的元数据空间,作为目标空间;
19.查询所述目标空间是否落盘于b 树;
20.若是,判定所述元数据被占用;
21.若否,判定所述元数据未被占用。
22.可选地,在所述将所述目标位图置为0之后,还包括:
23.释放所述元数据以及所述位图对应的存储空间。
24.一种空间回收装置,包括:
25.位图确定单元,用于确定目标位图;
26.磁盘扫描单元,用于在磁盘中扫描所述目标位图对应的元数据,确定所述元数据的占用状态;若所述元数据被占用,触发第一置位单元;若所述元数据未被占用,触发第二置位单元;
27.所述第一置位单元,用于将所述目标位图置为1;
28.所述第二置位单元,用于将所述目标位图置为0。
29.可选地,所述位图确定单元具体为重启触发单元,所述重启触发单元用于:
30.在系统重启后,获取预分配的位图,作为所述目标位图。
31.可选地,所述空间回收装置,还包括优先级判断单元,用于在所述位图确定单元执行确定目标位图之前,判断当前是否存在主机io数据写入进程;若不存在,触发所述位图确定单元。
32.一种计算机设备,包括:
33.存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现上述空间回收方法的步骤。
35.一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述空间回收方法的步骤。
36.本发明实施例所提供的方法提出了一种针对存储过程中关于存储系统元数据位图空间泄露和回收问题的解决方式,该方法通过对目标位图对应的元数据进行空间占用状态的扫描,通过扫描确定元数据是否被占用,根据扫描结果对目标位图进行重新置位,实现了位图从未知状态到已知状态的改变,则系统可以基于已知的占用状态进行相应的空间回收以及利用,实现空间的重复利用,提高了存储系统的稳定性。
37.相应地,本发明实施例还提供了与上述空间回收方法相对应的空间回收装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
38.为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明实施例中一种空间回收方法的实施流程图;
40.图2为本发明实施例中一种空间回收装置的结构示意图;
41.图3为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
42.本发明的核心是提供一种空间回收方法,可以实现元数据位图的有效管理,保障系统的稳定性。
43.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.请参考图1,图1为本发明实施例中一种空间回收方法的流程图,该方法包括以下步骤:
45.s101、确定目标位图;
46.其中目标位图指待空间回收的位图,一般目标位图中存储的元数据状态未知,导致其无法被回收或利用,本实施例中获取这些位图作为目标位图,对于进行占用状态的扫描以及赋值,从而实现无法回收利用的位图的重新回收利用。
47.本实施例中对于目标位图的确定方式不做限定,可以接收用户的指定,也可以自动按照设定的规则去获取,可以根据实际空间回收的需要进行目标位图的设定。
48.由于目前元数据空间位图的分配策略是,当前分配的所有位图都返回确认被占用才会释放,因此有可能会带来的泄漏肯定是当前正在进行位图分配中的位图块(block),因此可选地,确定目标位图的过程可以为:将当前正在进行分配的位图块block,作为目标位图。
49.另外,由于位图一般在系统重启后状态信息才会丢失,且丢失的一般为存储于内存的预分配位图(即在存储系统初始化时预先划定一定的作为位图使用的内存空间),则确定目标位图的过程又可以为:在系统重启后,获取预分配的位图,作为目标位图。
50.本实施例中仅以上述两种实现方式为例进行介绍,其它确定方式均可参照本实施例的介绍,在此不再赘述。
51.s102、在磁盘中扫描目标位图对应的元数据,确定元数据的占用状态;
52.由于目标位图是出于状态丢失的原因导致无法回收利用,因此本实施例中对目标位图对应的元数据进行空间占用状态的扫描,通过扫描确定元数据是否被占用,根据扫描结果对目标位图进行重新置位,以便于后续对于不同状态的位图的回收以及利用。
53.目标位图对应的元数据存储于磁盘中,因此需要在磁盘中进行元数据的扫描以确定元数据状态,而具体的确定占用状态的实现方式本实施例中不做限定,比如可以通过判断元数据是否落盘于b 树上,也可以通过查找历史元数据占用记录来实现等。
54.为了保障占用状态信息的精准确定,可选地,在磁盘中扫描目标位图对应的元数据,确定元数据的占用状态的过程具体可以包括以下步骤:
55.(1)在磁盘中查找目标位图对应的元数据空间,作为目标空间;
56.(2)查询目标空间是否落盘于b 树;
57.(3)若是,判定元数据被占用;
58.(4)若否,判定元数据未被占用。
59.上述方式遍历当前的block进行元数据的查询,通过确认当前已经占用的位图是否真的完成了落盘到b 树上确定元数据的占用状态,从底层数据真实状态入手进行查询,可以准确确定每个元数据对应的实际状态,查询精准度高。
60.另外,由于落盘的过程中会涉及到元数据位图的占用与释放,进一步地,在上述查询的过程中可以采用线程免锁 流程互斥的方式来实现,基于线程免锁可以减少互斥所带
来的无谓开销、流程互斥可以进一步提高位图查询的准确率。
61.s103、若元数据被占用,将目标位图置为1;
62.若经过磁盘状态查询判定元数据被占用,则执行步骤s103将对应的目标位图置为1,以表示其被占用。由于部分目标位图在状态未知时会均置为1以避免重复占用,则该种情况下目标位图默认置为1则可以不对其进行重新置位。
63.s104、若元数据未被占用,将目标位图置为0。
64.若经过磁盘状态查询判定元数据未被占用,则执行步骤s104将目标位图置为0,以表示其未被占用。
65.则将目标位图进行重新置位之后,目标位图的占用状态就变为已知,则可以基于已知的占用状态进行相应的空间回收处理,实现空间的重复利用。
66.进一步地,在将目标位图置为0之后,为加速空间回收处理流程,可以立即释放元数据以及位图对应的存储空间,将其重新投入资源池中以供重复调用。当然,也可以不执行上述步骤,在此不做限定。
67.基于上述介绍,本发明实施例所提供的技术方案提出了一种针对存储过程中关于存储系统元数据位图空间泄露和回收问题的解决方式,该方法通过对目标位图对应的元数据进行空间占用状态的扫描,通过扫描确定元数据是否被占用,根据扫描结果对目标位图进行重新置位,实现了位图从未知状态到已知状态的改变,则系统可以基于已知的占用状态进行相应的空间回收以及利用,实现空间的重复利用,提高了存储系统的稳定性。
68.需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
69.在上述实施例的基础上,在步骤s101之前,可以进一步执行以下步骤:步骤s100、判断当前是否存在主机io数据写入进程;若不存在,执行步骤s101。而若存在,可以等待预设时长后再重新执行步骤s100,也可以直接跳转至步骤s100进行重复判断,本实施例中对此不做限定。
70.本实施例中将位图空间回收设置为低优先级的任务,在进行回收的过程中设计了一个优先级判断逻辑,当一次查询之后发现有落盘的请求(即存在主机io数据写入进程),那么优先处理落盘请求,可以保证存储系统的io效率。
71.相应于上面的方法实施例,本发明实施例还提供了一种空间回收装置,下文描述的空间回收装置与上文描述的空间回收方法可相互对应参照。
72.参见图2所示,该装置包括以下模块:
73.位图确定单元110主要用于确定目标位图;
74.磁盘扫描单元120主要用于在磁盘中扫描目标位图对应的元数据,确定元数据的占用状态;若元数据被占用,触发第一置位单元130;若元数据未被占用,触发第二置位单元140;
75.第一置位单元130主要用于将目标位图置为1;
76.第二置位单元140主要用于将目标位图置为0。
77.在本发明的一种具体实施方式中,位图确定单元具体为重启触发单元,重启触发单元用于:
78.在系统重启后,获取预分配的位图,作为目标位图。
79.在本发明的一种具体实施方式中,空间回收装置中还包括优先级判断单元,用于在位图确定单元执行确定目标位图之前,判断当前是否存在主机io数据写入进程;若不存在,触发位图确定单元。
80.相应于上面的方法实施例,本发明实施例还提供了一种计算机设备,下文描述的一种计算机设备与上文描述的一种空间回收方法可相互对应参照。
81.该计算机设备包括:
82.存储器,用于存储计算机程序;
83.处理器,用于执行计算机程序时实现上述方法实施例的空间回收方法的步骤。
84.具体的,请参考图3,为本实施例提供的一种计算机设备的具体结构示意图,该计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在计算机设备301上执行存储器332中的一系列指令操作。
85.计算机设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
86.上文所描述的空间回收方法中的步骤可以由计算机设备的结构实现。
87.相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种空间回收方法可相互对应参照。
88.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的空间回收方法的步骤。
89.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
90.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献