一种数据复制方法及装置制造方法

文档序号:6493257阅读:136来源:国知局
一种数据复制方法及装置制造方法
【专利摘要】本发明提供一种数据复制方法以及对应装置,应用于存储设备上,该方法包括:处理数据写入业务,并相应更新差异位图以及写入统计表;在执行复制时,挂起写入业务;将差异位图以及写入统计表进行备份;判断备份的差异位图是否遍历结束,如果是则结束,否则获取下一个标志位;判断当前标志位是否表示有数据差异,如果是则获取当前标志位对应的写入统计参数,否则返回;判断读取到的写入统计参数是否达到阈值,如果是则获取整个数据块数据作为差异数据,否则执行微扫描操作以获得差异数据。本发明利用写入统计参数来判断是否执行微扫描操作,有效地利用了微扫描的优势,同时有效地规避了微扫描的各种问题。
【专利说明】一种数据复制方法及装置
【技术领域】
[0001]本发明涉及存储【技术领域】,尤其涉及一种数据复制方法及装置。
【背景技术】
[0002]复制技术是网络存储中一种数据保护技术,其主要实现手段是利用IP网络,实现两台存储设备的LUN资源(逻辑存储资源)之间的数据“同步”,其目的是为LUN建立和维护数据副本。很多时候复制是远程的复制,受益于IP网络传输能力的不断提升,远程复制正在得到更为广泛的使用。
[0003]远程复制的核心思想就是在灾难备份中心为生产中心的LUN (称为复制源)建立数据副本(称为复制副本),将复制源中发生变化的数据周期性的同步到复制副本。一旦一台存储设备所在区域发生灾难导致该设备上数据丢失时,可使用远程的方式在另一台存储设备上的数据副本恢复出生产数据。
[0004]考虑到远程复制通常会跨越广域网络(比如IP WAN),为了提高复制的处理效率和节约广域网络的带宽,因此复制通常采用增量复制方式,即每次复制同步时,仅复制两个复制时间点之间发生变化的数据。在复制源一侧,作为远程复制的源资源,存储设备需要记录在两次复制之间的数据的变化情况。目前数据变化情况主要通过差异位图来进行标识,差异位图通过一个bit标识复制源某一段存储空间/区域内的数据发生了变化,需要同步到复制副本。这一段存储空间/区域简称为数据块,其大小(通常称为差异粒度)一般是固定的。其实现方法是,当复制源有写入操作时,确定哪些区域内的数据发生了变化,进而同步更新差异位图记录变化。
[0005]从以上描述可以看出,所述差异粒度越小,则差异数据变化的记录就越精确。但是在目前网络中数据量飞速增长的情况下,LUN容量越来越大,此时差异粒度越小,则差异位图所占用的空间就会越大。例如复制源的大小为128TB时,如果差异粒度为一个扇区,则差异位图的大小为32GB。维护差异位图的代价将越来越大,需要考虑差异位图所占的处理资源、差异位图的更新频率、差异位图的访问速度、对复制源在线业务的影响等诸多因素。因此在目前业界通用的实现中,差异粒度都比较粗,通常都大于64KB。
[0006]粗粒度的差异位图带来的问题就是:即使只修改了很小一部分数据,但是需要按照差异粒度传输全部的数据。请参考图2的示例,假设差异粒度是1M。通过差异位图发现第一个数据块的数据存在差异,这IM的差异数据中实际上只有前12K数据是不一致的,而其他数据都是一致的。这些其他数据理论上是没有必要复制的。为了降低数据传输量,提高链路带宽的使用率,一种改进作法是:在复制差异数据传输前,再进行微扫描,即通过特定方法进一步比较复制源和复制副本上差异粒度中的数据,获取更细差异粒度上的差异数据。图2中微扫描使用了更细的差异粒度4KB,其中相应的位图并没有全部显示出来。在实现上,可以通过分段MD5校验获得复制源和复制副本的差异,这样就可以知道在图2中只有前12K数据是不一致的。
[0007]通过微扫描方式,可以减少复制过程中传输的数据量,但是微扫描引入了新的处理流程,一方面,微扫描需要读复制源,额外的读操作会影响复制源的在线业务性能;另一方面,需要进行微扫描的存储空间越大,对复制源的在线业务性能影响越大。

