数据备份方法和装置与流程

文档序号:37295432发布日期:2024-03-13 20:43阅读:7来源:国知局
数据备份方法和装置与流程

本技术涉及数据备份技术,尤其涉及一种数据备份方法和装置。


背景技术:

1、客户端定期会对不同业务对象的数据生成副本,并将这些副本在预定的时间窗口内传给后台的备份系统,即为备份任务。对于众多待传输的备份任务,备份编排的目标是设计一套高效的备份传输资源(传输时间、带宽等)分配及调度方案,将有限的备份资源分配给众多待传输的备份任务,使得尽可能多的备份任务能在预定的时间窗内完成,并最大化整个系统的备份带宽/吞吐。

2、相关技术中,采用了基于动态调度的备份编排方案,通过动态设置任务优先级和/或任务启动时间来实现,其中,任务优先级由客户设置,任务启动时间是根据系统实时状态动态计算得到。如此一来,该方案的调度效果很大程度受客户人工经验及随机操作的影响,可能会对备份系统及各个备份任务的动态特性的匹配精度不够。此外,在备份任务执行过程中,需要通过抢断式中断操作来自适应任务启动后的动态波动,但抢断式中断操作会导致额外的中断及恢复开销,影响系统的吞吐及任务的服务级别协议(service levelagreement,sla)时间窗遵从。


技术实现思路

1、本技术提供一种数据备份方法和装置,以充分考虑备份系统及各个备份任务的动态特性的匹配精度,并避免人工对多备份任务的调度干预,提高任务的sla时间窗遵从度克服。

2、第一方面,本技术提供一种数据备份方法,包括:获取多个业务对象的第一备份数据量和第一任务完成时间,所述第一备份数据量和所述第一任务完成时间与所述多个业务对象的上一次备份任务对应;根据所述第一备份数据量和所述第一任务完成时间获取所述多个业务对象的下一次备份任务的调度顺序;根据所述多个业务对象的下一次备份任务的调度顺序向客户端发送调度指示,所述调度指示包括即将调度的备份任务对应的业务对象的标识。

3、本技术实施例,通过机器学习模型,基于多个业务对象的上一次备份任务的备份数据量和任务完成时间预测得到多个业务对象的下一次备份任务的调度顺序,可以充分考虑备份系统及各个备份任务的动态特性的匹配精度,还可以避免人工对多备份任务的调度干预,提高任务的sla时间窗遵从度。

4、客户端的多个业务对象可以包括支持各种操作系统(例如,windows、unix、linux、vmware等)的服务器的业务对象,也可以包括各类数据库(例如,oracle、sql、db2等)的业务对象,还可以包括其他有数据备份需求的设备或服务的业务对象,本技术实施例对此不做具体限定。应理解,一个客户端可以包括多个业务对象,例如,服务器上创建了多个vm,其中一个vm即为一个业务对象,又例如,数据库创建了针对多个用户的数据库服务,其中一个数据库服务即为一个业务对象。

5、第一备份数据量和第一任务完成时间与多个业务对象的上一次备份任务对应。业务对象的数据备份需求是一个长期且周期重复性的过程,例如,一个业务对象会以一定的备份频率(例如,每小时、每天、每周、每月等)定期的将生产数据从客户端通过交换网络备份到后台的备份系统,因此业务对象可以将每次的数据传输过程当作一个备份任务。可见业务对象的备份任务是周期性启动并执行的,基于此,本技术实施例中,将下一周期中即将执行的备份任务称作业务对象的下一次备份任务,将该备份任务之前的上一周期中已经执行的备份任务称作业务对象的上一次备份任务。

6、客户端可以在一个业务对象的所有备份数据都传输完后,即该业务对象的上一次备份任务执行完成后,将该备份任务的备份数据量和任务完成时间(job completiontime,jct)上报给备份系统。这样,在一段时间后,例如,每天结束时、每月结束时,备份系统可以获取到多个业务对象的上一次备份任务的备份数据量和任务完成时间(即第一备份数据量和第一任务完成时间)。

7、本技术实施例中,备份系统可以采用以下两种方法获取多个业务对象的下一次备份任务的调度顺序:

8、一、将第一备份数据量和第一任务完成时间输入第一机器学习模型以得到多个业务对象的下一次备份任务的调度顺序。

