数据更新日志生成方法、数据备份方法、设备及介质与流程

摘要: 本公开涉及计算机数据保护,尤其涉及一种数据更新日志生成方法、数据备份方法、设备及介质。背景技术:1、随着企业的核心业务全面上云,虚拟机作为业务上云的重要承载形式...
数据更新日志生成方法、数据备份方法、设备及介质与流程

本公开涉及计算机数据保护,尤其涉及一种数据更新日志生成方法、数据备份方法、设备及介质。

背景技术:

1、随着企业的核心业务全面上云,虚拟机作为业务上云的重要承载形式,虚拟机的数据备份至关重要,数据备份影响核心业务的数据可靠性与业务连续性。

2、相关技术中,利用定时快照的方式备份虚拟机的数据,即定时触发快照操作,在预设时间点短暂暂停虚拟机的业务,创建磁盘数据的副本并保存为快照文件,以记录该时刻的完整数据状态。

3、然而,相关技术存在无法兼顾虚拟机数据备份准确度和虚拟机业务正常运行的问题。

技术实现思路

1、有鉴于此,本公开提供了一种数据更新日志生成方法、数据备份方法、设备及介质。

2、本公开的一个方面提供了一种数据更新日志生成方法,包括:响应于虚拟机启动,获取虚拟机写入宿主机的存储空间的数据的备份状态,存储空间包括多个子空间,备份状态包括已备份至服务器或未备份至服务器;响应于接收到来自虚拟机的至少一个写请求,针对每个写请求,基于写请求从多个子空间中确定用于存储写请求携带载荷数据的目标子空间,并将载荷数据存储于目标子空间;将目标子空间中载荷数据的备份状态确定为未备份至服务器,并基于写请求生成目标子空间的数据更新日志,数据更新日志用于表征目标子空间的数据更新情况;将多个写请求的数据更新日志打包发送至服务器,以便服务器备份数据更新日志。

3、根据本公开的实施例,在虚拟机启动时获取各子空间中数据的备份状态,依次为后续判断哪些数据需要备份而提供依据。通过写请求确定需要存储载荷数据的目标子空间并存入载荷数据,以此实现虚拟机的写请求。将目标子空间中载荷数据标记为未备份并生成数据更新日志,以便于标记数据更新情况。将多个数据更新日志打包发送至服务器,实现增量备份,减少传输开销。

4、根据本公开的实施例,数据更新日志生成方法还包括:在子空间的数据的备份状态为未备份至服务器的情况下,获取多个子空间的起始地址;基于起始地址将多个子空间的数据依次发送至服务器,并将数据的备份状态更新为已备份至服务器。

5、根据本公开的实施例,在子空间的备份状态为未备份至服务器的情况下,获取各子空间的起始地址,以便于确定数据备份的顺序。基于起始地址将各子空间的数据依次发送至服务器并更新备份状态为已备份至服务器,实现数据的全量备份。

6、根据本公开的实施例,基于写请求生成目标子空间的数据更新日志,包括:基于写请求,确定用于表征数据更新日志生成时间的序列号;根据序列号以及通过解析写请求得到的数据偏移量、数据长度和载荷数据,生成数据更新日志,数据偏移量指示了在存储空间存储载荷数据的起始地址。

7、根据本公开的实施例,基于写请求确定序列号,用于表征数据更新日志的生成时间,以便于对日志的时序进行管理。根据序列号及解析写请求得到的数据偏移量、数据长度和载荷数据生成数据更新日志,以此精准记录该次写请求。

8、根据本公开的实施例,数据更新日志生成方法还包括:获取每次扫描得到的未备份至服务器的子空间的数目增量,扫描包括从存储空间的初始地址扫描至结束地址;在备份状态为未备份至服务器的子空间的数目小于预设阈值或连续两次数目增量相同的情况下,将宿主机的状态从同步状态切换为稳定状态,以及向服务器发送第一通知,指示虚拟机写入宿主机的存储空间的数据已发送至服务器。

