一种基于块复制的周期同步系统及方法与流程

文档序号:22176522发布日期:2020-09-11 21:31阅读:139来源:国知局
一种基于块复制的周期同步系统及方法与流程

本发明涉及数据同步技术领域,特别是涉及一种基于块复制的周期同步系统及方法。



背景技术:

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

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

随着数据同步技术的发展,基于块复制的数据同步技术应运而生。基于块复制的数据同步技术的原理是:首先提供一个驱动,用于捕获上层发往磁盘上的所有io,在这里主要关注写操作,使用位图bitmap来记录源磁盘中数据是否发生变化,位图bitmap位数的多少主要取决于源磁盘的大小和定义一个块的大小,假设源磁盘的容量是1g,定义一个块的大小为10m,则为位图bitmap的位数为1g/10m=102.4个位数(一位代表认为定义的一个块)。可以看出这里最后一个块表示数据没有之前设置10m,仅仅为4m。驱动程序一旦捕捉到写操作,则计算出这次写操作的数据落盘的位置,可以明确知道源磁盘的哪些块发生了变化,这时会将事先生成好的位图bitmap对应的哪一个或一些位置1(假设规定0表示无数据变化,1表示有数据变化),在进行数据同步时,则可以根据位图bitmap记录的位置仅同步发生了变化的数据块。

基于块复制的数据同步技术,在备份的过程中,可以忽略文件及其结构,处理过程简洁,因此在执行过程中所花费在搜索操作上的开销较小,备份性能很高。但是现有的基于块复制的数据同步技术都是基于块复制的实时同步技术,也就是说,只要捕捉到数据的写操作就进行数据块的同步,这虽然能够保证数据及时得到同步,但在有些情况下,例如公司有些日常工作时间内产生的数据,并不需要及时同步,有时候可能一周同步一次即可,而这样如果每天实时进行同步,也是在做无用功,同样造成了磁盘读写资源的大量浪费。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种基于块复制的周期同步系统及方法,以通过基于块复制的周期同步,减少磁盘读写资源的浪费,提高备份的效率。

为达上述目的,本发明提出一种基于块复制的周期同步系统,包括:

策略创建及位图构建模块,用于对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块中构建源端磁盘的位图;

驱动模块,用于捕捉源端磁盘上的数据变化,将产生该些变化的io操作转化成对应位图中的位图信息,并根据源端磁盘的保护策略将位图传送至备份模块,所述保护策略包括但不限于周期同步与实时同步;

备份模块,根据获得的位图,将源端磁盘上相应块的数据备份到备端。

优选地,对于周期同步的保护策略,所述策略创建及位图构建模块还需确定周期同步的触发条件。

优选地,所述周期同步的触发条件包括但不限于时间触发条件和/或数据量触发条件。

优选地,所述时间触发条件为设置周期同步的时间点,于当前时间到达所设置的周期同步的时间点时,触发周期同步。

优选地,所述数据量触发条件通过设置同步数据量阈值实现,通过统计需同步的数据量,于需同步的数据量超过预设的同步数据量阈值时,触发周期同步。

优选地,所述数据量触发条件为将通过统计得到当前保护策略下预设时间段内的备份的数据量平均值作为同步数据量阈值,通过统计需同步的数据量,于需同步的数据量超过预设的同步数据量阈值时,触发周期同步。

优选地,当所述驱动模块捕捉源端磁盘上的数据变化并转化成对应位图中的位图信息后,所述源端磁盘的保护策略未触发周期同步,而若源端磁盘又有新的数据写入时,则将前后形成的位图进行合并形成新的位图。

优选地,所述备份模块于接收到所述驱动模块的位图时,将当前接收到的位图与前一次接收到的位图进行整合,根据整合后位图的位图信息将源端磁盘上相应块的数据备份到备端。