9、二、将第一备份数据量和第一任务完成时间输入第二机器学习模型以得到多个业务对象的第二备份数据量和第二任务完成时间,该第二备份数据量和第二任务完成时间与多个业务对象的下一次备份任务对应;根据第二备份数据量和第二任务完成时间获取多个业务对象的下一次备份任务的调度顺序。

10、在得到多个业务对象的第二备份数据量和第二任务完成时间后,针对多个业务对象中的任意一个业务对象(例如,第一业务对象),备份系统可以计算第一业务对象对应的第二备份数据量和第二任务完成时间的比值以得到第一业务对象的下一次备份任务的容易度。即,备份系统要计算多个业务对象各自的下一次备份任务的容易度,该容易度是第二备份数据量和第二任务完成时间的比值,该比值越大,表示下一次备份任务越容易,该比值越小,表示下一次备份任务越难。

11、再根据第一业务对象对应的第二任务完成时间获取第一业务对象的下一次备份任务的剩余启动时间。

12、备份系统可以对任务最晚结束时间maxendtime(该信息在业务对象注册或重配置时上报给备份系统)、第二任务完成时间以及当前时间t求差,以得到下一次备份任务的剩余启动时间。

13、当多个业务对象的下一次备份任务的容易度和多个业务对象的下一次备份任务的剩余启动时间均得到后,根据多个业务对象的下一次备份任务的容易度和多个业务对象的下一次备份任务的剩余启动时间获取多个业务对象的下一次备份任务的调度顺序。

14、针对第一业务对象,备份系统获取到其下一次备份任务的容易度和下一次备份任务的剩余启动时间后,可以计算第一业务对象的下一次备份任务的容易度和多个业务对象的下一次备份任务的剩余启动时间的比值,以得到第一业务对象的下一次备份任务的调度阈值。采用相同计算方法,备份系统可以得到所有业务对象的下一次备份任务的调度阈值,调度阈值越大,表示下一次备份任务容易完成且时间紧迫,需尽快启动,调度阈值越小,表示下一次备份任务较难完成且时间宽松,可以暂缓启动。然后将多个业务对象的下一次备份任务的阈值按照从大到小的顺序排序以得到多个业务对象的下一次备份任务的调度顺序。

15、以上两种方法采用了两个机器学习模型,区别在于机器学习模型的输出不同,这与机器学习模型的训练过程相关,此外机器学习模型还可以输出其他信息,以辅助于获取多个业务对象的下一次备份任务的调度顺序。因此本技术实施例不限定机器学习模型的输出。无论哪一种机器学习模型,在训练时都充分考虑到了系统的吞吐及任务的sla时间窗遵从,结合备份任务的动态特性(例如,备份任务的备份数据量、任务完成时间、任务最早启动时间、任务最晚结束时间等),对备份系统及各个备份任务的动态特性的匹配精度进行训练,从而使得机器学习模型的预测结果更接近于实际执行结果。

16、本技术实施例还可以采用除上述另种方法以外的其他方法获取多个业务对象的下一次备份任务的调度顺序,对此也不做具体限定。

17、在一种可能的实现方式中,备份系统可以先判断第一业务对象的下一次备份任务是否取消;当第一业务对象的下一次备份任务不取消时,根据多个业务对象的下一次备份任务的容易度和多个业务对象的下一次备份任务的剩余启动时间获取多个业务对象的下一次备份任务的调度顺序。

18、本技术实施例中,备份系统可以判断第一业务对象的下一次备份任务的剩余启动时间是否小于0。当第一业务对象的下一次备份任务的剩余启动时间小于0(表示已经过了第一业务对象的下一次备份任务的最晚结束时间)时,计算第一业务对象的下一次备份任务的取消概率(例如,计算1-p,p为预先设定的概率值,1-p越大表示第一业务对象的下一次备份任务的取消概率越大,就越可能被取消,1-p越小表示第一业务对象的下一次备份任务的取消概率越小,就越可能不被取消);当第一业务对象的下一次备份任务的取消概率大于预设阈值时,确定取消第一业务对象的下一次备份任务;当第一业务对象的下一次备份任务的取消概率小于或等于预设阈值时,确定不取消第一业务对象的下一次备份任务。当第一业务对象的下一次备份任务的剩余启动时间大于或等于0(表示还没到第一业务对象的下一次备份任务的最晚结束时间)时,确定不取消第一业务对象的下一次备份任务。