9、根据本公开的实施例,获取每次扫描得到的未备份子空间的数目增量,以便于掌握未备份数据的变化趋势。在未备份子空间数目小于预设阈值或连续两次数目增量相同的情况下,将宿主机状态从同步状态切换为稳定状态,表明数据的全量同步趋于完成。而向服务器发送第一通知,指示存储空间的数据已发送至服务器,以便服务器确定全量同步完成。

10、根据本公开的实施例,数据更新日志生成方法还包括:在宿主机切换为稳定状态的情况下,若上一次打包发送多个数据更新日志的时刻至当前时刻的累计时长大于或等于预设阈值,或,多个数据更新日志的数目大于或等于数目阈值,将多个数据更新日志打包发送至服务器。

11、根据本公开的实施例,宿主机处于稳定状态即代表已全量同步存储空间的数据,仅需关注写请求带来的数据更新情况,所以后续需要打包发送日志以使服务器同步。利用自上次打包发送数据更新日志以来的累计时长是否达到预设阈值或日志数目是否达到数目阈值判断日志是否需要发送,准确的划分了触发打包发送的时机。满足条件时将多个数据更新日志打包发送至服务器,实现稳定状态下的增量备份,避免频繁传输带来的开销。

12、根据本公开的实施例,数据更新日志生成方法还包括:将多个数据更新日志存储至宿主机的第一预设缓冲区内;在多个数据更新日志的数据量大于第一预设缓冲区的容量的情况下,将溢出第一预设缓冲区的多个数据更新日志存储至宿主机的第二预设缓冲区内,第二预设缓冲区内的数据更新日志发送至服务器的优先级高于第一预设缓冲区内的数据更新日志发送至服务器的优先级;在多个数据更新日志的数据量大于容量阈值的情况下,生成告警信息,容量阈值根据第一预设缓冲区的容量和第二预设缓冲区的容量确定。

13、根据本公开的实施例,将数据更新日志存储至宿主机的第一预设缓冲区,以便于对日志进行暂存管理。在日志数据量超出第一预设缓冲区容量时,将溢出的日志存储至第二预设缓冲区,且第二预设缓冲区的日志发送优先级高于第一预设缓冲区,以此保障溢出数据的优先传输。在日志数据量超过由两个缓冲区容量确定的容量阈值时生成告警信息,以便于及时提醒存储资源不足的风险。

14、根据本公开的实施例,数据更新日志生成方法还包括:响应于接收到来自虚拟机的刷盘指令或强制单元访问指令,向服务器发送第二通知,指示虚拟机启动至当前时刻发送的写请求的载荷数据已存储至物理硬盘。

15、根据本公开的实施例,响应来自虚拟机的刷盘指令或强制单元访问指令,向服务器发送第二通知,指示虚拟机启动至当前时刻的写请求载荷数据已存储至物理硬盘,以便服务器知晓第二通知对应的时间点可以作为可恢复的时间点从而恢复该时间点前的数据。

16、本公开的一个方面提供了一种数据备份方法,应用于服务器,其特征在于,方法包括:响应于接收到来自宿主机的数据更新日志,将数据更新日志进行备份,其中,数据更新日志是利用根据数据更新日志生成方法生成的。

17、本公开的另一方面还提供了一种数据更新日志生成装置,包括:备份状态获取模块,用于响应于虚拟机启动,获取虚拟机写入宿主机的存储空间的数据的备份状态,存储空间包括多个子空间,备份状态包括已备份至服务器或未备份至服务器;目标子空间确定模块,用于响应于接收到来自虚拟机的至少一个写请求,针对每个写请求,基于写请求从多个子空间中确定用于存储写请求携带载荷数据的目标子空间,并将载荷数据存储于目标子空间;数据更新日志生成模块,用于将目标子空间中载荷数据的备份状态确定为未备份至服务器,并基于写请求生成目标子空间的数据更新日志,数据更新日志用于表征目标子空间的数据更新情况;日志发送模块,用于将多个写请求的数据更新日志打包发送至服务器,以便服务器备份数据更新日志。

18、本公开的另一方面还提供了一种数据备份装置,包括:日志备份模块,用于响应于接收到来自宿主机的数据更新日志,将数据更新日志进行备份,其中,数据更新日志是利用根据数据更新日志生成方法生成的。

19、本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述方法。

20、本公开的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。

21、本公开的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。

22、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。