2. 国家气象信息中心,北京 100081
2. National Meteorological Information Center, Beijing 100081
气象观测资料作为各类观测的有效数据记录,是对天气过程进行预测及对大气活动规律进行研究的重要依据,其有效交换是气象业务和科研的基础。目前,通过国内通信系统、国际通信系统及同城服务系统组成的通信业务系统,建立了台站、省级、国家级3级资料传输与服务体系[1-2],该体系承担绝大部分气象观测资料的传输任务,实现了稳定可靠、完整、及时地收集、存储和共享实时气象观测资料。
近几年,随着气象现代化业务的发展及精细化预报、短时临近预报的不断发展,对资料传输的信息量、准确性和时效性不断提出新要求。如何进一步提高各类数据传输的时效性也一直是提升气象业务服务能力的热点问题。
根据目前我国的业务现状,数据传输与服务分为两种典型情况:一种是大量的小数据文件传输与服务,如区域自动气象站和雷达产品数据。对于自动气象站资料,区域自动气象站 (全国约4万) 正常情况下为每小时上传,国家级自动气象站未来将加密至分钟级观测并上传, 该类型文件大小多为千字节量级。多普勒天气雷达每次体扫实时生成约40种产品,每种雷达产品的数据量不等,按平均50 KB计算, 以上数据每6 min生成1次。另一种情况是单个数据容量大,数据传输及服务往往需分割, 如数值预报产品和卫星数据等。数值预报产品中,欧洲中期天气预报中心 (ECWMF)1个时次的集合预报产品大约50 GB,其大气集合预报模式 (中国周边区域) 单个文件为330 MB。
数据传输服务需要解决两个问题:一是大量异构文件的传输问题。由于气象部门采用的多种探测仪器、软件系统和通信系统,产生了不同文件类型的数据,比如文本文件、二进制文件;以及不同数据内容的文件,比如气温数据或是降水数据。为了实现气象数据在气象各部门之间的共享,需要考虑异构数据在网络环境下的传输问题。二是数据传输的实时性问题。由于本文重点关注大量气象数据小文件,因此该问题就转变为如何从海量异构文件中过滤出大量小文件并高效传输,以提高传输时效。通过对以上两个问题的解决方法分析,本文旨在给出一个整体的解决方案,充分利用整个气象信息网络上各个节点的计算机资源、存储资源,发挥网络资源的整体效益,进而切实提高气象部门的信息共享水平。
解决以上问题首先要过滤大量异构文件并进行高效压缩,其次要优化网络传输协议的参数设置, 实现压缩数据的快速传输。
由于气象数据中存在大量异构小文件,将小文件压缩成一个大文件传输将有效减少输入/输出 (I/O) 访问次数,将有效提高数据传输效能。数据压缩技术一般分为两类:无损压缩和有损压缩。无损压缩要求经压缩还原后能产生精确的数据副本,有损压缩则是以一定的精度损失换取较高的数据压缩率。气象数据传输过程中不可失真,拟采用基于LZO (Lempel Ziv Oberhumer)[3]算法的无损压缩技术。
在气象领域,提高数据传输时效的一个解决方案是建立高效的数据网格,通过GridFTP部件实现网格环境中的数据传输任务。文献[4-6]采用网格技术设计建立气象数据网格环境,并将传输服务作为其核心部分,尝试高效管理各类气象文件,从而使管理繁杂的气象数据变得更加高效和稳定。其中,文献[6]给出了国家气象计算网格的设计说明。数据网格同样可以应用于气象学领域[7-8],使用Globus Toolkit 4.0构建网格服务,通过GridFTP协议传输大规模气象数据,并大量使用了并行传输技术。
采用GridFTP并对其进行传输优化是常用方法。针对GridFTP的研究主要分为两个方面:一是修改GridFTP协议本身的实现方式,GridFTP为开发者提供了可以扩展的接口[9],Tian等[10]描述了一个兼容远程内存直接存取 (RDMA) 的远程扩展输入输出接口 (RXIO),它基于GridFTP中扩展输入输出接口XIO系统设计实现,兼容RDMA特性。试验结果显示它能够显著提升GridFTP性能,降低32%的网络时延。Alberto等[11]通过优化数据存储接口 (DSI) 来体现如何读写存储系统,并结合并发文件系统 (MAPFS) 设计了一个新的DSI。二是动态调整GridFTP协议的网络参数,文献[12-13]提出了GridFTP自动参数配置机制,该机制利用网络状态试验结果来优化TCP并发连接数,如吞吐量和GridFTP数据通道的往返时间。文献[14-17]描述了如何将自适应调整缓冲区大小机制整合到GridFTP中,以此来提升TCP性能。另外,OTN/WDM网络并行传输优化框架[18]可支持高速因特网。文献[19-20]呈现了一组新模型——使用最低信息和最低开销来预测并发数和缓冲区大小的最优值。
1 自适应数据压缩算法考虑到气象数据中存在大量异构小文件且要求传输过程中不失真,将小文件采用无损压缩技术生成一个大文件传输将有效减少I/O访问次数,并提高数据传输效能。
1.1 大量小文件的定义 1.1.1 文件大小阈值的设定气象数据文件大小多为2 KB~60 MB,可通过试验方法确定需要压缩的文件大小阈值。根据气象数据文件大小,分别考察了1 KB,10 KB,50 KB,100 KB,250 KB,500 KB和1000 KB共7种数据,并分别为各种数据准备了1000个和10000个文件组成的两组数据。所有数据采用相同传输方法,计算性能提升百分比 (图 1)。
图 1表明, 两组数据呈相同的变化趋势,可以得出将大量小文件压缩为几个有限的体积较大的文件,其传输效率会有很大提升。试验结果显示, 当文件超过50 KB时,其性能提升度明显下降。因此,将数据文件低于50 KB的气象数据文件定义为气象数据小文件,传输前宜先进行压缩。
1.1.2 压缩包文件数设定压缩技术对网络传输的影响主要包含两个方面:压缩/解压时间和压缩后的文件大小。压缩技术对网络传输性能提升在不同的网络环境下不同。一般来说,网络带宽越小,压缩技术对传输性能的提升越明显。带宽越大,网络传输本身性能尚可,但仍需压缩和解压时间,总体性能是否提升有待考察。所以采用压缩技术应满足以下条件:
(1) |
式 (1) 中,tT为某组文件不压缩时的传输时间,tzip为该组文件的压缩时间,tZT为该组文件压缩后的传输时间,tuzip为该组压缩文件传输后的解压时间。
小数据文件数量很多,在传输前将其压缩为一个文件,然后进行传输,最后接收端进行解压,期待提升整个文件的传输效率。压缩时需要确定每个压缩文件中所包含的文件数量。
基于式 (1),全部文件的传输时间表示为
(2) |
式 (2) 中,N表示所有的文件数量,n表示每组文件数量,
最佳传输方案要求T (N, n, s)取最小值,因此基于上述公式对n求偏导得到其最小值,
(3) |
由式 (3) 可知,需要确定β, Tc, Td和s才可确定每组的文件数n。其中, s为50 KB。使用ping命令确定β,参考LZO相关数据确定Tc和Td:25×10-3 s≤β≤500×10-3 s,0.241×10-7 s/B≤Tc≤1.35×10-7 s/B,0.9×10-8 s/B≤Td≤1.23×10-7 s/B。代入式 (3), 得
(4) |
结果表明:n与文件总量密切相关,气象文件总量大,则n的取值区间也比较大。由图 1可知,当批量传输文件时,文件数少,传输性能高。因此,n的取值应尽可能大,即减少压缩包数量。
1.2 基于LZO的改进压缩算法本文基于LZO算法[3],使用现有的lzop算法库,通过设置lzop命令的各个参数控制整个压缩流程。lzop命令共有9个压缩级别:级别1表示压缩速度最快,但压缩率最低; 级别9表示压缩速度最慢,但压缩率最高。
自适应的压缩算法要根据网络实时状况调整压缩级别。本算法使用往返时延 (RTT) 来判断当前网络的拥塞状况,比较当前RTT和上一次测量的RTT,最终判断是否需要改变压缩等级。其中,当需要增加压缩等级时,需要进行多次传输进行确认,以免出现瞬时网络波动现象,本算法设定该传输次数初始值为0,传输次数阈值为2。
算法分为两个部分, 其流程如图 2所示。流程图左边是主线程的压缩数据文件,右边是获取实时优化压缩等级参数进程。算法执行中,实时测量RTT的值,将计算得出的压缩等级L和当前RTT值存入数据库,同时将保留一份到内存中,以供主线程和下次计算过程使用。在主线程中,如果内存中当前压缩等级为空,则使用lzop默认的压缩等级3来压缩该组文件。其中,为了减少压缩时间,采用了lzop最新支持的命令parallel进行并行压缩,其命令格式为$ parallel lzop ::: *.lzo。
1.3 自适应压缩传输试验
试验的硬件环境设置为3台服务器,其中服务器含有两个网络接口卡,即可以将服务器用作路由器,由此可以实现类似路由器的配置,另外两台服务器通过该服务器互连。每个服务器包含dual 2.66-GHz Intel (R) Core (TM) 处理器、2 GB内存和1000 Mbps的网络接口卡 (NIC)。数据传输采用GridFTP服务,使用默认参数设定的GridFTP传输协议,在保证传输协议和传输参数等相同的前提下评估自适应数据压缩算法。
试验数据为南京信息工程大学气象台气温、空气湿度、土壤湿度等观测数据,大小为230 MB,其中小文件共194245个。共进行3组试验:试验A1传输过程中不使用压缩技术,试验A2传输数据前压缩所有的小文件,试验A3传输过程中应用自适应压缩算法。在3次试验中,保持了网络传输参数的一致。每一组试验进行10次操作,取平均值作为参考依据。其试验结果:试验A1传输时间为3425 s,试验A2为10 s,试验A3为7 s,试验A1和A2体现了应用压缩技术的优势,试验A2和A3,其差距并不明显,试验中仅相差3 s,但试验结果也说明自适应压缩算法具有一定优势。
2 自适应传输参数调优算法数据网格Globus平台采用GridFTP作为文件传输协议,是一个基于ftp的高性能、安全、可靠的数据传输协议。宽带网CMAnet具有分布式传输、网络带宽低、网络时延高等特点。本文采用NETEM工具模拟宽带网CMAnet,设置网络时延为30 ms,丢包率为1%,包重复率为1%,包损坏率为0.2%。该协议针对高带宽广域网进行了优化,提供了一些非常适合数据网格环境的服务[9,21-22]。其中,优化并行传输和TCP缓冲区大小是有效提高传输效率的两个重要方面。
2.1 并行传输和TCP缓冲区为检验并行传输和TCP缓冲区大小对传输性能的影响,本文设计了两组试验来分别验证并行传输条数和缓冲区大小的优化设置的可能性。两组试验均在搭建的Globus平台上,采用GridFTP传输大小为10 MB的文件从一台服务器传输到另一台服务器。
试验结果表明,随着并行流条数的增加,文件传输更加高效,但当并行流条数超过5时,传输时间趋于稳定。
随着TCP缓冲区不断扩大,文件传输也更加高效。但当TCP缓冲区超过100 KB后,传输时间趋于平缓,且有增大的趋势。这表明对于每次传输,TCP缓冲区大小都有一个最优值,即BDP (带宽-时延积) 值,因此,传输前将TCP缓冲区大小设置为BDP变得非常必要。
TCP缓冲区和并行传输均消耗CPU和内存资源。同时,设置过多的并行流条数和过大的TCP缓冲区,可能导致网络拥塞。因此在改进GridFTP的时候,需综合考虑,合理分配各种资源,达到最优化。
2.2 基于GridFTP的自适应参数调整算法气象网格中网络环境经常变动,带宽和时延并不稳定,而二者都对文件传输有明显影响。因此,为了获得理想性能,可以针对带宽和时延进行优化,即根据当前网络状况实时地改变网络参数值。
2.2.1 自适应TCP缓冲区调整试验文献[13]指出,当TCP缓冲区大小设置为BDP (带宽-时延积) 的值时,可达到最优值。对于给定的链路,本文将TCP缓冲区大小设置为当前BDP的值。
自适应TCP缓冲区调整算法流程如图 3所示。该算法分为两个部分:流程图主线程采用ABUF (Auto-Negotiate Buffer Size) 调整缓冲区大小,并实时计算BDP值。在保持其他网络传输条件的一致性的前提下,本文通过两组试验来验证自适应TCP缓冲区调整的有效性,试验B1使用固定的TCP缓冲区传输数据,即200 KB; 试验B2是在传输过程中采用自适应BDP调整算法。试验数据同1.3节,试验结果如图 4所示。
由图 4可知,对于这两组试验,自适应TCP缓冲区调整比固定缓冲区下传输性能有明显提高。
2.2.2 自适应TCP并发数设置试验采用TCP并发传输技术可以进一步提高网络传输性能。如何得到最优TCP连接数,是TCP并发传输中的一个关键问题。目前,已经有了这方面的研究成果,如GridFTP-APT算法[18]。该算法基于式 (5) 和式 (6)[17]:
(5) |
(6) |
其中,N为TCP并发连接数,W为每个TCP连接的缓冲区大小,B为链路瓶颈带宽,R为TCP连接的往返时延,p*为链路丢包率。上式表明带宽G会随着N的数目增加而不断增加,而N过大时将降低所获取的带宽G。
Chen等[18]指出,当TCP连接数不断增长时,传输性能将有极大值出现,其最优TCP连接数为10~30。当TCP并发连接数增加时,数据的整体传输速率随之也提升,但到后期,数据传输时间趋于平稳。另外,网络测量为即时测量,网络背景流量在时刻变化,传输时间有着极大的瞬时性,波动较大。所以,并不能仅通过一次测量来判断网络状况。针对这个问题,GridFTP-APT作出以下假设:使用1 s的时间传输数据,所获得的传输数据的值能够准确反映网络状况。
使用GridFTP-APT得到最优TCP连接数后,将在后面的所有传输过程中一直使用,假设网络状况稳定,不会改变。然而,网络实时流量变化使最优TCP连接数不断发生改变,因此,需要一种动态算法,可以随着网络状况的变化自适应改变TCP并发连接数,始终能够保证得到较好的传输性能。
但如果TCP连接数过大,将导致网络吞吐量下降,这是因为在总窗口大小不变的前提下,每条TCP链接的窗口容量将会很小,容易造成某些链路发生超时、丢包、重传等网络状况;同时GridFTP服务器和客户端用于处理TCP协议栈的开销增加。目前并没有比较充分的研究成果,如何在多变的网络环境中决定TCP并发连接数仍是一个有待解决的难题。
根据网络实时状况自适应调整TCP并发连接数。其中,网络实时状况的量化方法是基于链路往返时延实现的,即实时获取链路的RTT值。通过比较当前网络时延和上一次获取的网络时延,确定当前网络的状况,进而判断当前使用的TCP连接数是否需要更改。判断准则:若实时网络时延降低10%,则将TCP并发连接数增长20%;若实时网络时延增长5%,且满足限定条件,则将TCP并发连接数减1[17];若实时网络时延在这两者之间,则维持当前TCP并发连接数不变。
通过3组试验来验证自适应TCP缓冲区调整的有效性:试验C1串行传输数据,试验C2传输数据时使用固定的TCP并发连接数4,试验C3传输过程中采用自适应TCP并发连接数自适应调整算法。在3组试验中,保持其他网络传输条件一致,即3组试验设置了相同的TCP缓冲区大小,三者使用了globus-url-copy命令将文件从客户端传输到服务器。试验数据仍然采用1.3节中的试验数据进行传输试验。采用串行传输需10093 s,采用固定并行和自适应并行传输分别为5134 s和3827 s, 从试验结果可看出采用并行传输的优势。而对于固定并行传输和自适应并行传输,其差距不明显,但该试验结果仍可以说明自适应调整TCP并发连接数算法的优越性。
3 自适应综合传输试验本研究将整合基于LZO的改进压缩算法和自适应传输参数调优算法,设计一套整体的大量气象小文件传输算法框架,并用试验加以验证,算法流程如图 5所示。在收到数据请求后,立即启动新线程,用于采集实时网络状况,并计算实时最优缓冲区值、实时最优TCP连接数和实时最优压缩等级,并将其分成两份,一份放入数据库供后期统计使用,一份放入内存中供主线程使用。需要说明的是,压缩过程和传输过程分属于不同的线程,即存在压缩线程和传输过程,读写文件的路径都为数据请求中指定的路径,压缩线程将压缩后的文件放在相同路径下,传输线程传输该路径中的文件。
基于网格试验平台,将自适应算法应用于数据传输中。通过3组试验来验证自适应优化传输的有效性:试验D1使用GridFTP默认参数传输未经压缩的文件, 试验D2使用GridFTP固定传输参数传输已压缩的文件,其中TCP缓冲大小设为100 KB,TCP并发连接数设为4,LZO压缩等级设为3, 试验D3在传输过程中采用本文自适应算法。在3组试验中,保持了其他网络传输条件的一致,三者使用了globus-url-copy命令将文件从客户端传输到服务器。试验数据与1.3节中的试验数据一致。
试验D2相对于试验D1在性能上有明显提升,由试验D1的3400 s降低到D2的10 s。但本文在此基础上,针对本文特定应用进行深入研究,试验D3性能 (7 s) 相对于试验D2又有了进一步的提升。
4 小 结本文以国家气象数据网格为应用背景,研究了如何高效传输大量气象数据小文件,给出了一套整体优化方案。具体表现在以下几点:
1) 在分析各类气象文件种类及其特性的基础上,得到大量气象数据小文件的限定范围为小于50 KB。
2) 根据网络带宽和往返时延 (RTT) 经常变动特性,设计基于实时计算带宽-时延积 (BDP) 的自适应TCP缓冲区大小和并发连接数的设置方法,并自适应调整文件压缩等级。
3) 基于相同的试验环境和数据,本文提出的气象数据小文件传输方法与传统方法相比,传输速度提升近500倍,特别是小文件压缩传输带来了显著的传输性能提高。
[1] | 李集明, 熊安元. 气象科学数据共享系统研究综述. 应用气象学报, 2004, 15, (增刊Ⅰ): 1–9. |
[2] | 高梅, 接连淑, 张文华. 气象科研数据共享系统建设. 应用气象学报, 2004, 15, (增刊Ⅰ): 17–25. |
[3] | [2012-05-12]. http://zh.wikipedia.org/wiki/LZO. |
[4] | 邓莉, 王国复, 孙超, 等. 基本气象资料共享系统建设. 应用气象学报, 2004, 15, (增刊Ⅰ): 33–38. |
[5] | 祝婷, 李湘. WMO信息系统中气象元数据的设计与实现. 应用气象学报, 2012, 23, (2): 238–244. DOI:10.11898/1001-7313.20120213 |
[6] | Ma Tinghuai, Ge Jian, Cao Hao, et al.Design and Implementation of Virtual Resources Management in Meteorology Grid. 9th International Conference on Grid and Cooperative Computing (GCC), 2010:58-63. |
[7] | 高峰, 王国复, 喻雯, 等. 气象数据文件快速下载服务系统的设计与实现. 应用气象学报, 2010, 21, (2): 243–249. DOI:10.11898/1001-7313.20100215 |
[8] | 周铮嵘, 王铮, 何文春. 分布式气象元数据同步系统的探索研究. 应用气象学报, 2010, 21, (1): 121–128. DOI:10.11898/1001-7313.20100117 |
[9] | Allcock W.GridFTP:Protocol Extensions to FTP for the Grid//Global Grid Forum.2003. |
[10] | Tian Y, Yu W K, Vetter J S. RXIO:Design and implementation of high performance RDMA-capable GridFTP. Computers & Electrical Engineering, 2012, 38, (3): 772–784. |
[11] | Alberto S, María S P, Pierre G, et al.A Parallel Data Storage Interface to Gridftp//Robert M, Zahir T.OTM Conferences (2), Lecture Notes in Computer Science.2006:1203-1212. |
[12] | Takeshi I, Hiroyuki O, Makoto I.Automatic Parameter Configuration Mechanism for Data Transfer Protocol GridFTP.2006 International Symposium on Applications and the Internet (SAINT'06), 2006:32-38. |
[13] | Thulasidasan S, Feng W, Gardner M K. Optimizing GridFTP Through Dynamic Right-sizing. Proceedings of IEEE International Symposium on High Performance Distributed Computing, 2003. |
[14] | Ma Teng, Luo Junzhou. Optimizing Large File Transfer on Data Grid. Lecture Notes in Computer Science, 2005: 455–460. |
[15] | Ito T, Ohsaki H, Imase M. On Parameter Tuning of Data Transfer Protocol GridFTP in Wide-area Grid Computing. Proceedings of Second International Workshop on Networks for Grid Applications (GridNets 2005), 2005: 415–421. |
[16] | Ito T, Ohsakih I. GridFTP-APT:Automatic Parallelism Tuning Mechanism for Data Transfer Protocol GridFTP. Proceedings of the Sixth IEEE International Symposium on Cluster Computing and the Grid, 2006: 454–461. |
[17] | Patrick M, Ezra K, Martin S, et al.MNEMONIC:A Network Environment for Automatic Optimization and Tuning of Data Movement over Advanced Networks.Proceedings of 18th International Conference on Computer Communications and Networks, 2009:1-7. |
[18] | Chen X, Jukan A. Optimized Parallel Transmission in OTN/WDM Networks to Support High-Speed Ethernet with Multiple Lane Distribution (MLD). IEEE/OSA Journal of Optical Communications and Networking (JOCN), 2012: 248–258. |
[19] | Yildirim E, Yin D P, Kosar T. Prediction of optimal parallelism level in wide area Data transfers. IEEE Trans Parallel Distrib Syst, 2011, 22, (12): 2033–2045. DOI:10.1109/TPDS.2011.228 |
[20] | Yin D P, Yildirim E, Kulasekaran S, et al. A data throughput prediction and optimization service for widely distributed many-task computing. IEEE Trans Parallel Distrib Syst, 2011, 22, (6): 899–909. DOI:10.1109/TPDS.2010.187 |
[21] | [2012-02-15]. http://www.globus.org/ datagrid/gridftp.html. |
[22] | Bresnahan J, Link M, Kettimuthu R, et al. GridFTP Pipelining. Teragrid Conference, 2007: 1–6. |