19、这样可以只针对不取消的业务对象的下一次备份任务进行调度,避免因调度了需要被取消的业务对象的下一次备份任务,导致的非必要调度,从而提高多个业务对象的下一次备份任务的调度效率。

20、备份系统在得到多个业务对象的下一次备份任务的调度顺序后,可以按实时可用的并行线程数,按照调度顺序依次从调度队列取队首的备份任务,作为即将调度的备份任务,并向客户端发送调度指示,该调度指示包括即将调度的备份任务的标识。例如,实时可用的并行线程数为2,那么当前可以调度的备份任务可以有2个,因此备份系统从调度队列的队首取2个备份任务(例如,job id为1和2),向客户端发送调度指示,包括job id=1和job id=2。

21、可选的,客户端在完成多个业务对象的下一次备份任务后,再次向备份系统上报多个业务对象的该次备份任务的备份数据量和任务完成时间。客户端可以选择每完成一个业务对象的备份任务就发送该备份任务的备份数据量和任务完成时间,客户端也可以选择完成多个业务对象的备份任务后,一次性发送多个业务对象的该次备份任务的备份数据量和任务完成时间,对此不做具体限定。

22、在一种可能的实现方式中,所述根据所述多个业务对象的下一次备份任务的调度顺序向客户端发送调度指示之后,还包括:接收所述客户端发送的第二业务对象的备份任务在上一个周期内的发送速率和接收速率,所述第二业务对象的备份任务正在执行中;根据所述发送速率和所述接收速率获取所述第二业务对象的备份任务在下一个周期内的限速速率;向所述客户端发送限速指示,所述限速指示包括所述第二业务对象的备份任务在下一个周期内的限速速率。

23、本技术实施例,通过机器学习模型,基于多个业务对象的备份任务在上一个周期内的发送速率和接收速率预测得到多个业务对象的备份任务在下一个周期内的限速速率,可以使得端口带宽资源能基于任务的实时传输特性得到最佳的使用,提高系统的吞吐量,还可以避免人工对多备份任务的调度干预,提高系统传输效率。

24、第二业务对象的备份任务正在执行中,即本技术实施例中,可以针对正在执行中的备份任务(客户端正在向备份系统发送该备份任务的备份数据),进行限速,以使得端口带宽资源能基于任务的实时传输特性得到最佳的使用,提高系统的吞吐量。

25、如上文所述,业务对象的备份任务是周期性执行的,正在执行中的备份任务可以认为是处于当前周期(亦可以称作下一个周期)内,那么上一次执行该备份任务的周期可以认为是该备份任务的上一个周期。

26、通常备份任务在一个周期内的发送速率和接收速率是动态变化的,因此本技术实施例中可以设置速率上报周期,客户端根据该上报周期向备份系统上报在上一个上报周期内的第二业务对象的备份任务的发送速率和接收速率,该发送速率和接收速率看作是在上一个上报周期内的平均发送速率和平均接收速率,或者,也可以看作是在上一个上报周期内的加权平均发送速率和加权平均接收速率,对此不做具体限定。

27、备份系统可以将发送速率和接收速率输入第三机器学习模型以得到第二业务对象的备份任务在下一个周期内的接收速率;然后根据第二业务对象的备份任务在下一个周期内的接收速率获取第二业务对象的备份任务在下一个周期内的限速速率。

28、备份系统可以获取第一端口的预设带宽,第一端口用于执行第二业务对象的备份任务;获取第一端口传输的所有备份任务在下一个周期内的接收速率之和;根据第一端口的预设带宽、第二业务对象的备份任务在下一个周期内的接收速率以及接收速率之和获取第二业务对象的备份任务在下一个周期内的限速速率。表示成公式如下:

29、

30、其中,备份任务i的预测接收速率为第二业务对象的备份任务在下一个周期内的接收速率,第一端口传输的所有备份任务的预测接收速率之和是在第一端口上传输的所有备份任务在下一个周期内的接收速率之和。

31、需要说明的是,本技术实施例还可以采用其他方法计算得到第二业务对象的备份任务在下一个周期内的限速速率,对此不做具体限定。

32、备份系统将第二业务对象的备份任务在下一个周期内的限速速率通过限速指示发送给客户端,这样客户端就可以基于该限速速率对传输第二业务对象的备份任务的备份数据的发送速率进行限制。

