一种减少数据同步量的数据同步方法及系统

文档序号:1627691 发布日期:2020-01-14 浏览:1次 >En<

阅读说明:本技术 一种减少数据同步量的数据同步方法及系统 (Data synchronization method and system for reducing data synchronization quantity ) 是由 秦文航 严崇文 陈勇铨 汪俊 杜志波 于 2019-09-29 设计创作,主要内容包括:本发明公开了一种减少数据同步量的数据同步方法及系统,所述方法包括如下步骤:步骤S1,对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图,并对源端磁盘与备端磁盘相应区块的数据进行对比,根据对比结果更新位图信息,生成同步位图,根据所述同步位图实现初次数据同步;步骤S2,监测源端磁盘数据的变化,根据监测结果更新监测位图信息;步骤S3,于同步时,获取监测位图作为同步位图,根据同步位图信息确定同步的源端磁盘区块,并对该源端磁盘区块进一步划分,根据划分结果创建新的同步位图,根据新的同步位图读取源端和备端相应区块的数据进行比较,根据比较结果更新新的同步位图,并根据新的同步位图信息进行数据同步。(The invention discloses a data synchronization method and a system for reducing data synchronization quantity, wherein the method comprises the following steps: step S1, dividing the space of the source end disk, establishing a monitoring bitmap of the source end disk according to the dividing result, comparing the data of the corresponding blocks of the source end disk and the standby end disk, updating bitmap information according to the comparison result, generating a synchronous bitmap, and realizing primary data synchronization according to the synchronous bitmap; step S2, monitoring the change of the source end disk data, and updating the monitoring bitmap information according to the monitoring result; step S3, when synchronizing, acquiring the monitoring bitmap as the synchronous bitmap, determining the synchronous source end disk block according to the synchronous bitmap information, further dividing the source end disk block, creating a new synchronous bitmap according to the dividing result, reading the data of the corresponding blocks of the source end and the standby end according to the new synchronous bitmap for comparison, updating the new synchronous bitmap according to the comparison result, and synchronizing the data according to the new synchronous bitmap information.)

一种减少数据同步量的数据同步方法及系统

技术领域

本发明涉及数据同步领域,特别是涉及一种减少数据同步量的数据同步方法及系统。

背景技术

随着科技的飞速发展,计算机已经成为人们生活中必不可少的一部分,而且其重要性还在日益增长,涉及到了各行各业。而随着计算机的发展,人们使用计算机保存的数据量也在飞速的增长,随着服务器海量数据的不断增长,数据的体积变得越来越庞大,同时,各种数据的安全性和重要程度也越来越被人们所重视。

很难想象可能就是几个G的数据,但是它的价值也许无法用金钱来衡量,因为这些重要数据的丢失而造成的损失可能是难以估计的,而大到自然灾害,小到病毒,电源故障乃至操作员的意外操作失误,都会影响系统的正常运行,甚至造成整个系统完全瘫痪,这样很可能会导致那些重要数据的丢失。在信息的收集、处理、存储、传输和分发过程中经常会存在一些问题,其中最值得关注的就是系统失效、数据丢失或遭到破坏,因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。

数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。其实数据备份的本质就是数据的拷贝,当然数据备份这也不仅仅是数据复制那么简单,但是毫无疑问数据复制是数据备份最重要也是最基础的一步,无论什么样的数据备份技术或方法都是以数据同步为前提的。

传统的数据备份技术一般都是定时或监测到源端磁盘数据变化时,将源端磁盘的数据全部同步到备端磁盘上,这种方式简单易行,但是很多时候的数据同步都只是磁盘很小一部分数据发生了变化,很多数据同步都是在做无用功,造成了磁盘读写资源的大量浪费。

