CN102609338A - 一种逆向的文件增量归档方法 - Google Patents

一种逆向的文件增量归档方法 Download PDF

Info

Publication number
CN102609338A
CN102609338A CN2012100242694A CN201210024269A CN102609338A CN 102609338 A CN102609338 A CN 102609338A CN 2012100242694 A CN2012100242694 A CN 2012100242694A CN 201210024269 A CN201210024269 A CN 201210024269A CN 102609338 A CN102609338 A CN 102609338A
Authority
CN
China
Prior art keywords
file
difference
reverse
content
filing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012100242694A
Other languages
English (en)
Inventor
胡晓勤
赵辉
李涛
龚勋
梁刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Original Assignee
Sichuan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan University filed Critical Sichuan University
Priority to CN2012100242694A priority Critical patent/CN102609338A/zh
Publication of CN102609338A publication Critical patent/CN102609338A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种逆向的文件增量归档方法,属于信息安全技术领域。该方法在客户端对一个文件的新旧版本进行一次扫描比较,计算文件新旧版本之间的差异,同时生成文件内容正向差异和文件内容逆向差异,以上文件差异通过网络传输到归档服务器,正向差异用于更新归档服务器文件,逆向差异用于管理和重放各个归档点文件。恢复最新归档时间点文件时,服务器无需进行差异重放操作,直接将服务器保存的最新文件版本传至客户端即可完成文件恢复操作;恢复次新归档时间点文件时,服务器仅做一次差异重放操作。该方法具有差异计算快,差异重放快,恢复速度快等特征,提高了文件归档和恢复的效率,在灾难备份,文件归档等方面具有广阔的应用前景。

Description

