一种基于usn日志方式进行海量文件备份的方法

文档序号:9887496阅读:841来源:国知局
一种基于usn日志方式进行海量文件备份的方法
【技术领域】
[0001]本发明涉及一种海量文件备份方法,特别是涉及基于USN日志方式进行海量文件备份的方法。
【背景技术】
[0002]数据安全是信息社会的重要诉求之一,并随着互联网和电脑的大规模普及,在政府调控、企业运行、个人生活中占据越来越重要的地位。作为数据安全的应对方案,数据备份成为当前数据安全的核心问题。
[0003]现有的文件备份方法,主要是用户根据需要设定备份目标,对备份目标进行实时或定时的监控,发现文件有修改,则进行备份,已达到备份文件的目的。
[0004]但在实际备份过程中,现有海量文件备份方法存在以下不足之处:
[0005]1、扫描次数过多。一次备份至少需要2次扫描,第一次是预扫描,获取本次备份的文件总数和文件总大小;第二次扫描,生成备份列表,根据列表来进行备份。另外,第二次备份往后,为了保证源目录与备份存储目录文件的一致性,还需要第3次扫描,扫描备份存储目录,将备份存储目录中多余的文件(对应源目录的文件已经被删除)删除。
[0006]2、扫描时间过长。海量文件,顾名思义就是有很多文件,一般是指1000W个文件,假设扫描一个文件的时间是固定的N秒,所花费的时间就是1000W*N秒。事实上,由于文件系统的束缚,随着文件数的增多,扫描时间不是线性增加的,更像是指数级增加,所以扫描时间可能远大于1000W*N秒。
[0007]3、加剧硬盘的损坏。每次备份都要扫描,需要进行大量的磁盘1操作,因此对硬盘的伤害较大。
[0008]4、备份速度慢。对于海量文件的备份,由于文件数较多,因此所需时间较长。因此,从用户的需求出发,备份速度越快越好。

【发明内容】

