论文部分内容阅读
远程文件同步技术能使远程主机间的文件保持一致,实现远程文件备份和恢复、Web镜像和缓存的建立等,在现代企业中的应用越来越广泛。当前Linux下较成熟的远程文件同步软件rsync等都提供了稳定的文件同步功能,但它们也存在一些问题:首先,不能实时监控文件系统来判断文件的更新变化,而只能通过守护进程或者手动的方式进行指定文件的同步;其次,未能考虑到企业中的一些特别需求,对特殊类型的文件同步没有实现,例如主机两端实时数据文件的同步;最后,无法较细粒度地控制网络数据的传输,更有效地利用带宽,快速完成文件的各类同步。本文从一些企业的实际业务需求出发,总结出当前远程文件同步存在的一些问题,根据这些问题研究远程文件同步过程中的关键技术,设计并实现了一种Linux下、基于Rsync算法的远程文件同步系统。论文的主要工作包括:分析了一些企业中对远程文件同步的特殊需求,提出了多种文件同步类型,包括实时数据文件同步、静态数据文件同步和文件的更新同步等;利用Linux下的Inotify API实时监控指定文件的更新变化,实现不同类型同步事件的实时触发和事件类型识别;通过对不同同步事件的标识,实现系统自动完成对不同文件同步事件的合适处理,尤其是文件的内容更新事件,基于Rsync算法提出一种新的同步协议来减少网络带宽的占用;针对不同的同步任务,分别设计了最佳的网络数据传输方式,使系统自动完成对不同文件同步事件网络数据传输方式的选择;提出了Rsync算法在文件传输一致性和正确性上的应用。本文采用分层模块化的方法对系统进行设计和实现,并且在论文的最后对系统的设计进行测试和分析,总结了研究成果和系统的可扩展性,以及下一步工作的展望。