一种逆向的文件增量归档方法
技术领域
本发明提出了一种逆向的文件增量归档方法,属于信息安全技术领域。
背景技术
文件归档在防止数据丢失、意外删除、病毒破坏和灾难的影响等方面应用广泛。文件归档问题关键在于:如何以最小的存储空间和最高的效率来实现文件的归档和恢复,特别是当需要恢复归档文件时,应该能够快速地恢复出用户所需归档时间点的文件。现有的基于增量备份模型的文件归档方法中,如专利公开号CN101064730、CN1975683,服务器只保存了最近全备份点的文件和其余各归档时间点的差异数据。然而,当文件损坏或者丢失后,人们通常会选择恢复最新归档时间点的文件,以减少由此带来的损失。因此,能否快速地恢复最新归档时间点文件非常重要。上述方法用于归档存在以下的不足:
1) 恢复最新归档时间点文件耗时长。在文件恢复至最新归档时间点时,需要根据最近全备份点文件和各归档时间点差异文件逐次重放出所需归档点文件,需要搜索、扫描和重放该文件最近全备份点至最新归档时间点之间的所有归档版本,耗费时间长。
2) 恢复文件至最新归档时间点需占用的资源多。由于恢复到最新归档时间点需要执行多次的重放操作,需要多次将旧版本文件和差异文件从磁盘读出,然后生成新版本文件再写入磁盘,这些步骤需要大量的磁盘操作,造成服务器性能的严重下降。
本发明提出一种逆向的文件增量归档方法,该方法通过计算两个相邻时刻归档文件的正向及逆向差异和重构最新归档点文件来实现文件的增量归档,并在恢复归档文件时,根据逆向差异文件,对归档点文件进行重构、恢复。本发明具有以下优点:
1) 恢复文件至最新归档时间点速度快。服务器保存文件最新归档,无需进行差异重放操作,直接将服务器保存的最新归档文件复制到客户端即可完成文件恢复操作。
2) 归档速度快。在客户端仅做一次新旧版本文件之间的比较,即可同时生成文件内容正向差异和文件内容逆向差异,前者用于客户端和归档服务器文件的同步,后者用于产生文件逆向差异并进行基于时间点逆向的文件增量恢复;
3)恢复次新归档时间点文件,服务器仅做一次逆向差异重放操作,文件恢复速度快。
发明内容
本发明提出了一种逆向的文件增量归档方法。其基本思想是:本方法由归档文件备份和归档文件恢复两部分构成。在进行归档文件备份时,首先在客户端对一个文件的新旧版本进行一次扫描比较,计算出文件新旧版本之间的差异,同时生成基于时间点的文件内容正向差异和文件内容逆向差异;然后将以上文件差异通过网络传输到归档服务器,正向差异用于更新归档服务器文件,得到最新文件版本,逆向差异用于管理和重放各个归档点文件。在进行归档文件恢复时,若恢复最新归档时间点文件,服务器无需进行差异重放操作,直接将服务器保存的最新文件版本传至客户端即可完成文件恢复操作;若恢复次新归档时间点文件,服务器仅做一次差异重放操作,文件重放速度快,这样实现了归档文件的快速恢复。
在详细阐述本发明前,先定义如下术语:
(1) 文件                                                
Figure 296775DEST_PATH_IMAGE002
,指需要归档的一个文件。
(2) 
Figure 813207DEST_PATH_IMAGE004
指在第i个时间点文件
Figure 2012100242694100002DEST_PATH_IMAGE005
在归档服务器的备份,其中i为自然数,
Figure 2012100242694100002DEST_PATH_IMAGE007
t为最近归档时间点。为了便于描述,用
Figure 2012100242694100002DEST_PATH_IMAGE009
来表示即将归档的客户端文件,其文件属性及文件内容完全与文件f相同。
(3) 文件状态
Figure 2012100242694100002DEST_PATH_IMAGE011
,一个文件
Figure 654124DEST_PATH_IMAGE005
i时刻的状态,包括文件属性和文件内容
(4) 文件属性
Figure 2012100242694100002DEST_PATH_IMAGE017
,其中
Figure 2012100242694100002DEST_PATH_IMAGE019
为文件长度,为文件最后修改时间,
Figure 2012100242694100002DEST_PATH_IMAGE023
为文件内容散列值。
(5) 文件分块大小k,指将文件fk字节为单位分成一系列没有重叠的数据块,如果最后一块不足k字节,则填充为k字节。
(6) 文件内容正向差异
Figure 2012100242694100002DEST_PATH_IMAGE025
,指文件
Figure 567591DEST_PATH_IMAGE005
i时刻
Figure 2012100242694100002DEST_PATH_IMAGE027
变化到i+1时刻
Figure 2012100242694100002DEST_PATH_IMAGE029
所产生的差异,表示为
Figure 2012100242694100002DEST_PATH_IMAGE031
,运算“-”代表差异计算。文件
Figure 152157DEST_PATH_IMAGE005
i+1时刻内容可由i时刻内容和文件内容正向差异重放得到,表示为
Figure 2012100242694100002DEST_PATH_IMAGE033
,运算“+”代表差异重放。
(7) 匹配数据块,指同时存在于文件
Figure 754487DEST_PATH_IMAGE036
中的数据块,即在
Figure 578087DEST_PATH_IMAGE034
中,该数据块内容是相同的。
(8) 正向差异文件对
Figure 660629DEST_PATH_IMAGE038
,记录文件f内容的正向差异,其中
Figure 312191DEST_PATH_IMAGE040
是差异指示文件,记录差异数据的长度和匹配数据块的序号,分别用正整数和负整数表示,是正向差异数据文件,记录
Figure 752716DEST_PATH_IMAGE034
两个文件之间的差异数据,是一个流文件。
(9) 文件内容逆向差异,指文件
Figure 187743DEST_PATH_IMAGE005
i+1时刻
Figure 167069DEST_PATH_IMAGE029
恢复到i时刻
Figure 570368DEST_PATH_IMAGE015
所产生的差异,表示为
Figure 829311DEST_PATH_IMAGE046
。文件fi时刻内容可由i+1时刻内容和文件内容逆向差异重放得到,表示为
Figure 114799DEST_PATH_IMAGE048
(10)  逆向差异匹配记录文件
Figure 851811DEST_PATH_IMAGE050
,保存文件fii+1时刻之间文件内容的逆向差异匹配记录,其中j为匹配数据块在i时刻文件
Figure 336199DEST_PATH_IMAGE054
中的偏移量,l为匹配数据块在i+1时刻文件
Figure 312245DEST_PATH_IMAGE056
中的偏移量。
(11)  逆向差异文件对
Figure 852948DEST_PATH_IMAGE058
,记录文件f内容的逆向差异,其中
Figure 496419DEST_PATH_IMAGE060
是逆向差异指示文件,记录匹配数据块的偏移量和未匹配数据块的标示,分别用正整数和-1表示,
Figure 362744DEST_PATH_IMAGE062
是逆向差异数据文件,记录
Figure 91666DEST_PATH_IMAGE034
Figure 170480DEST_PATH_IMAGE036
两个文件之间的差异数据,是一个流文件。
(12)  差异集
Figure 950348DEST_PATH_IMAGE064
=  
Figure 456416DEST_PATH_IMAGE066
  ,由正向差异文件对和逆向差异匹配记录文件组成,表示文件fii+1时刻之间的内容差异。
