APP下载

异构环境下基于Rsync同步的前兆数据自动传输方案研究

2016-10-10史继平杨兴悦

山西地震 2016年3期
关键词:前兆服务器端客户端

田 野,史继平,杨兴悦

(1.甘肃省地震局,甘肃 兰州 73000;2.甘肃省地震局平凉地震台,甘肃 平凉 744000)



异构环境下基于Rsync同步的前兆数据自动传输方案研究

田野1,史继平2,杨兴悦1

(1.甘肃省地震局,甘肃兰州73000;2.甘肃省地震局平凉地震台,甘肃平凉744000)

针对甘肃地震前兆台网的部分数据无法自动汇集至"十五前兆管理系统"的问题,提出了一种基于Rsync同步的数据自动传输方案。本文详细介绍了该方案的原理及特点,结合前兆数据管理环境异构的现状设计了相应的操作流程。该方案的实施使不同系统环境下的前兆数据能够快速、完整、安全地实现自动传输且不需要人工参与,进一步提高数据文件的传输效率、降低资源占用率。

Rsync;文件同步;前兆数据;地震前兆数据管理系统

0 引言

甘肃省地震前兆监测台网经过“十五”前兆数字地震观测网络工程项目后,将全省各台站的前兆观测数据通过地震行业专网汇集到省区域中心,并利用“中国地震前兆数据管理系统”(以下简称“管理系统”)实现采集、交换和入库[1]。目前仍存在一部分前兆观测数据无法实现到区域中心自动采集管理。这些数据的主要来源有两种,一是观测仪器所产出的数据格式不符合“十五”标准,其传输协议与“管理系统”不兼容;二是部分观测仪器的通信环境差,达不到数据自动传输的信道条件。此类数据以往都是通过人工手动处理的方式采集管理。台网值班人员每天先利用格式转换软件将前一天的原始数据转换成“十五”标准的数据格式,然后将这些“十五”格式的数据通过手动复制、拷贝的方法,以远程登录的方式保存到“管理系统”服务器上的指定目录下,等待统一入库。

前兆数据文件及时传输至管理系统服务器上是确保数据自动入库的前提,而部分前兆数据依靠人工传输,则使其入库时效性大打折扣,安全性无法保证。为能高效、快捷地将无法自动传输的前兆数据汇集到省区域中心,实现前兆观测数据的规范管理及共享,结合甘肃前兆台网的现状,利用文件同步的方法实现数据的自动传输。

目前存在多种文件同步的方法,但大多数都具有一定的局限性。FTP备份方法,通过运行脚本文件将数据自动复制到FTP服务器的指定目录[2],该方法能完成数据自动同步但不能实现增量备份,当需要传输的数据量较大时,就会增加网络的压力,降低传输效率;Wget也是一种常用有效的数据同步方法[3],但存在同样的缺点。此外,FTP在传输机制上缺乏良好的安全机制[4],无法保障数据在传输过程中的安全性;MiniSync作为常用的数据同步工具,能够实现定时自动同步传输,但它只适用于Windows系统;还有一种数据同步方案是采用基于API的方法获取文件更新信息,再借助sock编程来实现数据传输[5]。这种方案的实施较为复杂,而且需要访问和操作数据库,必须充分考虑安全性,对软、硬件环境有一定要求,实施成本较高。

上述的无法自动传输的前兆数据来源分散、操作平台各异,且涉及的仪器数量不多,需要一个易操作、好实现且低成本的数据传输方案。鉴于实际情况,本文提出一种基于Rsync同步技术的数据传输方案,实现异构环境下前兆数据的自动传输,将全部前兆数据完整、快速地汇集至“管理系统”。

1 数据自动传输方案的设计

“管理系统”目前只针对“十五”仪器有数据采集自动入库的功能。甘肃省前兆台网目前有4个台站共计15套仪器(见第30页表1)不是标准的“十五”仪器,因此无法直接通过“管理系统”实现观测数据的自动采集入库。这些数据如果要汇集到“管理系统”,必须先把仪器以“非在线仪器”类型逐个添加到“管理系统”中,再通过人工采集、转换、拷贝等步骤实现其日常数据管理,具体流程如下:

(1) 通过仪器专用的数采软件,人工将前一天的原始数据从仪器上采集到原数据服务器。

(2) 利用数据格式转换软件[6]将原数据转换成“十五”数据格式。

