网格中已有许多大型的存储系统。这些存储系统往往侧重于不同的需求,为客户提供不同的服务:如高性能存储系统侧重于实现快速传送存储设备和并行机或群聚计算机之间的庞大文件;分布式文件系统则侧重于支持海量存储与负载平衡。
由于采用了不同的软件及数据访问协议,大部分存储系统并不兼容。若要访问多个存储系统,应用程序必须采用多种方法来检索所需数据,这显然是低效的。在具体应用中,许多地理上分布的应用程序或用户需要访问大量数据,要求各种存储系统之间能快速而有效地传输大量数据。一种简单的解决办法是通过建立一个客户层或者网关,给用户提供统一接口以打破由相互不匹配的存储系统协议所造成的分区。这种方法不要求供应商支持一种新的协议,但由于增加了一个抽象层,所以实现跨系统数据传输的代价较大,且实现这种方法是一项很复杂的工作。为此,Globus提出了GridFTP机制,它基于标准FTP协议,并对其进行了全面扩展,可实现对多种存储系统的支持,并提供统一的用户访问界面。
1 GridFTP协议功能及特点
GridFTP基于标准的FTP协议。这是因为FTP协议是目前因特网上使用最普遍的数据传输协议。它具有如下特点。
(1)PTP协议有大量的技术基础,且易于理解。(2)FTP协议是数据传输的标准协议之一,易于扩展体系结构,且支持一些扩展的动态发现。(3)目前已有针对FTP协议的大量扩展及其实现,其中一些对于Grid环境的数据传输很有用。(4)除了客户/服务器传输(如put/get或者远程read/write),它也支持由第三方用户控制的2个服务器之间的直接传送。(5)由于数据及控制信道在不同套接字上相分离,这使并行及条状传输等特征更容易扩展。
在FTP协议(RFC 969)及其扩展所定义的特征中,标准的FTP实现一般只支持其中一个子集。为了使网格数据传输协议具有更好的适应性,GridFTP除了应具有普遍使用的数据传输协议所提供的基本功能外,还必须是可扩展的。为了满足网格的需要,GridFTP在FTP的基础上增加了如下一些新的特征,其中一些已经成为标准。
(1)自动调整TCP缓冲/窗口大小。手工方式设置TCP缓冲/窗口大小容易出错,且对用户要求较高。因此GridFTP对标准的FTP指令集及数据信道协议进行了扩展。针对具体的文件大小及类型,使GridFTP支持手动或自动设置大文件以及小文件集合的TCP缓冲大小。由于使用优化的TCP缓冲/窗口大小设置,从而有效地提高了数据传输性能。
(2)支持GSI及Kerberos安全机制。传输或存取文件时,灵活可靠的安全鉴别、完整性检查、健壮性及保密性都非常重要。当用户要求控制不同层次上的数据完整性及保密性的设定时,GridFTP必须支持GSI(Crid Security Infrastructure)及Kerberos认证。GSI支持用户代理、资源代理、认证机构和协议的实现,是Globus的安全基础构件包,是保证网格计算安全性的核心。
(3)第三方控制的数据传输。为了管理许多大型数据集,GridFTP提供了经过鉴别的由第三方控制的数据传输功能。这种功能允许用户或应用程序启动、监视和控制其他2个地点的数据传输,为使用多个地点的资源提供了保障。GridFTP在保留FTP的第三方数据传输功能上增加了GSS-API(Generic Security Service-API)安全认证。
(4)并行数据传输。并行数据传输就是在一个数据服务器上,将数据文件分段后在多种数据连接上传输数据。在广域网中,客户端及服务器之间或2个服务器之间需要高带宽。使用多个并行的TCP流与使用单一的TCP流相比能有效地提高数据传输的总带宽。GridFTP通过指令及数据信道的扩展支持并行数据传输。
(5)条状数据传输。条状数据传输是指应用程序使用多个TCP流来传输分布在多个服务器上的数据。在网格环境中,大规模的数据可分布放置在多个存储点上。GridFTP能启动条状传输,条状传输可以在并行传输的基础上进一步提高总带宽及数据传输速度。
(6)部分文件传输。许多应用程序只需要访问某个远程文件的一部分。而标准的FTP只能传输整个文件或从文件某个特殊位置开始的剩余部分,因此需要特定的数据传输支持。GridFTP引入新的FTP指令以支持从一个文件的任意位置开始传输数据。
(7)支持可靠的数据传输及数据重传。对于许多处理数据的应用程序来说,保证数据传输的可靠性很重要。处理短暂的数据传输故障和服务器故障等是不可缺少的容错手段。GridFTP支持可靠的数据传输及数据重传,并把它扩展到新的数据通道协议中。
2 GridFTP性能
在2台工作站上进行GridFTP数据传输的性能测试。其中一台工作站在美国Illinois州的Argonne National Laboratory,另一台在美国California州的Lawrence Berkeley National Laboratory,二者之间通过ES-Net(WWW.es.net)进行连接。二个工作站都运行Linux操作系统,具有数据读写速度约为60MBps的RAID存储系统。在2台工作站之间最慢的网络部分是千兆以太网。当并行的TCP流增加时Iperf与GridFTP的数据传输性能比较如图1所示。
Iperf是测量网络性能的工具,通过它可以得到网络的最大吞吐量。由图1可以看出,当并行TCP流达到7~10条时,GridFTP的通信性能可达到200Mbps。Iperf及GridFTP之间的性能差异主要是由GridFTP中存在的安全鉴别开销、发送性能状态信息的开销及检查点设置开销引起的。根据计算,GridFTP的性能可达到Iperf性能的78%。
在一段时间内,受测试节点的磁盘性能的限制,在2个节点之间进行GridFTP传输时的性能会略小于图1所显示的性能:当传输过程中出现不同的网络问题(网络设备掉电、DNS出错等)时,传输性能会陡降。但当网络恢复时,数据传输又继续开始。这主要是因为GridFTP协议支持数据传输自动重传,这样一旦网络恢复正常,中断的数据传输可继续进行。
3 实现及应用
Globus项目是美国多个组织共同对计算网格的构建进行的研究。目前的Globus可被视为计算网格技术的典型代表和事实上的规范。
为了实现GridFTP协议,Globus项目主要实现了GridFTP函数库(globus_ftp_control_library及globus_fip_client_library)、GridFTP客户端、GridFTP服务器端及一系列的相关工具。GridFTP服务器端主要是通过对自由软件wuftpd进行改写及扩展来实现的。GridFTP客户端则通过对ncfip改写及扩展实现。
函数库globus_ftp_control_library实现了控制通道API,主要提供了管理GridFTP连接(包括相互鉴别、创建控制及数据通道、在数据通道上读写数据)的功能,并且支持并行数据传输、条状数据传输及第三方数据传输等。
函数库globus_ftp_client_library主要实现GridFTP客户端API,提供高层客户端数据传输功能,包括完整文件get操作及put操作、对并行数据传输进行控制及设置、部分文件传输操作和设置TCP缓冲大小等。
4 GridFTP的发展前景
GridFTP 2.0版本已基本能满足网格需求,预计2~3年内GridFTP将成为主要网格数据传输协议。然而GridFTP协议还有一个主要的问题:数据信道的连接与数据流必须在同一个方向上,也就是说数据信道不能是双向的。在防火墙中这将引起问题。因此GridFTP还需要一些附加特征及其开发技术,如全双工协议、管道指令和Web服务等。
为了解决上述问题,Globus工作组将开发附加协议。GridFTP协议实际上是由许多下一层的子协议组成。这个新的数据传输协议将实现双向数据传输、管道指令、扩展块模式的所有功能和其他可能的特征。此外,GridFTP还要有一个统一的Web服务接口。如果需要向下兼容,新协议可以作为一个新的模式整合到现存的GridFTP协议中。
网格中已有许多大型的存储系统。这些存储系统往往侧重于不同的需求,为客户提供不同的服务:如高性能存储系统侧重于实现快速传送存储设备和并行机或群聚计算机之间的庞大文件;分布式文件系统则侧重于支持海量存储与负载平衡。
由于采用了不同的软件及数据访问协议,大部分存储系统并不兼容。若要访问多个存储系统,应用程序必须采用多种方法来检索所需数据,这显然是低效的。在具体应用中,许多地理上分布的应用程序或用户需要访问大量数据,要求各种存储系统之间能快速而有效地传输大量数据。一种简单的解决办法是通过建立一个客户层或者网关,给用户提供统一接口以打破由相互不匹配的存储系统协议所造成的分区。这种方法不要求供应商支持一种新的协议,但由于增加了一个抽象层,所以实现跨系统数据传输的代价较大,且实现这种方法是一项很复杂的工作。为此,Globus提出了GridFTP机制,它基于标准FTP协议,并对其进行了全面扩展,可实现对多种存储系统的支持,并提供统一的用户访问界面。
1 GridFTP协议功能及特点
GridFTP基于标准的FTP协议。这是因为FTP协议是目前因特网上使用最普遍的数据传输协议。它具有如下特点。
(1)PTP协议有大量的技术基础,且易于理解。(2)FTP协议是数据传输的标准协议之一,易于扩展体系结构,且支持一些扩展的动态发现。(3)目前已有针对FTP协议的大量扩展及其实现,其中一些对于Grid环境的数据传输很有用。(4)除了客户/服务器传输(如put/get或者远程read/write),它也支持由第三方用户控制的2个服务器之间的直接传送。(5)由于数据及控制信道在不同套接字上相分离,这使并行及条状传输等特征更容易扩展。
在FTP协议(RFC 969)及其扩展所定义的特征中,标准的FTP实现一般只支持其中一个子集。为了使网格数据传输协议具有更好的适应性,GridFTP除了应具有普遍使用的数据传输协议所提供的基本功能外,还必须是可扩展的。为了满足网格的需要,GridFTP在FTP的基础上增加了如下一些新的特征,其中一些已经成为标准。
(1)自动调整TCP缓冲/窗口大小。手工方式设置TCP缓冲/窗口大小容易出错,且对用户要求较高。因此GridFTP对标准的FTP指令集及数据信道协议进行了扩展。针对具体的文件大小及类型,使GridFTP支持手动或自动设置大文件以及小文件集合的TCP缓冲大小。由于使用优化的TCP缓冲/窗口大小设置,从而有效地提高了数据传输性能。
(2)支持GSI及Kerberos安全机制。传输或存取文件时,灵活可靠的安全鉴别、完整性检查、健壮性及保密性都非常重要。当用户要求控制不同层次上的数据完整性及保密性的设定时,GridFTP必须支持GSI(Crid Security Infrastructure)及Kerberos认证。GSI支持用户代理、资源代理、认证机构和协议的实现,是Globus的安全基础构件包,是保证网格计算安全性的核心。
(3)第三方控制的数据传输。为了管理许多大型数据集,GridFTP提供了经过鉴别的由第三方控制的数据传输功能。这种功能允许用户或应用程序启动、监视和控制其他2个地点的数据传输,为使用多个地点的资源提供了保障。GridFTP在保留FTP的第三方数据传输功能上增加了GSS-API(Generic Security Service-API)安全认证。
(4)并行数据传输。并行数据传输就是在一个数据服务器上,将数据文件分段后在多种数据连接上传输数据。在广域网中,客户端及服务器之间或2个服务器之间需要高带宽。使用多个并行的TCP流与使用单一的TCP流相比能有效地提高数据传输的总带宽。GridFTP通过指令及数据信道的扩展支持并行数据传输。
(5)条状数据传输。条状数据传输是指应用程序使用多个TCP流来传输分布在多个服务器上的数据。在网格环境中,大规模的数据可分布放置在多个存储点上。GridFTP能启动条状传输,条状传输可以在并行传输的基础上进一步提高总带宽及数据传输速度。
(6)部分文件传输。许多应用程序只需要访问某个远程文件的一部分。而标准的FTP只能传输整个文件或从文件某个特殊位置开始的剩余部分,因此需要特定的数据传输支持。GridFTP引入新的FTP指令以支持从一个文件的任意位置开始传输数据。
(7)支持可靠的数据传输及数据重传。对于许多处理数据的应用程序来说,保证数据传输的可靠性很重要。处理短暂的数据传输故障和服务器故障等是不可缺少的容错手段。GridFTP支持可靠的数据传输及数据重传,并把它扩展到新的数据通道协议中。
2 GridFTP性能
在2台工作站上进行GridFTP数据传输的性能测试。其中一台工作站在美国Illinois州的Argonne National Laboratory,另一台在美国California州的Lawrence Berkeley National Laboratory,二者之间通过ES-Net(WWW.es.net)进行连接。二个工作站都运行Linux操作系统,具有数据读写速度约为60MBps的RAID存储系统。在2台工作站之间最慢的网络部分是千兆以太网。当并行的TCP流增加时Iperf与GridFTP的数据传输性能比较如图1所示。
Iperf是测量网络性能的工具,通过它可以得到网络的最大吞吐量。由图1可以看出,当并行TCP流达到7~10条时,GridFTP的通信性能可达到200Mbps。Iperf及GridFTP之间的性能差异主要是由GridFTP中存在的安全鉴别开销、发送性能状态信息的开销及检查点设置开销引起的。根据计算,GridFTP的性能可达到Iperf性能的78%。
在一段时间内,受测试节点的磁盘性能的限制,在2个节点之间进行GridFTP传输时的性能会略小于图1所显示的性能:当传输过程中出现不同的网络问题(网络设备掉电、DNS出错等)时,传输性能会陡降。但当网络恢复时,数据传输又继续开始。这主要是因为GridFTP协议支持数据传输自动重传,这样一旦网络恢复正常,中断的数据传输可继续进行。
3 实现及应用
Globus项目是美国多个组织共同对计算网格的构建进行的研究。目前的Globus可被视为计算网格技术的典型代表和事实上的规范。
为了实现GridFTP协议,Globus项目主要实现了GridFTP函数库(globus_ftp_control_library及globus_fip_client_library)、GridFTP客户端、GridFTP服务器端及一系列的相关工具。GridFTP服务器端主要是通过对自由软件wuftpd进行改写及扩展来实现的。GridFTP客户端则通过对ncfip改写及扩展实现。
函数库globus_ftp_control_library实现了控制通道API,主要提供了管理GridFTP连接(包括相互鉴别、创建控制及数据通道、在数据通道上读写数据)的功能,并且支持并行数据传输、条状数据传输及第三方数据传输等。
函数库globus_ftp_client_library主要实现GridFTP客户端API,提供高层客户端数据传输功能,包括完整文件get操作及put操作、对并行数据传输进行控制及设置、部分文件传输操作和设置TCP缓冲大小等。
4 GridFTP的发展前景
GridFTP 2.0版本已基本能满足网格需求,预计2~3年内GridFTP将成为主要网格数据传输协议。然而GridFTP协议还有一个主要的问题:数据信道的连接与数据流必须在同一个方向上,也就是说数据信道不能是双向的。在防火墙中这将引起问题。因此GridFTP还需要一些附加特征及其开发技术,如全双工协议、管道指令和Web服务等。
为了解决上述问题,Globus工作组将开发附加协议。GridFTP协议实际上是由许多下一层的子协议组成。这个新的数据传输协议将实现双向数据传输、管道指令、扩展块模式的所有功能和其他可能的特征。此外,GridFTP还要有一个统一的Web服务接口。如果需要向下兼容,新协议可以作为一个新的模式整合到现存的GridFTP协议中。
举报