(13)  结构体
Figure 672634DEST_PATH_IMAGE068
block表示匹配数据块在文件
Figure 86298DEST_PATH_IMAGE054
中的块号,offset表示匹配数据块在文件
Figure DEST_PATH_IMAGE069
中的偏移量。
(14)  数组S myblock  ,用于存储结构体
Figure 438781DEST_PATH_IMAGE068
 
为了进一步说明本发明的原理及特征,以下结合附图进行详细的说明。
附图说明
图1是本发明的工作原理图。
图2是归档文件增量备份的步骤。
图3是判断归档文件内容是否发生变化的步骤。
图4是生成文件内容正向差异和逆向差异匹配记录文件的步骤。
图5是文件内容正向差异和逆向差异匹配记录文件传输的步骤。
图6是生成文件内容逆向差异的步骤。
图7是文件内容正向差异重放的步骤。
图8 是指定归档点文件逆向增量恢复的步骤。
具体实施方式
以下结合附图详细说明本发明的具体方法。
图1是本发明的工作原理图。
图1是本发明的工作原理图,其中包括归档文件备份和归档文件恢复两部分。
图1中左边虚线框中为归档文件的备份流程:客户端发起归档文件f备份操作,比较文件f与其上一归档点文件f t ,计算出两个文件内容的差异,并生成出正向差异文件和逆向差异匹配记录文件,传送到归档服务器;归档服务器根据文件内容逆向差异匹配记录文件计算出文件内容逆向差异,据此来管理各归档点,同时文件归档服务器根据正向差异文件和上一归档点文件f t 重放出归档文件f
图1中右边虚线框中为指定归档点文件恢复过程:客户端向归档服务器发出所需归档时间点的文件的请求信息,归档服务器接收该请求信息,根据最新归档点文件f t 和各归档点文件内容的逆向差异,以时间的逆序完成文件的重放操作,得到用户指定归档点文件,并传回客户端。
具体地,本发明提出的一种逆向的文件增量归档方法包括以下步骤:
1) 归档文件增量备份的步骤,其中包括以下步骤:
a) 判断归档文件内容是否发生变化的步骤;
b) 生成文件内容正向差异和逆向差异匹配记录文件的步骤;
c) 文件内容正向差异和逆向差异匹配记录文件传输的步骤;
d) 生成文件内容逆向差异的步骤;
e) 文件内容正向差异重放的步骤;
2) 指定归档点文件逆向增量恢复的步骤。
图2是归档文件增量备份的步骤。
图2给出了归档文件增量备份的步骤。首先通过比较客户端文件f与其在归档服务器中上一归档时间点文件f t ,计算出两者的差异,同时生成基于时间点的文件内容正向差异和文件内容逆向差异;然后将以上文件差异通过网络传输到归档服务器,正向差异用于更新归档服务器文件,得到最新文件版本,逆向差异用于管理和重放各个归档点文件,具体步骤如下:
1) 判断归档文件内容是否发生变化的步骤;
2) 生成文件内容正向差异和逆向差异匹配记录文件的步骤;
3) 文件内容正向差异和逆向差异匹配记录文件传输的步骤;
4) 生成文件内容逆向差异的步骤;
5) 文件内容正向差异重放的步骤;
图3是判断归档文件内容是否发生变化的步骤。
图3给出了判断文件内容是否发生变化的步骤。判断文件f客户端版本
Figure 912488DEST_PATH_IMAGE036
和归档服务器版本f i 文件内容是否有变化,即判断
Figure DEST_PATH_IMAGE071
是否成立。
Figure 350423DEST_PATH_IMAGE034
可表示为文件属性
Figure DEST_PATH_IMAGE073
和文件内容
Figure DEST_PATH_IMAGE075
,其中
Figure 302198DEST_PATH_IMAGE076
为文件长度,
Figure 774768DEST_PATH_IMAGE021
为文件最后修改时间,
Figure DEST_PATH_IMAGE077
为文件内容散列值,具体步骤如下:
1) 获取归档服务器文件属性的步骤:客户端向归档服务器请求文件f i 的文件属性,归档服务器传回文件属性
2) 比较文件长度的步骤:比较是否等于
Figure 83761DEST_PATH_IMAGE019
,如果不等,则文件内容发生变化,转5);
3) 比较文件最后修改时间的步骤:比较
Figure 410837DEST_PATH_IMAGE082
是否等于
Figure 695188DEST_PATH_IMAGE021
,如果不等,文件内容发生变化,转5);
4) 比较文件散列值的步骤:比较是否等于,如果不同,则文件内容发生变化,转5);
5) 判定比较结束的步骤:保存文件是否发生改变的结果,结束比较。
图4是生成文件内容正向差异和逆向差异匹配记录文件的步骤。
图4给出了生成文件内容正向差异和逆向差异匹配记录文件的具体步骤。对于ii+1时刻的文件版本f i f i+1 ,首先判断文件内容是否发生变化,若文件内容发生了变化,客户端向归档服务器请求校验值文件f H ,然后计算该文件内容的正向差异
Figure 582876DEST_PATH_IMAGE086
和该文件内容的逆向差异匹配记录,生成正向差异对文件
Figure 38128DEST_PATH_IMAGE088
和逆向差异匹配记录文件
Figure 469109DEST_PATH_IMAGE090
,具体步骤如下:
1) 归档服务器文件分块的步骤:将文件f i k字节为单位分成一系列没有重叠的数据块,共n块,如果最后一块不足k字节,则用0xFF补足为k字节。
Figure 35220DEST_PATH_IMAGE019
f i 文件长度,f i 文件分块序列号,文件偏移量为j),文件数据块的分块序号为: 
Figure 366472DEST_PATH_IMAGE096
,其中运算符“/”表示整除,
Figure 470694DEST_PATH_IMAGE092
从1开始计数,最大为
Figure 158028DEST_PATH_IMAGE098
2) 归档服务器计算校验值并生成校验值文件的步骤:对于每个分块进行滚动校验和计算(滚动校验和计算采用rsync算法)、计算校验值(如:MD4),计算结果表示为
Figure 955082DEST_PATH_IMAGE100
,其中
Figure 563918DEST_PATH_IMAGE102
是滚动校验和,
Figure 268569DEST_PATH_IMAGE104
是校验值,j为文件偏移量,如果文件最后一块不足k字节,则用0xFF补足为k字节再计算。将校验值保存到文件f H 中;
3) 客户端通过网络获得校验值文件的步骤:客户端向归档服务器请求校验值文件f H ,归档服务器向客户端传回校验值文件f H
4) 客户端生成滚动校验值哈希表与索引表步骤:从校验值文件f H 中重新载入校验值,对滚动校验和进行哈希排序,将排序结果放入一个16bit的哈希表中。然后创建一个16bit的索引表,每一项索引值指向哈希表的每一个入口点;
5) 客户端扫描搜索、生成正向差异文件对及逆向差异匹配记录文件的步骤,设文件f i+1 的偏移量为,文件
Figure DEST_PATH_IMAGE107
的偏移量为j,最近匹配块的偏移量为g(初始值为0),
Figure 247206DEST_PATH_IMAGE088
表示正向差异文件对,
Figure 874497DEST_PATH_IMAGE108
表示逆向差异匹配记录文件。该步骤描述如下:
a) 记录文件描述信息的步骤:记录文件
Figure 320522DEST_PATH_IMAGE054
的文件长度
Figure 451289DEST_PATH_IMAGE110
、分块大小k、最后一个分块的长度l_block到文件文件
Figure 382291DEST_PATH_IMAGE112
和文件
Figure 965719DEST_PATH_IMAGE090
中;
b) 查找哈希值匹配块的步骤:当
Figure 215435DEST_PATH_IMAGE114
时,计算出不匹配块长度,若,转e);若
Figure 112349DEST_PATH_IMAGE120
,记录不匹配块长度
Figure 165756DEST_PATH_IMAGE122
到文件中,转e)。当
Figure 17354DEST_PATH_IMAGE124
时,计算从偏移量l开始的大小为
Figure 309795DEST_PATH_IMAGE126
的数据块的滚动校验和
Figure 698051DEST_PATH_IMAGE128
,并对
Figure 392338DEST_PATH_IMAGE128
进行哈希计算,如果不足k字节,则用0xFF补足为k字节再计算,然后搜索滚动校验和索引表与哈希表,查找相匹配的校验和,如果没有找到匹配的校验和,转c),否则,转d);
c) 记录正向差异数据的步骤:把的第
Figure 371106DEST_PATH_IMAGE106
个字节记录到
Figure 766316DEST_PATH_IMAGE132
中,然后,转b);
d) 验证匹配块散列值的步骤:计算
Figure 934309DEST_PATH_IMAGE130
中匹配块的校验值,并与匹配数据块的校验值
Figure 665822DEST_PATH_IMAGE104
相比较。若
Figure DEST_PATH_IMAGE139
,则说明两个数据块完全一样。则先计算出不匹配块长度
Figure 865859DEST_PATH_IMAGE116
,当
Figure 124802DEST_PATH_IMAGE120
时,记录到文件
Figure 396569DEST_PATH_IMAGE112
中,记录
Figure 919954DEST_PATH_IMAGE107
的数据块序号
Figure DEST_PATH_IMAGE141
的相反数,即
Figure DEST_PATH_IMAGE143
到文件
Figure 146536DEST_PATH_IMAGE144
中,并记录Q = <j, l>到中,然后
Figure 928864DEST_PATH_IMAGE146
转b);若
Figure 438660DEST_PATH_IMAGE150
,转c);
e) 正向差异对文件和逆向差异匹配记录文件生成结束的步骤:正向差异对文件
Figure DEST_PATH_IMAGE151
和逆向差异匹配记录文件
Figure 183894DEST_PATH_IMAGE152
生成成功,并将其加入到文件内容差异集
Figure 528287DEST_PATH_IMAGE064
中。
图5是文件内容正向差异和逆向差异匹配记录文件传输的步骤。
图5给出了文件内容正向差异和逆向差异匹配记录文件传输的具体步骤。客户端以文件
Figure 26265DEST_PATH_IMAGE042
Figure DEST_PATH_IMAGE153
Figure 63491DEST_PATH_IMAGE152
的形式分别存储
Figure 279708DEST_PATH_IMAGE064
中不同类型的差异;对存放
Figure 693372DEST_PATH_IMAGE064
中差异的三类文件,依次序:
Figure 45856DEST_PATH_IMAGE042
Figure 253984DEST_PATH_IMAGE153
Figure 691918DEST_PATH_IMAGE152
,分别将文件打开,将其内容通过网络传输到归档服务器,具体步骤如下:
1) 客户端打开存放文件内容差异的文件的步骤:依次序
Figure 365531DEST_PATH_IMAGE040
Figure 478980DEST_PATH_IMAGE050
,分别打开各种类型的差异文件;
2) 发送文件差异内容的步骤:将1)中打开文件的内容通过网络发送到归档服务器;
3) 归档服务器保存文件差异内容的步骤:归档服务器接收到文件差异内容后,创建新文件
Figure 404211DEST_PATH_IMAGE042
Figure 486754DEST_PATH_IMAGE154
,并将文件内容分别保存到这些文件中。
图6是生成文件内容逆向差异的步骤。
图6给出了生成文件内容逆向差异具体步骤。归档服务器根据逆向差异匹配记录文件
Figure 771104DEST_PATH_IMAGE108
 生成逆向差异对文件,其中包括逆向差异数据文件
