CN116467267A - 垃圾回收方法、设备、存储介质和*** - Google Patents

垃圾回收方法、设备、存储介质和*** Download PDF

Info

Publication number
CN116467267A
CN116467267A CN202310377066.1A CN202310377066A CN116467267A CN 116467267 A CN116467267 A CN 116467267A CN 202310377066 A CN202310377066 A CN 202310377066A CN 116467267 A CN116467267 A CN 116467267A
Authority
CN
China
Prior art keywords
garbage collection
user
time
user storage
storage
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
CN202310377066.1A
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310377066.1A priority Critical patent/CN116467267A/zh
Publication of CN116467267A publication Critical patent/CN116467267A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种垃圾回收方法、设备、存储介质和***,该方法包括:根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率;预测多个用户存储服务在第二时间各自对应的第二垃圾回收效率;根据多个用户存储服务各自对应的第二垃圾回收效率相比各自对应的第一垃圾回收效率的变化程度、多个用户存储服务各自对应的第一垃圾回收效率以及分布式存储***的存储空间剩余容量,确定第一时间需要进行垃圾回收的目标用户存储服务。通过该垃圾回收策略,可以及时回收存储空间,保证剩余存储空间的水位安全,并降低垃圾回收对数据读写服务的影响。

Description

垃圾回收方法、设备、存储介质和***
技术领域
本发明涉及互联网技术领域,尤其涉及一种垃圾回收方法、设备、存储介质和***。
背景技术
当前越来越多的分布式存储***都基于Log-Structured(日志结构)读写流程来构建,Log-Structured有时候也会被称作是Append-only Sequence of Data(不断追加数据),因为所有的写操作都会不停地添加进这个数据结构中,而不会更新原来已有的值。
用户存储服务(比如云盘)向分布式存储***的数据写入过程简单来说就是:用户存储服务触发携带有待写入数据以及该数据对应的逻辑块地址(Logical Block Address,简称LBA)的数据写入请求,在分布式存储***中会将该待写入数据记录到某个日志文件(Log file)中,并记录该LBA与待写入数据在该日志文件中的数据位置的映射关系。读取过程是:假设用户存储服务触发了携带有该LBA的数据读取请求,分布式存储***根据该映射关系读取相应日志文件以返回相应数据。
由于各个日志文件中记录的数据最终是要落盘到分布式存储***中包含的各个存储节点(物理磁盘)中的,而且众多用户存储服务的数据读写过程中会产生大量的无用数据,这些无用数据会占用大量存储空间,因此,分布式存储***中会通过后台的垃圾回收进程从日志文件中清除无用数据,以最终回收存储节点中的存储空间。垃圾回收过程简单来说就是:将原来的日志文件中的有效数据读取并写入的新的日志文件中,更新LBA与日志文件中数据位置的映射关系,删除原来的日志文件以回收存储空间。
传统的一种垃圾回收策略是:优先回收无用数据较多的用户存储服务。虽然回收无用数据多的用户存储服务所需消耗的网络、CPU等资源较少,但是由于无用数据相对少的用户存储服务一直得不到回收,当分布式存储***有大量数据写入并且剩余存储空间不足时,由于已经没有无用数据较多的用户存储服务可以回收,不得不回收无用数据少的用户存储服务以腾出更多存储空间,但是,此时回收无用数据少的用户存储服务会消耗更多的CPU、网络、磁盘等资源,会影响前台的数据读写服务。
发明内容
本发明实施例提供一种垃圾回收方法、设备、存储介质和***,用以及时回收存储空间,保证剩余存储空间的水位安全,并降低垃圾回收对数据读写服务的影响。
第一方面,本发明实施例提供一种垃圾回收方法,所述方法包括:
根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率;
预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,所述第二时间晚于所述第一时间;
根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
第二方面,本发明实施例提供一种垃圾回收装置,所述装置包括:
确定模块,用于根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率;
预测模块,用于预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,所述第二时间晚于所述第一时间;
调度模块,用于根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第一方面所述的垃圾回收方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的垃圾回收方法。
第五方面,本发明实施例提供一种垃圾回收***,所述***包括:分布式存储***以及使用所述分布式存储***的多个用户存储服务;其中,所述分布式存储***中包括管控服务器;
所述管控服务器,用于根据设定的垃圾回收时间间隔,确定所述多个用户存储服务在第一时间各自对应的第一垃圾回收效率,预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,所述第二时间晚于所述第一时间;根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
本发明实施例中,按照设定的垃圾回收时间间隔,定期对使用分布式存储***中的多个用户存储服务所产生的数据进行垃圾回收处理。在当前的第一时刻,确定多个用户存储服务各自对应的第一垃圾回收效率,并预测多个用户存储服务在之后的第二时间各自对应的第二垃圾回收效率,从而可以知道在未来一段时间内各用户存储服务的垃圾回收效率变化程度。最终,根据多个用户存储服务各自对应的垃圾回收效率变化程度、多个用户存储服务当前各自对应的第一垃圾回收效率以及分布式存储***的存储空间剩余容量,确定当前第一时间需要进行垃圾回收的目标用户存储服务,以针对目标用户存储服务进行已存储数据的垃圾回收处理。
由此可见,在本发明实施例中,并非仅依据当前时刻各用户存储服务的垃圾回收效率的高低来决定当前需要进行垃圾回收的目标用户存储服务,而是综合考虑各用户存储服务的垃圾回收效率的变化情况以及分布式存储***的存储空间剩余容量,来决定当前需要进行垃圾回收的目标用户存储服务。这样可以使得当前的决策结果与存储空间剩余容量相适应,保证及时回收分布式存储***的存储空间,使得存储空间剩余容量在安全水位之上。而且,结合各用户存储服务的垃圾回收效率的变化情况,确定适宜在当前时刻进行垃圾回收处理的目标用户存储服务,即基于各用户存储服务的垃圾回收效率的变化情况决定各用户存储服务在什么时间进行垃圾回收处理更为合适,不仅可以及时回收存储空间,还可以降低垃圾回收过程对数据读写服务的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种垃圾回收***的示意图;
图2为本发明实施例提供的一种垃圾回收方法的流程图;
图3为本发明实施例提供的一种垃圾回收方法的流程图;
图4为本发明实施例提供的一种垃圾回收方法的流程图;
图5为本发明实施例提供的一种垃圾回收***的示意图;
图6为本发明实施例提供的一种垃圾回收装置的结构示意图;
图7为本实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
需要说明的是,本发明实施例中所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本发明实施例提供的垃圾回收方法可以适用于图1所示垃圾回收***中,如图1所示,该垃圾回收***包括:分布式存储***以及使用该分布式存储***的多个用户存储服务,比如图1中示意的用户存储服务1、用户存储服务2和用户存储服务3。分布式存储***中包括管控服务器。
可以理解的是,在分布式存储***中可以包括若干存储节点,比如图1中示意的存储节点1——存储节点N。实际应用中,这些存储节点可以是由云厂商维护的物理存储设备。
管控服务器可以是云端的运行有管控服务程序的物理服务器集群或虚拟服务器集群中的任一个,本发明实施例中,该管控服务程序主要用于管控各个用户存储服务的垃圾回收过程。
用户存储服务,是为用户提供的云存储服务,比如可以是云盘、块存储等云存储服务。实际应用中,用户可以使用云端的虚拟机部署、运行自己的应用程序,该应用程序产生的数据可以通过该用户的用户存储服务存储到上述分布式存储***中的存储节点内。
因此,该用户存储服务可以简单认为是提供给用户的、用户可见的逻辑存储空间,比如某用户获得了1TB的逻辑存储空间来存储自己的应用程序所产生的数据。相对地,上述存储节点所提供的存储空间为物理存储空间。
如上文所述,在基于Log Structured的分布式存储***中,数据是以不断追加的方式来写入的。具体来说,假设某用户存储服务触发了数据写入请求,该数据写入请求中包括数据A以及对应的逻辑块地址:LBA=0,分布式存储***响应于该数据写入请求,创建了与该用户存储服务对应的一个日志文件(不以日志文件为限,其他类型文件亦可),假设命名为log file,在该logfile中生成一条记录:数据A以及LBA=0。假设之后该用户存储服务再次触发了数据写入请求,该数据写入请求中包括数据B以及LBA=0,也就是说,实际上该用户存储服务是要将原来写入LBA=0这个地址的数据由原来的数据A修改为数据B,此时,分布式存储***响应于该数据写入请求,在该logfile中会再生成一条记录:数据B以及LBA=0,也就是说,追加了一条记录。
可以预先设定一个日志文件的大小(比如1GB),当一个日志文件写满后,创建一个新的日志文件。实际上,上述日志文件只是一个中间工具,每个日志文件中写入的内容,最终是要落盘到分布式存储***中的存储节点中进行持久化存储的。可以预先设定一个数据块的大小(比如100MB),每当一个日志文件中写入的数据量达到一个数据块大小时,便可以形成一个数据块,该数据块可以以多副本(比如三副本)的方式存入到不同存储节点中,以实现冗余备份。
本发明实施例中,针对用户存储服务进行垃圾回收,实际上可以认为是回收用户存储服务对应的日志文件中的无用数据以最终回收存储节点中的存储空间。
其中,无用数据的产生主要是由于用户存储服务会重复多次在相同的LBA上进行数据更新或者删除数据。比如,在上述举例中,基于用户存储服务在LBA=0上写入数据A的数据写入请求,日志文件会先存储数据A以及数据A与该LBA=0的映射关系,之后用户存储服务将数据A更新为数据B,那么该日志文件就会多一条存储记录:数据B以及数据B与该LBA=0的映射关系,这个时候第一条记录就是无效数据了。而如果该用户存储服务后续将数据B也删除了,那么上述两条记录都变成了无效数据。
当管控服务器启动一个垃圾回收进程针对该用户存储服务进行垃圾回收时,该垃圾回收进程会将上述日志文件中的有效数据读取出来,写入到一个新的日志文件中,之后会删除原来的日志文件以回收该日志文件对应的各个数据块在存储节点中占用的存储空间。可以理解的是,基于新的日志文件所切分出的各个数据块会被存储到不同存储节点中。
以上简单介绍了无用数据的由来,垃圾回收的目的就是回收各用户存储服务所产生的无用数据。
本发明实施例中,管控服务器的主要功能之一就是对垃圾回收任务进行合理调度,以满足如下目标:
第一,及时回收存储空间,保证分布式存储***的存储空间水位安全,即存储空间剩余容量在设定的安全水位之上。本文中的存储空间是指分布式存储***中存储节点所提供的物理存储空间。因为在上述分布式存储***中,新的写入是不断追加(Append)数据的,这会使得占用的存储空间是不断增长的。只有通过垃圾回收才能降低不断增长的存储空间使用情况。特别是在分布式存储***的存储空间占用量较高而且有大量并发的数据写入请求时,对垃圾回收的高效及时提出了挑战。如果存储空间回收不及时,分布式存储***的存储空间写满,会导致数据读写服务中断。
第二,垃圾回收任务的执行尽可能小的影响前台的数据读写服务。从上文中介绍的垃圾回收过程可以看出,在垃圾回收过程中搬移数据会占用中央处理器(centralprocessing unit,简称CPU)、网络和磁盘等资源,而这些资源经常是和前台的数据读写服务共享的。这个目标2和目标1在一些场景下会出现冲突,比如当分布式存储***的存储空间剩余容量较少而且有大量并发的数据写入请求时,既需要快速回收存储空间,但回收加快会使用更多资源,而前台数据读写服务也需要更多资源,就会造成冲突。
基于此,本发明实施例提供的垃圾回收方法,主要是提供更优的垃圾回收调度策略,以更好满足上述两个目标,并尽量减少这两个目标的冲突概率。
下面结合以下一些实施例介绍上述管控服务器对各用户存储服务的垃圾回收处理过程。
图2为本发明实施例提供的一种垃圾回收方法的流程图,如图2所示,该方法包括如下步骤:
201、根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
202、预测多个用户存储服务在第二时间各自对应的第二垃圾回收效率,第二时间晚于第一时间。
203、根据多个用户存储服务各自对应的第二垃圾回收效率相比各自对应的第一垃圾回收效率的变化程度、多个用户存储服务各自对应的第一垃圾回收效率以及分布式存储***的存储空间剩余容量,确定第一时间需要进行垃圾回收的目标用户存储服务。
在本发明实施例中,引入了一个垃圾回收效率的概念。
将一个用户存储服务对应的日志文件(是指该用户存储服务对应的已创建且未被回收的全部日志文件)中已经写入的总数据量记为LS,将这个用户存储服务对应的日志文件中的有效数据量(或者说有用数据量)记为US,将这个用户存储服务对应的垃圾回收效率记为GCU,则GCU=(LS-US)/US。其中,(LS-US)为可回收的存储空间大小,即为回收收益。因为需要把有效数据US读出来并写到新的日志文件中,所以US和回收代价(或者说资源消耗)成正比,所以(LS-US)/US代表了垃圾回收的回收收益/回收代价,等价于垃圾回收的回收效率。
由此可见,上述垃圾回收效率反映了需要以多大的代价来回收多少无用数据。
本发明实施例中,按照设定的垃圾回收时间间隔,管控服务器定期对使用分布式存储***中的多个用户存储服务所产生的数据进行垃圾回收处理。比如,该时间间隔为5分钟、10分钟等设定值。
假设根据上述垃圾回收时间间隔确定当前第一时间需要执行一次垃圾回收的调度。那么需要先确定目前使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
将其中任一个用户存储服务在第一时间对应的第一垃圾回收效率表示为GCU(t),t即表示当前的第一时间,根据上述GCU的定义可知,需确定在第一时间t该用户存储服务对应的日志文件中的总数据量(假设记为LS1)和有效数据量(假设记为US1),则GCU(t)=(LS1-US1)/US1。
其中,针对任一用户存储服务来说,在第一时间,可以根据此时该用户存储服务对应的还未被进行垃圾回收处理的各个日志文件中所写入的数据量,确定出上述总数据量LS1。确定各日志文件中包含的LBA,确定每个LBA最后对应的数据量,累加之后得到上述有效数据量US1。
举例来说,假设某用户存储服务对应有一个日志文件,在这个日志文件中包含如下记录:
LBA=0,数据A;
LBA=1,数据B;
LBA=2,数据C;
LBA=0,数据D;
LBA=1,数据E。
为便于描述,假设每条记录对应的数据量为10MB,那么这个日志文件对应的总数据量LS1=50MB,由于LBA=0和LBA=1存在重复写的情况即数据修改的情况,实际上针对这两个地址最终的有效数据是LBA=0,数据D;LBA=1,数据E,因此有效数据量US1=30MB,即包括如下三条有效数据:LBA=0,数据D;LBA=2,数据C;LBA=1,数据E。
在确定多个用户存储服务在第一时间各自对应的第一垃圾回收效率之后,预测多个用户存储服务在第二时间各自对应的第二垃圾回收效率。其中,第二时间晚于第一时间,比如第二时间是第一时间之后相隔设定时长的时间。该设定时长表示为T,可以是分钟级别或小时级别的,比如为10分钟,1小时。
根据上述GCU的定义可知,针对上述任一用户存储服务来说,预测其在第二时间对应的第二垃圾回收效率GCU(t+T),实际上就是需要预测确定该用户存储服务在第二时间(t+T)对应的日志文件中的总数据量(假设记为LS2)和有效数据量(假设记为US2),从而GCU(t+T)=(LS2-US2)/US2。
经实际统计分析发现,大多用户存储服务的数据读写操作呈现出较强的周期性规律。比如某用户存储服务在白天某时间段内会大量的读写操作,但是晚上时间读写操作很少。基于此,可以针对各用户存储服务的历史的数据读写操作进行统计分析,以确定出各用户存储服务呈现出的周期性的读写特征信息。
为便于预测,在周期性的读写特征信息统计时,统计时间粒度比如可以是小时级别的,即分析各用户存储服务在每天不同时间段内呈现出的周期性的读写特征信息。
其中,读写特征信息比如是在某时间段内有多少数据量的新数据写入操作,在某时间段内有多少数据量的数据修改行为,在某时间段内有多少数据量的数据删除操作,等等。
上述周期性的读写特征信息的统计,可以采用现有的神经网络模型以及一些统计分析方法实现,在此不赘述。
针对上述任一用户存储服务来说,可以基于该用户存储服务呈现出的周期性读写特征信息,确定第一时间t至第二时间t+T的这个时间段内该用户存储服务的读写特征信息。比如,假设统计出的该用户存储服务器的周期性读写特征信息表示在10:00-11:00这个时间段内,平均会有500MB的数据修改量,以及假设第一时间t到第二时间t+T这段时间恰好是10:00-11:00这个时间段,则确定第一时间t至第二时间t+T的这个时间段内该用户存储服务的读写特征信息即为:有500MB的数据修改量。
可以理解的是,假设第一时间t至第二时间t+T的这个时间段是位于上述10:00-11:00之间的部分时间段,比如10:00-10:30,为简化处理,也可以按照时长占比确定第一时间t至第二时间t+T的这个时间段内该用户存储服务的读写特征信息为:有250MB的数据修改量。当第一时间t至第二时间t+T的这个时间段假设为9:40-10:10时,类似地,假设周期性统计的时间为9:00-10:00,10:00-11:00,那么可以根据第一时间t至第二时间t+T在相对应的两个统计时间内各自的时长占比来确定第一时间t至第二时间t+T的这个时间段内该用户存储服务的读写特征信息。
之后,根据在第一时间t至第二时间t+T的时间段内上述用户存储服务的读写特征信息,确定在第二时间t+T该用户存储服务对应的日志文件中的总数据量LS2和有效数据量US2。
比如,第一时间t至第二时间t+T的时间段内上述用户存储服务的读写特征信息为有500MB的数据修改量,那么由于数据是以不断追加方式记录到日志文件中的,所以与第一时间t该用户存储服务对应的日志文件中的总数据量LS1相比,第二时间t+T对应的总数据量LS2=LS1+500MB,但是有效数据量不变,即US2=US1,因为如上文所述,数据修改操作就是对相同LBA进行了数据修改,有效数据是最终修改后的数据,在原来数据与修改数据的数据量一致的情况下(即使数据量稍微不同,也可以忽略该差异),数据量不发生变化。
再比如,第一时间t至第二时间t+T的时间段内上述用户存储服务的读写特征信息为有300MB的新数据写入,那么与第一时间t该用户存储服务对应的日志文件中的总数据量LS1相比,第二时间t+T对应的总数据量LS2=LS1+300MB,有效数据量也增加该数据量,即US2=US1+300MB。
再比如,第一时间t至第二时间t+T的时间段内上述用户存储服务的读写特征信息为有400MB的数据删除行为,那么与第一时间t该用户存储服务对应的日志文件中的总数据量LS1相比,第二时间t+T对应的总数据量LS2=LS1+400MB,因为实际上数据删除行为也是针对原来的一些LBA写入空值实现的。但是有效数据量却减少该数据量,即US2=US1-400MB。
在得到上述LS2和US2之后,便可以基于GCU的定义,确定在第二时间t+T上述用户存储服务对应的第二垃圾回收效率GCU(t+T)。
之后,根据每个用户存储服务对应的第二垃圾回收效率GCU(t+T)相比其第一垃圾回收效率GCU(t)的变化程度、每个用户存储服务对应的第一垃圾回收效率GCU(t)以及分布式存储***的存储空间剩余容量,确定第一时间t需要进行垃圾回收的目标用户存储服务,以启动垃圾回收进程针对目标用户存储服务进行已存储数据的垃圾回收处理。
可选地,任一用户存储服务对应的第二垃圾回收效率GCU(t+T)相比其第一垃圾回收效率GCU(t)的变化程度,可以以GCU(t+T)与GCU(t)的比值来度量,将比值记为DU,则DU=GCU(t+T)/GCU(t)。可选地,也可以以两者的差值来度量。
任一用户存储服务对应的垃圾回收效率的上述变化程度主要是反映该用户存储服务在第二时间对应的第二垃圾回收效率是否比第一时间对应的第一垃圾回收效率高,从而作为是否对该用户存储服务在当前第一时间就进行垃圾回收处理,还是延迟对该用户存储服务进行垃圾回收处理更合适。
概括来说,如果某用户存储服务对应的第二垃圾回收效率明显高于其对应的第一垃圾回收效率,说明延迟回收该用户存储服务,会获得更好的收益。相反地,如果某用户存储服务对应的第二垃圾回收效率小于或等于其对应的第一垃圾回收效率,说明该用户存储服务的垃圾回收效率并不会在第二时间提高,其垃圾回收效率较为稳定,属于“难啃的骨头”,应该优先回收,以避免在分布式存储***后续有大量读写任务时才回收对前台的读写服务的影响,因为这些用户存储服务的垃圾回收会占用更多的资源。
分布式存储***的存储空间剩余容量主要用于反映垃圾回收的迫切程度,可以理解的是,如果当前第一时间发现分布式存储***的存储空间剩余容量很少(低于设定阈值),说明如果再有大量数据写入时就会没有足够的剩余存储空间可用,此时,存储空间的回收更为迫切,应该优先回收能够腾出更多存储空间的用户存储服务;反之,如果当前第一时间分布式存储***的存储空间剩余容量很多,则存储空间的回收没有那么迫切,可优先回收“难啃的骨头”。
而各个用户存储服务在当前第一时间对应的第一垃圾回收效率主要用于:在基于分布式存储***的存储空间剩余容量决定在当前第一时间应该先回收呈现怎样的垃圾回收效率的变化程度的用户存储服务后,具体确定这些用户存储服务的回收顺序,因为在一个调度周期内,一般不会对所有的用户存储服务都进行垃圾回收,只能对部分用户存储服务进行垃圾回收。
由此可见,在本发明实施例中,并非仅依据当前第一时刻各用户存储服务的垃圾回收效率的高低来决定当前需要进行垃圾回收的目标用户存储服务,而是综合考虑各用户存储服务的垃圾回收效率的变化情况以及分布式存储***的存储空间剩余容量,来决定当前需要进行垃圾回收的目标用户存储服务。这样可以使得当前的决策结果与存储空间剩余容量相适应,保证及时回收分布式存储***的存储空间,使得存储空间剩余容量在安全水位之上。而且,结合各用户存储服务的垃圾回收效率的变化情况,确定适宜在当前时刻进行垃圾回收处理的目标用户存储服务,即基于各用户存储服务的垃圾回收效率的变化情况决定各用户存储服务在什么时间进行垃圾回收处理更为合适,不仅可以及时回收存储空间,还可以降低垃圾回收过程对数据读写服务的影响。
图3为本发明实施例提供的一种垃圾回收方法的流程图,如图3所示,该方法包括如下步骤:
301、根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
302、预测多个用户存储服务在第二时间各自对应的第二垃圾回收效率,第二时间晚于第一时间。
303、确定分布式存储***第一时间的存储空间剩余容量是否低于设定阈值,若是,则执行步骤304,否则执行步骤305。
304、根据多个用户存储服务各自对应的第一垃圾回收效率的排序结果,确定第一时间需要进行垃圾回收的目标用户存储服务。
305、根据多个用户存储服务各自对应的第二垃圾回收效率相比各自对应的第一垃圾回收效率的变化程度,确定第一用户存储服务集合和第二用户存储服务集合;其中,第一用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度高于第二用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度。
306、根据第二用户存储服务集合中各用户存储服务对应的第一垃圾回收效率的排序结果,确定第一时间需要进行垃圾回收的目标用户存储服务。
本实施例中介绍了上述步骤203的一种可选实现方式。
具体来说,可以根据多个用户存储服务各自对应的第二垃圾回收效率相比各自对应的第一垃圾回收效率的变化程度,将多个用户存储服务划分为两类,一类对应于第一用户存储服务集合,另一类对应于第二用户存储服务集合。
假设以DU=GCU(t+T)/GCU(t)作为上述变化程度的度量指标,实际上,以两者差值作为该度量指标时同理。将DU值大于设定阈值(比如1,1.5等)的用户存储服务划分为一类,存储在第一用户存储服务集合中,将DU值小于或等于该设定阈值的用户存储服务划分为一类,存储在第二用户存储服务集合中。其中,DU值大于该设定阈值,代表如果延迟回收相应用户存储服务能够带来垃圾回收效率的提升,相反地,DU值小于或等于该设定阈值,代表如果延迟回收相应用户存储服务不会带来垃圾回收效率的提升,即延迟回收效果不大。
当分布式存储***的存储空间剩余容量小于设定阈值时,说明此时分布式存储***的存储空间所剩不多,低于安全水位,此时,上述两个用户存储服务集合统一排序,即不考虑DU值的大小,按照各个用户存储服务对应的GCU(t)进行由高到低的排序,GCU(t)越高的用户存储服务越优先回收。因为某用户存储服务在当前第一时间对应的GCU(t)高,根据GCU的定义,意味着该用户存储服务对应的日志文件中无用数据较多,有效数据较少,对其进行回收时,读取有效数据到新的日志文件中所消耗的资源较少,而且可以腾出更多的存储空间。而当前由于分布式存储***的存储空间剩余容量较低,急需更快地回收更多的存储空间,以保证分布式存储***的存储空间水位安全,因此此时可以先不考虑DU值,优先选择GCU(t)高的用户存储服务作为目标用户存储服务进行垃圾回收。
另外,可选地,可以预先设置分布式存储***的存储空间剩余容量小于设定阈值时需要回收的用户存储服务的数量或数量范围,基于该设置信息,可以根据GCU(t)由高到低的排序结果,选择出该数量的用户存储服务作为目标用户存储服务。
在一具体实施过程中,假设该数量设置为M1,假设排序为第M1的GCU(t)与排序为第M1+1的GCU(t)是相同的,且这两个相同GCU(t)对应的用户存储服务一个位于第一用户存储服务集合,另一个位于第二用户存储服务集合,则可以选择第二用户存储服务中的。当然,不以此为限,也可以随机选一个,或者两个都选出。
当分布式存储***的存储空间剩余容量大于设定阈值时,说明此时分布式存储***的存储空间还较为充足,此时,优先选择第二用户存储服务集合中的用户存储服务进行回收。具体地,对第二用户存储服务集合中各用户存储服务按照其对应的GCU(t)进行由高到低的排序,GCU(t)越高的用户存储服务越优先回收。
类似地,可选地,可以预先设置分布式存储***的存储空间剩余容量大于设定阈值时需要回收的用户存储服务的数量或数量范围,基于该设置信息,可以根据GCU(t)由高到低的排序结果,选择出该数量的用户存储服务作为目标用户存储服务。在一具体实施过程中,假设该数量设置为M2,则第二用户存储服务集合中各用户存储服务按照其对应的GCU(t)进行由高到低的排序后,选出排在前M2个用户存储服务作为目标用户存储服务。
在分布式存储***的存储空间水位处于安全线之上时,优先将垃圾回收效率在未来第二时间也不会变好的用户存储服务尽量回收,把这些“难啃的骨头”在平时消化掉,即在分布式存储***的存储空间剩余容量大于设定阈值时消化掉。而在分布式存储***的空间水位不足时,因为预留了第一用户存储服务集合即垃圾回收效率在第二时间会升高的用户存储服务,该第一用户存储服务集合中会包含大量的GCU(t)较高的用户存储服务,可以消耗很少的资源就可以回收出更多的存储空间,缓解在分布式存储***存储空间剩余容量不足而且有大量并发的数据写入请求时的紧张局面。
图4为本发明实施例提供的一种垃圾回收方法的流程图,如图4所示,该方法包括如下步骤:
401、根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
402、预测多个用户存储服务在第二时间各自对应的第二垃圾回收效率,第二时间晚于第一时间。
403、根据分布式存储***在第一时间的负载,确定启动的垃圾回收进程的目标数量。
404、确定分布式存储***第一时间的存储空间剩余容量是否低于设定阈值,若是,则执行步骤405,否则执行步骤406。
405、根据多个用户存储服务各自对应的第一垃圾回收效率的排序结果以及垃圾回收进程的目标数量,确定第一时间需要进行垃圾回收的目标用户存储服务,以通过目标数量的垃圾回收进程并发地对目标用户存储服务进行垃圾回收处理。
406、根据多个用户存储服务各自对应的第二垃圾回收效率相比各自对应的第一垃圾回收效率的变化程度,确定第一用户存储服务集合和第二用户存储服务集合;其中,第一用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度高于第二用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度。
407、根据第二用户存储服务集合中各用户存储服务对应的第一垃圾回收效率的排序结果以及垃圾回收进程的目标数量,确定第一时间需要进行垃圾回收的目标用户存储服务,以通过目标数量的垃圾回收进程并发地对目标用户存储服务进行垃圾回收处理。
本实施例中,结合分布式存储***的负载进行垃圾回收的调度。该负载是指前台的数据读写请求,可以以读写请求的数量、吞吐量等作为负载的度量指标。
实际上,分布式存储***的负载也会存在明显的周期性的波峰和波谷。概括来说,可以在负载波谷期加大垃圾回收任务的并发度,进行更大粒度的回收。同时,应该趁着波谷把一些垃圾回收效率虽然不高但未来垃圾回收效率也不会变高的“难啃的骨头”优先回收,避免在负载波峰期无法腾出足够的时间和资源来回收。
因此,可以确定在当前第一时间分布式存储***的负载,根据该负载确定启动的垃圾回收进程的目标数量。
具体地,可以预先设定多个负载范围,以及设定不同负载范围与垃圾回收进程数量之间的对应关系,其中,该对应关系反映出负载越高,垃圾回收进程数量越低。
从而,可以确定分布式存储***在第一时间的负载属于的目标负载范围,基于上述对应关系,确定该目标负载范围对应的垃圾回收进程的目标数量。
简单举例来说,假设负载范围是由一设定阈值划分出的高负载和低负载两个范围。
如果当前第一时间分布式存储***的存储空间剩余容量大于设定阈值,并且其负载处于较高负载区间,则调低垃圾回收的并发度,即设置较少的垃圾回收进程数量K1,并且优化选择第二用户存储服务集合中的K1个GCU(t)高的用户存储服务进行垃圾回收。
如果当前第一时间分布式存储***的存储空间剩余容量大于设定阈值,并且其负载处于较低负载区间,则调高垃圾回收的并发度,即设置较多的垃圾回收进程数量K2,并且优化选择第二用户存储服务集合中的K2个GCU(t)高的用户存储服务进行垃圾回收。K2>K1。
如果当前第一时间分布式存储***的存储空间剩余容量小于设定阈值,并且其负载处于较高负载区间,则调低垃圾回收的并发度,即设置较少的垃圾回收进程数量K3,并且对第一用户存储服务集合和第二用户存储服务集合中包含的全部用户存储服务进行GCU(t)由高到低的排序,选择出K3个GCU(t)高的用户存储服务进行垃圾回收。
如果当前第一时间分布式存储***的存储空间剩余容量小于设定阈值,并且其负载处于较低负载区间,则调高垃圾回收的并发度,即设置较多的垃圾回收进程数量K4,并且对第一用户存储服务集合和第二用户存储服务集合中包含的全部用户存储服务进行GCU(t)由高到低的排序,选择出K4个GCU(t)高的用户存储服务进行垃圾回收。K4>K3。
其中,K1与K3可以相等或不等,K2和K4可以相等或不等。
本实施例中,通过预测用户存储服务在未来时间的垃圾回收效率,优先把垃圾回收效率不会变好的用户存储服务尽量回收,并根据分布式存储***的负载水平调节垃圾回收进程的并发度,把垃圾回收效率不会变好的用户存储服务在平时消化掉。在当分布式存储***的存储空间剩余容量不足时,因为预留了垃圾回收效率会变好的用户存储服务,这些用户存储服务中包含很多GCU(t)很高的用户存储服务,可以消耗很少的资源就可以回收出大量存储空间,缓解在分布式存储***的存储空间剩余容量不足而且有大量并发写入的场景时的紧张局面,更好的保证了上文中垃圾回收的两个目标的完成。
综上,本发明实施例中,通过对用户存储服务的读写特征信息的分析以及对未来垃圾回收效率的预测,将用户存储服务分为延迟回收收益优和延迟回收收益差的两类,并根据分布式存储***的当前负载水平和存储空间剩余容量情况,动态调整用户存储服务的回收数量和回收优先级,可以达到如下效果:
1、通过延迟回收让一些用户存储服务的垃圾回收效率变得更高,降低未来对其进行垃圾回收时所消耗的资源量。
2、根据分布式存储***的负载水平动态调整垃圾回收进程的并发度,降低对前台的数据读写任务的影响。
3、在分布式存储***的存储空间剩余容量充足时,让垃圾回收效率一般且在未来某时间不会明显升高的用户存储服务被优先回收,得以回收其占用的存储空间供极端时刻(比如有大量并发数据写入任务时)使用,提升了分布式存储***的存储空间安全水位的保护能力。
4、在分布式存储***的存储空间剩余容量不足且有大量并发数据写入任务的极端场景下,能够找到垃圾回收效率高的用户存储服务,消耗较少的资源便可以回收出更多的存储空间,提升了分布式存储***的存储空间安全水位的保护能力,并且降低对数据读写任务的影响。
以上介绍了图1所示***中管控服务器进行垃圾回收调度的过程,在一可选实施例中,该管控服务器可以与各用户存储服务以及各存储节点通信连接,以用于对各用户存储服务触发的数据读写请求进行处理以及启动垃圾回收进程对各用户存储服务进行垃圾回收处理,还用于查询各个存储节点的存储空间剩余容量以确定分布式存储***在不同时间的存储空间剩余容量。
但是在另一可选实施例中,分布式存储***中除了可以包括上述管控服务器以及若干存储节点外,还可以包含其他功能实体。上述管控服务器所提供的部分功能可以由这些功能实体来完成,或者说管控服务器可以通过管控这些功能实体以提供数据读写服务以及垃圾回收服务。
下面结合图5来示例说明一种分布式存储***的组成结构,以及在该分布式存储***中上述垃圾回收调度方法的实施过程。
图5为本发明实施例提供的一种垃圾回收***的示意图,如图5所示,该垃圾回收***包括:分布式存储***以及使用该分布式存储***的多个用户存储服务,比如图5中示意的用户存储服务1、用户存储服务2和用户存储服务3。
分布式存储***中包括管控服务器、多个存储节点,比如图5中示意的存储节点1——存储节点N。
除此之外,如图5中所示,该分布式存储***中还包括:元数据服务器以及多个读写服务进程。多个读写服务进程比如图5中示意的读写服务进程1、读写服务进程2和读写服务进程3。上述多个存储节点分别与元数据服务器连接。
实际上,该分布式存储***中还包括:多个垃圾回收进程,比如图5中示意的垃圾回收进程1、垃圾回收进程2和垃圾回收进程3。
简单来说,读写服务进程为用户存储服务提供数据读写能力,对用户存储服务触发的数据读写请求进行处理;垃圾回收进程用于对用户存储服务对应的日志文件进行垃圾回收处理;存储节点用于存储从日志文件中切分出的各个数据块;元数据服务器用于实现该数据块的切分、存储以及查询管理。
从物理部署角度来说,可选地,垃圾回收进程以及读写服务进程可以位于存储节点内。即可以全部或部分存储节点在启动运行时便默认开启这两种进程。只是由管控服务器来向这两种进程发送对应的任务的:向读写服务进程发送用户存储服务触发的数据读写请求,向垃圾回收进程发送针对某用户存储服务的垃圾回收任务。
由上述多种功能实体构成的分布式存储***,从功能逻辑层面,可以分为图5中示意的两个层。底层是数据持久化层,由若干存储节点以及元数据服务器构成,向上提供追加写入方式的日志文件(append-only logfile)读写服务。在数据持久化层之上是由多个读写服务进程、多个垃圾回收进程以及管控服务器构成。读写服务进程可以创建日志文件(logfile),不断在日志文件中以追加(append-only)方式进行数据写入,也可以从中随机读取数据。
基于上述分布式存储***的组成,下面先简单介绍下数据读写过程。
假设用户存储服务1触发了数据写入请求,按照负载均衡算法,将该数据写入请求分配给了读写服务进程1,假设读写服务进程1为该用户存储服务1已经创建的日志文件包括日志文件A1和日志文件A2,其中,在日志文件A1中已经写满设定数据量后创建出的日志文件A2。用户存储服务1触发的数据写入请求中假设包括待写入的数据X以及数据X对应的LBA,读写服务进程1基于该数据写入请求,将数据X以及其对应的LBA写入到日志文件A2中,并在读写服务进程1所在设备的内存中存储该LBA与数据X在日志文件A2中的数据位置之间的映射关系。
之后,响应于上述日志文件2中数据X及其对应的LBA的写入,元数据服务器在确定新写入的数据满足一个设定的数据块大小时,生成对应的一个新的数据块,将该数据块及其多个副本存储到不同的存储节点中,并存储该数据块及其各副本与存储节点、用户存储服务、在日志文件2中对应的数据位置之间的对应关系。这样就完成了数据X的数据写入处理过程。
假设用户存储服务1后续需要读取数据X时,会触发包含数据X对应的LBA的数据读取请求,读写服务进程1基于该数据读取请求中携带的LBA,查询内存中存储的LBA与日志文件中数据位置的上述映射关系,以确定该LBA对应的数据X在日志文件A2中的数据位置。之后,可选地,读写服务进程1可以从日志文件A2的该数据位置出读取数据X以反馈给用户存储服务1。或者,可选地,如果在日志文件A2中没有成功读取,则读写服务进程1可以向元数据服务器发送查询请求,查询请求中可以包括用户存储服务1以及该数据位置。元数据服务器查询确定与该用户存储服务1和该数据位置对应的数据块所在的存储节点,向读写服务进程1反馈该存储节点的标识,从而读写服务进程1从该存储节点中读取数据X。
在图5中,假设用户存储服务1对应的日志文件包括日志文件A1和日志文件A2,用户存储服务2对应的日志文件包括日志文件B1、日志文件B2和日志文件B3,用户存储服务3对应的日志文件包括日志文件C1和日志文件C2。
假设在根据设定的垃圾回收时间间隔确定当前第一时间需要进行一次垃圾回收调度,则管控服务器可以向各个读写服务进程查询当前各个用户存储服务对应的日志文件的总数据量以及有效数据量,还可以查询各个读写服务进程的负载以确定出分布式存储***的负载,以及向元数据服务器查询确定当前分布式存储***的存储空间剩余容量,以根据前述实施例中介绍的垃圾回收方法确定当前需要进行垃圾回收的目标用户存储服务。
具体地,元数据服务器根据在第一时间分布式存储***中多个存储节点的存储空间剩余容量确定分布式存储***的存储空间剩余容量,将分布式存储***的存储空间剩余容量发送至管控服务器。多个读写服务进程在第一时间确定多个用户存储服务各自对应的日志文件中的总数据量和有效数据量,并将多个用户存储服务各自对应的日志文件中的总数据量和有效数据量发送至管控服务器,以使管控服务器确定多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
多个读写服务进程向管控服务器发送第一时间时各自的负载,管控服务器根据多个读写服务进程在第一时间的负载,确定分布式存储***在第一时间的负载,从而可以根据分布式存储***在第一时间的负载确定启动的垃圾回收进程的目标数量,以启动该目标数量的垃圾回收进程以对目标用户存储服务进行垃圾回收处理。
假设确定当前需要依次对用户存储服务1、用户存储服务2和用户存储服务3进行垃圾回收处理,则管控服务器可以向图5中示意的三个垃圾回收进程发送相应的垃圾回收任务。比如向垃圾回收进程1发送针对用户存储服务1的垃圾回收任务,向垃圾回收进程2发送针对用户存储服务2的垃圾回收任务,向垃圾回收进程3发送针对用户存储服务3的垃圾回收任务。其中,垃圾回收任务中可以包括相应用户存储服务的标识以及该用户存储服务对应的日志文件的标识。
以用户存储服务1为例,垃圾回收进程1收到的垃圾回收任务中包括日志文件A1和日志文件A2的标识。垃圾回收进程1会读取日志文件A1和日志文件A2中的有效数据以写入到一个新的日志文件A12中,并将这些有效数据的LBA以及在日志文件A12中的数据位置更新给用户存储服务1对应的读写服务进程1,然后删除日志文件A1和日志文件A2以回收存储空间。
其中,可以理解的是,删除日志文件A1和日志文件A2的过程,垃圾回收进程1需要查询元数据服务器以确定这两个日志文件对应的各数据块所对应的存储节点,以便从相应存储节点中删除这些数据块。同理,针对新生成的日志文件A12,元数据服务器会确定该日志文件A12对应的各数据块,以多副本形式存入不同存储节点中。
用户存储服务2和用户存储服务3的垃圾回收过程同理,在图5中,由垃圾回收进程2对用户存储服务2进行垃圾回收处理,将日志文件B1、日志文件B2和日志文件B3中的有效数据读出并写入到新的日志文件B13,删除日志文件B1、日志文件B2和日志文件B3。由垃圾回收进程3对用户存储服务3进行垃圾回收处理,将用户存储服务3对应的日志文件C1和日志文件C2中的有效数据读出并写入到新的日志文件C12,删除日志文件C1和日志文件C2。
以下将详细描述本发明的一个或多个实施例的垃圾回收装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种垃圾回收装置的结构示意图,该装置应用于管控服务器,如图6所示,该装置包括:确定模块11、预测模块12、调度模块13。
确定模块11,用于根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
预测模块12,用于预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,所述第二时间晚于所述第一时间。
调度模块13,用于根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
可选地,所述调度模块13具体用于:若所述分布式存储***的存储空间剩余容量低于设定阈值,则根据所述多个用户存储服务各自对应的所述第一垃圾回收效率的排序结果,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
可选地,所述调度模块13具体用于:若所述分布式存储***的存储空间剩余容量高于设定阈值,则根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度,确定第一用户存储服务集合和第二用户存储服务集合;其中,所述第一用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度高于所述第二用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度;根据所述第二用户存储服务集合中各用户存储服务对应的第一垃圾回收效率的排序结果,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
可选地,所述调度模块13还用于:根据所述分布式存储***在所述第一时间的负载,确定启动的垃圾回收进程的目标数量;根据所述垃圾回收进程的目标数量,确定所述第一时间需要进行垃圾回收的目标用户存储服务,以通过所述目标数量的垃圾回收进程并发地对所述目标用户存储服务进行垃圾回收处理。
可选地,所述调度模块13具体用于:在设定的多个负载范围内,确定所述分布式存储***在所述第一时间的负载属于的目标负载范围;根据设定的不同负载范围与垃圾回收进程数量之间的对应关系以及所述目标负载范围,确定所述目标数量;其中,所述对应关系反映出负载越高,垃圾回收进程数量越低。
可选地,所述确定模块11具体用于:对于所述多个用户存储服务中的任一用户存储服务,确定在所述第一时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量;根据在所述第一时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量,确定在所述第一时间所述任一用户存储服务对应的无用数据量;确定在所述第一时间所述任一用户存储服务对应的无用数据量与有效数据量的比值作为在所述第一时间所述任一用户存储服务对应的第一垃圾回收效率。
可选地,所述预测模块12具体用于:获取所述任一用户存储服务呈现出的周期性的读写特征信息;根据所述周期性的读写特征信息,确定在所述第一时间至所述第二时间的时间段内所述任一用户存储服务的读写特征信息;根据在所述第一时间至所述第二时间的时间段内所述任一用户存储服务的读写特征信息,确定在所述第二时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量;根据在所述第二时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量,确定在所述第二时间所述任一用户存储服务对应的第二垃圾回收效率。
图6所示装置可以执行前述实施例中管控服务器执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示垃圾回收装置的结构可实现为一电子设备。如图7所示,该电子设备可以包括:处理器21、存储器22、通信接口23。其中,存储器22上存储有可执行代码,当所述可执行代码被处理器21执行时,使处理器21至少可以实现如前述实施例中客户端执行的垃圾回收方法。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器至少可以实现如前述实施例中提供的垃圾回收方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种垃圾回收方法,其特征在于,所述方法包括:
根据设定的垃圾回收时间间隔,确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率;
预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,所述第二时间晚于所述第一时间;
根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务,包括:
若所述分布式存储***的存储空间剩余容量低于设定阈值,则根据所述多个用户存储服务各自对应的所述第一垃圾回收效率的排序结果,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
3.根据权利要求1所述的方法,其特征在于,所述根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度、所述多个用户存储服务各自对应的所述第一垃圾回收效率以及所述分布式存储***的存储空间剩余容量,确定所述第一时间需要进行垃圾回收的目标用户存储服务,包括:
若所述分布式存储***的存储空间剩余容量高于设定阈值,则根据所述多个用户存储服务各自对应的所述第二垃圾回收效率相比各自对应的所述第一垃圾回收效率的变化程度,确定第一用户存储服务集合和第二用户存储服务集合;其中,所述第一用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度高于所述第二用户存储服务集合中各用户存储服务对应的第二垃圾回收效率相比第一垃圾回收效率的变化程度;
根据所述第二用户存储服务集合中各用户存储服务对应的第一垃圾回收效率的排序结果,确定所述第一时间需要进行垃圾回收的目标用户存储服务。
4.根据权利要求2或3所述的方法,其特征在于,所述确定所述第一时间需要进行垃圾回收的目标用户存储服务,包括:
根据所述分布式存储***在所述第一时间的负载,确定启动的垃圾回收进程的目标数量;
根据所述垃圾回收进程的目标数量,确定所述第一时间需要进行垃圾回收的目标用户存储服务,以通过所述目标数量的垃圾回收进程并发地对所述目标用户存储服务进行垃圾回收处理。
5.根据权利要求4所述的方法,其特征在于,所述根据所述分布式存储***在所述第一时间的负载,确定启动的垃圾回收进程的目标数量,包括:
在设定的多个负载范围内,确定所述分布式存储***在所述第一时间的负载属于的目标负载范围;
根据设定的不同负载范围与垃圾回收进程数量之间的对应关系以及所述目标负载范围,确定所述目标数量;其中,所述对应关系反映出负载越高,垃圾回收进程数量越低。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述确定使用分布式存储***的多个用户存储服务在第一时间各自对应的第一垃圾回收效率,包括:
对于所述多个用户存储服务中的任一用户存储服务,确定在所述第一时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量;
根据在所述第一时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量,确定在所述第一时间所述任一用户存储服务对应的无用数据量;
确定在所述第一时间所述任一用户存储服务对应的无用数据量与有效数据量的比值作为在所述第一时间所述任一用户存储服务对应的第一垃圾回收效率。
7.根据权利要求6所述的方法,其特征在于,所述预测所述多个用户存储服务在第二时间各自对应的第二垃圾回收效率,包括:
获取所述任一用户存储服务呈现出的周期性的读写特征信息;
根据所述周期性的读写特征信息,确定在所述第一时间至所述第二时间的时间段内所述任一用户存储服务的读写特征信息;
根据在所述第一时间至所述第二时间的时间段内所述任一用户存储服务的读写特征信息,确定在所述第二时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量;
根据在所述第二时间所述任一用户存储服务对应的日志文件中的总数据量和有效数据量,确定在所述第二时间所述任一用户存储服务对应的第二垃圾回收效率。
8.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的垃圾回收方法。
9.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的垃圾回收方法。
10.一种垃圾回收***,其特征在于,包括:
分布式存储***以及使用所述分布式存储***的多个用户存储服务;其中,所述分布式存储***中包括管控服务器;
所述管控服务器,用于执行权利要求1至7中任一项所述的垃圾回收方法。
11.根据权利要求10所述的***,其特征在于,所述分布式存储***中还包括:多个读写服务进程、元数据服务器以及与所述元数据服务器连接的多个存储节点;
所述元数据服务器,用于根据在所述第一时间所述多个存储节点的存储空间剩余容量确定所述分布式存储***的存储空间剩余容量,将所述分布式存储***的存储空间剩余容量发送至所述管控服务器;
所述多个读写服务进程,用于在所述第一时间确定所述多个用户存储服务各自对应的日志文件中的总数据量和有效数据量,并将多个用户存储服务各自对应的日志文件中的总数据量和有效数据量发送至所述管控服务器,以使所述管控服务器确定所述多个用户存储服务在第一时间各自对应的第一垃圾回收效率。
12.根据权利要求11所述的***,其特征在于,所述多个读写服务进程,还用于向所述管控服务器发送所述第一时间时各自的负载;
所述管控服务器,还用于根据所述多个读写服务进程在所述第一时间的负载,确定所述分布式存储***在所述第一时间的负载,根据所述分布式存储***在所述第一时间的负载确定启动的垃圾回收进程的目标数量,启动所述目标数量的垃圾回收进程以对所述目标用户存储服务进行垃圾回收处理。
CN202310377066.1A 2023-03-31 2023-03-31 垃圾回收方法、设备、存储介质和*** Pending CN116467267A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310377066.1A CN116467267A (zh) 2023-03-31 2023-03-31 垃圾回收方法、设备、存储介质和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310377066.1A CN116467267A (zh) 2023-03-31 2023-03-31 垃圾回收方法、设备、存储介质和***