33、客户端可以基于限速速率对传输第二业务对象的备份任务的备份数据的发送速率进行限制,以使得端口带宽资源能基于任务的实时传输特性得到最佳的使用,提高系统的吞吐量。

34、在一种可能的实现方式中,还包括:训练得到目标机器学习模型,所述目标机器学习模型包括第一机器学习模型、第二机器学习模型和第三机器学习模型中的至少之一,所述第一机器学习模型用于预测业务对象的下一次备份任务的调度顺序,所述第二机器学习模型用于预测业务对象的第二备份数据量和第二任务完成时间,所述第三机器学习模型用于预测业务对象的备份任务在下一个周期内的接收速率。

35、训练数据是用于训练机器学习模型的数据,根据机器学习模型的结构、参数、功能等的不同,训练数据可以不同。

36、本技术实施例中,目标机器学习模型包括第一机器学习模型、第二机器学习模型和第三机器学习模型中的至少之一,其中,第一机器学习模型用于预测业务对象的下一次备份任务的调度顺序,第二机器学习模型用于预测业务对象的第二备份数据量和第二任务完成时间,第三机器学习模型用于预测业务对象的备份任务在下一个周期内的接收速率。

37、可选的,备份系统可以获取多个业务对象的历史备份数据量和历史任务完成时间,历史备份数据量和历史任务完成时间和多个业务对象的已完成备份任务对应;获取预设的机器学习模型;将多个业务对象的历史备份数据量和历史任务完成时间输入预设的机器学习模型以得到多个业务对象的预测备份数据量和预测任务完成时间;基于预测备份数据量和预测任务完成时间进行收敛训练以得到目标机器学习模型。

38、可选的,备份系统可以获取多个业务对象的已完成备份任务的历史接收速率和历史发送速率;获取预设的机器学习模型;将历史接收速率和历史发送速率输入预设的机器学习模型以得到多个业务对象的备份任务的预测接收速率;基于预测接收速率进行收敛训练以得到目标机器学习模型。

39、上述两种训练方法,主要区别在于训练数据,可选的,在预设的机器学习模型上也可以有不同,包括预设的机器学习模型的结构、参数等不同,对此本技术实施例不做具体限定。

40、在训练机器学习模型的过程中,因为希望机器学习模型的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层机器学习模型的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为机器学习模型中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度机器学习模型能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么机器学习模型的训练就变成了尽可能缩小这个loss的过程。

41、机器学习模型还可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的模型中参数的大小,使得模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的机器学习模型的参数,例如权重矩阵。

42、第二方面,本技术提供一种数据备份装置,包括:获取模块,用于获取多个业务对象的第一备份数据量和第一任务完成时间,所述第一备份数据量和所述第一任务完成时间与所述多个业务对象的上一次备份任务对应;调度模块,用于根据所述第一备份数据量和所述第一任务完成时间获取所述多个业务对象的下一次备份任务的调度顺序;发送模块,用于根据所述多个业务对象的下一次备份任务的调度顺序向客户端发送调度指示,所述调度指示包括即将调度的备份任务对应的业务对象的标识。

43、在一种可能的实现方式中,所述调度模块,具体用于将所述第一备份数据量和所述第一任务完成时间输入第一机器学习模型以得到所述多个业务对象的下一次备份任务的调度顺序。

44、在一种可能的实现方式中,所述调度模块,具体用于将所述第一备份数据量和所述第一任务完成时间输入第二机器学习模型以得到所述多个业务对象的第二备份数据量和第二任务完成时间,所述第二备份数据量和所述第二任务完成时间与所述多个业务对象的下一次备份任务对应;根据所述第二备份数据量和所述第二任务完成时间获取所述多个业务对象的下一次备份任务的调度顺序。

45、在一种可能的实现方式中,所述调度模块,具体用于计算第一业务对象对应的所述第二备份数据量和所述第二任务完成时间的比值以得到所述第一业务对象的下一次备份任务的容易度,所述第一业务对象是所述多个业务对象中的任意一个;根据所述第一业务对象对应的所述第二任务完成时间获取所述第一业务对象的下一次备份任务的剩余启动时间;当所述多个业务对象的下一次备份任务的容易度和所述多个业务对象的下一次备份任务的剩余启动时间均得到后,根据所述多个业务对象的下一次备份任务的容易度和所述多个业务对象的下一次备份任务的剩余启动时间获取所述多个业务对象的下一次备份任务的调度顺序。