Figure 449210DEST_PATH_IMAGE156
和逆向差异指示文件
Figure 477209DEST_PATH_IMAGE158
,具体步骤如下:
1) 扫描逆向差异匹配记录文件的步骤:逆向差异匹配记录文件中存储着匹配数据块在服务器端i时刻文件
Figure 645203DEST_PATH_IMAGE107
中的偏移量j以及在i+1时刻文件
Figure DEST_PATH_IMAGE159
中的偏移量l,将这两个值读入结构体实例
Figure 545025DEST_PATH_IMAGE160
,其中block赋值j/k+1,offset赋值l,将各实例放入数组S myblock 
2) 数组排序的步骤:按每个结构体的block值升序对数组S myblock 进行排序;
3) 创建逆向差异对文件的步骤:新建逆向差异指示文件
Figure 393027DEST_PATH_IMAGE158
和逆向差异数据文件,用于存储文件内容的逆向差异;
4) 保存最新归档文件描述信息的步骤:从文件
Figure 960274DEST_PATH_IMAGE090
读出文件
Figure 586428DEST_PATH_IMAGE054
分块信息,记录文件大小
Figure 707968DEST_PATH_IMAGE019
和数据块的大小k,将k值写入文件
Figure 765102DEST_PATH_IMAGE158
。计算出的块数
Figure DEST_PATH_IMAGE163
,其中运算符“/”表示整除;
5) 查找匹配数据块的步骤:设当前文件的块号为iblock(
Figure DEST_PATH_IMAGE165
),初始值为1;当iblock > num时,转至8);否则将iblock值与数组S myblock 中各实例的block值进行匹配查找:若iblock值与数组S myblock 中某实例block值相同,转至6);否则,转至7);
6) 记录匹配块信息的步骤:将对应实例中的
Figure DEST_PATH_IMAGE167
值写入,然后iblock =  iblock + 1,转至5);
7) 记录不能匹配块信息的步骤:将值
Figure DEST_PATH_IMAGE169
写入
Figure 921649DEST_PATH_IMAGE158
,并将
Figure 932330DEST_PATH_IMAGE137
中偏移量为
Figure DEST_PATH_IMAGE171
,长度为k的数据写入
Figure 431445DEST_PATH_IMAGE156
,然后iblock  =  iblock + 1,转至5);
8) 文件内容逆向差异生成完毕的步骤:关闭文件和文件
Figure 770339DEST_PATH_IMAGE156
,逆向差异对文件
Figure DEST_PATH_IMAGE173
生成成功。
图7是文件内容正向差异重放的步骤。
图7给出了文件内容正向差异重放的具体步骤。服务器在收到客户端通过网络传输过来的文件内容差异后,重放文件内容差异,即执行,得到最新归档时间点文件内容
Figure DEST_PATH_IMAGE177
,完成文件的归档,重放过程中
Figure DEST_PATH_IMAGE179
作为临时文件。具体步骤如下:
1) 读取正向差异指示文件的步骤:从正向差异指示文件
Figure 182997DEST_PATH_IMAGE040
中取数据,若已到文件末尾,转至5);否则,读取数据x,转至2);
2) 判定正向差异指示数据的步骤:若> 0,转至3);若< 0,转至4);
3) 从正向差异数据文件中读取数据的步骤:从
Figure 853013DEST_PATH_IMAGE132
中当前文件指针开始处取出x个字节,写入
Figure 170862DEST_PATH_IMAGE179
,转1);
4) 从上一归档点文件中读取数据的步骤:从
Figure 686157DEST_PATH_IMAGE034
中取出第
Figure DEST_PATH_IMAGE181
块数据,写入
Figure 202589DEST_PATH_IMAGE179
,转1);
5) 正向差异重放操作完成的步骤:重放操作结束,用文件
Figure 512347DEST_PATH_IMAGE179
覆盖
Figure 848651DEST_PATH_IMAGE015
得到最新归档点文件
Figure 902057DEST_PATH_IMAGE177
图8 是指定归档点文件恢复的步骤。
图8给出了指定归档点文件恢复的具体步骤。客户端向归档服务器发出所需归档时间点的文件的请求信息,服务器接收该请求信息,根据最新文件版本、文件内容逆向差异,以时间的逆序完成文件的重放操作,即执行
Figure DEST_PATH_IMAGE183
,其中
Figure DEST_PATH_IMAGE185
为指定归档点的文件,以恢复文件
Figure DEST_PATH_IMAGE187
为例说明。具体步骤如下:
1) 发送指定归档点文件恢复请求的步骤:客户端向归档服务器发出所需归档时间点的文件恢复的请求信息;
2) 逆向差异重放的步骤:对所请求恢复的归档点文件,根据最新文件版本和对应的各归档时间点逆向差异,迭代使用逆向差异重放算法,重放出所需归档点文件。逆向差异重放算法执行
Figure DEST_PATH_IMAGE189
操作,具体步骤如下:
a) 获取上一时刻归档文件的描述信息的步骤:从逆向差异指示文件
Figure DEST_PATH_IMAGE191
中读取数据,获得文件大小
Figure DEST_PATH_IMAGE193
,文件分块大小k
b) 读取逆向差异指示文件的步骤:继续从逆向差异指示文件
Figure 584580DEST_PATH_IMAGE191
中取数据,若已到文件末尾,转至f);否则,读取数据y,转至c);
c) 判定逆向差异指示数据的步骤:若y = -1,转至d);若y > 0,转至e);
d) 从逆向差异数据文件中读取数据的步骤:从
Figure DEST_PATH_IMAGE195
中当前文件指针开始处取出k个字节,写入
Figure 65240DEST_PATH_IMAGE187
,转b);
e) 从本次归档点文件中读取数据的步骤:将
Figure 154419DEST_PATH_IMAGE034
文件指针移到偏移量y处,取出k字节写入
Figure 745937DEST_PATH_IMAGE187
,转b);
f) 逆向差异重放操作完成的步骤:逆向差异重放操作结束。
3) 发送所需归档时间点文件的步骤:将2)中重放出的归档点文件通过网络发送到客户端,完成文件的恢复。

