一种硬盘垃圾回收方法、装置及电子设备与流程
本技术涉及存储系统垃圾回收,具体涉及一种硬盘垃圾回收方法、装置及电子设备。
背景技术:
1、在分布式存储系统中,为充分发挥硬盘的写入性能,现有技术普遍采用重定向写入(redirect-on-write,row)机制,将写入存储池对象的数据重定向至同一区域并进行聚合,形成大粒度输入/输出(i/o)后,再顺序写入存储池所分配的对象中。同时,为进一步提升数据写入效率,业界广泛采用追加写(append-only write)方式。然而,追加写策略导致同一数据块在多次更新后产生大量历史版本的无效垃圾数据,需依赖垃圾回收(garbagecollection,gc)机制回收存储空间。当前主流的gc方案基于大对象(如128mb)管理粒度,通过扫描对象并依据其垃圾占比是否达到预设阈值,决定是否执行数据搬移操作(gcmigration)——即将待回收对象中的有效数据读出并写入新对象,随后释放原对象所占物理空间。
2、上述数据搬移过程需经历磁盘读取与写入两个阶段,涉及网络传输、磁盘i/o及并发资源调度等多重环节,其执行效率受限于网络带宽、磁盘吞吐能力及系统并发资源的竞争,直接制约了gc的整体回收效率。更为关键的是,当集群磁盘存储空间趋于饱和时,gc数据搬移所产生的增量写入将持续消耗剩余存储容量,形成空间回收与写入消耗之间的负反馈,导致垃圾空间无法及时释放,进而引发前台业务写入阻塞,严重影响系统可用性与业务连续性。
3、针对上述技术痛点,亟需开发一种能够根据集群容量状态动态调整gc策略的优化方法,以在保证存储系统稳定运行的前提下,提升gc回收效率,缓解存储空间临界状态下的业务阻塞风险。
技术实现思路
1、针对现有技术中gc策略缺乏对集群容量状态的自适应能力、在容量高水位场景下回收效率低且易加剧空间紧张的问题,本技术提出了一种新的硬盘垃圾回收方法及装置。更确切地,本技术提出一种基于集群容量自适应调整的gc策略优化方法,通过动态感知存储池剩余容量并相应调整gc触发条件、搬移粒度或回收强度,以期在保障前台业务写入连续性的前提下,最大化垃圾空间回收效率,提升系统整体性能与可靠性。
2、具体而言,本技术提供了以下技术方案:
3、本技术的第一方面提供一种硬盘垃圾回收方法,所述方法应用于采用重定向写入(redirect-on-write,row)技术的分布式存储系统,如图1所示,包括以下步骤:
4、s1、垃圾量分桶管理:将存储对象的垃圾量占比划分为多个档位区间并建立对应的回收桶,按照垃圾量从高到低的优先级顺序执行回收;
5、s2、对象入桶与垃圾量统计:统计待回收存储对象的垃圾量占比,将其归入对应的回收桶中;
6、s3、gc策略动态切换:监测集群容量使用率,当容量使用率低于预设阈值时,执行基于数据搬移的gc回收;当容量使用率达到或超过预设阈值时,切换为基于垃圾数据连续特征统计的免搬移gc回收方式;
7、s4、免搬移垃圾回收:根据存储对象的元数据信息和位图信息,识别连续垃圾数据段,当连续垃圾数据的总长度达到连续垃圾回收阈值时,对所述连续垃圾数据段执行打孔操作以释放空间,并标记对应元数据为已打孔状态;
8、s5、连续垃圾回收阈值自适应调整:根据集群容量使用率的紧急程度,自适应调整所述连续垃圾回收阈值,所述阈值按照冗余策略的条带对齐原则进行设置;
9、s6、垃圾量修正与桶位切换:针对已打孔释放空间的存储对象,修正其垃圾量占比,并根据修正后的垃圾量占比将其重新分配至对应的回收桶。
10、进一步地,本技术方法中,步骤s1中,所述垃圾量占比以5%为粒度划分档位区间,共建立20个回收桶,分别为[0,5)、[5,10)、…、[95,100]。
11、进一步地,本技术方法中,步骤s2中,所述待回收存储对象的垃圾量占比的统计方法为:通过位图标记算法,以存储对象的最小写入单元为粒度标记有效数据与垃圾数据,统计位图中垃圾数据标记位的数量,计算得到垃圾量占比。
12、进一步地,本技术方法中,步骤s3中,所述预设阈值为85%;
13、所述基于数据搬移的gc回收包括:通过元数据反查确定存储对象中的有效数据,将所述有效数据从旧存储对象读取并写入到新存储对象,完成数据搬移后删除旧存储对象。
14、进一步地,本技术方法中,步骤s4中,所述连续垃圾数据段的识别方法包括:根据存储对象的元数据信息确定各垃圾数据段的位置和长度,判断相邻垃圾数据段是否连续,若连续则合并计算总长度。
15、进一步地,本技术方法中,步骤s5中,所述冗余策略包括副本冗余和纠删码冗余;对于纠删码冗余策略,所述连续垃圾回收阈值为基准回收阈值与条带分片数的乘积;对于副本冗余策略,所述连续垃圾回收阈值等于所述基准回收阈值。
16、进一步地,本技术方法中,所述基准回收阈值根据集群容量使用率的紧急程度进行自适应调整,具体为:
17、当容量使用率处于[85%,90%)区间时,基准回收阈值为2m;
18、当容量使用率处于[90%,95%)区间时,基准回收阈值为1m;
19、当容量使用率处于[95%,100%]区间时,基准回收阈值为32k。
20、进一步地,本技术方法中,步骤s6中,所述修正其垃圾量占比的方法为:将存储对象的原垃圾量减去已打孔释放的空间量,得到修正后的垃圾量,再计算修正后的垃圾量占比。
21、进一步地,本技术方法中还包括:在后续gc扫描过程中,根据元数据中的已打孔标记,跳过已打孔空间的重复统计与释放。
22、本技术的第二方面提供一种硬盘垃圾回收装置,所述装置应用于采用重定向写入技术的分布式存储系统,运行时实现前述的硬盘垃圾回收方法的步骤,如图2所示,所述装置包括:
23、垃圾量分桶模块,用于将存储对象的垃圾量占比划分为多个档位区间并建立对应的回收桶,按照垃圾量从高到低的优先级顺序执行回收;
24、对象入桶模块,用于统计待回收存储对象的垃圾量占比,将其归入对应的回收桶中;
25、策略切换模块,用于监测集群容量使用率,当容量使用率低于预设阈值时,触发基于数据搬移的gc回收;当容量使用率达到或超过预设阈值时,切换为基于垃圾数据连续特征统计的免搬移gc回收方式;
26、免搬移回收模块,用于根据存储对象的元数据信息和位图信息,识别连续垃圾数据段,当连续垃圾数据的总长度达到连续垃圾回收阈值时,对所述连续垃圾数据段执行打孔操作以释放空间,并标记对应元数据为已打孔状态;
27、阈值调整模块,用于根据集群容量使用率的紧急程度,自适应调整所述连续垃圾回收阈值,所述阈值按照冗余策略的条带对齐原则进行设置;
28、修正切换模块,用于针对已打孔释放空间的存储对象,修正其垃圾量占比,并根据修正后的垃圾量占比重新将其分配至对应的回收桶。
29、本技术的第三方面提供一种电子设备,包括:存储器和处理器;
30、存储器:用于存储计算机程序;
31、处理器:用于执行所述计算机程序,以实现前述的硬盘垃圾回收方法的步骤。
32、本技术的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述的硬盘垃圾回收方法的步骤。
33、综上,本发明通过构建基于集群容量的自适应gc策略,实现了回收效率与系统稳定性的协同优化。其核心优势在于:通过动态感知集群容量状态,在低容量使用率时采用常规搬移回收保障空间回收及时性,在高容量使用率时切换为免搬移回收方式,基于连续垃圾特征统计执行空间打孔(punch)释放,实现了gc策略与集群容量的自适应匹配。该机制从根本上消除了传统搬移流程中读写双阶段i/o对网络带宽及磁盘吞吐的竞争消耗,避免了高容量水位下增量写入对剩余容量的持续挤占,从而有效化解垃圾空间释放与前台业务写入阻塞之间的矛盾。最终,本发明显著提升了高压力场景下的gc回收效率,维护了集群容量的动态稳定性与系统可靠性,并确保了前台业务写入的连续性与服务质量。
34、本技术的其他特征和优点将在随后的说明书中予以详细阐述,或者通过实施本技术的相关技术方案而得以了解。本技术的目的以及其他优点可以通过说明书、权利要求书以及附图中所明确指出的技术特征和技术手段来实现,并通过这些技术内容的实施过程而获得。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com