论文部分内容阅读
计算机网络的迅速发展使网络传输数据变得越来越容易和迅速,这为分布式数据备份系统的发展创造了良好的条件,但数据备份系统如果遇到了突发停电、自然灾害等状况将难以恢复,可能使得公司或者企业遭受重大损失。本文数据中心作为国际全球连续监测评估系统(iGMAS)的一部分,采用了异地备份的存储方式。数据中心分别接收多个跟踪站和产品综合与服务中心的数据。由于网络原因或者某些站点只能向某个数据中心发送数据,导致了三家数据中心存在文件接收差异,三家数据中心存储的文件不全一致。数据中心一期采用Rsync服务进行数据同步,虽然Rsync服务可以解决数据中心之间的同步问题,但是同步效率不符合数据中心的需求,为了保证分布式数据备份系统的可靠性,研究如何高效的进行远程数据同步至关重要。本文研究通过对数据中心文件的特性和网络连通特点,重新设计数据中心的同步软件,较Rsync服务的同步效率有了显著的提升。在设计同步软件过程中首先对数据中心进行全面的需求分析,深入调研数据中心存储的文件特性、文件存储方式、同步所需时间和频率、数据中心之间的网络连接特点等。根据需求分析对同步软件的核心算法进行设计,算法需要尽可能在最短的时间内对三家数据中心进行高效可靠的数据同步,算法根据数据中心网络连接特性合理利用带宽进行数据传输,尽量减少数据重复传输。同时同步软件也要具有高可用特性,在某家数据中心宕机或线程被杀死之后可以正常进行数据同步。最后的同步效率需要明显高于Rsync服务。同步软件主要通过三个方面对同步效率进行提高,第一点是根据数据中心文件的特性(文件不会修改、文件名蕴含数据信息且唯一),减少了不必要的MD5检测,由于数据中心中的文件是各个跟踪站或者产品综合与服务中心传来的数据,这些数据的准确性是经过证实的,并且数据中心只提供对数据的存储和备份功能,不会对文件进行修改,这样只需要通过文件的名字就可以确定某个文件;第二点是根据数据中心的网络连接特性重点优化数据的传输线路,三家数据中心两两相连,某个数据中心缺少的数据可以通过两条线路获得,同样某个数据中心独有的数据也可以通过两条线路给另外两家数据中心同步;第三点是模拟FTP的传输方式,把数据传输和传输控制信息分开传送,提高了数据传输的效率。根据设计的算法,对同步软件进行实现,实现过程中合理利用服务器的多核高性能特性,采用多线程编程提高了传输速度,采用阻塞队列降低了生产者线程和消费者之间的耦合程度,借鉴Paxos算法思想提高了软件的高可用性。最后本课题通过有效的测试验证通过了研究过程中同步算法的合理性,同步软件能够完成数据同步的功能,并且较Rsync服务有了显著的性能提升,当测试用例为某个大小为1.1G文件夹,文件夹中包括大小从4k到几兆不等的文件,在正常网络环境条件下,同步所需要的时间可以减少25%,在某条通信线路拥堵或被限速的特殊情形下,可以较少40%的同步时间。当前数据中心同步软件已经在三家数据中心分别部署上线。