优选地,若源端机器突然出现异常,所述备份模块先将当前位图保存在一文件中,若保存成功,则当源端机器开机重启后,在下次同步条件触发时,所述备份模块优先将该文件中的位图和此时驱动模块发过来的位图整合之后进行备份,若保存失败,则当源端机器开机之后下次同步条件触发前,所述备份模块进行一次全同步,以保证数据的一致性。

为达到上述目的,本发明还提供一种基于块复制的周期同步方法,包括如下步骤:

步骤s1,对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块中构建源端磁盘的位图;

步骤s2,利用设置于源端的文件系统之下和硬件磁盘驱动之上的驱动模块,捕捉源端磁盘上的数据变化,将产生该些变化的io操作转化成对应位图中的位图信息,并根据源端磁盘对应的保护策略将位图传送至备份模块;

步骤s3,所述备份模块于接收到驱动模块发送的位图后,将当前接收到的位图与前一次接收到的位图进行整合,根据整合后位图的位图信息将源端磁盘上相应块的数据备份到备端。

与现有技术相比,本发明一种基于块复制的周期同步系统及方法通过利用策略创建及位图构建模块对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块中构建源端磁盘的位图,于源端的文件系统之下和硬件磁盘驱动之上设置驱动模块,利用驱动模块捕捉源端磁盘的io的操作,将产生该些变化的io操作转化成位图中的位图信息传送至备份模块,由备份模块根据位图信息将源端磁盘上相应块的数据备份到备端,实现了基于块复制的周期同步目的,从而减少磁盘读写资源的浪费,提高备份的效率。

附图说明

图1为本发明一种基于块复制的周期同步系统的系统架构图;

图2为本发明具体实施例中驱动模块所应用的系统的系统结构图;

图3为本发明具体实施例中驱动模块监控处理的示意图;

图4为本发明具体实施例中位图创建及更新的示意图;

图5为本发明一种基于块复制的周期同步方法的步骤流程图。

具体实施方式

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

图1为本发明一种基于块复制的周期同步系统的系统架构图。如图1所示,本发明一种基于块复制的周期同步系统,应用于源端,包括:

策略创建及位图构建模块100,用于对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块101中构建源端磁盘的位图(bitmap)。在本发明中,若源端存在多个磁盘,策略创建及位图构建模块100则分别对各源端磁盘创建保护策略,并对各源端磁盘空间进行划分,构建各源端磁盘空间的位图(bitmap)。

在本发明具体实施例中,所述保护策略包括但不限于周期同步与实时同步,也就是说,策略创建及位图构建模块100可以根据需要对各源端磁盘空间创建周期同步或实时同步的保护策略,对于周期同步的保护策略,策略创建及位图构建模块100还需确定周期同步的触发条件,在本发明具体实施例中,所述周期同步的触发条件可以是时间触发条件,即设置周期同步的时间点,例如每隔若干时间触发同步,或者是于指定时间点触发同步(如指定每周二晚10点进行数据同步)等等,所述周期同步的触发条件还可以通过设置同步数据量阈值实现,即设置同步数据量阈值,通过实时统计需同步的数据量,当需同步的数据量超过预设的同步数据量阈值时,触发周期同步,在本发明另一实施例中,所述同步数据量阈值还可以动态确定,例如统计每个保护策略下备份数据量,根据当前保护策略下近期(近期的时间段可预设)备份的数据量平均值,将其作为同步数据量阈值,并通过实时统计需同步的数据量,当需同步的数据量超过所述同步数据量阈值时,触发周期同步。

当然,在本发明具体实施例中,所述周期同步的触发条件还可以既设定时间触发条件,又设定数据量触发条件,可以时间触发条件和数据量触发条件设定优先值,当其中任一触发条件触发时,即触发周期同步。