由于人们产生的数据越来越多,所以人们对数据备份越来越重视,但也正是由于数据过于的庞大,给数据备份技术带来了很多困难,而海量的数据对数据备份影响最大的毫无疑问是数据同步这一步,因为要备份的数据量越大所需要同步的数据就越多;而且由于源端数据是实时变化的,所以数据同步也就要求备份的数据也要实时更新,因为跟踪数据的变化的精确度会对机器性能产生影响,精确度越高产生的影响越大,同时需要同步的数据也越少,相对的精确度越低对机器产生的影响也越小,但需要同步的数据量也会相应的变大,所以一般情况下都会综合考虑这两个方面寻求一个平衡点确定监测数据变化的精确度。

因此,本发明提出一种减少数据同步量的数据同步技术,以在对机器影响尽可能小的情况下,减少变化数据的同步量,提升数据备份的效率。

发明内容

为克服上述现有技术存在的不足,本发明之目的在于提供一种减少数据同步量的数据同步方法及系统,以在对机器影响尽可能小的情况下,减少变化数据的同步量,使实际变化的数据量与同步的数据量之比尽可能的接近1,提升数据备份的效率。

为达上述目的,本发明提出一种减少数据同步量的数据同步方法,包括如下步骤:

步骤S1,对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图,并对源端磁盘与备端磁盘相应区块的数据进行对比,根据对比结果更新位图信息,生成同步位图,根据所述同步位图实现初次数据同步;

步骤S2,监测源端磁盘数据的变化,根据监测结果更新监测位图信息;

步骤S3,于同步时,获取监测位图作为同步位图,根据同步位图信息确定同步的源端磁盘区块,并对该源端磁盘区块进一步划分,根据划分结果创建新的同步位图,根据新的同步位图读取源端和备端相应区块的数据进行比较,根据比较结果更新新的同步位图,并根据新的同步位图信息进行数据同步。

优选地,步骤S1进一步包括:

步骤S100,对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图,对所述监测位图的每个位的值进行初始化,所述监测位图每个位代表所述源端磁盘空间的某一个连续的区域,其值用于表示源端磁盘对应区块数据是否发生改变;

步骤S101,根据划分结果,将源端每个区块分别与备端相应区块的数据进行比对;

步骤S102,若比对结果为相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为0,若比对结果为不相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为1,生成同步位图,并于更新完监测位图之后,依据生成的同步位图进行初次同步,并在同步过程中每当一个bit位所表示的区块同步完成后将所述同步位图的相应bit位置为0,当更新完所述监测位图并生成所述同步位图后,将所述监测位图的每个bit位全部置为0。。

优选地,于步骤S2中,若监测到源端的磁盘数据变化,则将数据变化对应磁盘区块在所述监测位图的相应位的值则置为1,若未监测到源端的磁盘数据变化,则对应磁盘区块在所述监测位图的相应位的值为0。

优选地,步骤S3进一步包括:

步骤S300,根据所述同步位图信息确定当前数据变化的源端磁盘区块,并对其划分,根据划分结果创建新的同步位图,对所述新的同步位图的每个位的值进行初始化。

步骤S301,依次根据各新同步位图读取源端和备端相应区块的数据进行比较;

步骤S302,根据比较结果更新新的同步位图信息;

步骤S303,根据新的同步位图信息进行数据同步。

优选地,于步骤S303后,还包括:

步骤S304,在根据所述新同步位图信息完成数据同步后,删除所述新同步位图,并将所述同步位图的相应bit位置为0。

优选地,于步骤S300中,将所述新的同步位图的所有位初始化置为1。

优选地,于步骤S302中,若比较结果相同,则将相应的新的同步位图中的位值置为0,若比较结果不同,则将相应的新的同步位图中的位值置为1。

优选地,于步骤S303中,获取新的同步位图中位值为1的位所对应的源端磁盘的区块的数据同步至备端的相应区块。

优选地,于步骤S3后,还包括如下步骤:

当根据所有新的同步位图完成数据同步后,返回步骤S2。

为达到上述目的,本发明还提供一种减少数据同步量的数据同步系统,包括:

监测位图创建及初次同步单元,用于对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图,并对源端磁盘与备端磁盘相应区块的数据进行对比,根据对比结果更新位图信息,生成同步位图,根据所述同步位图实现初次数据同步;

监测更新单元,用于监测源端磁盘数据的变化,根据监测结果更新所述监测位图信息;

新同步位图创建及同步单元,用于于同步时,获取所述监测位图作为同步位图,根据同步位图信息确定同步的源端磁盘区块,并对该源端磁盘区块进一步划分,根据划分结果创建新的同步位图,根据新的同步位图读取源端和备端相应区块的数据进行比较,根据比较结果更新新的同步位图,并根据新的同步位图信息进行数据同步。

与现有技术相比,本发明一种减少数据同步量的数据同步方法及系统在传统的监测到数据差异的数据区块的基础上,通过在同步之前将该些差异数据的区块再次分区并进行一次数据对比,以达到减少需要同步的数据量的目的,本发明在传统数据备份的基础之上,在增加少量CPU运算开销情况下大大减少了数据同步量,从而大量减少了磁盘读写的开销和对内存的消耗,大大降低了数据备份对机器性能的影响,同时也极大的提升了数据同步的效率。

附图说明

图1为本发明一种减少数据同步量的数据同步方法的步骤流程图;

图2为本发明具体实施例中对源端磁盘创建位图的示意图。

图3为本发明具体实施例中对创建新的位图的示意图;

图4为本发明一种减少数据同步量的数据同步系统的系统架构图;

图5为本发明具体实施例中数据同步初次记录的过程示意图;

图6为本发明具体实施例中减少数据同步量的数据同步过程示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种减少数据同步量的数据同步方法的步骤流程图。如图1所示,本发明一种减少数据同步量的数据同步方法,包括如下步骤:

步骤S1,对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图(bitmap),并对源端磁盘与备端磁盘相应区块的数据进行对比,根据对比结果更新位图信息,生成同步位图,根据同步位图实现初次数据同步。

在本发明中,使用位图(bitmap)来记录源端磁盘与备端磁盘的数据是否一致,位图的中的每个位代表了源端磁盘上的某一个连续的区域,区域的大小则由跟踪变化数据的精确度确定,每个位上通过不同值代表相应源端和备端相应区块的数据是否存在差异,例如,值为1代表相应源端和备端相应区块的数据存在差异,值为0则代表源端和备端相应区块的数据相同。

具体地,步骤S1进一步包括:

步骤S100,对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图(bitmap),并对所述监测位图的每个位的值进行初始化,所述监测位图每个位代表所述源端磁盘空间的某一个连续的区域,其值用于表示源端磁盘对应区块数据是否发生改变。在本发明具体实施例中,对源端磁盘空间平均划分为空间大小相等的N个小磁盘空间,如图2所示,图2的左图表示源端磁盘的物理布局,假设源端为一个810MB的磁盘的物理布局,将其从空间上划分为相等的9份,每一份代表90MB的空间,右边则为所建立的的该源端磁盘的位图,每个bit代表源端磁盘上的一个区块,例如监测位图的第一bit位代表源端磁盘上0~90MB的区块,监测位图的每个bit位的值初始化为1,每个位的值用于代表源端磁盘对应区块数据是否发生改变,在本发明具体实施例中,0表示没有改变,1表示有改变。本发明中将监测位图的每个bit位初始化为1,是因为这样用户也可以选择不进行初始化对比,这样就直接进行全盘同步。

步骤S101,根据划分结果,将源端每个区块分别与备端相应区块的数据进行比对;

步骤S102,根据比对结果更新所述监测位图,生成同步位图,根据所述同步位图进行初次同步。具体地,若比对结果为相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为0,若比对结果为不相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为1,并根据更新后的监测位图生成同步位图,于更新完监测位图之后,依据生成的同步位图进行初次同步,并于同步过程中每当一个区块数据同步完成则将同步位图相应bit位置为0。需说明的是,当依据更新后的监测位图生成同步位图后,同时会将监测位图的每个bit位全部置为0,以便后续的监测。