Publications (1)

Publication Number Publication Date
CN116467267A true CN116467267A (zh) 2023-07-21

Family

ID=87178350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310377066.1A Pending CN116467267A (zh) 2023-03-31 2023-03-31 垃圾回收方法、设备、存储介质和***

Country Status (1)

Country Link
CN (1) CN116467267A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700634A (zh) * 2023-08-08 2023-09-05 苏州浪潮智能科技有限公司 分布式存储***垃圾回收方法、装置及分布式存储***
CN117908794A (zh) * 2024-01-22 2024-04-19 江苏商贸职业学院 计算机分布式存储***中垃圾回收方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700634A (zh) * 2023-08-08 2023-09-05 苏州浪潮智能科技有限公司 分布式存储***垃圾回收方法、装置及分布式存储***
CN116700634B (zh) * 2023-08-08 2023-11-03 苏州浪潮智能科技有限公司 分布式存储***垃圾回收方法、装置及分布式存储***
CN117908794A (zh) * 2024-01-22 2024-04-19 江苏商贸职业学院 计算机分布式存储***中垃圾回收方法

Similar Documents

Publication Publication Date Title
CN116467267A (zh) 垃圾回收方法、设备、存储介质和***
US20230013281A1 (en) Storage space optimization in a system with varying data redundancy schemes
US10802718B2 (en) Method and device for determination of garbage collector thread number and activity management in log-structured file systems
US9355112B1 (en) Optimizing compression based on data activity
US10108547B2 (en) High performance and memory efficient metadata caching
CN104272244B (zh) 用于对处理进行调度以实现空间节省的***、方法
US8760956B1 (en) Data processing method and apparatus
CN110109886B (zh) 分布式文件***的文件存储方法及分布式文件***
US20130046944A1 (en) Storage apparatus and additional data writing method
CN103593256A (zh) 一种基于多层排重的虚机快照备份方法和***
US9823875B2 (en) Transparent hybrid data storage
US11836053B2 (en) Resource allocation for synthetic backups
CN104462389A (zh) 基于分级存储的分布式文件***实现方法
WO2010074848A2 (en) Discardable files
WO2024061108A1 (en) Distributed storage systems and methods thereof, device and storage medium
US8205060B2 (en) Discardable files
US8375192B2 (en) Discardable files
KR20090007926A (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
US9009204B2 (en) Storage system
CN110019870B (zh) 基于内存图像集群的图像检索方法及***
US8478936B1 (en) Spin down of storage resources in an object addressable storage system
CN113835613B (zh) 一种文件读取方法、装置、电子设备和存储介质
CN114153392A (zh) 一种对象存储数据存储管理方法、装置及设备
CN111597147B (zh) 空间回收方法、装置、存储介质以及处理器
US20240086362A1 (en) Key-value store and file system

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