在对各源端磁盘创建保护策略后,所述策略创建及位图构建模块100还将各源端磁盘空间平均划分为空间大小相等的n个小磁盘空间(若无法平均划分,则对源端磁盘空间划分为n-1个空间大小相等以及最后一个小于其他大小的小磁盘空间),并对其构建位图,将源端磁盘的物理内存全部映射到其对应的位图bitmap中,所述位图中的位与各小磁盘空间对应,位图位数的多少n主要取决于源端磁盘的大小和人为定义一个块的大小,假设某个源磁盘的容量是1g,定义一个块的大小为1m,那么其位图(bitmap)的位数为1g/1m=1024个位数(一位代表人为定义的一个块)。在构建各源端磁盘的位图后,对所述位图的每个位的值进行初始化,在本发明具体实施例中,将所述位图的每一位的值初始化为1,本发明中,规定0表示对应的小磁盘空间无数据变化,1表示对应的小磁盘空间有数据变化,在初始状态,显然所有的数据都是没有同步过的,因此,会将位图的每一位的值初始化为1。

驱动模块101,位于源端的文件系统之下和硬件磁盘驱动之上,以捕捉源端磁盘上的数据变化,将产生该些变化的io操作转化成对应位图中的位图信息,并根据源端磁盘的保护策略将位图传送至备份模块102。

在本发明具体实施例中,由于在生产端(源端)需要捕捉数据变化的位置,当源端磁盘上发生数据变化时,首先需要明确变化数据所处的位置,因此设置驱动模块101位于文件系统之下和硬件磁盘驱动之上,以用来实时捕捉源磁盘上的数据变化,如图2所示,所述驱动模块101用于监控上层发往磁盘驱动上的io操作,所述驱动模块101的行为是实时性质的,即无时无刻都处于监控状态。

一般来说,读操作不会产生数据变化,因此,本发明主要获取写操作产生的数据变化。也就是说,驱动模块101会时刻监听并捕获上层发往源端磁盘驱动的写io,一旦获取,会立刻更新将其位图(bitmap)中对应的位置1,然后根据源端磁盘的保护策略将当前的位图(bitmap)实时或周期触发条件产生时发给备份模块102,并于成功发送之后,立刻将位图(其bitmap)原来1的位置为0,如图3所示。

需说明的是,在策略创建及位图构建模块100构建并初始化位图后,所述驱动模块101即会根据各源端磁盘的保护策略将该位图(bitmap)传给备份模块102,同时将构建于驱动模块101中的位图(bitmap)中所有的位全部置为0,以便实时捕捉源端磁盘上的数据变化,并将其转化成位图中的位图信息。具体地说,若当前源端磁盘的保护策略为周期同步保护策略,则于第一次周期触发条件产生时,进行一次全盘同步,即将该源端磁盘初始化的位图(bitmap)传给备份模块102,同时将驱动模块101中的位图(bitmap)中所有的位全部置为0,以便继续捕捉源端磁盘上的数据变化;若当前源端磁盘的保护策略为实时同步保护策略,则在策略创建及位图构建模块100构建并初始化位图后,即将该源端磁盘初始化的位图(bitmap)发送给备份模块102,同时将构建于驱动模块101中的位图(bitmap)中所有的位全部置为0,以便继续捕捉源端磁盘上的数据变化,并将其转化成位图中的位图信息。

由于驱动模块101时刻都在工作,而在周期同步保护策略当中,当驱动模块101捕捉源端磁盘上的数据变化并转化成对应位图中的位图信息后,此时并没有触发周期同步,在此时候若源端磁盘又有新的数据写入,则将前后形成的位图进行合并形成新的位图,即,若之前已被标记过位图位置为“1”的数据块本次未发生写操作,则其对应位图的位置仍然标记为“1”,若之前已被标记过位图位置为“1”的数据块再次发生写操作,则其对应位图的位置仍为“1”,若之前位图位置为“0”的数据块发生写操作时,则将其对应位图的位置标记为“1”,

如图4所示,假设源端为一个90mb的磁盘的物理布局,将其从空间上划分为相等的9份,每一份代表10mb的空间,位图构建模块100创建相应的位图(bitmap),在进行完第一次周期全同步之后,驱动模块101的位图上的所有位则变为0;当第一次往源端磁盘上更新一些数据,假设这些数据最终落盘在10~20m和30~40m的数据块上,驱动模块101监测到该些数据变化后,则会将位图(bitmap)上块2和块4从0变为1;当第二次继续往源端磁盘上更新一些数据,假设这些数据最终落盘在10~20m和50~60m上,若之前位图中块2对应的位仍为1(即未触发周期同步),则此时只需将位图(bitmap)中块6对应的位从0变为1即可。