具体地说,本发明在初次同步操作之前会先做一次数据对比,即从源端和备端读取出相应区块的数据进行对比,如果相同则只需更新监测位图(bitmap)中代表相应区块的bit位的值(即更新为0)这样后续则无需进行数据同步,这样如果是备端磁盘以前备份过源端磁盘,该操作可以大大的减少初始同步的数据量。

也就是说,在本发明中,监测所用的监测位图和同步用的同步位图是不同的,同步之前,同步程序会向监测程序获取一份当前监测的监测位图,监测程序收到请求之后就会把当前位图上传给同步程序形成同步位图,在将当前监测位图上传给同步程序之后则把监测位图的每个bit位全部置为0,并在同步过程中根据同步进度更新同步位图,同步完成的区块相应bit位置为0,同步程序会依据同步位图完成此次同步。

步骤S2,监测源端磁盘数据的变化,根据监测结果更新监测位图。

也就是说,进行过步骤S1的初次同步之后,监测位图(bitmap)上所有的bit位值已置为0,之后则需要跟踪源端磁盘数据的变化,当源端的磁盘数据变化时,数据变化对应磁盘区块在监测位图(bitmap)相应bit位的值则置为1,若源端的磁盘数据无变化,则对应磁盘区块在监测位图(bitmap)相应bit位的值则置为0。这里需说明的是,若数据变化对应磁盘区块在监测位图(bitmap)相应bit位的值已经为1,当监测到其数据再次变化时,bit位的值依然是1,不会改变。

步骤S3,于同步时,获取监测位图作为同步位图,根据所述同步位图信息确定同步的源端磁盘区块,并对该源端磁盘区块进一步划分,根据划分结果创建新的同步位图,并根据新同步位图读取源端和备端相应区块的数据进行比较,更新新同步位图信息,并根据新同步位图信息进行数据同步,并于根据所有新同步位图进行数据同步后,将同步位图的相应bit位置为0。同样,当获取监测位图作为同步位图后,同时会将监测位图的每个bit位全部置为0,以便后续的监测。

在本发明中,跟踪记录源端磁盘上的数据变化是为了数据同步,当跟踪到数据变化时,传统的做法就是根据该变化记录的bitmap对相应区块的数据进行同步,但这也可能产生大量不必要的数据同步。具体地说,根据同步位图信息,当同步位图某一bit位上的值为1,则说明其对应的源端磁盘区块当前有数据变化,需要同步,但有时并非该源端磁盘区块所有数据都需要更新,例如,假设同步位图的1bit代表的是1MB的数据,其某个bit值为1,但也许该值为1的bit位代表的区块中只有4KB的数据是不一样,但是数据同步的时候仍然需要将整个区块即1MB的数据进行同步,这相当于有1020KB的数据同步是在做无用功,将会造成的磁盘读写资源的大量浪费,因此为了在同步之前减少数据同步的数据量,于步骤S3,以同步位图(bitmap)为基础,对每个值为1的bit位所代表的源端磁盘区块再次进行分割,以该源端磁盘区块为基础创建新的位图,即,相当于将该bit代表的区块看成是一块小的磁盘,对其进一步划分,然后再利用一个新的同步位图(bitmap)标记该块小磁盘的区块,再做一次对比,然后再根据该新的同步位图(bitmap)进行同步,这样也就可以大大的减小同步的数据量,虽然这会增加一定的CPU的开销,但是相比于减少的同步的数据量则不足为道。

具体地,步骤S3进一步包括:

步骤S300,根据同步位图信息确定当前数据变化的源端磁盘区块,并对其划分,根据划分结果创建新的同步位图,对所述新的同步位图的每个位的值进行初始化。