【发明内容】

[0008]有鉴于此,本发明提供一种数据复制装置,应用于存储设备上,该存储设备用于将复制源的数据发送给复制副本上去,该装置包括业务处理单元、初始化处理单元、位图遍历单元、差异获取单元以及复制执行单元,中:
[0009]业务处理单元,用于处理面向复制源的数据写入业务,将数据写入到对应的数据块上,并相应更新差异位图以及写入统计表;其中该差异位图包括若干标志位,每一标志位对应于一个数据块,所述写入统计表包括与标志位对应的写入统计参数;
[0010]初始化处理单元,用于在需要执行复制操作时,挂起业务处理单元的数据写入业务以暂停向复制源中写入数据;将差异位图以及写入统计表进行备份,并在备份完成后将差异位图以及写入统计表初始化,然后恢复业务处理单元的数据写入业务;
[0011]位图遍历单元用于判断备份的差异位图是否遍历结束,如果是则通知初始化处理单元结束本次复制,否则获取备份的差异位图中的下一个标志位作为当前标志位;判断当前标志位是否表示有数据差异,如果是则从备份的写入统计表中读取当前标志位对应的写入统计参数,否则返回继续判断备份的差异位图是否遍历结束;
[0012]差异获取单元,用于判断读取到的写入统计参数是否已经达到预设阈值,如果是则获取该标志位对应的数据块上的数据作为差异数据,否则对该标志位对应的数据块执行微扫描操作以获得对应的差异数据;
[0013]复制执行单元,用于将差异数据发送给复制副本。
[0014]本发明还相应提供一种数据复制方法,应用于存储设备上,该存储设备用于将复制源的数据发送给复制副本上去,其中,该方法包括以下步骤:
[0015]步骤A、处理面向复制源的数据写入业务,将数据写入到对应的数据块上,并相应更新差异位图以及写入统计表;其中该差异位图包括若干标志位,每一标志位对应于一个数据块,所述写入统计表包括与标志位对应的写入统计参数;
[0016]步骤B、在需要执行复制操作时,挂起数据写入业务以暂停向复制源中写入数据;将差异位图以及写入统计表进行备份,并在备份完成后将差异位图以及写入统计表初始化,然后恢复数据写入业务;
[0017]步骤C、判断备份的差异位图是否遍历结束,如果是则结束本次复制,否则获取备份的差异位图中的下一个标志位作为当前标志位;
[0018]步骤D、判断当前标志位是否表示有数据差异,如果是则从备份的写入统计表中读取当前标志位对应的写入统计参数,否则返回步骤C ;
[0019]步骤E、判断读取到的写入统计参数是否已经达到预设阈值,如果是则获取该标志位对应的数据块上的数据作为差异数据,否则对该标志位对应的数据块执行微扫描操作以获得对应的差异数据,并将差异数据发送给复制副本。
[0020]本发明利用写入统计参数来判断是否执行微扫描操作,有效地利用了微扫描的优势,同时有效地规避了微扫描所引发的各种问题。【专利附图】