(3) 将转换后的标准格式数据复制并拷贝至“管理系统”服务器的指定目录下,“管理系统”会将这些数据作为“十五”数据统一入库。

整个数据采集传输过程在不同的操作系统平台之间完成,如图1所示。其中数据采集与格式转换软件布设在Windows平台,而“管理系统”则部署在Linux操作系统。在这种异构的操作系统环境下,人工传输数据的方法效率低下、安全性较差,因此利用一种高效、安全的数据同步方法来实现前兆数据自动传输是十分必要的。

表1 甘肃省非“十五”标准仪器统计表

图1 异构环境下前兆数据人工传输流程Fig.1 Manual transmission flow of precursor data in heterogeneous environment

1.1Rsync概况

Rsync是一种开源的远程数据镜像备份工具,支持跨平台运行,在Windows和Linux等多种操作系统下都能稳定使用[7]。Rsync可通过LAN/WAN实现多台主机之间的文件镜像同步备份,并能保持原文件的权限、时间、组、软硬链接等全部属性[8]。

Rsync的算法核心是将文件分割成一系列不重叠的、固定大小的块,然后对每个块计算两个校验和:一个弱滚动32位校验和一个强128位MD4校验。之后对比原文件和备份文件的差别,当原文件有改变时,可迅速判断出被改变的文件内容。该算法只将有更新的数据块进行传输,对备份文件作出修改或补充,而不是传输整份文件。这种文件传输的算法效率高、资源占用少。

1.2数据自动传输的方案与流程

异构环境下的前兆数据传输一般涉及2台服务器之间的数据通讯,即基于Windows操作系统的原数据服务器和基于Suse Linux系统的“管理系统”服务器之间的文件同步。其中原数据服务器负责采集和存储那些无法自动传输的前兆数据,并在本地进行相关处理后生成待传输的数据,通过Rsync同步机制将所需数据传输至“管理系统”服务器上,完成数据自动传输。数据传输流程如图2所示。

图2 数据自动传输流程Fig.2 Automatic transmission flow of data

要实现Rsync同步,必须在 Rsync 服务器端和Rsync客户端上分别安装相应版本的Rsync软件,其中Rsync 服务器端运行Rsync守护进程,而Rsync客户端根据需求定时或周期运行客户程序来同步所需文件。数据开始同步时,Rsync服务器端打开相应的服务通道允许客户端进行连接、口令核查和传输文件。首次时需将整个文件传输,以后则每次只传输文件发生改变的部分。Rsync同步算法使服务器之间的传输数据量降到最低,大大提升其速度,而Rsync的校验机制使数据的完整性和安全性都有所保障。

利用Rsync同步实现前兆数据自动传输的主要工作流程如图3所示,其中原数据服务器作为Rsync服务器端,“管理系统”服务器则是Rsync客户端。首先由Rsync客户端的Rsync控制模块去制定同步条件,例如同步的模式、时间等规则。通过地震行业网,经由两端的Rsync同步模块将同步条件存储于Rsync服务器端的控制模块中,该控制模块严格按照接收到的同步条件去制定同步内容并触发同步,将所需数据传输至Rsync客户端。传输完成后,Rsync客户端的同步模块将传输结果反馈给本端的Rsync控制模块。反馈结果将被记录保存,用于后续的数据完整性校验,当确保两端数据无差别时,本次数据传输完成。

图3 Rsync同步工作过程Fig.3 Working process of Rsync synchronization

2 数据自动传输的实现

以横梁地震台(以下简称横梁台)的水位仪为例,对利用Rsync同步实现前兆数据自动传输的具体实施步骤进行详细说明。

2.1前期准备

原数据服务器基于Windows平台,是Rsync同步的服务器端。首先安装适用于Windows系统的服务器端软件cwRsyncServer,系统会自动生成一个管理员级别的用户SvcCWRSYNC,然后增加一个RsyncServer服务并设置为自动启动,如图4所示。最后,将系统防火墙设置开放RsyncSerer的默认服务端口873,如图5所示。

图4 设置RsyncServer服务自启动Fig.4 Set RsyncServer service self-starting

“管理系统”服务器基于Suse Linux操作系统,是Rsync同步的客户端。可直接利用Linux操作系统中集成的Rsync实现数据的同步接收。如果系统没有自带Rsync,下载安装相应版本的软件包即可。

2.2Rsync同步配置