Claims (6)

1.一种逆向的文件增量归档方法,其特征在于,所述方法包括以下步骤:
(1) 归档文件增量备份的步骤,包括以下步骤:
1) 判断归档文件内容是否发生变化的步骤;
2) 生成文件内容正向差异和逆向差异匹配记录文件的步骤,包括以下步骤:
a) 归档服务器文件分块的步骤;
b) 归档服务器计算校验值并生成校验值文件的步骤;
c) 客户端通过网络获得校验值文件的步骤;
d) 客户端生成滚动校验值哈希表与索引表的步骤;
e) 客户端扫描搜索、生成正向差异文件对及逆向差异匹配记录文件  的步骤;
3) 文件内容正向差异和逆向差异匹配记录文件传输的步骤;
4) 生成文件内容逆向差异的步骤,包括以下步骤:
a) 扫描逆向差异匹配记录文件的步骤;
b) 数组排序的步骤;
c) 创建逆向差异对文件的步骤;
d) 保存最新归档文件描述信息的步骤;
e) 查找匹配数据块的步骤;
f) 记录匹配块信息的步骤;
g) 记录不能匹配块信息的步骤;
h) 文件内容逆向差异生成完毕的步骤
5) 文件内容正向差异重放的步骤;
(2) 指定归档点文件逆向增量恢复的步骤。
2.根据权利要求1所述的一种逆向的文件增量归档方法,其特征在于,所述的判断归档文件内容是否发生变化的步骤包括以下步骤:
(1) 获取归档服务器文件属性的步骤;
(2) 比较文件长度的步骤;
(3) 比较文件最后修改时间的步骤;
(4) 比较文件散列值的步骤;
(5) 判定比较结束的步骤。
3.根据权利要求1所述的一种逆向的文件增量归档方法,其特征在于生成文件内容正向差异和逆向差异匹配记录文件的步骤中,客户端扫描搜索、生成正向差异文件对及逆向差异匹配记录文件的步骤包括以下步骤:
(1) 记录文件描述信息的步骤;
(2) 查找哈希值匹配块的步骤;
(3) 记录正向差异数据的步骤;
(4) 验证匹配块散列值的步骤;
(5) 正向差异对文件和逆向差异匹配记录文件生成结束的步骤。
4.根据权利要求1所述的一种逆向的文件增量归档方法,其特征在于,所述的文件内容正向差异和逆向差异匹配记录文件传输的步骤包括以下步骤:
(1) 客户端打开存放文件内容差异的文件的步骤;
(2) 发送文件差异内容的步骤;
(3) 归档服务器保存文件差异内容的步骤。
5.根据权利要求1所述的一种逆向的文件增量归档方法,其特征在于,所述的文件内容正向差异重放的步骤包括以下步骤:
(1) 读取正向差异指示文件的步骤;
(2) 判定正向差异指示数据的步骤;
(3) 从正向差异数据文件中读取数据的步骤;
(4) 从上一归档点文件中读取数据的步骤;
(5) 正向差异重放操作完成的步骤。
6.根据权利要求1所述的一种逆向的文件增量归档方法,其特征在于,所述的指定归档点文件逆向增量恢复的步骤包括以下步骤:
(1) 发送指定归档点文件恢复请求的步骤;
(2) 逆向差异重放的步骤,包括以下步骤:
1) 获取上一时刻归档文件的描述信息的步骤;
2) 读取逆向差异指示文件的步骤;
3) 判定逆向差异指示数据的步骤;
4) 从逆向差异数据文件中读取数据的步骤;
5) 从本次归档点文件中读取数据的步骤;
6) 逆向差异重放操作完成的步骤;
(3) 发送所需归档时间点文件的步骤。
CN2012100242694A 2012-02-05 2012-02-05 一种逆向的文件增量归档方法 Pending CN102609338A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012100242694A CN102609338A (zh) 2012-02-05 2012-02-05 一种逆向的文件增量归档方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100242694A CN102609338A (zh) 2012-02-05 2012-02-05 一种逆向的文件增量归档方法