具体地,根据步骤S2获得的监测位图作为同步位图,获取该同步位图中位值为1对应的源端磁盘区块,并对其进行划分创建对应的新的同步位图,将新同步位图的所有位初始化全置为1。也就是说,根据步骤S2的更新结果,该同步位图中有多少位的值为1就会建立多少个新同步位图。如图3所示,左图为根据监测结果更新的位图信息,假设位置为1对应的源端磁盘区块为360-450MB,将该源端磁盘区块为360-450MB进行划分,将其从空间上划分为相等的9份,每一份代表10MB的空间,根据其创建的新的位图如图3中的右图,所有位初始化全置为1。

步骤S301,依次根据各新同步位图读取源端和备端相应区块的数据进行比较;

步骤S302,根据比较结果更新新的同步位图信息。具体地,若比较结果相同,则将相应的新的同步位图中的位值置为0,若比较结果不同,则将相应的新的同步位图中的位值置为1。

步骤S303,根据新的同步位图信息进行数据同步,即获取新的位图中位值为1的位所对应的源端磁盘的区块的数据同步至备端相应区块。

步骤S304,于根据新同步位图信息完成数据同步后,删除新同步位图,并将所述监测位图的相应bit位置为0。

也就是说,当完成数据同步后,新的同步位图就可以删除来释放计算机资源,因为监测还是以监测位图为基准,新同步位图的目的只是在于减少同步时同步的数据量,至于作为基准的同步位图,对应bit位区块中的数据同步完之后,其相应bit位置为0。

本步骤相当于增加了跟踪变化数据的精确度,但是这个增加的精确度并不是针对整块磁盘,而是经过第一轮跟踪确定的有数据变化的部分区块,这相比于增加整块磁盘监测的精确度的开销是几乎可以忽略或者说缩小了很多倍的,这完全在可以接受的范围之内,其次,因为数据的比较是通过CPU运算完成的,而CPU的运算速度是远远大于磁盘的读写速度的,所以通过CPU运算来减少大量的磁盘读写,可以大大的加快同步数据的速率,从而大大提高了备份的效率。

经过上述步骤,此时已完成了一次数据的同步,当然数据备份不可能只有一次同步,只要当源端数据发生了变化就会需要数据同步,这样才能保证源端和备端数据的一致性,所以会不停的重复步骤S2,S3两步,通过本发明减少数据同步量,可以解放大量的磁盘读写,读写的数据少了自然也就减少了对缓存的使用,也就是解放了一定的内存空间,而数据备份对源端和备端机器影响最大的恰恰就是磁盘读写以及内存的消耗,因此通过本发明可以大大降低数据备份对于机器性能的影响。

图4为本发明一种减少数据同步量的数据同步系统的系统架构图。如图4所示,本发明一种减少数据同步量的数据同步系统,包括:

监测位图创建及初次同步单元401,用于对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图(bitmap),并对源端磁盘与备端磁盘相应区块的数据进行对比,根据对比结果更新位图信息,生成同步位图,根据同步位图实现初次数据同步。

在本发明中,使用位图(bitmap)来记录源端磁盘与备端磁盘的数据是否一致,位图的中的每个位代表了源端磁盘上的某一个连续的区域,区域的大小则由跟踪变化数据的精确度确定,每个位上通过不同值代表相应源端和备端相应区块的数据是否存在差异,例如,值为1代表相应源端和备端相应区块的数据存在差异,值为0则代表源端和备端相应区块的数据相同。

具体地,监测位图创建及初次同步单元401进一步包括:

监测位图创建模块,用于对源端磁盘空间进行划分,根据划分结果建立源端磁盘的监测位图(bitmap),对所述监测位图的每个位的值进行初始化,所述监测位图每个位代表所述源端磁盘空间的某一个连续的区域,其值用于表示源端磁盘对应区块数据是否发生改变。

数据比对模块,用于根据划分结果,将源端每个区块分别与备端相应区块的数据进行比对;