Rsync服务器端(原数据服务器)的IP地址为10.62.12.112,待传输的横梁台水位原数据存储在本地D:RXDATA文件夹内。Rsync客户端(“管理系统”服务器)的IP地址为10.62.12.113,横梁台的水位“十五”数据应放在“管理系统”服务器的/opt/instruments/目录下。设定同步连接名为“hlzkgd1”,利用Rsync同步将原数据服务器端D:RXDATA内的数据文件自动传输到“管理系统”服务器端/opt/instruments/目录下。

图5 设置开放873服务端口Fig.5 Set 873 service ports opening

首先对基于Windows操作系统的Rsync服务器端进行配置,在cwRsyncServer的安装目录下找到配置文件rsyncd.conf,根据数据传输的需求将相关配置信息写进rsyncd.conf中并保存。rsyncd.conf具体内容如下:

use chroot = false

uid = 0

gid = 0

strict modes = false

log file = rsyncd.log

port = 873

[hlzkgd1]

path = /cygdrive/d/rxdata

read only = false

transfer logging = yes

hosts allow = 10.62.12.113

auth users = SvcCWRSYNC

配置文件主要控制Rsync服务的各种属性,如用户名密码、端口号等。其中,“[hlzkgd1]”部分是对文件同步的各类指标参数的具体设置:“path”指定Rsync服务器端的文件路径;“hosts allow”规定哪些主机可以访问Rsync服务器;“auth users”是客户端的用户名等。除以上用到的基本设置外,Rsync还为配置文件提供其他指令,做更严格的控制,如最大可连接客户端数量、禁连的主机等。

当Rsync服务器端的配置完成并保存后,相关设置就会生效。在基于Linux操作系统的Rsync客户端执行以下命令,即可将所需数据文件从Rsync服务器端传输至本地。执行的命令为:

rsync-vzrtopg—progress SvcCWRSYNC@10.62.12. 112::hlzkgd1 /opt/instruments。

上述指令中设置了Rsync同步传输文件时的各种参数,其中,“-vzrtopg”指文件在传输时进行压缩处理、对子目录以递归模式传输、保持文件的权限及属性等;“—progress”是要求显示文件传输过程;“SvcCWRSYNC@10.62.12.112”是数据来源的用户名和IP地址;“::”是Rsync的一种工作模式,即从远程服务器中拷贝文件到本地机;“hlzkgd1”是连接名;“/opt/instruments”指数据文件在“管理系统”服务器上的存储目录。

2.3同步计划任务

实际工作中,要求每天的观测数据必须在指定的时间自动传输,这需要为Rsync客户端制定同步计划任务[9-10],规定数据传输的时间、频率。具体实施步骤如下:

(1) 启动cron服务,并将其设为开机自启动(启动cron服务有多种方法,此处介绍的方法适用于SUSE系统):

/etc/init.d/cron stop

/etc/init.d/cron start

chkconfig cron on

(2) 编辑/etc/crontab 文件,配置cron:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=“ ”

……

#保持默认设置

00 09-11 * * * root rsync-vzrtopg—progress SvcCWRSYNC @10.62.12.112::hlzkgd1/opt/instruments

上述指令为Rsync客户端制定了一个文件同步的计划任务,规定在每天上午9时至11时之间每小时执行一次文件同步命令。在每次执行同步时,Rsync的自动校验机制会检查判断要传输的原文件和备份文件是否有差别,若有,则将有变化的部分重新同步。通过这种基于Rsync同步的自动传输,能保证将原数据服务器中采集到的横梁水位观测数据全部传到“管理系统”服务器中。

3 结论

“十五”地震系统建设项目完成后,地震观测仪器基本实现数字化。随着大量地震观测数据的产出,对数据的存储及备份的需求越来越多。实现数据文件的自动传输,对解决观测数据管理问题具有重要意义。张佑龙等[11]利用Visual C++开发的“数字地震台网数据自动备份软件”能够将合肥数字遥测台网的地震波形数据自动备份到后台机,节省人工成本;陈向军等[12]利用Delphi开发的“前兆数据收取软件”、刘其寿[13]利用Visual Basic开发的“前兆数据传输软件”均基于FTP协议,可实现前兆数据的自动传输、下载。但上述软件仅支持Windows系统,无法在Linux系统使用,而且在定时传输或下载时,需人工启动。胡玉良等[14]开发的“地震前兆数据共享软件”有效地将山西各市县的前兆数据汇集到统一的数据库服务器,提供数据共享服务。该软件主要通过对数据库的操作来实现各种功能,其技术要求较高、开发成本也较大,并不适合解决本文面对的问题。

