一种基于哈希的远程差异合成备份实现方法

文档序号:6534783阅读:271来源:国知局
一种基于哈希的远程差异合成备份实现方法
【专利摘要】本发明涉及一种基于哈希的远程差异合成备份实现方法,包括以下步骤:1)备份客户端获取需要备份的源文件,设定备份类型,生成文件列表,所述的备份类型包括全备份或差异备份;2)判断是否存在与文件列表相关的编录信息文件,若是,则直接执行步骤3),若否,则生成一个空的编录信息文件后,执行步骤3);3)根据文件列表和编录信息文件计算差异数据,并保存至备份服务器中;4)获取此次备份的备份类型,若备份类型为全备份,则备份服务器对每个文件执行差异合成备份,执行步骤5),若备份类型为差异备份,则直接执行步骤5);5)备份结束。与现有技术相比,本发明具有数据量少、网络的利用率高、数据存储空间少、处理速度快等优点。
【专利说明】6丢失。为了保证数据持续可用,最好的方个或者多个位置。
1技术被开发出来用于数据的冗余存储,像独立磁盘冗余阵列)系统可以用来保证在1]可以保证在计算机受到自然灾害、被盗或
即在设定的时间点启动备份任务。在这种基以确定文件是否被更改过,如果文件被更明显的缺陷就是,就算是文件一个字节都未分。特别是当文件的尺寸很大时,备份所带
题,则使用另一种实时的备份方式,即利用向文件中写入的数据。当文件有变化时,就I然解决了上面备份大文件的问题,但是也寸,这种备份方式会将这些变化的数据存储次,要实时监控文件的写操作,需要在系统,
中是否存在当前文件的编录信息,若是,贝1]丨执行步骤3.3);
2 口下公式求得当前文件所对应的哈希块长
122表示的是11对3122求余数;
十算的哈希块长度I为单位,计算每一块数-表,将哈希表、哈希块长度和文件记录信息
份服务器,即当前文件的备份类型为“全备:录在编录信息文件中的文件最后修改时间丸行步骤3.7);
希块长度匕并设置当前文件的当前位置为分”,从“差异备份”中读取所有数据块记录
戸读取相应位置所描述的数据,并写入新的备份”中读取数据写入到新的“全备份”中,