46、在一种可能的实现方式中,所述调度模块,还用于判断所述第一业务对象的下一次备份任务是否取消;当所述第一业务对象的下一次备份任务不取消时,根据所述多个业务对象的下一次备份任务的容易度和所述多个业务对象的下一次备份任务的剩余启动时间获取所述多个业务对象的下一次备份任务的调度顺序。

47、在一种可能的实现方式中,所述调度模块,具体用于计算所述多个业务对象的下一次备份任务的容易度和所述多个业务对象的下一次备份任务的剩余启动时间的比值以得到所述多个业务对象的下一次备份任务的调度阈值;将所述多个业务对象的下一次备份任务的阈值按照从大到小的顺序排序以得到所述多个业务对象的下一次备份任务的调度顺序。

48、在一种可能的实现方式中,所述调度模块,具体用于判断所述第一业务对象的下一次备份任务的剩余启动时间是否小于0;当所述第一业务对象的下一次备份任务的剩余启动时间小于0时,计算所述第一业务对象的下一次备份任务的取消概率;当所述第一业务对象的下一次备份任务的取消概率大于预设阈值时,确定取消所述第一业务对象的下一次备份任务。

49、在一种可能的实现方式中,所述调度模块,还用于当所述第一业务对象的下一次备份任务的剩余启动时间大于或等于0时,确定不取消所述第一业务对象的下一次备份任务。

50、在一种可能的实现方式中,所述调度模块,还用于当所述第一业务对象的下一次备份任务的取消概率小于或等于预设阈值时,确定不取消所述第一业务对象的下一次备份任务。

51、在一种可能的实现方式中,还包括:限速模块,用于接收所述客户端发送的第二业务对象的备份任务在上一个周期内的发送速率和接收速率,所述第二业务对象的备份任务正在执行中;根据所述发送速率和所述接收速率获取所述第二业务对象的备份任务在下一个周期内的限速速率;所述发送模块,还用于向所述客户端发送限速指示,所述限速指示包括所述第二业务对象的备份任务在下一个周期内的限速速率。

52、在一种可能的实现方式中,所述限速模块,具体用于将所述发送速率和所述接收速率输入第三机器学习模型以得到所述第二业务对象的备份任务在下一个周期内的接收速率;根据所述第二业务对象的备份任务在下一个周期内的接收速率获取所述第二业务对象的备份任务在下一个周期内的限速速率。

53、在一种可能的实现方式中,所述限速模块,具体用于获取第一端口的预设带宽,所述第一端口用于执行所述第二业务对象的备份任务;获取所述第一端口传输的所有备份任务在下一个周期内的接收速率之和;根据所述第一端口的预设带宽、所述第二业务对象的备份任务在下一个周期内的接收速率以及所述接收速率之和获取所述第二业务对象的备份任务在下一个周期内的限速速率。

54、在一种可能的实现方式中,还包括:训练模块,用于训练得到目标机器学习模型,所述目标机器学习模型包括第一机器学习模型、第二机器学习模型和第三机器学习模型中的至少之一,所述第一机器学习模型用于预测业务对象的下一次备份任务的调度顺序,所述第二机器学习模型用于预测业务对象的第二备份数据量和第二任务完成时间,所述第三机器学习模型用于预测业务对象的备份任务在下一个周期内的接收速率。

55、在一种可能的实现方式中,所述训练模块,具体用于获取所述多个业务对象的历史备份数据量和历史任务完成时间,所述历史备份数据量和所述历史任务完成时间和所述多个业务对象的已完成备份任务对应;获取预设的机器学习模型;将所述多个业务对象的历史备份数据量和历史任务完成时间输入所述预设的机器学习模型以得到所述多个业务对象的预测备份数据量和预测任务完成时间;基于所述预测备份数据量和所述预测任务完成时间进行收敛训练以得到所述目标机器学习模型。

56、在一种可能的实现方式中,所述训练模块,具体用于获取所述多个业务对象的已完成备份任务的历史接收速率和历史发送速率;获取预设的机器学习模型;将所述历史接收速率和历史发送速率输入所述预设的机器学习模型以得到所述多个业务对象的备份任务的预测接收速率;基于所述预测接收速率进行收敛训练以得到所述目标机器学习模型。

57、第三方面,本技术提供一种备份系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。

58、第四方面,本技术提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一方面中任一项所述的方法。

59、第五方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中任一项所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1