CN102402467A - 基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案 - Google Patents
基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案 Download PDFInfo
- Publication number
- CN102402467A CN102402467A CN2010102833524A CN201010283352A CN102402467A CN 102402467 A CN102402467 A CN 102402467A CN 2010102833524 A CN2010102833524 A CN 2010102833524A CN 201010283352 A CN201010283352 A CN 201010283352A CN 102402467 A CN102402467 A CN 102402467A
- Authority
- CN
- China
- Prior art keywords
- file
- algorithm
- delta
- calculate
- version
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案。为了减小连续DELTA序列中数据恢复的时间开销,提出了一种DELTA文件MultiplePass算法,并在此基础上提出了基于MultiplePass算法及连续DELTA序列的文件系统压缩备份及数据恢复方案。该方案在恢复数据时无需计算中间版本文件,较好地解决了连续DELTA序列数据恢复性能差的问题,同时MultiplePass算法不影响连续DELTA序列的备份方法,因此保持了其存储效率高、备份性能好的优点。
Description
技术领域
本发明涉及备份数据压缩及恢复的应用领域,具体涉及一种基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案。
背景技术
基于术的飞速发展,电子数据迅猛增长。大量的备份数据使得数据中心和网络带宽越来越不堪重远程复制的备份技术被广泛应用于保护有价值的商业和个人数据。随着计算机技术和存储技负,因此需要研究能有效减小备份数据物理存储量及网络传输量的技术,以适应海量数据的备份。
数据压缩是一种常用的方法,传统的压缩方法是利用文件内部编码的信息冗余进行压缩,能够获得的压缩比非常有限,通常为1∶2或更低。与传统数据压缩方法不同,DELTA压缩方法利用文件间的信息冗余进行压缩,可以达到1∶20甚至更高的压缩比。
DELTA压缩算法是一个函数(记为D),它的输入为一个待压缩文件(通常称为版本文件,记为V)和一个参照文件(记为R),输出为一个DELTA文件(记为Δ(R:V))。DELTA压缩算法D对照文件R的内容对文件V进行压缩,并输出压缩文件Δ(R:V),Δ(R:V)记录了V相对于R的变化,该压缩过程记为Δ(R:V)=D(R,V)。文件可以看作是由一系列符号组成的有序串,这里的符号可以是字符、数字、比特或字节等。压缩过程可以看作是对串V从头到尾进行编码的过程,编码的过程结果(即DELTA文件)是由一系列的copy命令和add命令组成的串。
基于DELTA压缩的文件备份系统采用客户/服务器架构,如图1所示。文件系统服务器为备份系统的客户端,负责工作文件系统的管理、备份数据的DELTA压缩及传送、恢复数据的接收及解压缩等工作。数据中心为备份系统的服务端,负责存储和管理备份数据,并在需要时给客户端传送恢复所需的数据文件。客户端和服务器端都在磁盘中保留了一个缓存区,用于存放DELTA压缩/解压缩所需的参照文件及其生成的中间文件,具体存放的内容和占用的空间大小取决于DELTA文件的管理策略。服务端的元数据中保存了用于管理DELTA文件所需的信息。
连续DELTA序列是一种直观的管理策略,它对版本文件序列B1B2...Bi-1BiBi+1...Bn的存储方法是:除了B1存储完整的文件,其余两两相邻的版本文件Bi和Bj(i≥1,j-i=1),只存储由这两个文件生成的DELTA文件这样就形成了连续DELTA序列
连续DELTA序列的依赖关系如图2所示,图中矩形代表完整文件,三角形代表DELTA文件,箭头代表其尾部的文件依赖于箭头指向的文件。依赖关系图指明了恢复版本文件的流程:当需要恢复链中任意一个版本文件Bj时,只需从图中对应的DELTA文件出发,沿着箭头方向行进,直至到达某一完整版本文件为止,记录下所经过的路径;再从该完整版本文件出发,沿着相反的路径方向,顺次恢复所有中间版本文件,直到恢复出所需的版本文件。
该策略中,版本文件的压缩由客户端完成,客户端的缓存区中保存最新的两个版本文件用于生成DELTA文件。服务器端保存作为备份数据。当需要恢复数据时,服务器端用该连续DELTA序列计算出客户端要求的版本文件Bi,并传送给客户端。服务器端的缓存区中保存当前计算所需的中间版本文件和DELTA文件,并实时删除不再使用的文件。
连续DELTA序列具有最优的存储效率,并且客户端和服务器端之间传送的数据量小,但恢复数据所花费的时间取决于中间文件的数量。
发明内容
本发明解决的问题在于,用传统方法恢复连续DELTA序列中的数据时,时间开销会随着中间版本文件数量的增加而迅速增加,数据恢复效率低下的问题。为此,提供一种基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案。
本发明解决问题所采取的方案是,提供一种基于MultiplePass算法及连续DELTA序列压缩的文件系统备份方案;其在不计算中间文件的情况下,提出了一种高效的TriplePass数据恢复算法。所述TriplePass算法可直接用于对压缩备份数据进行运算,直接得到原始版本文件,不需要计算中间文件。
在本发明所述的一种基于MultiplePass算法的连续DELTA序列压缩的文件系统备份方案中,所述TriplePass算法是一种对传统DELTA序列数据恢复方法的改进算法,其对传统管理策略进行提炼与升华,得到一种高效简炼的算法,其效率高,存储利用率高。
具体的,所述TriplePass算法直接作用于DELTA备份文件与待恢复原始版本文件上,省掉了全部计算中间版本文件的中间过程。所以本发明提供的基于TriplePass算法及连续DELTA序列的文件系统压缩备份方案执行效率高,存储量小,恢复速度快。
在本发明所述的一种基于TriplePass算法及连续DELTA序列的文件系统压缩备份方案中,所述TriplePass算法得到的计算结果由add和copy命令有序组成。
具体的,DELTA文件中,add命令由于包含了所代表子串的全部信息,故可以直接解释执行,恢复出对应的子串;而copy命令实质是一个指向参照文件的指针,故需要参照文件的参与才能恢复出对应的子串。所述TriplePass算法的基本思想是将DELTA文件中指向相邻版本文件的copy命令全部转换为指向最终参照文件的copy命令,而add命令直接保留。
进一步的,所述TriplePass算法得到的DELTA文件只需要最终参照文件即可直接恢复出所需的原始版本文件。
更进一步的,所述TriplePass算法很容易扩展为适用于多个文件的通用数据恢复算法,无需计算任何中间文件,称通用的算法为MultiplePass算法。
为了使本发明更清楚明白,下面结合具体表征阐明本发明所带来的技术效果,本发明提出一种DELTA文件TriplePass算法,设R,V和T代表3个版本文件,已知R,Δ(R:V)和Δ(V:T),如要得到T,传统的方法是先用R和Δ(R:V)计算出V,再用V和Δ(V:T)计算出T,而TriplePass算法的目的是在不计算V的情况下,直接用Δ(R:V)和Δ(V:T)计算出Δ(R:T),并且计算过程无需R的参与,即Δ(R:T)=TriplePass(Δ(R:V),Δ(V:T))。有了Δ(R:T),R又是已知的,再运行一次解压算法即可得到T。DELTA文件由add和copy命令组成。在解压缩时,add命令由于包含了所代表子串的全部信息,故可以直接解释执行,恢复出对应的子串;而copy命令实质是一个指向参照文件的指针,故需要参照文件的参与才能恢复出对应的子串。TriplePass算法的基本思想是将Δ(V:T)中指向V的copy命令全部转换为指向R的copy命令,而add命令直接保留,最终得到的DELTA文件只需要参照R即可恢复出T,即通过转换得到了Δ(R:T)。很容易将TriplePass推广到适用于多个文件BmBm+1...Bi...Bn-1Bn的通用DELTA文件MultiplePass算法。设已知Bm和(m≤i≤n-1),MultiplePass算法利用这n-m个DELTA文件直接计算出该计算过程不需要计算中间文件Bm+1Bm+2...Bn-1,也不需要Bm的参与。有了Bm和再运行一次解压缩算法,即可得到Bn。
在连续DELTA序列的设计上,该发明采用MultiplePass算法来改进连续DELTA序列的数据恢复性能。一方面,这样避免了计算中间文件,相对传统方法大大提高了数据恢复效率;另一方面,MultiplePass算法不影响连续DELTA序列的存储和备份方法,保持了连续DELTA序列优良的存储和备份性能。
本发明提出的基于MultiplePass算法及连续DELTA序列压缩的文件系统备份方案,实现了减小备份存储开销的目的;所提出的MultiplePass算法极大提高了数据恢复效率,解决了传统恢复方法时间开销大的问题,进而为减轻数据中心和网络带宽越来越不堪承受的重负打下坚实的技术基础。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是DELTA备份系统结构示意图;
图2是连续DELTA序列依赖关系图;
图3是一个TriplePass算法的实例。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图3给出了本发明的一个TriplePass算法的实例。
本发明提出的DELTA文件TriplePass算法具体实施转换过程如下:
(1)读出Δ(V:T)中的第一个命令<C,10,6>(对应的子串为“CEABCMNKCD”),该命令的off=6,len=10,子串最后一个符号“D”在V中的偏移量end=off+len-1=15。
(2)顺次将Δ(R:V)中各命令的len值累加到lensum中(lensum的初始值为0),并将lensum与(1)中的off和end相比较,就可以定位出<C,10,6>在Δ(R:V)中所对应的命令。如实例中从Δ(R:V)的第1个命令<C,4,1>开始累加,第一次累加lensum=4<6;当累加到第2个命令<C,3,6>时,6<lensum=4+3=7<15;继续累加,直到第5个命令<C,3,3>时,lensum=4+3+3+3+3=16>15。由此判定<C,10,6>所代表的子串在Δ(R:V)中对应为<C,3,6>的后2个符号、<C,3,1>的全部符号、<A,3,MNK>的全部符号和<C,3,3>的前2个符号,即图中V的虚线框所包含的部分。
(3)由于只包含了首命令<C,3,6>和尾命令<C,3,3>的部分符号,故调整首命令的off和len(将<C,3,6>转化为<C,2,7>),并调整尾命令的len(将<C,3,3>转化为<C,2,3>)。中间的命令<C,3,1>和<A,3,MNK>,由于全部符号都被包含,因此不需要转换,直接复制。<C,10,6>命令最后被转换为<C,2,7><C,3,1><A,3,MNK><C,2,3>。
(4)读出Δ(V:T)中的下一个命令<A,5,PQYZW>,由于是add命令,不需要转换,直接复制。
(5)Δ(V:T)中的命令读取结束,输出最终转换结果Δ(R:T)=<C,2,7><C,3,1><A,3,MNK><C,2,3><A,5,PQYZW>。
采用了MultiplePass算法后,备份方案仍然采用连续DELTA序列管理策略,在服务器端仍是保存形如的备份数据。在数据恢复时,有以下两种情况:
(1)客户端有某个版本文件Bm可用。文件系统管理员需要恢复到意外出错之前的某个版本Bk,而此时管理员有文件系统某个版本文件Bm(m<k)的本地备份(可能以磁带、光盘等离线方式存储)。这种情况下,客户端向服务器端请求文件。如果k-m=1,服务器端直接从DELTA序列中取出并发送给客户端;如果k-m≥2,则服务器端调用MultiplePass({Δ(i:i+1)|m≤i≤k-1})计算出后返回给客户端。客户端有了Bm和再运行一次解压缩算法即可得到Bk。
(2)客户端没有任何版本文件可用。客户端在重建硬件系统后,向服务器端请求重建前的最新版本文件Bn。服务器端调用MultiplePass({Δ(i:i+1)|1≤i≤n-1})计算出再运行一次解压缩算法得到Bn,最后将Bn传送给客户端。
综上所述,本发明由于避免了计算中间文件,基于MultiplePass算法的连续DELTA序列相对传统方法大大提高了数据恢复效率;另一方面,由于MultiplePass算法不影响连续DELTA序列的存储和备份方法,因此保持了连续DELTA序列优良的存储和备份性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡是本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案,在现有的压缩方式和文件管理策略的基础上,从压缩效率、存储开销、数据恢复性对文件系统备份和恢复总体性能进行提高。
其特征在于:
该文件系统的备份文件管理策略采用连续DELTA文件序列,该策略具有优良的存储和备份性能;
该文件系统的数据恢复方法采用基于MultiplePass算法的连续DELTA序列数据恢复方法,该方法仅凭相邻版本文件的DELTA文件就可以计算出任意两个版本文件之间的DELTA文件,从而不需要恢复中间版本文件,直接由一个先前版本文件可恢复出任意一个所需的版本文件。
2.如权利要求1所述,基于MultiplePass算法的连续DELTA序列数据恢复方法,其特征是,仅凭相邻版本文件的DELTA文件就可以计算出任意两个版本文件之间的DELTA文件,从而在不需要计算中间版本文件的情况下,可以由一个先前的版本文件和相关DELTA文件计算出所需的版本文件;DELTA文件由add和copy命令组成,在解压缩时,由于add命令包含了所代表的子串的全部信息,故可以直接解释执行,计算出对应的子串,而copy命令实质是一个指向参照文件的指针,故需要参照文件的参与才能计算出对应的子串;TriplePass算法在解压缩时,基本思想是将Δ(V:T)中指向V的copy命令全部转换为指向R的copy命令,而add命令直接保留,最终得到的DELTA文件只需要参照R即可计算出T,即通过转换得到了Δ(R:T)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102833524A CN102402467A (zh) | 2010-09-16 | 2010-09-16 | 基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102833524A CN102402467A (zh) | 2010-09-16 | 2010-09-16 | 基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102402467A true CN102402467A (zh) | 2012-04-04 |
Family
ID=45884695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102833524A Pending CN102402467A (zh) | 2010-09-16 | 2010-09-16 | 基于MultiplePass算法及连续DELTA序列的文件系统压缩备份方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102402467A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010056265A1 (en) * | 2008-11-14 | 2010-05-20 | Datadomain, Inc. | Delta compression after identity deduplication |
-
2010
- 2010-09-16 CN CN2010102833524A patent/CN102402467A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010056265A1 (en) * | 2008-11-14 | 2010-05-20 | Datadomain, Inc. | Delta compression after identity deduplication |
Non-Patent Citations (1)
Title |
---|
王灿等: "基于线性链式De l t a压缩的数据库备份方法", 《计算机应用研究》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101820426B (zh) | 一种在线备份服务软件中的数据压缩方法 | |
EP2256934B1 (en) | Method and apparatus for content-aware and adaptive deduplication | |
CN102999543B (zh) | 利用了数据段的相似度的高效数据存储 | |
CN102831222B (zh) | 一种基于重复数据删除的差量压缩方法 | |
US8595188B2 (en) | Operating system and file system independent incremental data backup | |
US8285957B1 (en) | System and method for preprocessing a data set to improve deduplication | |
CN103095843B (zh) | 一种基于版本矢量的数据备份方法及客户端 | |
WO2017096532A1 (zh) | 一种数据保存方法和装置 | |
CN103118104B (zh) | 一种基于版本矢量的数据还原方法及服务器 | |
CN103116615B (zh) | 一种基于版本矢量的数据索引方法及服务器 | |
CN104932956A (zh) | 一种面向大数据的云容灾备份方法 | |
CN107682016B (zh) | 一种数据压缩方法、数据解压方法及相关系统 | |
CN101968796B (zh) | 一种双向并发执行的文件级可变长数据分块方法 | |
CN103177111A (zh) | 重复数据删除系统及其删除方法 | |
CN102624871A (zh) | 一种基于分布式企业服务总线实现的远程文件同步方法 | |
CN104866430B (zh) | 结合主从备份和纠删码的内存计算系统高可用优化方法 | |
CN103944981A (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
Sun et al. | Data backup and recovery based on data de-duplication | |
CN105487942A (zh) | 一种基于重复数据删除的备份与远程复制方法 | |
CN103379160A (zh) | 一种超大文件的差异同步方法 | |
CN107027326B (zh) | 存储系统中数据备份的方法及装置 | |
CN101673289A (zh) | 分布式文件存储构架的构建方法和装置 | |
CN103152430A (zh) | 一种缩减数据占用空间的云存储方法 | |
CN104967660B (zh) | 一种面向多云架构的网络性能提升方法 | |
CN111831223A (zh) | 提高数据去重系统可扩展性的容错编码方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120404 |
|
WD01 | Invention patent application deemed withdrawn after publication |