一种连续数据保护方法转让专利

申请号 : CN200810197659.5

文献号 : CN101430657B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢长生李旭杨靖曹强谭志虎万继光

申请人 : 华中科技大学

摘要 :

本发明公开了一种连续数据保护方法,该方法综合考虑时间和空间代价,通过对所有前后两个版本的写操作数据块进行异或操作。根据读写的局部性原理,异或操作后的数据块其绝大部分数据位值为0。然后再采用压缩算法对该校验值进行压缩,可以极大地节省记录写操作日志的存储空间。其存储空间为原记录方式的1/20~1/30。另外在记录时定期引入快照机制,使得恢复时可先恢复到最近的快照点,然后再恢复到指定的时间点,这样可显著提高数据恢复的效率并解决异或效验数据链太长后可能产生的“污染”问题,提高恢复数据的可靠性。本发明实现了真正意义上数据块级别的连续数据保护,既具有块级高效率恢复的特点,还具有低存储空间开销、低系统性能影响的优点。

权利要求 :

1.一种连续数据保护方法,包括记录过程和恢复过程,记录过程包括步骤(A1)~(A10),恢复过程包括步骤(C1)~(C7);

(A1)截获系统的读写命令,如果是写操作,转到步骤(A3),否则进入步骤(A2);

(A2)对所有的读操作按原方式执行,转入(A10);

(A3)设当前时间为T(m),m为系统内部时间,设此次写操作对象是数据块B,当前所写的内容为BT(m),写操作要覆盖区域的内容为BT(m-1);判断当前时间T(m)是否达到触发条件,达到转到步骤(A8),否则进入步骤(A4);

(A4)读出要覆盖区域的内容BT(m-1),计算异或校验值PT(m),其中,(A5)对步骤(A4)中运算后的数据PT(m)加上时间戳T(m);

(A6)将上一步得到的数据按时间戳顺序插入校验值日志链,转到步骤(A9);

(A8)将原始写操作内容BT(m)加上时间戳T(m),再插入快照日志链或所述校验值日志链;

(A9)进行正常的写操作;

(A10)如果系统还有读写操作,转入步骤(A1),否则结束记录过程;

(C1)输入恢复时间点T(r),其中,r为输入的系统内部时间;

(C2)判断输入时间点T(r)有无快照点,如果有快照,设该快照点的时间为T(k),则k=r,k为该快照点的系统内部时间,进入步骤(C3),否则转到步骤(C4);

(C3)找到相应的快照时间点T(k)的数据B(k),用B(k)恢复到时间点T(r),转到步骤(C7);

(C4)根据r到最近两个快照点时间跨度长短,确定离恢复时间点最近 的快照点BT(k),当k<r时,即相应快照时间点早于恢复时间点,转到步骤(C6),当k>r时,即相应快照时间点晚于恢复时间点时,进入步骤(C5);

(C5)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(I)进行正向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r),然后转到步骤(C7);

(C6)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(II)进行反向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r),然后转到步骤(C7);

(C7)恢复过程完成。

2.根据权利要求1所述的连续数据保护方法,其特征在于:对记录过程中数据块进行异或运算得到的校验值日志链,并在校验值日志链中插入原始块形成快照日志链,最后对这两个链进行压缩。

3.根据权利要求1所述的连续数据保护方法,其特征在于:在步骤(A5)完成后,使用压缩算法对步骤(A5)中所得到的数据进行压缩,得到压缩后的数据为P′T(m)作为下一步处理的数据。

说明书 :

一种连续数据保护方法

技术领域

[0001] 本发明属于数据存储领域,具体涉及一种高效的连续数据保护方法,该方法不仅能有效的实现数据块级别的保护要求,并且具有数据量较小,恢复时间快的特点。

背景技术