在本发明中,驱动模块101是位于文件系统之下和硬件磁盘驱动之上的,其增加了一个软驱动,忽略了文件和结构,处理过程简洁,因此在执行过程中所花费在搜索操作上的开销较少,备份的性能很高,而且当文件出现一个很小的改动的时候,不需要对整个文件做备份,只是会去对做改动部分的磁盘块进行备份,有效的提高了备份效率,节省了备份时间。数据在内核态进行转发,不通过用户层,避免了进程的来回切换开销。而且本发明中驱动模块101是基于磁盘块进行备份的,所以它不受文件系统的限制,可以支持各种文件系统甚至没有文件系统的磁盘也可以进行数据备份。

备份模块102,于接收到驱动模块101发送的位图后,将当前接收到的位图与前一次接收到的位图进行整合,根据整合后位图的位图信息将源端磁盘上相应块的数据备份到备端。

当进行初次全盘同步备份时(第一次周期同步或第一次实时同步),即备份模块102第一次收到驱动模块101发送的位图时,由于此时位图的所有位都为“1”,此时备份模块102会根据收到的位图(bitmap)中的信息将源端磁盘中对应的区域中数据逐一备份至备端,并于每完成一个块的备份时,将备份模块102中的位图(bitmap)中对应的位置为0,等到备份程序中bitmap全部位置为0后,则表示初次全盘同步备份完成。

在后续的增量同步过程中,对于周期同步保护策略来说,等达到第二次周期同步触发条件时,驱动模块101会将当前的位图bitmap发给备份模块102,成功发送之后,会立刻将驱动模块101中的位图bitmap原来1的位置为0,备份模块102于接收到驱动模块101发送的位图时,不管初次同步备份是否完成,有数据变化而没完成同步的数据块,其对应的位图(bitmap)中的位不会自己变为0,对于没有来得及同步的数据块,对应的位图(bitmap)的位还是1,这时备份模块102则需将原来的位图(bitmap)和当前驱动模块101发过来的位图(bitmap)进行整合,并将整合过的位图(bitmap)为备份依据,进行新的一轮备份,如果源端磁盘此时有写操作,则本次的数据变化会在下一次周期同步触发的时候进行同步。

对于周期同步保护策略,由于机器存在的不确定性,如果生产端(源端)机器突然出现异常等情况,周期同步备份还没有完全备份结束(这里的结束指的是当前周期备份的所有需要备份的数据已备份完,没有需要备份的数据了),备份模块102会先将当前位图bitmap保存在一文件中,即当机器出现异常之时备份模块102会尝试将当前位图信息保存在该文件,若保存成功,则当机器开机重启后,在下次同步条件触发时,备份模块102优先将该文件中的位图bitmap和此时驱动模块101发过来的位图bitmap整合之后进行备份,若保存失败,则当机器开机之后下次同步条件触发前,备份模块102会进行一次全同步,以保证数据的一致性。判断当前位图信息是否成功保存的标志位保存在注册表中,当机器开机重启后会加载注册表中相应的信息来判断上次异常之前有没有将位图成功保存到对应的文件中。这里需要说明的是,备份模块102中位图bitmap的位值从1置为0的前提是:备端将该块数据成功写入到备端磁盘上,从而确保了备份的准确性。

图5为本发明一种基于块复制的周期同步方法的步骤流程图。如图5所示,本发明一种基于块复制的周期同步方法,包括如下步骤:

步骤s1,对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块中构建源端磁盘的位图(bitmap)。在本发明中,若源端存在多个磁盘,则分别对各源端磁盘创建保护策略,并对各源端磁盘空间进行划分,构建各源端磁盘空间的位图(bitmap)。