〔次“全备份”之前的所有“全备份”以及“差
文件时间点及文件名称执行如下步骤:‘差异备份”以及其对应的“全备份”,从去个数据块执行如下判断:如果是相同的数6,并返回给客户端,如果是差异数据,则从.完所有的数据块。
,只备份差异数据。因此需要备份数据大小又减少备份的数据量。
I异数据,因此在通过网络备份到远端服务范围内保证不同的数据一定有不同的哈希I到一种快速哈希算法,最终数据是否相同,
,上述的快速哈希算法计算出来的哈希值,士希值,称为“慢哈希”。所述的快速哈希算(希的计算可以通过滑动窗口的方式进行,的两个字节即可以取得。类似的算法包括的强度高的哈希算法包括105、104、1、
包括备份服务器和备份客户端。备份服务客户端由“备份/恢复模块”以及“差异数
I份服务器的地址,然后向备份客户端指定需要备份的源文件生成文件列表I并查询果不存在,则生成一个空的编录信息文件。羊数据计算模块”。所述的编录信息文件包,并指定其类型01??,并输出相同哈希对对I及长度)到“备份/恢复模块”,并指定其字节,并返回步骤8。如果未找到相应的)5哈希值不相同,则执行步骤0。
个字节,然后返回步骤8。由于我们采用了亥方法的特征就是,只需要使用将移出与移I 8步骤时,8计算哈希的速度就会非常快,0
2为特殊块,以表示文件的处理已经结所示的格式,并被“备份/恢复模块”备份
10文件的信息,说明这个文件是第一次备计算出一个哈希数据块大小1:
艮余数,8122为文件打16的大小。数据的过程。当要恢复某个文件时,备份客〔件名称。当备份服务器接收到对应的时间
卜“差异备份”,以及其对应的“全备份”,然
块记录信息,并对每个块执行如下判断:如取数据中所描述的数据,并返回给客户端。女据返回给客户端,直到处理完所有的数据
恢复结束。
【权利要求】
1.一种基于哈希的远程差异合成备份实现方法,其特征在于,包括以下步骤: 1)备份客户端获取需要备份的源文件,设定备份类型,并根据源文件生成文件列表,所述的备份类型包括“全备份”或“差异备份”; 2)判断是否存在与文件列表相关的编录信息文件,若是,则直接执行步骤3),若否,则生成一个空的编录信息文件后,执行步骤3); 3)根据文件列表和编录信息文件计算差异数据,并保存至备份服务器中; 4)获取此次备份的备份类型,若备份类型为“全备份”,则备份服务器对每个文件执行差异合成备份,执行步骤5),若备份类型为“差异备份”,则直接执行步骤5); 5)备份结束。
2.根据权利要求1所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,所述的编录信息文件包括哈希表、文件备份时使用的哈希块长度和文件记录信息,所述的记录信息包括文件名称、文件大小和文件最后修改时间。
3.根据权利要求2所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,所述的步骤3)具体为: 3.1)从文件列表中取得下一个需备份的文件作为当前文件,判断当前文件是否为空,若是,则执行步骤4),若否,则执行步骤3.2); 3.2)根据文件名称判断编录信息文件中是否存在当前文件的编录信息,若是,则当前文件为第一次备份,执行步骤3.6),若否,则执行步骤3.3); 3.3)获取当前文件的大小SIZE,利用如下公式求得当前文件所对应的哈希块长度L:
L=Ll+[ (LI % SIZE) / (SIZE / LI)] 其中,U= (IOg2 SIZE){^SIZE),Ll% SIZE 表示的是 LI 对 SIZE 求余数; 3.4)从当前文件开头起,以步骤3.3)计算的哈希块长度L为单位,计算每一块数据的“快哈希”与“慢哈希”,形成当前文件的哈希表,将哈希表、哈希块长度和文件记录信息保存至编录信息文件中; 3.5)将当前文件的完整数据保存至备份服务器,即当前文件的备份类型为“全备份”,返回步骤3.1); 3.6)获取当前文件的修改时间,并与记录在编录信息文件中的文件最后修改时间进行比较,若相同,则返回步骤3.1),若不同,则执行步骤3.7); 3.7)获取当前文件对应的哈希表和哈希块长度L,并设置当前文件的当前位置为O ; 3.8)判断当前位置到文件末尾的数据块的长度是否小于L,若是,则输出窗口自上一个相同块以来滑过的数据块以及该数据块为差异数据块,执行步骤3.11),若否,则从当前位置以L为窗口长度计算窗口中数据块的“快哈希”,并判断哈希表中是否存在相同值的“快哈希”,若是,则执行步骤3.9),若否,则执行步骤3.10); 3.9)计算当前数据块的“慢哈希”,判断在具有相同的“快哈希”的哈希对中是否存在相同的“慢哈希”,若是,则说明当前数据块与该哈希对所对应的数据块相同,则输出窗口自上一个相同块以来滑过的数据块为差异数据块,并输出查找到的相同数据块在对应文件中的位置信息,将当前 位置向后移动一个窗口长度,返回步骤3.8),若否,则执行步骤3.10); 3.10)将当前位置向后移动一个字节,即滑动一个字节,返回步骤3.8);.3.11)将输出的所有差异数据块以及相同数据块信息作为差异数据保存至备份服务器中,即当前文件的备份类型为“差异备份”。
4.根据权利要求3所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,所述的“快哈希”为快速哈希算法计算的哈希值,所述的“慢哈希”为高强度哈希算法计算的哈希值; 所述的快速哈希算法计算包括Rabin-Karp算法或Adler32算法,所述的高强度哈希算法包括 MD5、MD4、SHA-U SHA-2 或 SHA-3。
5.根据权利要求3所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,所述的哈希块长度L的下限为400K字节,上限为512K字节。
6.根据权利要求3所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,所述的步骤4)中的差异合成备份具体为: . 4.1)判断文件列表中的所有文件是否均为第一次备份,若是,则执行步骤5),若否,则执行步骤4.2); .4.2)从当前时间点到第一次备份的时间点之间的所有文件执行如下步骤: .4.2.1)判断当前文件的备份类型是否为“全备份”,若是,则执行下一个文件的合成,若否,则执行步骤4.2.2); . 4.2.2)查找当前文件所对应的“全备份”,从“差异备份”中读取所有数据块记录信息,并对每个数据块执行如下判断: 如果是相同的数据块,则从“全备份”中读取相应位置所描述的数据,并写入新的“全备份”中;如果是差异数据,则从当前的“差异备份”中读取数据写入到新的“全备份”中,直到处理完所有的数据块,然后执行步骤4.2.3); . 4.2.3)完成“全备份”的合成后,删除本次“全备份”之前的所有“全备份,,以及“差异备份”数据,并更新编录信息文件。
7.根据权利要求6所述的一种基于哈希的远程差异合成备份实现方法,其特征在于,需要恢复备份数据时,根据指定的恢复文件时间点及文件名称执行如下步骤: 从指定的时间点向前查找文件的第一个“差异备份”以及其对应的“全备份”,从“差异备份”中读取所有数据块记录信息,并对每个数据块执行如下判断:如果是相同的数据块,则从“全备份”中读 取数据中所描述的数据,并返回给客户端,如果是差异数据,则从“差异备份”中读取数据返回给客户端,直到处理完所有的数据块。
【文档编号】G06F17/30GK103838645SQ201410002008
【公开日】2014年6月4日 申请日期:2014年1月2日 优先权日:2014年1月2日
【发明者】叶佑群 申请人:上海爱数软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1