[0002] 虽然计算机的系统已经越来越稳定,但是各种各样的事故还是不可避免的会发生,并造成数据的丢失。怎样在事故发生后得到过去的正确的数据,成为了数据保护的研究内容。传统的数据保护方法有定期数据备份和快照技术,这些技术可以将事故发生后的数据损失降低到一定范围内,例如:可以降低到最多不超过备份窗口的数据量。传统的数据保护方法具有应用范围广泛,和恢复机制简单等优点,可以在块级、文件系统级及应用级实现。但是,在数据量很大的情况下,传统的数据保护方法会产生频繁的备份和快照操作,这样会严重影响系统的正常业务的数据处理能力,而且会产生巨大的存储空间开销,因此不适合作为实时的数据保护机制。因此,为了确保数据的更高安全性,用户必须对在线系统实行在线实时复制,尽可能多地采用快照等磁盘管理技术维持数据的高可用性,这样又需要增加很大一部分开销。
[0003] 另一种常用的数据保护方法是文件版本控制机制,它在文件级执行,通过对文件操作(创建、删除、改写)的历史进行日志记录,并借助这些日志可以将文件恢复到指定版本的原始状态。但这些机制都是与特定的文件系统相关的,不适合直接应用于由多个文件系统和数据库系统组成的数据平台。
[0004] 由于传统的数据方法的缺陷,许多研究人员希望设计一种真正意义上的连续的数据保护。连续数据保护(Continue Data Protect)是一种连续捕获和保存数据变化、并将变化后的数据独立于初始数据进行保存的方法,而且该方法可以实现过去任意一个时间点的数据恢复。根据CDP的定义,所有的CDP解决方案都应当具备以下几个基本的特性:(1)数据的改变受到连续的捕获和跟踪;(2)所有的数据改变都存储在一个与主存储地点不同的独立地点中;(3)恢复点目标是任意的,而且不需要在实际恢复之前事先定义。CDP能够提供更快的数据检索、更强的数据保护和更高的业务连续性能力,并且与传统的备份解决方案相比,CDP的总体成本和复杂性都要低。
[0005] 尽管过去已经有研究人员提出一些CDP算法,但现有的CDP算法存在以下两个主要不足:(1)占用空间大。例如:对每次的写操作进行全备份,这将消耗巨大的空间;(2)应用范围窄。如文件版本控制机制,它通过人工或自动生成文件版本的方法来记录文件数据的修改,可以将文件恢复到指定版本的原始状态。但这都是与特定的文件系统相关的,不具有存储应用的通用性。

发明内容

[0006] 本发明的目的在于提供一种连续数据保护方法,该方法可以实现真正意义上数据块级别的连续数据保护,既具有块级高效率恢复的特点,还具有低存储空间开销、低系统性能影响的优点。
[0007] 本发明提供的连续数据保护方法,主要包括记录过程和恢复过程。记录过程包括步骤(A1)~(A10),恢复过程包括步骤(C1)~(C7)。
[0008] (A1)截获系统的读写命令,如果是写操作,转到步骤(A3),否则进入步骤(A2);
[0009] (A2)对所有的读操作按原方式执行,转入(A10);
[0010] (A3)设当前时间为T(m),m为系统内部时间,设此次写操作对象是数据块B,当前所写的内容为BT(m),写操作要覆盖区域的内容为BT(m-1);判断当前时间T(m)是否达到快照触发条件,如果达到,转到步骤(A8),否则进入步骤(A4);
[0011] (A4)读 出 要覆 盖 区 域 的 内 容BT(m-1),计算 异 或 校 验 值PT(m),其 中,[0012] (A5)对步骤(A4)中运算后的数据PT(m)加上时间戳T(m);
[0013] (A6)将上一步得到的数据按时间戳顺序插入校验值日志链,转到步骤(A9);
[0014] (A8)将原始写操作内容BT(m)加上时间戳T(m)后,插入到快照日志链或所述校验值日志链;
[0015] (A9)进行正常的写操作;
[0016] (A10)如果系统还有读写操作,转入步骤(A1),否则结束记录过程;
[0017] (C1)输入恢复时间点T(r),其中,r为输入的系统内部时间;
[0018] (C2)判断输入时间点T(r)有无快照点,如果有快照,设该快照点的时间为T(k),则k=r,k为该快照点的系统内部时间,进入步骤(C3),否则转到步骤(C4);
[0019] (C3)找到快照时间点T(k)所对应的数据B(k),用B(k)恢复到时间点T(r),转到步骤(C7);
[0020] (C4)根据r到前后最近两个快照点时间跨度的长短,确定离恢复时间点最近的快照点BT(k),当k<r时,即相应快照时间点早于恢复时间点,转到步骤(C6),当k>r时,即相应快照时间点晚于恢复时间点时,进入步骤(C5);
[0021] (C5)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(I)进行正向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r),然后转到步骤(C7);
[0022]
[0023] (C6)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(II)进行反向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r),然后转到步骤(C7);
[0024]
[0025] (C7)恢复过程完成。
[0026] 本发明是一种综合考虑时间和空间代价的连续数据保护算法,其主要思想是利用数据块写操作的局部性,即对于每个数据块,通常写前后平均数据改变量很小,根据统计平均只有5%~20%的变化。因此,首先对写前后两个版本的数据块进行异或操作,异或结果中绝大部分数据位为0,然后采用压缩算法对异或结果进行压缩,可以极大地节省记录写操作日志的存储空间。另外引入定期快照机制,可显著提高数据恢复的效率和恢复数据的可靠性。与现有的一些数据保护技术不同之处在于,它实现了真正意义上数据块级别的连续数据保护,既具有块级高效率恢复的特点,还具有低存储空间开销、低系统性能影响的优点。

附图说明

[0027] 图1为本发明方法进行记录的过程示意图;
[0028] 图2为本发明方法进行恢复的过程示意图;
[0029] 图3为插入快照过程示意图;
[0030] 图4为快照直接恢复所用数据示意图;
[0031] 图5为快照加正向恢复所用数据示意图;
[0032] 图6为快照加反向恢复所用数据示意图。