【附图说明】
[0021]图1是一种典型的数据复制过程组网示意图。
[0022]图2是现有技术中一种微扫描实现方案的数据差异示意图。
[0023]图3是本发明一种实施方式中数据复制装置的逻辑结构图。
[0024]图4是本发明一种实施方式中一次数据复制的处理流程图。
[0025]图5是本发明一种实施方式中数据写入复制源的处理流程图。
【具体实施方式】
[0026]本发明提供一种更符合存储业务特点的复制方法及对应的装置。其中该复制装置应用在存储设备上。在介绍该装置在存储设备上运行的处理流程前,先定义一下本发明使用较多的技术概念。
[0027]复制源:表示一个复制关系对中的源资源,通常位于业务生产中心。
[0028]复制副本:表示一个复制关系对中的目的资源,通常位于灾难备份中心。
[0029]差异位图:采用一个bit标识源资源某一数据块中数据是否发生了变化。
[0030]微扫描:通过某种算法,比如消息摘要算法,来获取复制源中数据块与复制副本中对应的数据块更小粒度的差异数据。
[0031]请结合图1所示的典型应用场景,以软件实现为例,本发明的数据复制装置运行在位于复制源一侧的作为复制源设备的存储设备上,该源设备用于将复制源上的数据发送到远端的复制副本。请参考图3以及图4,该复制装置包括业务处理单元、初始化处理单元、位图遍历单元、差异获取单元以及复制执行单元,该复制装置运行在所述源设备上时,执行如下各个步骤的处理流程。
[0032]步骤101,业务处理单元处理面向复制源的数据写入业务,将数据写入到对应的数据块上,并相应更新差异位图以及写入统计表;其中该差异位图包括若干标志位,每一标志位对应于一个数据块,所述写入统计表包括与标志位对应的写入统计参数;
[0033]步骤102,在需要执行复制操作时,初始化处理单元挂起业务处理单元的数据写入业务以暂停向复制源中写入数据;
[0034]步骤103,初始化处理单元将差异位图以及写入统计表进行备份;
[0035]步骤104,在步骤103的备份完成后,初始化处理单元将差异位图以及写入统计表初始化,恢复业务处理单元的数据写入业务;
[0036]步骤105,位图遍历单元判断备份的差异位图是否遍历结束,如果是则转步骤112,否则获取备份差异位图的下一个标志位(初始为第I个)作为当前标志位;
[0037]步骤106,位图遍历单元判断当前标识位是否表示有数据差异,如果是则转步骤107处理,否则返回步骤105 ;
[0038]步骤107,位图遍历单元从备份写入统计表中读取当前标志位对应的写入统计参数;
[0039]步骤108,差异获取单元判断位图遍历单元读取到的写入统计参数是否达到预设阈值,如果是转步骤109,如果否则转步骤110 ;
[0040]步骤109,差异获取单元获取该标志位对应的数据块上的数据作为差异数据;
[0041]步骤110,差异获取单元对该标志位对应的数据块执行微扫描操作以获得对应的更细粒度的差异数据
[0042]步骤111,复制执行单元将差异获取单元获取到的差异数据发送给远端的复制副本,并返回步骤105。
[0043]步骤112,初始化处理单元删除备份的差异位图以及写入统计表,结束本次复制。
[0044]复制业务通常是周期性开展的,在两次复制开始时刻之间,可能会有大量的数据写入业务,当数据通过存储设备写入生产中心的复制源时,除了正常的写入操作外,还需要在差异位图中将被写入数据的数据块对应的标记位(以一个bit表示的bit位为例)标记起来,比如说将该bit位置I表示对应的数据块上的数据有过更改,这样一来下次复制业务启动时,存储设备可以知道那些数据块上写入了新数据(即有差异数据)。
[0045]在本发明中,除了更新差异位图的标志位之外,对于被更新的标记位,业务处理单元还在写入统计表中需要将该标记位对应的写入统计参数更新。写入统计参数可以有多种选择,比如说,写入统计参数可以是写入次数计数,表示该标志位对应的数据块被写入数据的次数;再比如说,可以写入统计参数可以写入长度总和,表示该标志位对应的数据块一次或者多次被写入数据的长度总和。当然,本领域普通技术人员可以根据实际应用的需要选择其他写入统计参数,甚至将多个具体参数的组合作为写入统计参数。
[0046]写入统计参数是本发明中是否执行微扫描的重要参考。以写入次数计数为例,如果一个数据块在上次复制至本次复制这一周期内频繁写入数据,这在相当程度上可以说明这个数据块有很多的数据已经被更改了,也就是说差异数据的数量很大,这个时候执行微扫描会消耗较多的处理时间和处理资源,而最终上还是要传输较大量的差异数据,没有达到显著节约带宽的目的,还浪费处理资源和时间,因此微扫描的意义不大。相反,如果一个数据块上的数据写入次数非常少,比如只有一两次,则说明这个数据块上大部分数据很可能没有被更改,因此通过微扫描操作获取到的差异数据量可能会很小,可以达到显著节约带宽的目的。同样的道理,如果写入统计参数是写入长度总和,如果写入长度总和越高,则说明微扫描操作的意义相对越小,反之则越高。
[0047]本发明采用预设阈值的办法来区分是否要进行微扫描,当写入统计参数小于阈值的时候就可以启动微扫描来获取差异数据,此时获取的差异数据的数据量就比较小;如果大于等于阈值则获取当前数据块的全部数据作为差异数据即可。差异数据是复制过程的传输对象,本发明通过预设阈值使得在获取差异数据上的处理消耗与传输差异数据的带宽消耗之间取得相对平衡,达到节约带宽和节约处理资源平衡的目标。
[0048]上述阈值的选取与存储设备上的存储业务特点有关。举例来说,以顺序存储为例,数据通常是顺序写入的,相当长一段时间内,写入的数据不会被覆盖,那也就是说,写入次数计数或者长度总和大致都可以反映出数据块中实际差异数据的大小。除了顺序写入的应用以外,随机写入的应用也很多,这种情况下,本发明实施效果也比较好。
[0049]反之,考虑一些极端的情况,如果一个数据块中部分空间的数据被反复写入,那么写入次数计数或者长度总和就未必能很好地反映出实际差异数据的大小。比如说数据块的大小为4M,其中只有256K的空间被反复写入了 8次,但实际的差异数据只有256K,此时执行微扫描的效果会更好,但写入统计参数可能无法反映出这一点,假设阈值是4次。但是,首先在各种应用中这种比较极端的情况并不多见;其次,使用者可以根据自己网络上的应用特点来合理设定阈值,比如说如果网络上很多应用是属于经常要反复在相同位置写入数据的,那么阈值可以调高一些。反之,如果是随机写入和顺序写入的应用为主的话,则相应需要将阈值调低一些。
[0050]请参考图4,在优选的方式中,业务处理单元对于写入统计参数的更新可以做特别的处理,当写入统计参数已经达到阈值以后,则不再更新该写入统计参数。这样的做好处是节约阈值所占用的空间。以写入次数计数为例来说,假设写入次数计数为15,其需要占用四个bit的空间。在网络存储这样的海量数据处理环境下,一旦某个数据块中写入次数多达上百次,比如说200次,则需要8个bit的空间。如果写入统计参数持续更新,则阈值所占用的空间将难以很好地确定。如果阈值太短则容易导致溢出,如果太长则可能对于大部分情况来说是个浪费,因为在实际处理过程中写入统计表是要加载到内存中的,阈值所占空间每增加一个bit,则可能需要增加数G的内存空间。因此本发明优选方案中,为了规避阈值所占空间大小的难以确定,避免浪费内存空间的问题,业务写入单元每次更新阈值前需要判断当前写入统计参数是否已经等于阈值,如果是则更新操作为保持不变,否则更新操作为将写入统计参数改写。
[0051]另外,对于上述提及的两种典型的写入统计参数一写入次数技术以及写入长度总和,这两种参数可以同时提供给用户使用,这样用户可以根据自身网络存储环境中的实际应用选择使用哪种写入统计参数。写入次数计数的优势是节约空间,与数据写入数量大小没有关系,而写入长度总和则可以更加客观反映出差异数据的大小,但有些场景中需要消耗相对较多的空间。
[0052]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种数据复制装置,应用于存储设备上,该存储设备用于将复制源的数据发送给复制副本上去,该装置包括业务处理单元、初始化处理单元、位图遍历单元、差异获取单元以及复制执行单元,其特征在于: 业务处理单元,用于处理面向复制源的数据写入业务,将数据写入到对应的数据块上,并相应更新差异位图以及写入统计表;其中该差异位图包括若干标志位,每一标志位对应于一个数据块,所述写入统计表包括与标志位对应的写入统计参数; 初始化处理单元,用于在需要执行复制操作时,挂起业务处理单元的数据写入业务以暂停向复制源中写入数据;将差异位图以及写入统计表进行备份,并在备份完成后将差异位图以及写入统计表初始化,然后恢复业务处理单元的数据写入业务; 位图遍历单元用于判断备份的差异位图是否遍历结束,如果是则通知初始化处理单元结束本次复制,否则获取备份的差异位图中的下一个标志位作为当前标志位;判断当前标志位是否表示有数据差异,如果是则从备份的写入统计表中读取当前标志位对应的写入统计参数,否则返回继续判断备份的差异位图是否遍历结束; 差异获取单元,用于判断读取到的写入统计参数是否已经达到预设阈值,如果是则获取该标志位对应的数据块上的数据作为差异数据,否则对该标志位对应的数据块执行微扫描操作以获得对应的差异数据; 复制执行单元,用于将差异数据发送给复制副本。
2.如权利要求1所述的装置,其特征在于: 所述写入统计参数为写入次数计数,用于表示当前标志位对应的数据块上被写入数据的次数。
3.如权利要求1所述的装置,其 特征在于:所述写入统计参数为写入长度总和,用于表示当前标志位对应的数据块上被写入数据的长度总和。
4.如权利要求1所述的装置,其特征在于:所述业务处理单元进一步用于在更新所述写入统计表中的写入统计参数之前,判读该写入统计参数是否已经到达预设阈值,如果是则更新操作为保持不变,否则更新操作为改写该写入统计参数。
5.如权利要求1所述的装置,其特征在于:所述初始化处理单元进一步用于在结束本次复制之前删除备份的差异位图以及写入统计表。
6.一种数据复制方法,应用于存储设备上,该存储设备用于将复制源的数据发送给复制副本上去,其特征在于,该方法包括以下步骤: 步骤A、处理面向复制源的数据写入业务,将数据写入到对应的数据块上,并相应更新差异位图以及写入统计表;其中该差异位图包括若干标志位,每一标志位对应于一个数据块,所述写入统计表包括与标志位对应的写入统计参数; 步骤B、在需要执行复制操作时,挂起数据写入业务以暂停向复制源中写入数据;将差异位图以及写入统计表进行备份,并在备份完成后将差异位图以及写入统计表初始化,然后恢复数据写入业务; 步骤C、判断备份的差异位图是否遍历结束,如果是则结束本次复制,否则获取备份的差异位图中的下一个标志位作为当前标志位; 步骤D、判断当前标志位是否表示有数据差异,如果是则从备份的写入统计表中读取当前标志位对应的写入统计参数,否则返回步骤C ;步骤E、判断读取到的写入统计参数是否已经达到预设阈值,如果是则获取该标志位对应的数据块上的数据作为差异数据,否则对该标志位对应的数据块执行微扫描操作以获得对应的差异数据,并将差异数据发送给复制副本。
7.如权利要求6所述的方法,其特征在于: 所述写入统计参数为写入次数计数,用于表示当前标志位对应的数据块上被写入数据的次数。
8.如权利要求6所述的方法,其特征在于:所述写入统计参数为写入长度总和,用于表示当前标志位对应的数据块上被写入数据的长度总和。
9.如权利要求6所述的方法,其特征在于:所述步骤A进一步包括: 在更新所述写入统计表中的写入统计参数之前,判读该写入统计参数是否已经到达预设阈值,如果是则更新操作为保持不变,否则更新操作为改写该写入统计参数。
10.如权利要求6所述的方法,其特征在于:步骤C进一步包括: 在结束本次复制之前删 除备份的差异位图以及写入统计表。
【文档编号】G06F3/06GK103885717SQ201210556389
【公开日】2014年6月25日 申请日期:2012年12月19日 优先权日:2012年12月19日
【发明者】龚飞, 上官应兰 申请人:杭州宏杉科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1