一种卷实时备份缓存数据处理方法、系统及存储介质与流程

未命名 07-19 阅读:86 评论:0


1.本发明属于数据容灾备份技术领域,涉及一种卷实时备份缓存数据处理方法、系统及存储介质。


背景技术:

2.在实时备份领域,在生产端中,缓存是用于暂时存放数据,然后由数据发送程序读取缓存中的数据,并将读取到的数据同步发送。
3.实时备份是指实时地对业务数据进行备份的方式。相对于传统定时备份的方式,实时备份可以达到极小的rpo(recovery point objective),最大程度上避免由于故障导致的数据丢失。
4.卷实时备份是一种针对卷的实时备份技术,该技术一般结合存储i/o监控技术,可以分为两个主要步骤:步骤1.生产卷完全同步:任务启动后,通过对生产卷创建快照,通过备份客户端将快照数据通过网络备份到服务端的镜像空间,完成首次同步;步骤2.实时生产卷变化数据监控:一旦快照创建后,备份客户端的监控驱动模块会监控生产卷i/o的变化,将实时变化数据同步到备份系统的日志空间。卷实时备份是数据容灾备份领域的重点研究问题。
5.目前,由于计算机总线和网络带宽不匹配,可能引起短时间网络中断和影响生产端性能,一般会在上述步骤2中增加缓存机制,即将捕获到的i/o变化数据暂放到缓存,再从缓存里读取i/o变化数据进行数据同步,这样可以规避带宽不匹配的情况。但是,由于网络波动、i/o变化数据写入速度过快等因素,会造成缓存被占满,此时业务i/o受到阻塞,卷实时备份任务则会失败,用户一般只能重新启动任务,重新进行上述步骤1和步骤2,这样不仅影响了备份效率,还可能造成数据丢失。
6.因此,在卷实时备份进行过程中,一旦缓存被快速写满,如何避免卷实时备份任务终止,并且避免数据丢失,是当前急需解决的技术问题。


技术实现要素:

7.本发明为了解决上述背景技术中的技术问题,提供一种卷实时备份缓存数据处理方法、系统及存储介质。
8.本发明解决上述技术问题的技术方案如下:第一个方面,提供了一种卷实时备份缓存数据处理方法,所述方法包括步骤:将生产卷磁盘拆分为若干大小相同的数据块;在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;捕获i/o变化数据,并将所述i/o变化数据写入缓存;当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;
当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。
9.在其中一个实施例中,所述将生产卷磁盘拆分为若干大小相同的数据块步骤,包括:将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2n千字节,n为整数,取值为6-13;对全部所述数据块进行依次编号。
10.在其中一个实施例中,在所述在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1步骤中,采用bit-map方法对所述变化记录元素进行排列。
11.在其中一个实施例中,所述当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表步骤,包括:接收到缓存写满信号,启动所述块变化追踪表;获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。
12.在其中一个实施例中,所述当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照步骤,包括:接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;根据所述差异清单,同步差异数据;待完成差异同步后,删除快照。
13.第二个方面,提供了一种卷实时备份缓存数据处理系统,所述系统包括:拆分生产卷磁盘模块,用于将生产卷磁盘拆分为若干大小相同的数据块;创建块变化追踪表模块,用于在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;捕获i/o变化数据模块,用于捕获i/o变化数据,并将所述i/o变化数据写入缓存;更新块变化追踪表模块,用于当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;差异同步模块,用于当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。
14.在其中一个实施例中,所述拆分生产卷磁盘模块,包括:拆分生产卷磁盘单元,用于将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2n千字节,n为整数,取值为6-13;编号数据块单元,用于对全部所述数据块进行依次编号。
15.在其中一个实施例中,所述更新块变化追踪表模块,包括:
第一接收信号单元,用于接收到缓存写满信号,启动所述块变化追踪表;获取基本信息单元,用于获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;获取变化数据块位置单元,用于根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;调整变化值单元,用于根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。
16.在其中一个实施例中,所述差异同步模块,包括:第二接收信号单元,用于接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;获取差异清单单元,用于通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;同步差异数据单元,用于根据所述差异清单,同步差异数据;删除快照单元,用于待完成差异同步后,删除快照。
17.第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的卷实时备份缓存数据处理方法。
18.本发明的有益效果是:(1)本发明块变化追踪表记录了某一时间段磁盘块是否发生io变化,并可以快速且精准地获知变化数据的区域,不用进行复杂的计算和比对,简便有效,为后续进行差异同步奠定了基础;(2)针对缓存被占满的情况,本发明提供了一种新的处理思路,通过采用差异同步的方式来避免数据丢失,避免重新做首次完全同步,提高同步效率,确保卷实时备份任务正常运行;(3)本发明能确保备份系统稳定运行,在生产效率和卷实时备份网络中断容忍度两方面实现了一定平衡。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例1中卷实时备份缓存数据处理方法流程示意图。
21.图2为本发明实施例1中生产卷磁盘与块变化追踪表对应关系图。
22.图3为本发明实施例1中缓存写满时更新块变化追踪表的操作图。
23.图4为本发明实施例2中卷实时备份缓存数据处理系统的结构示意图。
24.图5为本发明实施例2中拆分生产卷磁盘模块结构示意图。
25.图6为本发明实施例2中更新块变化追踪表模块结构示意图。
26.图7为本发明实施例2中差异同步模块结构示意图。
27.附图中,各标号所代表的部件列表如下:
100、拆分生产卷磁盘模块,200、创建块变化追踪表模块,300、捕获i/o变化数据模块,400、更新块变化追踪表模块,500、差异同步模块,1001、拆分生产卷磁盘单元,1002、编号数据块单元,4001、第一接收信号单元,4002、获取基本信息单元,4003、获取变化数据块位置单元,4004、调整变化值单元,5001、第二接收信号单元,5002、获取差异清单单元,5003、同步差异数据单元,5004、删除快照单元。
实施方式
28.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
29.术语解释:bit-map:bitmap,也被称为位图或比特图,针对本发明的计算机卷环境,bitmap它由一系列比特或二进制位组成,可以记录哪些存储块(通常是磁盘扇区)已被分配,哪些还未被分配。bitmap将数据存储在一个位向量中,每个位表示一个磁盘块的状态,通常分为已分配和未分配两种状态。
30.实施例1
31.在一个实施例中,如图1所示,提供一种卷实时备份缓存数据处理方法,该方法包括:s1.将生产卷磁盘拆分为若干大小相同的数据块。
32.可选的,所述步骤s1包括:s11.将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2
n 千字节,n为整数,取值为6-13。具体的,本实施例中每个数据块的大小为1兆。
33.s12.对全部所述数据块进行依次编号。
34.s2.在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;所述块变化追踪表采用bit-map方法对所述变化记录元素进行排列,每个比特位的初始化值为0。
35.值得说明的是,本实施例通过在生产端监控磁盘i/o,并将磁盘拆分为若干大小相同的数据块,让块变化追踪表中的变化记录元素与拆分后的数据块一一对应,那么块变化追踪表就可以记录某一时间段磁盘的某一数据块是否发生io变化,进而能够快速获知差异同步的数据区域。
36.还值得说明的是,由于本实施例变化记录元素的变化值取为0或1,变化记录元素具体可以采用bit、整型、长整型或字符串等作为储存单元,但为了节约内存占用空间,本实施例采用bit-map方法对变化记录元素进行排列。
37.为了便于理解,如图2所示,我们提供一个步骤s1和步骤s2的操作实例:卷实时备份任务启动后,将windows c盘(即生产卷磁盘)拆分为若干1m大小的数据块,每个数据块下标对应c盘的块号,块号从0开始编号,指定块号的计算方式为offset/1m(即数据块总数等于c盘的总大小除以1m)。监控驱动在内存中创建与生产卷对应的块变化追踪表,块变化追踪表由若干bit组成,并将所有值初始化为0。
38.s3.捕获i/o变化数据,并将所述i/o变化数据写入缓存。
39.值得说明的是,在卷实时备份的过程中,会在生产应用与备份源(生产卷,例如windows c盘)之间设置监控驱动,在生产应用进行写磁盘时,监控驱动将捕获的i/o变化数据写入到发送缓存中;之后由应用层的备份系统客户端发送程序读取出i/o变化数据,再将实时变化数据发送至备份系统服务端程序存储。
40.s4.当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表。
41.可选的,所述步骤s4包括:s41.接收到缓存写满信号,启动所述块变化追踪表;s42.获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;s43.根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;s44.根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。
42.为了便于理解,如图3所示,对步骤s41-s44,我们提供一个操作实例:监控驱动接收到缓存写满信号,启动上述块变化追踪表,此后监控驱动继续捕获到一个写i/o变化数据,进行了步骤(1)和步骤(2):(1)监控驱动获得生产应用对windows c盘(生产卷)的写i/o变化数据,该写i/o变化数据的偏移为0,长度4m;(2)对编号为0-3的4个数据块所对应的4个bit所有值进行设置1操作,其余bit所有值仍然为0。
43.s5.当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。
44.可选的,所述步骤s5包括:s51.接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;s52.通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;s53.根据所述差异清单,同步差异数据;s54.待完成差异同步后,删除快照。
45.值得说明的是,为了尽量避免时间差造成的数据损失,在创建生产卷磁盘快照同时,即可设置重新进入实时监控。
46.本实施例在缓存被占满的情况,提供了一种新的处理思路,通过块变化追踪表记录了某一时间段磁盘块是否发生io变化,可以快速且精准地获知变化数据的区域,实现了采用差异同步的方式来来避免数据丢失,避免重新做首次完全同步,提高同步效率,确保卷实时备份任务正常运行。
47.实施例2
48.在一个实施例中,如图4所示,提供一种卷实时备份缓存数据处理系统,该系统包括:拆分生产卷磁盘模块100,用于将生产卷磁盘拆分为若干大小相同的数据块;创建块变化追踪表模块200,用于在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;
捕获i/o变化数据模块300,用于捕获i/o变化数据,并将所述i/o变化数据写入缓存;更新块变化追踪表模块400,用于当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;差异同步模块500,用于当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。
49.在其中一个实施例中,如图5所示,所述拆分生产卷磁盘模块100,包括:拆分生产卷磁盘单元1001,用于将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2n千字节,n为整数,取值为6-13;编号数据块单元1002,用于对全部所述数据块进行依次编号。
50.在其中一个实施例中,如图6所示,所述更新块变化追踪表模块400,包括:第一接收信号单元4001,用于接收到缓存写满信号,启动所述块变化追踪表;获取基本信息单元4002,用于获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;获取变化数据块位置单元4003,用于根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;调整变化值单元4004,用于根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。
51.在其中一个实施例中,如图7所示,所述差异同步模块500,包括:第二接收信号单元5001,用于接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;获取差异清单单元5002,用于通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;同步差异数据单元5003,用于根据所述差异清单,同步差异数据;删除快照单元5004,用于待完成差异同步后,删除快照。
52.本实施例拆分生产卷磁盘模块100,用于将生产卷磁盘拆分为若干数据块;创建块变化追踪表模块200,用于在内存中创建与生产卷对应的块变化追踪表;捕获i/o变化数据模块300,用于捕获i/o变化数据,并将所述i/o变化数据写入缓存;更新块变化追踪表模块400,用于当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;差异同步模块500,用于当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。采用本实施例,能确保备份系统稳定运行,在生产效率和卷实时备份网络中断容忍度两方面实现了一定平衡。
53.实施例3
54.在本实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例1所述的卷实时备份缓存数据处理方法。
55.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导
线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
56.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++、ruby、go,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
57.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