具体实施方式

[0033] 本发明方法包括记录过程和恢复过程,下面结合附图和实例对发明作进一步详细的说明。
[0034] 如图1所示,本发明方法的记录过程包括下述步骤:
[0035] (A1)截获系统的读写命令,如果是写操作,转到步骤(A3),否则进入步骤(A2)。
[0036] (A2)对所有的读操作按原方式执行,转入(A10)。
[0037] (A3)设当前时间为T(m),m为系统内部时间,T为m的函数,T(m)表示用户视角的时间,设此次写操作对象是数据块B,当前所写的内容为BT(m),写操作要覆盖区域的内容为BT(m-1)。判断日志链是否达到触发条件d,达到转到步骤(A8),否则进入步骤(A4)。其中,d根据系统负载状况由日志链缓冲区空间和恢复时间要求共同决定,为可调参数,通常为60~90。当块大小为4k,总存储容量为1T时,d的优选值为77。
[0038] (A4)读 出 要覆 盖 区 域 的 内 容BT(m-1),计算 异 或 校 验 值PT(m),其 中,[0039] (A5)对步骤(A4)中运算后的数据PT(m)加上时间戳T(m)。
[0040] (A6)使用压缩算法对步骤(A5)中所得到的数据进行压缩,设压缩后的数据为P′T(m)。
[0041] 压缩算法可以采用开源压缩算法zlib实现,也可以采用其它通用压缩算法。
[0042] (A7)将步骤(A6)中得到的数据P′T(m)按时间戳顺序插入校验值日志链P′T(m),P′T(m-1),...,P′T(1),P′T(0),转到步骤(A9)
[0043] (A8)将原始写操作内容BT(m)加上时间戳T(m),插入校验值日志链。如图3所示,BT(m)为原始写操作数据即快照数据,t(d)中d为(A3)中所指触发条件,t为d的函数,t(d)指再次达到触发条件d所经历的时间。BT(m)-t(d)指上次达到触发条件时所写的块。BT(m)、BT(m)-t(d)按时间先后顺序插入由校验值P′组成的日志链中。
[0044] (A9)进行正常的写操作;
[0045] (A10)如果系统还有读写操作,转入步骤(A1),否则结束。
[0046] 对于(A7)、(A8)中日志链的存储组成方式:
[0047] 优选的,校验块数据和快照数据,只需在时间顺序上保持对应关系,物理上分开存储。即存在两条链,校验值日志链和快照日志链,通过元数据保持两条链时间顺序上的对应关系,校验值日志链和快照日志链分开存储。
[0048] 作为替代的,可严格按照时间顺序将校验值和快照数据放在同一日志链中统一存储。
[0049] 对于压缩数据时机的选择:
[0050] 本发明可以如以上记录过程中所示的,在处理过程中以数据块为单位进行压缩。
[0051] 优选的,可以在存储日志链时或存储日志链后,对日志链以文件为单位进行整体压缩。这样可以使记录过程和压缩过程分开,提高输入输出操作的效率。
[0052] 如图2所示,本发明方法的恢复过程包括下述步骤:
[0053] (C1)输入恢复时间点T(r),其中同,r为输入的系统内部时间,T为r的函数,T(r)表示用户视角的时间。
[0054] (C2)判断输入时间点T(r)有无快照点,如果有快照,设该快照点的时间为T(k),则k=r,k为该快照点的系统内部时间,T为k的函数,T(k)表示用户视角的时间,进入步骤(C3),否则转到步骤(C4)。
[0055] (C3)采用时间点T(k)的快照进行恢复。如图4所示,找到相应的快照时间点T(k)的数据B(k),用B(k)恢复到时间点T(r),转到步骤(C7)。
[0056] (C4)根据r到最近两个快照点时间跨度长短,确定离恢复时间点最近的快照点BT(k)。当k<r时,即相应快照时间点早于恢复时间点,转到步骤(C6),当k>r时,即相应快照时间点晚于恢复时间点时,进入步骤(C5)
[0057] (C5)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(1)进行正向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r),然后转到步骤(C7)。
[0058]
[0059] 如图5所示,先恢复到最近快照点BT(k),然后再按恢复链条(PT(k),PT(k-1),...,PT(r+2),PT(r+1))恢复。
[0060] (C6)首先恢复到步骤(C4)中所得到的快照点BT(k),再利用公式(2)进行反向恢复,最终恢复到用户指定时间点T(r)时的数据块BT(r)然后转到步骤(C7)。
[0061]
[0062] 如图6所示,先恢复到最近快照点BT(k),然后再按恢复链条(PT(r),PT(r-1),...,PT(k+2),PT(k+1))恢复。
[0063] (C7)恢复完成。
[0064] 以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。