网格数据是计算机中以栅格结构存贮的内部数据。是扫描式数字化仪的直接产物,适用于屏幕显示和行式打印输出。在网格数据中,把研究范围分成大小均匀的格网矩阵。存贮的信息可以是点、线、面实体,也可以是指向该单元有关属性的指针。格网越小,越高, 但存贮量越大。因格网是有规则排列的,故实体的坐标位置可隐含在格网的存储地址中。网格数据便于数据处理、区域综合分析和评价。与矢量数据相比,其软件设计较简单,缺点是数据存储量大,特别是稀疏的空间数据,要浪费许多存储单元。适用于数字地形模型,遥感图像等信息的存储。
数据管理的重要地位,不仅在处理海量数据的数据网格,在数据管理尤其是数据传输更是占据着不可撼动的位置,而且它在计算网格和服务网格等领域也是至关重要的,数据以高效、可靠、方便地移动和复制关系到整个系统的效率。
数据管理的主要功能包括:数据的访问和控制,数据的拷贝和管理,以及与计算、网络和存储的协同调度。这些软件或服务相辅相成,构成了网格中不可或缺的数据管理部分。
2 数据传输——GridFTP协议
数据传输(data transmission)就是依照适当的规程,经过一条或多条链路,在数据源和数据宿之间传送数据的过程。也表示借助信道上的信号将数据从一处送往另一处的操作。
在模拟和传感器技术发展的推动下,数据集规模已经增长到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(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
(2)超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP初的目的是为了提供一种发布和接收HTML页面的方法。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
(3)BBFTP是一个传输大型文件的FTP软件,同时它也是基于FTP协议的一种新的数据传输协议。它能在高性能终端个人电脑之间可靠地传输和存储数据,尤其用来优化传输大型文件(超过2GB),因为BBFTP实现了RFC1323(TCP高性能扩展)中定义的“大窗口”,使之更适合传输大文件,而不适合用来传输小文件。
以上协议或软件部分重要特征的对比。
下面就从表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)性能。根据实验,在千兆网络环境下的单服务器对单客户端传输性能:当TCP流增多时传输带宽有明显的增大(达到200Mbps)。总的来看,GridFTP的性能可达到Iperf(一种网络带宽和性能测试工具)的78%;在万兆网络(30G)环境下的带状服务器对单客户端传输性能:当进行内存到内存传输时,随着带状数的增加,传输带宽几乎呈线性增长(斜率接近1),32个数据节点时可以达到27Gbps的带宽,近90%的利用率;当进行磁盘到磁盘传输时,由于受到存储系统的限制,但仍然达到了17.5Gbps的带宽。带状传输性能测试。
(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的第三方数据传输和部分文件管理功能(如批量删除文件等),可以监测传输动态及性能,自动恢复传输等功能。
可靠文件传输服务接收来自客户端GUI的传输请求,该请求可存放在数据库中(Globus一般采用PostgreSQL),然后调用传输客户端启动第三方传输。通过调用数据库保存的传输任务和状态来实现出错恢复这一重要机制。用户可以从各种GUI界面查询不同信息。
4 数据副本管理——RLS和DRS服务
网格是一个整体环境。为了降低访问延迟,改善数据局部性,保证分布式应用的质量,提高执行效率和性能,往往需要建立数据的远程只读副本。同时可以根据需要,在完成数据传输复制后把它标识为副本,以便其他客户端使用。
副本定位服务(Replica Location Service,RLS)维护并提供数据项逻辑名和数据项的一个或多个副本所在位置之间的映射。RLS框架基于LRC本地状态、RLI集体状态、RLI软状态维护等几种机制。它实现成一种分布式服务,允许用户在一致性、空间开销、可靠性、更新代价和查询代价之间做出权衡。
5 总结及未来的工作
GridFTP虽然已成为网格中的标准数据传输协议,但还有一些问题尚待解决:GridFTP需要发送方进行TCP连接,这不利于穿越防火墙;即使不同服务器上拥有数据的多个复本,带状传输也只支持使用并行文件系统的服务器。在带状传输时,应该用一个负载平衡代理服务器来协调单控制通道及多数据通道的工作,以处理单点故障等,使高效传输能顺利完成。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。