在本发明具体实施例中,所述保护策略包括但不限于周期同步与实时同步,也就是说,可以根据需要对各源端磁盘空间创建周期同步或实时同步的保护策略,对于周期同步的保护策略,还需确定周期同步的触发条件,在本发明具体实施例中,所述周期同步的触发条件可以是时间触发条件,即设置周期同步的时间点,例如每隔若干时间触发同步,或者是于指定时间点触发同步(如指定每周二晚10点进行数据同步)等等,所述周期同步的触发条件还可以通过设置同步数据量阈值实现,即设置同步数据量阈值,通过实时统计需同步的数据量,当需同步的数据量超过预设的同步数据量阈值时,触发周期同步,在本发明另一实施例中,所述同步数据量阈值还可以动态确定,例如统计每个保护策略下备份数据量,根据当前保护策略下近期(近期的时间段可预设)备份的数据量平均值,将其作为同步数据量阈值,并通过实时统计需同步的数据量,当需同步的数据量超过所述同步数据量阈值时,触发周期同步。

当然,在本发明具体实施例中,所述周期同步的触发条件还可以既设定时间触发条件,又设定数据量触发条件,可以时间触发条件和数据量触发条件设定优先值,当其中任一触发条件触发时,即触发周期同步。

在对各源端磁盘创建保护策略后,还将各源端磁盘空间平均划分为空间大小相等的n个小磁盘空间(若无法平均划分,则对源端磁盘空间划分为n-1个空间大小相等以及最后一个小于其他大小的小磁盘空间),并对其构建位图,将源端磁盘的物理内存全部映射到其对应的位图bitmap中,所述位图中的位与各小磁盘空间对应,位图位数的多少n主要取决于源端磁盘的大小和人为定义一个块的大小,假设某个源磁盘的容量是1g,定义一个块的大小为1m,那么其位图(bitmap)的位数为1g/1m=1024个位数(一位代表人为定义的一个块)。在构建各源端磁盘的位图后,对所述位图的每个位的值进行初始化,在本发明具体实施例中,将所述位图的每一位的值初始化为1,本发明中,规定0表示对应的小磁盘空间无数据变化,1表示对应的小磁盘空间有数据变化,在初始状态,显然所有的数据都是没有同步过的,因此,会将位图的每一位的值初始化为1。

步骤s2,利用设置于源端的文件系统之下和硬件磁盘驱动之上的驱动模块,捕捉源端磁盘上的数据变化,将产生该些变化的io操作转化成对应位图中的位图信息,并根据源端磁盘对应的保护策略将位图传送至备份模块。

在本发明具体实施例中,由于在生产端(源端)需要捕捉数据变化的位置,当源端磁盘上发生数据变化时,首先需要明确变化数据所处的位置,因此设置驱动模块位于文件系统之下和硬件磁盘驱动之上,以用来实时捕捉源磁盘上的数据变化。

一般来说,读操作不会产生数据变化,因此,本发明主要获取写操作产生的数据变化。也就是说,驱动模块会时刻监听并捕获上层发往源端磁盘驱动的写io,一旦获取,会立刻更新将其位图(bitmap)中对应的位置1,然后根据源端磁盘的保护策略将当前的位图(bitmap)实时或周期触发条件产生时发给备份模块,并于成功发送之后,立刻将位图(其bitmap)原来1的位置为0。

需说明的是,当步骤s1构建并初始化位图后,所述驱动模块即会根据各源端磁盘的保护策略将该位图(bitmap)传给备份模块,同时将构建于驱动模块中的位图(bitmap)中所有的位全部置为0,以便实时捕捉源端磁盘上的数据变化,并将其转化成位图中的位图信息。具体地说,若当前源端磁盘的保护策略为周期同步保护策略,则于第一次周期触发条件产生时,进行一次全盘同步,即将该源端磁盘初始化的位图(bitmap)传给备份模块,同时将驱动模块中的位图(bitmap)中所有的位全部置为0,以便继续捕捉源端磁盘上的数据变化;若当前源端磁盘的保护策略为实时同步保护策略,则在构建并初始化位图后,即将该源端磁盘初始化的位图(bitmap)发送给备份模块,同时将构建于驱动模块中的位图(bitmap)中所有的位全部置为0,以便继续捕捉源端磁盘上的数据变化,并将其转化成位图中的位图信息。