位图信息更新同步模块,根据比对结果更新所述监测位图,生成同步位图,根据所述同步位图进行初次同步。具体地,若比对结果为相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为0,若比对结果为不相同,则将源端磁盘当前区块的数据同步至备端相应区块,同时将源端磁盘当前区块对应的监测位图的相应bit位的值置为1,并根据更新后的监测位图生成同步位图,于更新完监测位图之后,依据生成的同步位图进行初次同步,并于同步过程中每当一个区块数据同步完成则将同步位图相应bit位置为0。需说明的是,当依据更新后的监测位图生成同步位图后,同时会将监测位图的每个bit位全部置为0,以便后续的监测。

监测更新单元402,用于监测源端磁盘数据的变化,根据监测结果更新监测位图信息。

也就是说,进行过初始同步之后,监测位图(bitmap)上所有的bit位值都应置为0,之后则需要利用监测更新单元402跟踪源端磁盘数据的变化,当源端的磁盘数据变化时,数据变化对应磁盘区块在位图(bitmap)相应bit位的值则置为1,若源端的磁盘数据无变化,则对应磁盘区块在位图(bitmap)相应bit位的值则置为0。这里需说明的是,若数据变化对应磁盘区块在位图(bitmap)相应bit位的值已经为1,当监测到其数据再次变化时,bit位的值依然是1,不会改变。

新同步位图创建及同步单元403,用于于同步时,获取监测位图作为同步位图,根据所述同步位图信息确定同步的源端磁盘区块,并对该源端磁盘区块进一步划分,根据划分结果创建新的同步位图,并根据新的同步位图读取源端和备端相应区块的数据进行比较,更新新的同步位图信息,并根据新的同步位图信息进行数据同步,并于根据所有新同步位图进行数据同步后,将同步位图的相应bit位置为0。同样,当获取监测位图作为同步位图后,同时会将监测位图的每个bit位全部置为0,以便后续的监测。

具体地,新同步位图创建及同步单元403进一步包括:

新同步位图创建模块,用于根据位图信息确定当前数据变化的源端磁盘区块,并对其划分,根据划分结果创建新的位图,对所述新的位图的每个位的值进行初始化。

具体地,根据监测更新单元402获得的监测位图作为同步位图,获取该同步位图中位值为1对应的源端磁盘区块,并对其进行划分创建对应的新的同步位图,将新同步位图的所有位初始化全置为1。也就是说,根据监测更新单元402的更新结果,该同步位图中有多少位的值为1就会建立多少个新位图。

数据比较模块,依次根据各新同步位图读取源端和备端相应区块的数据进行比较;

新位图信息更新模块,根据比较结果更新新的同步位图信息。具体地,若比较结果相同,则将相应的新的同步位图中的位值置为0,若比较结果不同,则将相应的新的同步位图中的位值置为1。

数据同步模块,用于根据新的同步位图进行数据同步,即获取新的位图中位值为1的位所对应的源端磁盘的区块的数据同步至备端相应区块,并于根据新同步位图信息完成数据同步后,每完成一个新同步位图的数据同步后,删除新同步位图,并将作为基础的同步位图的相应bit位置为0。

实施例

在本实施例中,本发明一种减少数据同步量的数据同步方法,包括如下步骤:

步骤1,选择源端和备端,建立一个数据备份规则,并创建一个监测位图来记录源端磁盘上的数据变化。这里,创建源端磁盘监测位图主要是为了方便定位数据发生改变的区块,所建立的位图中的每个位代表了磁盘上的某一个连续的区域,区域的大小则由跟踪变化数据的精确度确定,值为1则代表相应源端和备端相应区块的数据存在差异,值为0则代表源端和备端相应区块的数据相同。

步骤2,在初次同步之前先进行一次数据对比,即从源端磁盘和备端磁盘读取出相应区块的数据进行对比,如果相同则更新位图中代表相应区块的bit位的值为0,如果不相同,则将源端磁盘当前区块对应的监测位图的相应bit位的值置为1,形成同步位图,并于更新完位图之后,依据更新后的同步位图进行初次同步,并在同步过程中实时更新同步位图,当同步完成后同步位图的每个bit值应全为0。本步骤中,当依据更新后的监测位图形成同步位图后,同时会将监测位图的每个bit位全部置为0,以便后续的监测。

