一种基于SAPCI可变长分块的文件间增量同步方法技术

技术编号:24756059 阅读:35 留言:0更新日期:2020-07-04 09:08
本发明专利技术公开了一种基于SAPCI可变长分块的文件间增量同步方法,包括以下步骤:S1、备份服务器对备份文件进行文件分块;S2、备份服务器利用MD5对备份文件分块后的各小块分别进行加密和整合,把加密和整合的结果发送至源服务器;S3、在源服务器中同样对发生变动的源文件使用相同的SAPCI算法进行文件分块,并同样利用MD5对源文件分块后的各小块进行加密;S4、在源服务器中通过对比从备份服务器发送过来的MD5数据和自身对源文件进行分块并计算后的MD5数据,从而得到增量数据块和非增量数据块;S5、源服务器整合增量数据和匹配数据,并把增量数据和匹配数据发送至备份服务器;S6、备份服务器对备份文件进行整合。

An incremental synchronization method between files based on sapci variable length block

【技术实现步骤摘要】
一种基于SAPCI可变长分块的文件间增量同步方法
本专利技术属于计算机文件间增量领域,具体涉及一种基于SAPCI可变长分块的文件间增量同步方法
技术介绍
当今世界信息技术飞速发展,数字技术产生的数据正在爆发性增长,同时为了保证系统的容错性,往往会往系统中添加多个备份服务器,并生成多个备份文件,随着数据量的飞速增长,源文件与备份文件间的同步问题已经是不可被忽视的一个重要问题。在目前,文件间进行增量同步的传统算法主要是应用Rsync算法实现的,Rsync算法基于文件固定长度分块以及滚动校验,能较为精确定位出源文件与备份文件之间的增量数据,但是由于固定长度分块算法的设计缺陷,该分块算法对字节偏移抵抗能力非常差,文件的轻微变动将导致文件后续分块边界的集体偏移(邓雪峰,孙瑞志,张永瀚,等.基于数据位图的滑动分块算法[J].计算机研究与发展,2014,51(Suppl.):30-38.),因此Rsync算法除了计算强校验码外,还需要额外计算弱校验码,并且在源服务器端进行滚动校验,这就导致极大地增大了源服务器的CPU计算负担,以及极大地增加了校验耗时本文档来自技高网...

【技术保护点】
1.一种基于SAPCI可变长分块的文件间增量同步方法,其特征在于,包括以下步骤:/nS1、需要进行增量同步的备份服务器(Backup Server)对备份文件(Backup File)基于SAPCI算法进行文件分块;/nS2、备份服务器利用信息摘要算法MD5(Message-Digest,MD5Algorithm)对备份文件分块后的各小块分别进行加密和整合,生成MD5列表List

【技术特征摘要】
1.一种基于SAPCI可变长分块的文件间增量同步方法,其特征在于,包括以下步骤:
S1、需要进行增量同步的备份服务器(BackupServer)对备份文件(BackupFile)基于SAPCI算法进行文件分块;
S2、备份服务器利用信息摘要算法MD5(Message-Digest,MD5Algorithm)对备份文件分块后的各小块分别进行加密和整合,生成MD5列表Listbackup-MD5,最终把加密和整合的结果即MD5列表Listbackup-MD5发送至源服务器(SourceServer);
S3、在源服务器中同样对发生变动的源文件(SourceFile)使用与步骤S1相同的SAPCI算法进行文件分块,并同样利用MD5对源文件分块后的各小块进行加密,各小块加密后的结果为MD5src-i,其中src代表对源文件分块后的各小块进行加密,i=0,1,2,3,4,5…,代表着对源文件分块后各小块的编号顺序,完成加密后同样把加密后的结果MD5src-i按照编号顺序存储于源服务器的内存中形成MD5列表Listsrc-MD5,其中该步骤与步骤S1、步骤S2同步进行;
S4、在源服务器中获取增量数据块和非增量数据块;
S5、源服务器根据一定规则整合增量数据与匹配数据,并把增量数据与匹配数据发送至备份服务器,该步骤与S4同步进行;
S6、备份服务器根据接收到的增量数据进行解析后,对备份文件进行整合,最终完成同步。