[0009]本发明的目的是提供一种基于USN日志进行海量文件备份的方法,用户只需将NTFS格式分区的USN日志开启,通过相应的程序便可以简单快速的备份海量文件中发生变化的文件。
[0010]为解决上述技术问题,本发明采取以下技术方案:
[0011]第二,基于USN日志节约扫描时间。
[0012]开启USN日志,解析USN日志,解析后生成文件变化记录,备份程序直接读取变化记录进行增量备份,不需要扫描源目录的文件。
[0013]第二,通过读写线程和额外内存节约拷贝时间。
[0014]当文件进行备份时,备份是从一个磁盘备份到另一个磁盘上,跨磁盘备份是通过两个线程进行工作(一个读线程,一个写线程)。一个文件进行完读写线程后再进行下一个文件的读写进程。
[0015]本发明通过读写线程和额外内存,读线程将文件的内容存入内存,写线程根据偏移量和文件大小,将文件内容从内存写入存储目录磁盘。读写线程的分工优化了跨分区的备份速度,读线程无需等待写线程完成,才能读取下一个文件,两个线程并发进行,极大的提高了读写速度,从备份文件过程上节约了备份时间。
[0016]假设内存无限大的话,所有文件都可以这样进行拷贝。但是内存大小是有限的,所以可以将小文件通过上述方式进行备份。
[0017]第三,通过合成备份减少备份集,节约恢复时间。
[0018]随着海量文件进行的增量备份的次数越来越多,产生的备份集也相应增多,恢复时需要依次恢复,经过的阶段数较多,同时备份集的管理也变的麻烦。
[0019]现提出一种合成备份,合成备份的对象是增量备份集,是对现有的增量备份集的一种管理汇总,将上一次完全备份或合成备份之后所有的增量备份集进行汇总,形成一个备份集,效果等于从上一次完全备份时间点到最后一次增量备份时间点之间做的一次增量备份。完成合成备份后,可以删除已经做过合成备份的增量备份。这样可以大大减少备份集,恢复时,恢复一个合成备份就等同于恢复多个增量备份。
[0020]合成备份的对象是增量备份集;差异备份的对象是源文件。合成备份的时间点状态是最后一次增量备份时间点源目录的状态;差异备份的时间点状态是当时进行备份的源目录的状态,由此可知,合成备份不等同于差异备份。
【附图说明】
[0021]图1是本发明通过USN日志方式进行备份的示意图
[0022]图2是单线与读写线程拷贝消耗时间对比的示意图。
[0023]图3是小文件在内存中的存放形式的示意图。
[0024]图4是合成备份的示意图。
【具体实施方式】
[0025]下面结合附图对本发明的技术方案进行详细说明。
[0026]图1是本发明通过USN日志方式进行备份的示意图,具体步骤如下:
[0027]第一步,开启源目录所在磁盘的分区的USN日志。USN日志功能是系统自带功能。
[0028]开启条件:源目录所在分区必须是非网络映射磁盘,并且是NTFS格式分区。
[0029]开启方式:
[0030]①通过系统的cmd.exe的相关指令来开启。
[0031]fsutil usn createjournal m = 1000 a = 100D:
[0032]这是开启D盘的USN日志,同时给日志分配1000B的大小空间。
[0033]②通过编程实现一个设置工具来开启。
[0034]第二步,编写一个监控程序,定时监控源目录分区的USN日志,并进行解析,过滤多余记录,生成文件变化记录。
[0035]①解析USN日志:
[0036]USN日志记录包含多个USN记录块,每一个USN记录块包括reason号(用于判定文件操作类型)、文件名(非全路径)、文件引用号和父目录引用号等信息。解析USN日志,筛选出文件创建、修改、删除和重命名等记录,通过reason号和文件全路径生成对应源目录下的文件变化记录。
[0037]同时,USN日志里还记录了文件修改的起始位置和每一个USN记录块的大小,程序可以记录解析结束的位置,下次解析时可以从该位置开始继续解析。
[0038]②过滤多余记录:
[0039]USN日志记录的是该分区所有的文件操作记录,包括临时文件等。因此需要过滤其中非指定源目录下文件的操作记录。
[0040]例如,打开word文件,本身就会产生临时文件.tmp,而这个临时文件不需要进行备份,因此需要对其进行过滤。
[0041 ] 第三步,备份应用程序,直接读取通过监控USN日志获得的文件变化记录,直接对对变化的文件进行增量备份。
[0042]备份程序指定需要备份的目录和备份策略(定时运行时间),监控程序会自动运行并进行监控,备份程序会按照备份策略自动进行备份。
[0043]第四步,如图1中的备份进程所示,对于需要备份的大文件,直接通过读写进程进行拷贝,对于小文件,将小文件内容加入内存,写线程根据偏移量和文件大小,将文件内容从内存写入存储目录磁盘,与普通备份方式相比,耗时少,速度快。
[0044]如图2所示,具体介绍通过读写线程和额外内存节约拷贝时间。
[0045]一般的备份方式,是通过一个线程完成,先对文件进行拷贝后再依次进行下一个文件的拷贝。如图所示,三个文件进行备份的时间为rl+wl+r2+w2+r3+w3。而本发明,将小文件内容加入内存,读写线程的分工优化了跨分区的备份速度,读线程无需等待写线程完成,才能读取下一个文件,两个线程并发进行,极大的提高了读写速度,三个文件的备份时间大大少于原备份时间。
[0046]如图3所示,为小文件在内存中的存放形式。
[0047]假设内存无限大的话,所有文件都可以这样进行拷贝。但是内存大小是有限的,所以可以将小文件通过上述方式进行备份。
[0048]如,我们可以固定申请800MB的内存(使用固定内存可有效防止内存碎片),将IMB的大小以下的文件内容加入到内存,内存中最多放800个小文件,等取出一个后,再存入一个。
[0049]图4是合成备份的示意图。正方形代表完全备份,三角形代表增量备份,圆形代表合成备份
[0050]合成备份的对象是增量备份集,是对现有的很多增量备份集的一种管理汇总,将上一次完全备份或合成备份之后所有的增量备份集进行汇总,汇总成一个备份集,效果等于从上一次完全备份时间点到最后一次增量备份时间点之间做的一次增量备份。完成合成备份后,可以删除已经做过合成备份的增量备份,大大减少备份集,恢复时,恢复一个合成备份就等同于恢复多个增量备份。
[0051 ] 如图4所示,在tl时间点,有完全备份Fl和增量备份Al、A2,将增量备份A1+A2汇总形成合成备份H1。当需要恢复到tl时间点,可直接通过完全备份Fl和合成备份Hl进行恢复。在t3时间点时,新增增量备份A3、A4,此时将合成备份Hl和增量备份A3、A4汇总形成合成备份H2。当需要恢复到t3时间点,可直接通过完全备份Fl和合成备份H2进行恢复。
[0052]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于USN日志方式进行海量文件备份的方法,其主要技术特征在于: 第一,开启源目录所在磁盘分区的USN日志,设置监控程序解析USN日志,生成文件变化记录,备份程序直接读取变化记录进行增量备份; 第二,备份过程中,读线程将文件的内容存入内存,写线程根据偏移量和文件大小,将文件内容从内存写入存储目录磁盘,提高读写速度,节约备份时间; 第三,汇总海量文件备份过程中产生的增量备份集,形成合成备份,恢复一个合成备份等于恢复多个增量备份。2.如权利要求1所述的USN日志,其特征在于:解析USN日志,筛选出文件创建、修改、删除和重命名等记录,同时过滤其中非指定源目录下文件的操作记录,通过reason号和文件全路径生成对应源目录下的文件变化记录。3.如权利要求1或2所述,其特征在于:源目录所在分区必须是非网络映射磁盘,并且是NTFS格式分区。4.如权利要求1所述,其特征在于:内存大小是有限的,因此将小文件通过所述方式进行备份。5.如权利要求1所述的合成备份,其特征在于:合成备份是将上一次完全备份或合成备份之后所有的增量备份集进行汇总,形成一个备份集,效果等于从上一次完全备份时间点到最后一次增量备份时间点之间做的一次增量备份。6.如权利要求1或4所述,其特征在于:完成合成备份后,可以删除已经做过合成备份的增量备份。7.如权利要求1所述的方法,其特征在于:所述备份程序指定需要备份的目录和备份策略,所述监控程序会自动运行并进行监控USN日志,所述备份程序会直接读取文件操作记录,按照备份策略自动进行备份。
【专利摘要】本发明公开了一种基于USN日志方式进行海量文件备份的方法。用户只需将NTFS格式分区的USN日志开启,通过相应的程序便可以简单快速的备份海量文件中发生变化的文件。备份过程中,读线程将文件的内容存入内存,写线程根据偏移量和文件大小,将文件内容从内存写入存储目录磁盘,提高读写速度,节约备份时间;同时,汇总海量文件备份过程中产生的增量备份集,形成合成备份,恢复一个合成备份等于恢复多个增量备份。
【IPC分类】G06F11/14, G06F11/34
【公开号】CN105653393
【申请号】
【发明人】刘金亚, 许萍萍
【申请人】南京壹进制信息技术有限公司
【公开日】2016年6月8日
【申请日】2014年11月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1