网格数据传输及相关服务研究
2009-08-19
作者:欧佳凡,黄林鹏,孙永强
摘 要:以当前最流行的网格环境Globus Toolkit为例,结合业界的最新进展,介绍了网格环境下的数据管理与传输,比较了与普通网络环境下数据传输的不同和突出的优势,并围绕传输机制介绍和讨论了相关的服务以及它们的关联,阐述了有网格特点的数据传输与管理方式,探讨了这方面进一步研究的发展方向。
关键词:网格 数据管理 数据传输 GridFTP RFT RLS
1 GT4及其数据管理组件
在日新月异的计算机和通信设备的发展中,网格这一新兴的基础设施,正带来新的网络繁荣。
Globus项目是美国多个组织共同对计算网格的构建进行的研究。从1997年发行的GT2(Globus Toolkit 2)开始,Globus被视为计算网格技术的典型代表和事实上的规范。图1是Globus联盟于2005年4月底发布的GT4.0的组件构成内容,新版本的Web服务组件将基于WSRF(Web Services Resource Framework),且完全兼容Web Service标准;非Web服务组件也将服从各种标准规范,强调质量、鲁棒性、易用性及文档完备性[2]。本文将从整体的角度阐述最新版本的GT4中数据的管理及传输。
从图1可以看到,数据管理的重要地位,不仅在处理海量数据的数据网格,在数据管理尤其是数据传输更是占据着不可撼动的位置,而且它在计算网格和服务网格等领域也是至关重要的,数据以高效、可靠、方便地移动和复制关系到整个系统的效率。
数据管理的主要功能包括:数据的访问和控制,数据的拷贝和管理,以及与计算、网络和存储的协同调度。目前,GT中的数据管理主要包括:GridFTP、RFT(Reliable File Transfer)、RLS(Replica Location Service,代替了旧版本的Globus Replica Catalog和Globus Replica Management)、DRS(Data Replication Service,GT3.9.5即GT4 Beta版中新引入的服务)、OGSA-DAI等。本文将围绕数据传输,特别是GridFTP协议对以往协议的扩展和改进及其引申出的诸多数据传输与管理服务展开讨论。这些软件或服务相辅相成,构成了网格中不可或缺的数据管理部分。
2 数据传输——GridFTP协议
在模拟和传感器技术发展的推动下,数据集规模已经增长到TB数量级,而且PB级的数据量将很快问世。位于日内瓦的欧洲粒子研究中心(CERN),目前正负电子对撞机(LEP)每年的数据是0.2~0.3TB,而几年内建成的紧凑μ介子螺线管(CMS)每年所产生的数据就将达到几个PB。网格中现有的存储系统如数量存储系统、高性能存储系统(DPSS、HPSS等)侧重于实现快速传送存储设备和并行机或群聚计算机之间的庞大文件;而分布式文件系统(DFS)则侧重于支持海量存储与负载平衡,而这些系统间并不兼容。
访问、分析和处理分布在不同逻辑位置、存储系统上的数据,应用程序要么选择只支持某些存储系统,要么使用多种方法来获取不同存储系统上的数据。若能提供一种在异构系统上的公共互用层将对存储和用户双方都非常有利,因此一个普通的、但扩展性强的数据传输协议呼之欲出。这样的机制比建立一个分层的客户端或网关要好得多,可以避免性能上的损失和过大的复杂性。
Globus提出了GridFTP协议,该协议不仅拥有现今使用的数据传输协议的特点,还易于扩展,支持更多的存储系统。GridFTP基于FTP协议(因为FTP是最为广泛和实用的IETF标准协议),又有多个RFC标准定义了FTP及其扩展,而且其中一些在网格环境中特别适用。下面将讨论并比较当前Internet和网格中依然存在的各种数据传输协议,并介绍Globus中GridFTP协议的实现和编程接口。
2.1 协议比较
(1)FTP(File Transfer Protocol)协议。专门用于数据传输的协议,它遵循RFC959,目标是促进文件共享(包括计算机程序和数据);鼓励直接或通过程序使用远程计算机;可靠有效地传输数据。RFC959定义的文件传输协议被RFC2228、RFC2640、RFC2773等更新。其中,RFC2228是FTP的安全扩展;RFC2640对FTP进行了国际化;RFC2773是用KEA和SKIPJACK对文件传输加密。SFTP(Secure FTP)使用加密方式传输认证信息和数据,如果对网络安全性要求更高,则可以使用SFTP代替FTP,但它的传输效率比普通的FTP要低得多,通常用于传输小型敏感数据。
(2)HTTP(HyperText Transfer Protocol)协议。是万维网WWW(World Wide Web)的基础,在RFC2616中定义。它是一个简单的协议,客户进程建立一条同服务器进程的TCP连接,然后发出请求并读取服务器进程的响应,服务器进程关闭连接表示本次响应结束。
(3)BBFTP是一个传输大型文件的FTP软件,同时它也是基于FTP协议的一种新的数据传输协议。它能在高性能终端个人电脑之间可靠地传输和存储数据,尤其用来优化传输大型文件(超过2GB),因为BBFTP实现了RFC1323(TCP高性能扩展)中定义的“大窗口”,使之更适合传输大文件,而不适合用来传输小文件。
以上协议或软件部分重要特征的对比如表1所示。
下面就从表1中的对比说明GridFTP协议适应网格环境多样性的特点。
(1)网格大都运行在广域网环境中,这就需要更高的带宽。使用多个TCP流(即并行传输)可以更充分地利用并提高传输带宽。而GridFTP中修改了RETR指令以使它可以指定TCP流的数目,同时引入了EBLOCK(Extended Block)模式(包括8位标志符、64位长度、64位偏移量和数据),以支持并行传输、部分传输和带状传输。
(2)窗口大小是TCP/IP中获取最大带宽的关键参数,针对不同的网格环境、文件大小和文件集类型应该设置不同的值。使用最优的TCP缓冲区/窗口大小可以有效地提高数据传输性能。GridFTP增加的新指令SBUF和ABUF,就是分别用来手工指定和使用某种算法自动调整TCP缓冲区/窗口大小。
(3)安全认证是网格计算的重点和难点。Globus中GSI(Grid Security Infrastructure)使用PKI、X.25和SSL作为整个安全系统的基础,分为授权、双重认证、私有通信、安全私钥、代理和单一系统登录部分,建立了非集中管理的、包括多个不同组织的安全系统。而GridFTP支持GSI和Kerberos认证,以满足用户控制不同层次上的数据完整性及保密性设定的要求。
(4)大规模的分布系统拥有大量的数据集,在存储服务器间进行第三方控制的传输是很有必要的。用户可以启动和监控2台服务器间的数据传输,为使用多点资源提供了保障,而且无需进行数据中转。GridFTP在原有FTP标准第三方传输的功能上添加了GSSAPI(Generic Security Service API)安全机制。
许多时候网格计算只需要文件中的部分数据或者一个数据子集,FTP和HTTP协议只支持从某一偏移量开始到整个文件末的传输,而GridFTP使用ERET、ESTO等命令可支持部分文件传输。同时网格的特殊性也使得连接状况较难预测,因此传输中断后的恢复必不可少,而GridFTP保留了FTP协议中的断点续传功能。
GridFTP除了具有以上在普通数据传输机制上的性能和功能改进外,还有如下特性:
带状(Striped)传输使用多个TCP流来传输分布在多个服务器上的数据,因为在网格中数据往往会分布在多存储点上,这样就可以大大增加客户端传输带宽,提高速率。GridFTP使用扩展的RETR指令,并有分区和分块2种策略来进行带状传输,SPAS、SPOR命令可分别用来设置被动和主动模式。
2.2 实现、性能及编程接口
(1)实现。Globus项目在GridFTP协议基础上实现了GridFTP服务器端、GridFTP客户端、API函数库以及一系列的相关工具。最新的GT4中GridFTP服务器已不再基于wuftpd,而是重写了代码,实现了控制通道和数据通道完全分离。一个控制通道后面可以有多个数据通道(这就是带状传输服务器的实现方式)。服务器几种可能的设置如图2所示。
(2)性能。根据实验,在千兆网络环境下的单服务器对单客户端传输性能:当TCP流增多时传输带宽有明显的增大(达到200Mbps)。总的来看,GridFTP的性能可达到Iperf(一种网络带宽和性能测试工具)的78%;在万兆网络(30G)环境下的带状服务器对单客户端传输性能:当进行内存到内存传输时,随着带状数的增加,传输带宽几乎呈线性增长(斜率接近1),32个数据节点时可以达到27Gbps的带宽,近90%的利用率;当进行磁盘到磁盘传输时,由于受到存储系统的限制,但仍然达到了17.5Gbps的带宽。带状传输性能测试如图3所示。
(3)编程接口。除了GT自带的用于通道控制和实现客户端的2个API库ftp_control_library和fip_client_library外,还有CoG(Commodity Grid)工具集。它是提供给网格用户、管理者,特别是开发人员使用的高级框架,为开发网格应用程序提供了更快速简易的通道。目前CoG工具集有Java CoG、Python CoG等,它不仅是集成高级网格服务的工具,还是提供统一分布计算技术访问接口的中间件[3]。CoG可用于GT中(正在开发的CoG 4.0将兼容最新的GT4),Java CoG为Globus开发了jglobus包,其中包括AXIS、数据传输、GASS、GRAM、MDS和安全等组件。
3 可靠文件传输——RFT服务
GridFTP客户端要求一直保持开启,连接直到传输完成为止。而一旦失去与服务器的连接则需要人工参与重启传输。为了传输任务的可靠性,一个基于无用户的、提交传输任务后即可释放的服务是十分必要的。
可靠文件传输(Reliable File Transfer,RFT)是基于WSRF(Web Services Resource Framework)的一个网格服务,提供一个永久、易调用、可靠的文件传输服务。它支持GridFTP的第三方数据传输和部分文件管理功能(如批量删除文件等),可以监测传输动态及性能,自动恢复传输等功能。RFT的整体架构如图4所示。
可靠文件传输服务接收来自客户端GUI的传输请求,该请求可永久存放在数据库中(Globus一般采用PostgreSQL),然后调用传输客户端启动第三方传输。通过调用数据库保存的传输任务和状态来实现出错恢复这一重要机制。最后用户可以从各种GUI界面查询不同信息。
为了主动地检测传输失败并恢复传输,RFT从应用层、网络层和系统层等获取可用的信息,处理不同的传输错误(如进程异常结束或失败、网络超时或中断、服务器崩溃或重启等),使用不同的对策进行自动管理传输任务,包括协商缓冲区大小、多流传输、恢复传输和结束传输。
4 数据副本管理——RLS和DRS服务
网格是一个整体环境。为了降低访问延迟,改善数据局部性,保证分布式应用的质量,提高执行效率和性能,往往需要建立数据的远程只读副本。同时可以根据需要,在完成数据传输复制后把它标识为副本,以便其他客户端使用。
副本定位服务(Replica Location Service,RLS)维护并提供数据项逻辑名和数据项的一个或多个副本所在位置之间的映射。RLS框架基于LRC本地状态、RLI集体状态、RLI软状态维护等几种机制。它实现成一种分布式服务,允许用户在一致性、空间开销、可靠性、更新代价和查询代价之间做出权衡。
数据副本服务(Data Replication Service,DRS)是GT4 Beta测试版新增的组件。该组件的主要功能是确认用户需要的一组文件是否存在于网格中,然后产生本地的副本,即用RFT把网格中需要的文件传输到本地,并自动向RLS注册新副本。DRS遵循WSRF规范,并发布一个WS资源(副本资源),它保存了提交复本的交互状态,允许用户查询或提交各种不同的资源属性以监视资源的状态。DRS在完成数据传输后还“关心”数据的去向,可以说是连接数据传输和副本管理的一座桥梁。
5 总结及未来的工作
本文介绍了GT4中除OGSA-DAI外的数据管理组件,主要侧重于数据的传输。GridFTP协议、软件、服务的有机结合,组成了数据管理的重要部分,向用户提供了完整的数据管理机制。
GridFTP虽然已成为网格中的标准数据传输协议,但还有一些问题尚待解决:GridFTP需要发送方进行TCP连接,这不利于穿越防火墙;即使不同服务器上拥有数据的多个复本,带状传输也只支持使用并行文件系统的服务器。在带状传输时,应该用一个负载平衡代理服务器来协调单控制通道及多数据通道的工作,以处理单点故障等,使高效传输能顺利完成。
参考文献
1 Foster L,Kesselman C.The Grid 2:Blueprint for a New Computing Infrastructure.2004
2 Madduri R K,Hood C S,Allcock W E.Reliable file Transfer in Grid Environments.LCN′02,2002
3 徐志伟,冯百明,李伟.网格计算技术.北京:电子工业出版社,2004
4 黄斌,彭小宁,肖侬等.数据网格环境中数据传输服务的研究与实现.计算机应用研究,2004;(1)
5 彭定,傅秀芬,谢翠萍等.网格数据传输协议探讨.微型机与应用,2004;(6)