由于驱动模块时刻都在工作,而在周期同步保护策略当中,当驱动模块捕捉源端磁盘上的数据变化并转化成对应位图中的位图信息后,此时并没有触发周期同步,在此时若源端磁盘又有新的数据写入,则将前后形成的位图进行合并形成新的位图,即,若之前已被标记过位图位置为“1”的数据块本次未发生写操作,则其对应位图的位置仍然标记为“1”,若之前已被标记过位图位置为“1”的数据块再次发生写操作,则其对应位图的位置仍为“1”,若之前位图位置为“0”的数据块发生写操作时,则将其对应位图的位置标记为“1”。

步骤s3,所述备份模块于接收到驱动模块发送的位图后,将当前接收到的位图与前一次接收到的位图进行整合,根据整合后的位图的位图信息将源端磁盘上相应块的数据备份到备端。

当进行初次全盘同步备份时(第一次周期同步或第一次实时同步),即备份模块第一次收到驱动模块发送的位图时,由于此时位图的所有位都为“1”,此时备份模块会根据收到的位图(bitmap)中的信息将源端磁盘中对应的区域中数据逐一备份至备端,并于每完成一个块的备份时,将备份模块中的位图(bitmap)中对应的位置为0,等到备份程序中bitmap全部位置为0后,则表示初次全盘同步备份完成。

在后续的增量同步过程中,对于周期同步保护策略来说,等达到第二次周期同步触发条件时,驱动模块会将当前的位图bitmap发给备份模块,成功发送之后,会立刻将驱动模块中的位图bitmap原来1的位置为0,备份模块于接收到驱动模块发送的位图时,不管初次同步备份是否完成,有数据变化而没完成同步的数据块,其对应的位图(bitmap)中的位不会自己变为0,对于没有来得及同步的数据块,对应的位图(bitmap)的位还是1,这时备份模块则需将原来的位图(bitmap)和当前驱动模块发过来的位图(bitmap)进行整合,并将整合过的位图(bitmap)为备份依据,进行新的一轮备份,如果源端磁盘此时有写操作,则本次的数据变化会在下一次周期同步触发的时候进行同步。

优选地,本发明之基于块复制的周期同步方法还包括:

若当前周期备份未完全备份结束而源端出现异常时,所述备份模块先将当前位图bitmap保存在文件中,于源端重启后触发周期同步时,所述备份模块先将该文件中的位图bitmap和当前驱动模块发过来的位图bitmap整合之后再进行备份。

对于周期同步保护策略,由于机器存在的不确定性,如果生产端(源端)机器突然出现异常等情况,周期同步备份还没有完全备份结束(这里的结束指的是当前周期备份的所有需要备份的数据已备份完,没有需要备份的数据了),备份模块会先将当前位图bitmap保存在一文件中,即当机器出现异常之时,备份模块会尝试将当前位图信息保存在该文件,若保存成功,则当机器开机重启后,在下次同步条件触发时,备份模块先将该文件中的位图bitmap和此时驱动模块发过来的位图bitmap整合之后进行备份。若保存失败,则当机器开机之后下次同步条件触发前,备份模块会进行一次全同步,以保证数据的一致性。在本发明具体实施例中,判断当前位图信息是否成功保存的标志位保存在注册表中,当机器开机重启后会加载注册表中相应的信息来判断上次异常之前有没有将位图成功保存到对应的文件中这里需要说明的是,备份模块中位图bitmap的位值从1置为0的前提是:备端将该块数据成功写入到备端磁盘上,从而确保了备份的准确性。

实施例