Publications (1)

Publication Number Publication Date
CN102609338A true CN102609338A (zh) 2012-07-25

Family

ID=46526730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100242694A Pending CN102609338A (zh) 2012-02-05 2012-02-05 一种逆向的文件增量归档方法

Country Status (1)

Country Link
CN (1) CN102609338A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049263A (zh) * 2012-12-12 2013-04-17 华中科技大学 一种基于相似性的文件分类方法
CN106155843A (zh) * 2016-07-13 2016-11-23 袁凌 一种虚拟机备份和逆向恢复方法
CN106776150A (zh) * 2017-01-04 2017-05-31 上海上讯信息技术股份有限公司 一种获取事务日志转储文件信息的方法及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
陈世爵等: "文件集的逆向差异归档方法", 《计算机工程与设计》 *
马晓旭等: "一种逆向的差异归档方法 ", 《四川大学学报(工程科学版)》 *
马晓旭等: "一种逆向的差异归档方法", 《四川大学学报(工程科学版)》, vol. 41, no. 04, 31 July 2009 (2009-07-31), pages 191 - 195 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049263A (zh) * 2012-12-12 2013-04-17 华中科技大学 一种基于相似性的文件分类方法
CN103049263B (zh) * 2012-12-12 2015-06-10 华中科技大学 一种基于相似性的文件分类方法
CN106155843A (zh) * 2016-07-13 2016-11-23 袁凌 一种虚拟机备份和逆向恢复方法
CN106155843B (zh) * 2016-07-13 2019-03-12 袁凌 一种虚拟机备份和逆向恢复方法
CN106776150A (zh) * 2017-01-04 2017-05-31 上海上讯信息技术股份有限公司 一种获取事务日志转储文件信息的方法及设备