技术特征:
1.一种卷实时备份缓存数据处理方法,其特征在于,包括步骤:将生产卷磁盘拆分为若干大小相同的数据块;在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;捕获i/o变化数据,并将所述i/o变化数据写入缓存;当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。2.根据权利要求1所述的卷实时备份缓存数据处理方法,其特征在于,所述将生产卷磁盘拆分为若干大小相同的数据块步骤,包括:将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2
n
千字节,n为整数,取值为6-13;对全部所述数据块进行依次编号。3.根据权利要求1所述的卷实时备份缓存数据处理方法,其特征在于,在所述在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1步骤中,所述块变化追踪表采用bit-map方法对所述变化记录元素进行排列。4.根据权利要求1所述的卷实时备份缓存数据处理方法,其特征在于,所述当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表步骤,包括:接收到缓存写满信号,启动所述块变化追踪表;获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。5.根据权利要求1所述的卷实时备份缓存数据处理方法,其特征在于,所述当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照步骤,包括:接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;根据所述差异清单,同步差异数据;待完成差异同步后,删除快照。6.一种卷实时备份缓存数据处理系统,其特征在于,所述系统包括:拆分生产卷磁盘模块,用于将生产卷磁盘拆分为若干大小相同的数据块;创建块变化追踪表模块,用于在内存中创建与生产卷对应的块变化追踪表,所述块变化追踪表由若干变化记录元素组成,所述变化记录元素与所述数据块一一对应,所述变化记录元素的变化值为0或1;捕获i/o变化数据模块,用于捕获i/o变化数据,并将所述i/o变化数据写入缓存;
更新块变化追踪表模块,用于当缓存写满时,启动所述块变化追踪表,根据所述i/o变化数据,更新所述块变化追踪表;差异同步模块,用于当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除所述快照。7.根据权利要求6所述卷实时备份缓存数据处理系统,其特征在于,所述拆分生产卷磁盘模块,包括:拆分生产卷磁盘单元,用于将所述生产卷磁盘拆分为若干数据块,每个所述数据块的大小为2
n
千字节,n为整数,取值为6-13;编号数据块单元,用于对全部所述数据块进行依次编号。8.根据权利要求6所述卷实时备份缓存数据处理系统,其特征在于,所述更新块变化追踪表模块,包括:第一接收信号单元,用于接收到缓存写满信号,启动所述块变化追踪表;获取基本信息单元,用于获取i/o变化数据基本信息,所述基本信息为i/o变化数据的偏移和i/o变化数据的长度;获取变化数据块位置单元,用于根据所述基本信息,计算获取生产卷磁盘中变化数据块的位置;调整变化值单元,用于根据所述变化数据块的位置,对块变化追踪表中相应的变化记录元素进行变化值调整。9.根据权利要求6所述卷实时备份缓存数据处理系统,其特征在于,所述差异同步模块,包括:第二接收信号单元,用于接收到缓存清空信号,创建生产卷磁盘快照并重新进入实时监控;获取差异清单单元,用于通过更新后的块变化追踪表和捕捉的变化数据,获取差异清单;同步差异数据单元,用于根据所述差异清单,同步差异数据;删除快照单元,用于待完成差异同步后,删除快照。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一所述的卷实时备份缓存数据处理方法。

技术总结
本发明涉及一种卷实时备份缓存数据处理方法、系统及存储介质。所述方法包括:将生产卷磁盘拆分为若干数据块;创建与生产卷对应的块变化追踪表;捕获I/O变化数据,并其写入缓存;当缓存写满时,启动块变化追踪表,根据I/O变化数据,更新块变化追踪表;当缓存清空时,创建生产卷磁盘快照,通过更新后的块变化追踪表和捕捉的变化数据进行差异同步,再删除快照。所述系统包括:拆分生产卷磁盘模块;创建块变化追踪表模块;捕获I/O变化数据模块;更新块变化追踪表模块;差异同步模块。本发明在缓存被占满的情况,通过采用差异同步的方式避免数据丢失,避免重新做首次完全同步,提高同步效率,确保卷实时备份任务正常运行。保卷实时备份任务正常运行。保卷实时备份任务正常运行。


技术研发人员:黄传波 王东 姜咏杰 陈云 谢俊峰
受保护的技术使用者:成都云祺科技有限公司
技术研发日:2023.06.07
技术公布日:2023/7/18
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