在本实施例中,首先需要指定机器上一个磁盘,针对该磁盘,创建一个与之对应的保护策略,如果想保护多个磁盘,则需要建立多个保护策略,即一个保护策略对应一个磁盘。这么做的好处是将磁盘彼此之间分开,使它们可以独立的进行备份策略,彼此不会受到其他磁盘同步出现错误带来的影响。

在创建策略之前,于源端磁盘的机器则需要设置驱动模块和备份模块,以搭建本发明之基于块复制的周期同步的环境,以下为本发明的过程及原理,具体步骤如下。

保护策略的创建:假设一台机器上的系统盘(一般为c盘)所在的物理磁盘号为磁盘0(可以通过计算机->管理->磁盘管理来获取该信息),除此之外,可能还存在所谓的d.e等分区,那么,本发明创建的保护策略是针对这个磁盘0的(即同时保护c.d.e等),创建完之后,会生成如图4所示的位图(bitmap)。此时位图(bitmap)中的所有位均置为1,因为对于刚创建的策略来说,显然所有的数据都是没有同步过的。

初次全盘周期同步备份:当第一次触发周期同步时,会进行一次全盘周期同步备份。假设2g的磁盘上只有500m的真实数据,也可以开启文件系统分析,这样,初次全盘同步仅仅是同步这500m的真实数据(有效数据对应的位图为1,非有效数据(即空余的磁盘)对应的位图位为0)。首先,驱动模块会将初始化的位图bitmap传给备份模块,此时,将驱动模块中的位图bitmap中所有的位全部置为0。备份模块会根据收到的位图bitmap中的信息将源磁盘中对应的区域中数据进行备份,每完成一个块的备份时,备份模块中的位图bitmap中对应的位置为0,等到备份模块中位图bitmap全部位置为0后,则表示初次全盘周期同步完成。如果在同步的过程中,源磁盘发生了写操作,这时候驱动模块会继续捕获这些数据并将位图bitmap中相应的位置标记为“1”。但是此时备份模块不会立即将该些变化的数据信息发送到备端,本发明周期同步的意义则在于到达周期同步的触发条件才触发一次同步操作。

后续增量同步备份:假设在到第二次触发周期同步之前,源端磁盘有了一些写操作。等达到第二次触发周期同步条件时,驱动模块将当前的位图bitmap发给备份程序,成功发送之后立刻将其位图bitmap原来1的位置为0。这时候,不管初次同步备份有没有完成,没完成的情况下,备份模块自己的位图bitmap不会全部变为0,对于没有来得及同步的数据块,其对应的位图bitmap的位还是1,这时备份模块会将自己原来的位图bitmap和当前驱动模块发过来的位图bitmap进行整合,并以整合过的bitmap为备份依据进行新的一轮备份。如果源磁盘此时有写操作,本次的数据变化会在下一次周期同步条件触发的时候进行同步。

异常出错情况下的调节:现实中机器存在的很多不确定性,如果生产端机器突然出现异常等情况,周期同步备份还没有完全备份结束(这里的结束指一次schedule触发时,当前应用程序中bitmap标记为“1”的数据块没有全部备份完)。备份程序会先将当前位图bitmap保存在文件中,机器出现异常之后会立刻先更新这个文件。当机器重启后,在下次触发周期同步时,备份模块优先将该文件中的位图bitmap中和此时驱动发过来的bitmap整合之后备份。

综上所述,本发明一种基于块复制的周期同步系统及方法通过利用策略创建及位图构建模块对源端磁盘创建保护策略,并对源端磁盘空间进行划分,根据划分结果于驱动模块中构建源端磁盘的位图,于源端的文件系统之下和硬件磁盘驱动之上设置驱动模块,利用驱动模块捕捉源端磁盘的io的操作,将产生该些变化的io操作转化成位图中的位图信息传送至备份模块,由备份模块根据位图信息将源端磁盘上相应块的数据备份到备端,实现了基于块复制的周期同步目的,从而减少磁盘读写资源的浪费,提高备份的效率。

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

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