Similar Documents

Publication Publication Date Title
CN103959256B (zh) 基于指纹的数据重复删除
CN102831222B (zh) 一种基于重复数据删除的差量压缩方法
US8738668B2 (en) System and method for creating a de-duplicated data set
US7685384B2 (en) System and method for replicating files in a computer network
US8386521B2 (en) System for backing up and restoring data
CN103095843B (zh) 一种基于版本矢量的数据备份方法及客户端
CN104166600B (zh) 数据备份与恢复方法及装置
US8572340B2 (en) Systems and methods for retaining and using data block signatures in data protection operations
CN106933703B (zh) 一种数据库数据备份的方法、装置及电子设备
CN103116615B (zh) 一种基于版本矢量的数据索引方法及服务器
WO2012065408A1 (zh) 容灾数据备份的方法及系统
CN108255647B (zh) 一种samba服务器集群下的高速数据备份方法
CN101243447A (zh) 可搜索备份
CN103118104B (zh) 一种基于版本矢量的数据还原方法及服务器
CN104932956A (zh) 一种面向大数据的云容灾备份方法
KR101429575B1 (ko) 데이터베이스의 실시간 백업 시스템, 데이터 복구 시스템 및 데이터 복구 방법
CN102880663A (zh) 部分去重复的文件的优化
CN102185889B (zh) 基于iSCSI的重复数据删除方法
CN106202173B (zh) 一种文件仓库存储的智能排重方法及系统
CN102027457A (zh) 单独可访问数据单元的管理存储
CN101963982A (zh) 基于位置敏感哈希的删冗存储系统元数据管理方法
CN104584524A (zh) 聚合中介系统中的数据
US8943024B1 (en) System and method for data de-duplication
CN103838645B (zh) 一种基于哈希的远程差异合成备份实现方法
US7949630B1 (en) Storage of data addresses with hashes in backup systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120725