2.根据权利要求1所述的基于SAPCI可变长分块的文件间增量同步方法,其特征在于,步骤S1的SAPCI算法是基于区间奇偶校验分块算法(ParityCheckOfInterval,PCI算法)进行改进的,改进后的SAPCI算法称为自适应的区间奇偶校验分块算法(Self-AdaptiveParityCheckOfInterval),主要包括以下步骤:
S101、从文件初始字节开始读取数据;
S102、把读取到的数据存入校验区间尾部,其中定义校验区间为长度为len的窗口;
S103、判断校验区间的数据量是否等于且不大于len,如果否,则继续执行步骤S102,如果是,则进入步骤S104;
S104、计算校验区间中各字节数据中比特为1的总数量n,并判断n是否大于或等于设定的阈值threshold,如果否,则进入步骤S105,如果是,则可确定校验区间尾部为分块边界;
S105、校验区间往后滑动一个字节,再次计算校验区间中各字节数据中比特为1的总数量n,并判断n是否大于threshold,如果是,则可确定校验区间尾部为分块边界,如果否,则进入步骤S106;
S106、判断当前校验区间尾部与上一分块右边界距离是否大于等于阈值变动间隔d,如果否,则重新进入步骤S104,如果是,则令当前threshold减1,然后再重新进入步骤S104,直到找到分块边界为止;
S107、当找到分块边界后,重置当前threshold为初始值;
S108、重复步骤S102至步骤S107,直至校验区间尾部达到文件末尾字节;
S109、把位于文件尾部的不符合分块条件的尾部数据块作为单独一块.其中不符合分块条件是指文件尾部的数据块中不存在任何一个长度为len的区间,使得区间内各字节数据中比特为1的总数量n大于或等于当前阈值threshold;
S110、完成文件数据分块过程。


3.根据权利要求1所述的基于SAPCI可变长分块的文件间增量同步方法,其特征在于,步骤S2的加密和整合方式为:对备份文件进行分块后的各小块分别进行MD5加密,并令各小块加密结果为MD5backup-i,其中backup代表对备份文件分块后的各小块进行加密,i=0,1,2,3,4,5…,代表着对备份文件进行分块后各小块的编号顺序,完成加密后只需把加密后的结果MD5backup-i按照编号顺序存储于备份服务器的通信发送缓存中形成MD5列表Listbackup-MD5,此时即可完成整合。


4.根据权利要求1所述的基于SAPCI可变长分块的文件间增量同步方法,其特征在于,所述步骤S2中备份服务器对源服务器发送的数据格式为:
(chunkIndex,MD5(chunkbytes))
其中chunkIndex为备份服务器对备份文件基于SAPCI算法进行分块后的分块序号,从0开始标记,chunkbytes为备份服务器对备份文件基于SAPCI算法进行分块后的长度不固定的分块字节数组,MD5(chunkbytes)为对分块字节数组计算其MD5值后的校验码。


5.根据权利要求1所述的基于SAPCI可变长分块的文件间增量同步方法,其特征在于,所述步骤S4获取增量数据块和非增量数据块的步骤如下:
S401、对比Listbackup-MD5和Listsrc-MD5两个列表间MD5数据的差异,找到Listsrc-MD5中存在,同时Listbackup-MD5中也存在的MD5数据,该MD5数据对应的数据块即为非增量数据块,然后进入步骤S402;反之,Listsrc-MD5中存在,但是Listbackup-MD5中不存在的MD5数据,则该MD5数据对应的数据块即为增量数据块,此时则进入步骤S403;
S402、对于非增量数据块,生成数据结构,数据格...

【专利技术属性】
技术研发人员:齐德昱萧海彬张长建张一鸣刘晓周鹏
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1