步骤3,监测源端磁盘数据的变化,更新监测位图信息,如图5所示,在进行了步骤2的初始备份之后,该监测位图(bitmap)上所有的bit位值都置为0,之后则跟踪源端磁盘数据的变化,当源端的磁盘数据变化时,例如图5中磁盘位置5(磁盘空间360-450MB)的数据变化,数据变化对应磁盘区块在位图(bitmap)相应bit位的值则置为1,若源端的磁盘数据无变化,则对应磁盘区块在位图(bitmap)相应bit位的值则置为0。若数据变化对应磁盘区块在位图(bitmap)相应bit位的值已经为1,当监测到其数据再次变化时,bit位的值依然是1,不会改变,例如磁盘位置2和5的数据变化,监测位图对应位置的值置为1,但由于磁盘位置5对应的位图的值已为1,则不予改变。

监测磁盘数据的变化主要是为了数据同步定位,由于不可能每次同步都将整个磁盘备份一遍,所以为了保证同步过后源端和备端数据是一致的,需要监测磁盘上哪些区块发生了改变。更新位图信息主要是为了记录监测数据变化的结果,将其记录在位图上,将数据变化的区块对应位的值置为1,代表该区块的数据发生了改变。

步骤4,同步时以步骤3的位图信息为基础,建立每个数据有变化的区块新的同步位图,然后根据该些新的同步位图进行源端磁盘与备端磁盘对应区块的数据对比,更新该些新的位图,再根据该些新的位图进行数据同步。

本发明中,以位图信息为基础,建立每个数据有变化的区块的新的位图,是为了减少数据备份的开销,这相当于增加了跟踪变化数据的精确度,因为如果对全部磁盘都这么做的话无疑会增加跟踪定位数据改变的开销,本身开始的精确度应该是平衡过各个方面而确定的最合适的精确度,擅自增加毫无疑问会增加数据备份的开销,而基于变化数据的区块则不存在这个问题,因为数据的变化是有限的,虽然多少会增加一些开销但与其带来的好处相比,增加的开销就可以忽略不计了。根据这些新的位图做一个数据对比,更新新的位图目的是为了减少数据同步量,建立新的位图本身的目的就是提高跟踪变化数据的精确度,因为精度高了就可以减少无用的数据同步,即减少了数据同步量。

如图6所示,根据同步前监测的位图信息获得360-450MB的源端磁盘区块对应的位图的相应位为1,将该源端磁盘区块为360-450MB进行划分,将其从空间上划分为相等的9份,每一份代表10MB的空间,根据其创建新的位图,所有位初始化全置为1,按新的位图的区块读取源端磁盘与备端磁盘相应区块的数据进行比对,根据比对结果更新获得新的位图,这样原本需要同步90MB的数据则变成只需要同步20MB的数据了,大大减少了数据同步量。

至此,完成了一次数据同步,并且在传统的数据同步基础上进行了改进,大大的减少了无用的数据同步,同时也降低了数据备份对于机器性能的影响。

当然数据备份不可能只有一次同步,只要当源端数据发生了变化就会需要数据同步,这样才能保证源端和备端数据的一致性,所以会不停的重复步骤3,4两步。

综上所述,本发明一种减少数据同步量的数据同步方法及系统在传统的监测到数据差异的数据区块的基础上,通过在同步之前将该些差异数据的区块再次分区并进行一次数据对比,以达到减少需要同步的数据量的目的,本发明在传统数据备份的基础之上,在增加少量CPU运算开销情况下大大减少了数据同步量,从而大量减少了磁盘读写的开销和对内存的消耗,大大降低了数据备份对机器性能的影响,同时也极大的提升了数据同步的效率。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:缓存系统及其运作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类