本发明涉及基础设施领域,尤其涉及一种数据回收方法、系统、装置及计算机可读存储介质。
背景技术:
1、用户在使用基于分布式存储开发的产品(如网盘或对象存储)时,删除操作是最常见的操作之一。在删除操作对应的实际工程实现中,存储系统一般不会立刻将用户想要删除的文件从磁盘上完全清除,因为过多的删除操作会影响到整个系统的性能。因此,一般针对用户删除操作,存储系统常用处理方法是将其想要删除的文件标记为“已删除”状态,使其对用户不可见,以从用户角度删除该文件。进而,存储系统会记录状态为“已删除”但实际在存储介质上仍然存在的文件。在经过宽限期(grace time)后,存储系统会以预定的时间(比如说访问量较小的凌晨)或者统一的时间间隔(比如说每1小时)对这些文件进行删除,从而真正释放存储系统的存储空间,实现分布式存储系统中的垃圾回收。
2、然而,上述垃圾回收过程通常由存储逻辑单元上自发进行,不便于统一进行进度管理;并且垃圾回收过程非常消耗系统资源,存储逻辑单元在执行垃圾回收过程时容易对整个存储集群的数据服务性能造成影响,从而降低了存储集群的性能与垃圾回收的效率。
技术实现思路
1、本发明实施例提供了一种数据回收方法、系统、装置及计算机可读存储介质,能够提升垃圾回收效率与存储集群性能。
2、本发明的技术方案是这样实现的:
3、本发明实施例提供了一种数据回收方法,所述方法包括:
4、在当前调度周期内,获取存储单元集群中存储单元的使用信息;所述使用信息包括回收状态与历史回收时间;
5、基于所述回收状态,确定所述存储单元集群中不处于数据回收状态的至少一个第一存储单元;
6、在所述回收状态表征处于数据回收状态的情况下,将所述回收状态对应的存储单元确定为第二存储单元;
7、基于所述历史回收时间,从所述至少一个第一存储单元中确定目标存储单元;
8、停止所述目标存储单元的数据处理服务,通过所述目标存储单元执行数据回收操作,并更新所述目标存储单元的回收状态;
9、停止所述第二存储单元的数据回收操作,并恢复所述第二存储单元的数据处理服务。
10、本发明实施例提供一种数据回收系统,所述数据回收系统包括:控制单元与存储单元集群;所述控制单元通过预设接口与所述存储单元集群中的存储单元互相连接;其中,
11、所述控制单元,用于在当前调度周期内,获取存储单元集群中存储单元的使用信息;所述使用信息包括回收状态与历史回收时间;基于所述回收状态,确定所述存储单元集群中不处于数据回收状态的至少一个第一存储单元;在所述回收状态表征处于数据回收状态的情况下,将所述回收状态对应的存储单元确定为第二存储单元;基于所述历史回收时间,从所述至少一个第一存储单元中确定目标存储单元;通过所述预设接口,向所述目标存储单元发送数据回收指令,并更新所述目标存储单元的回收状态;通过所述预设接口,向所述第二存储单元发送停止回收指令,并恢复所述第二存储单元的数据处理服务;
12、所述存储单元,用于在接收到所述数据回收指令的情况下,停止数据处理服务,并进行数据回收操作;在接收到所述停止回收指令的情况下,停止数据回收操作,并相应启动数据处理服务。
13、本发明实施例提供一种数据回收装置,所述数据回收装置包括获取单元、确定单元、数据回收单元和恢复单元;其中,
14、所述获取单元,用于在当前调度周期内,获取存储单元集群中存储单元的使用信息;所述使用信息包括回收状态与历史回收时间;
15、所述确定单元,用于基于所述回收状态,确定所述存储单元集群中不处于数据回收状态的至少一个第一存储单元;在所述回收状态表征处于数据回收状态的情况下,将所述回收状态对应的存储单元确定为第二存储单元;基于所述历史回收时间,从所述至少一个第一存储单元中确定目标存储单元;
16、所述数据回收单元,用于停止所述目标存储单元的数据处理服务,通过所述目标存储单元执行数据回收操作,并更新所述目标存储单元的回收状态;
17、所述恢复单元,用于停止所述第二存储单元的数据回收操作,并恢复所述第二存储单元的数据处理服务。
18、上述装置中,所述确定单元,还用于将历史回收时间为空的第一存储单元作为所述目标存储单元;所述历史回收时间表征上一次执行数据回收操作的时间;以及在所述至少一个第一存储单元的历史回收时间均不为空的情况下,基于所述存储单元负载量、所述待回收数据量与所述存储单元使用量中的至少一个,在所述至少一个第一存储单元中确定所述目标存储单元。
19、上述装置中,所述确定单元,还用于根据预设权重,对所述存储单元负载量、所述待回收数据量与所述存储单元使用量中的至少一个进行加权求和,得到所述至少一个第一存储单元中每个第一存储单元的加权值;及根据所述每个第一存储单元的加权值,从所述至少一个第一存储单元中确定出所述目标存储单元。
20、上述装置中,所述确定单元,还用于在所述至少一个第一存储单元中,加权值最高的第一存储单元的数量大于预设数量阈值情况下,将所述加权值最高的第一存储单元作为候选存储单元;以及基于所述候选存储单元的历史回收时间,确定所述目标存储单元。
21、上述装置中,所述确定单元,还用于计算所述候选存储单元的历史回收时间和当前时间的差值;以及基于所述差值,在所述候选存储单元中确定所述目标存储单元。
22、上述装置中,所述恢复单元,还用于通过第一预设接口,向所述第二存储单元发送停止回收指令,以使所述第二存储单元停止数据回收操作;及将所述至少一个第二存储单元的回收状态更新为不处于数据回收状态,并更新所述至少一个第二存储单元的历史回收时间;以及恢复所述第二存储单元的数据处理服务。
23、上述装置中,所述确定单元,还用于在所述回收状态表征不处于数据回收状态、所述工作状态表征正常工作、且所述待回收数据量大于预设数据量阈值的情况下,将所述存储单元确定为第一存储单元,从而确定出所述至少一个第一存储单元。
24、上述装置中,所述数据回收单元,还用于通过第二预设接口,向所述目标存储单元发送数据回收指令,以停止所述目标存储单元的数据处理服务,并通过所述目标存储单元执行数据回收操作;以及将所述目标存储单元的回收状态更新为处于数据回收状态。
25、上述装置中,所述数据回收单元,还用于通过预设等待时间进入下一调度周期,通过所述下一调度周期,对所述存储单元集群进行数据回收处理,从而通过至少一个调度周期,实现对所述存储单元集群的数据回收调度。
26、本发明实施例提供一种数据回收装置,所述数据回收装置包括:
27、存储器,用于存储可执行指令;
28、处理器,用于执行所述存储器中存储的可执行指令时,当所述可执行指令被执行时,所述处理器执行应用于终端的所述数据回收方法。
29、本发明实施例提供了一种存储介质,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如本发明实施例所述的数据回收方法。
30、本发明实施例提供了一种数据回收方法、系统、装置及计算机可读存储介质,该方法包括:在当前调度周期内,获取存储单元集群中存储单元的使用信息;所述使用信息包括回收状态与历史回收时间;基于所述回收状态,确定所述存储单元集群中不处于数据回收状态的至少一个第一存储单元;在所述回收状态表征处于数据回收状态的情况下,将所述回收状态对应的存储单元确定为第二存储单元;基于所述历史回收时间,从所述至少一个第一存储单元中确定目标存储单元;停止所述目标存储单元的数据处理服务,通过所述目标存储单元执行数据回收操作,并更新所述目标存储单元的回收状态;停止所述第二存储单元的数据回收操作,并恢复所述第二存储单元的数据处理服务。上述方案中,在当前调度周期中,根据回收状态确定出目标存储单元与第二存储单元,对目标存储单元停止数据处理服务后,可通过目标存储单元利用其全量资源进行数据回收操作,后续可以根据回收状态恢复存储单元的数据服务,从而实现了对存储单元数据回收操作的统一调度,能充分利用目标存储单元的系统资源,提升垃圾回收效率;并且,能够减少目标存储单元运行垃圾回收操作时对存储集群的数据服务性能的影响,从而也提高了存储集群性能。