在分析Rsync原理及特点后,针对甘肃省部分前兆数据无法自动传输的问题,以Rsync同步机制为基础,结合目前地震前兆数据管理环境异构的现状,提出了一种前兆数据自动传输的方案,并详细介绍了具体技术原理及实现步骤。该方案部署应用后,替代以往每日必须人工上传的工作,实现前兆数据自动、定时传输,节省人力且提高了数据传输的效率,为地震系统内部类似问题的解决提供了可靠的参考方案。

Rsync同步除了能将文件从Windows端自动传至Linux端外,还能实现Windows平台之间、Linux平台间的相互传输。服务器及客户端可选择一对一或一对多等多种模式。在数据传输过程中,还能根据实际需要设置密码以限制访问权限,进一步提高安全性能。Rsync同步具备的这些特点使其有良好的可扩展性,能解决异构环境下文件传输的常见问题,对地震数据的传输、备份具有重要的应用价值。

[1]王军,赵刚,何案华,等.“九五”前兆台站与”十五”前兆台网的整合研究[J].大地测量与地球动力学,2008,28(4):125-130.

[2]赵云,陈阿林.基于rsync的备份方案研究与实现[J].电脑知识与技术,2012,8(5):984-987.

[3]孙东奇,王秀梅.用Rsync实现Linux文件系统备份[J].教育信息化,2006(2):35-36.

[4]张小林.基于ssh和rsync的邮件系统自动备份实现[J].黄石理工学院学报,2009,25(2):22-24.

[5]董立岩,毛锐,余宜诚,等.基于分布式多服务系统的数据同步方法[J].吉林大学学报(理学版),2011,49(4):745-749.

[6]田野,郝臻,王小娟,等.非“十五”前兆数据转换方案的研究与应用[J].地震研究,2013,36(3):390-394.

[7]张海峰,张耀南,张宝山,等.异构环境下数据文件Rsync同步机制研究[J].计算机与现代化,2009(10):78-85.

[8]林玉成,赵瑞,罗兵.基于Rsync的中央气象台数据备份机制及优化设计[J].高原山地气象研究,2014,34(1):81-85.

[9]曾绍庚,徐鹏,冉全,等.Linux与Windows间文件定时自动同步的实现[J].软件导刊,2009,8(5):9-12.

[10]李卓桓,瞿华.LINUX网络编程[M].北京:机械工业出版社,2000.

[11]张佑龙,戚浩,崔卫兵,等.合肥数字遥测台网数据自动备份软件[J].地震地磁观测与研究,2007,28(2):97-99.

[12]陈向军,马学军,张文来,等.基于FTP协议的地震前兆数据收取软件[J].地震地磁观测与研究,2012,33(5/6):331-334.

[13]刘其寿.地震台站前兆数据转输的智能化[J].福建地震,2005,21(2/3):18-20.

[14]胡玉良,闫民正,程冬焱,等.山西市县地震前兆数据共享软件设计[J].地震地磁观测与研究,2015,36(1):140-144.

Automatic Transmission Scheme of Precursor Data Based on Rsync Synchronization in Heterogeneous Environment

TIAN Ye1, SHI Ji-ping2, YANG Xing-yue1

(1.Earthquake Administration of Gansu Province, Lanzhou, Gansu 730000, China;2.Pingliang Seismic Station of Earthquake Administration of Gansu Province, Pingliang, Gansu 744000, China)

Part of the data in Gansu seismic precursor network can not be collected automatically to the 10th Five-Year Precursor Management System. An automatic data transmission scheme based on Rsync is proposed to solve the above problem. The principle and characteristics of the scheme are introduced in detail. And a corresponding operation flow is designed according to the status of the management environment of precursor data. The implementation of the scheme makes transmission of precursor data in different system environment fast, complete and safe. Manual participation is not required in the process. It improves the transmission efficiency of data and reduces the resource occupancy rate.

Rsync; File synchronization; precursor data; Seismic precursor data management system

1000-6265(2016)03-0029-04

2016-05-07

田野(1984—),女,甘肃省陇南人。2009年毕业于西北师范大学,硕士研究生,助理研究员。

P315-39

A

猜你喜欢

前兆服务器端客户端
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
哪些现象是地震前兆
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
右肝区不适或疼痛是肝癌表现的前兆吗
腾冲地电场震前的前兆异常分析
全国前兆台网“九五”系统台站接入的设计与实施*