简介:RFT是可靠传输服务。它允许客户端向一个持久的服务提交URL传输请求,这个持久服务会代表客户执行传输。GT4.2.0中的RFT服务实现使用标准的SOAP信息通过HTTP提交管理一套第三方GridFTP传输和用GridFTP删除文件。用户通过向RFT工厂模式服务提交一系列需要传输或删除的文件的URL对来创建一个RFT资源。用户也指定创建的用来部署和配置RFT的GT4.2.0容器的资源的生存时间。当用户被授权并验证以后资源被创建。RFT服务实现展示了控制和管理传输(资源)的操作。RFT工厂和RFT服务展现的操作在下面进行了简略介绍。用户创建的资源也将传输的状态作为资源的属性展现了出来,这样用户可以认定或周期性的使用标准命令行客户端轮询状态的改变。
第一章:使用RFT
java客户端rft和rft-delete命令对于每一个简单的传输都是可用的。对于更多的选项,使用编程说明。
1.globus-crft
从4.2.0开始RFT也提供一个C客户端,globus-crft
1.1.提交一个传输
为了提交一个传输请求用户必须首先创建一个“传输文件”。这个ASCII文本文件是一个“源/目的地”URL对。每个文件可以后任意行。一个文件的例子如下:
gsiftp://localhost:2811/etc/group gsiftp://localhost:2811/tmp/test_crft
gsiftp://ftp.globus.org:2811/pub/READEME gisftp:myhost.here/home/user/file
这个文件请求两个传输。第一个会用运行在本机上的GridFTP服务器来传输/etc/group到/tmp/test_crft.第二个会传输在ftp.globus.org上的文件/pub/READEME到位于myhost.here上的/home/user/file文件。
一旦传输文件被创建globus-crft可以用多种方式来传输文件。最简单的就是块传输。
%globus-crft –c –s –m –vb –f <transfer file> –e<container contact string>
个别地看每一个选项,这个命令行如下:
-c 创建一个新的RFT服务器
-s提交一个传输请求 因为RFT是两步提交,我们允许客户端分布做的能力,然而大多数时间-c和-s是被预期一起用的。
-m 监控传输,当这个选项被使用时直到所有传输完成客户端会阻塞。它一路监控传输的状态并可以向用户报告。
-vb 显示冗长的输出。这仅仅加强了送给标准输出地诊断信息的水平。当和-m结合时会允许用户看到传输的状态。
-f<transfer file> 这个选项是上述传输文件的指针。
-e<conrainer contact strings> 连接字符串格式如下:
https://hostname.com:8443/wsrf/services/
字符串____和____会附加到给出字符串的后面以便客户端和容器的代理服务和RFT服务交互。???真晕,下划线什么意思???
1.2无闭塞传输
客户端可以进行无闭塞RFT提交。它可以提交一个RFT请求然后终止,回来以后监视请求的状态。为了完成这项工作客户端保存新创建的RFT
服务的EPR到硬盘中。????什么是EPR????
%globus-crft -c -s -f <transfer file> -e <container contact string> -ef <epr output file>
在某一时刻以后客户端用这个简单的文件来监视传输的状态:
%globus-crft -ef <epr input file> –getOverallStatus
注意:
注意两个情形都用到了-ef。情形一中,以为-c选项在使用,我们创建了一个新的服务那么-ef选项就死一个输出文件的指针。在所有没有使用-c的情况中,-ef开关是一个输入文件的指针。
1.3清除
一旦一个传输请求完成,用户应该销毁和它相关的资源。如果用户保存了服务创建的EPR,可以这样做:
%globus-crft –ef <epr input file> –destroy
1.4更多
获得更多选项的列表运行:globus-crft –help
RFT命令
名字:rft --提交和监控第三方GridFTP传输
工具描述:向一个可靠文件传输服务提交一个传输并在终端上打印传输的状态。
命令语法和选项:rft [ -h <host -ip of the container defaults to localhost>
-r <port, default to 8080>
-l <lifetime for the resource default 60min>
-m <security mechanism.'msg' for secure message or 'conv' for secure conversation and 'tarns' for transport.Default to secure transport.>
-p <protection type,'sig' signature and 'env' encryption,defaults to signature>
-z <authorization mechanism can be self or host.default self>
-file <file to write EPR of created Reliable File Transfer Resource>]
-f <path to the file that contains list of transfers>
这是一个命令行客户端可以解析的传输文件的例子。和其它路径传输和删除的例子(以#开头的行为注释)一起都可以在$GLOBUS_LOCATION/share/globus_wsrf_rft_client中找到。
#这个选项当它设置为真时意味着以二进制位的形式执行传输,当被设为假时以ASCII的形式传输,默认是二进制。
true
#传输的块的大小(单位为字节)默认是16000字节
16000
#TCP缓冲大小(单位为字节)
#指定ftp数据通道之下使用的TCP缓冲的大小(单位为字节),这对广域网上的性能非常关键,用带宽时延积(bandwidth-delay product)作为你的缓冲大小
16000
#Notpt (非第三方传输): 当这个选项被设置为假时关闭第三方传输(真为开启)设置防火墙和/或软件配置可以阻止两个服务器之间的连接(第三方传输)如果是这样的话,RFT会转播数据。它会从源做一个GET操作向目的地做一个PUT操作,这显然会造成性能损失,但是它会完成你用别的方法无法完成的传输。
false
#并行流的数目:指定应该使用的并行连接数目
1
#数据通道授权(DCAU): 因为设置FTP传输为假而关闭数据通道授权.(默认为真授权数据通道).
true
# 并发请求:在任给的一个点上你想传输的文件数目。默认设为1。
1
#源gridftp服务器的网格主机名。这是用来授权的。如果源gridftp服务器是运行在主机证书上的你可以在这里指定"null"。默认主机授权表示:
/DC=org/DC=doegrids/OU=People/CN=Ravi Madduri 134710
#目的gridftp服务器的网格主机名。这是用来授权的。如果源gridftp服务器是运行在主机证书上的你可以在这里指定"null"。默认主机授权表示:
/DC=org/DC=doegrids/OU=People/CN=Ravi Madduri 134710
#Transfer all or none of the transfers: 当这个选项被设为真时会使RFT清除(删除)所有已经完成的传输This option if set to true will make RFT
to clean up ( delete ) all the transfers that have been done already if one of the transfer fails. Used in GRAM when staging.???我靠,根本就不通顺???
false
#Maximum number of retries: This is number of times RFT retries a transfer failed with a non-fatal error.重试的最大数目:RFT重操作一个非致命错误引起的故障的传输的次数。
10
#源/目的URL对:gsiftp源url随后是目的url。如果目录是递归传输的,源gsiftp url和目的gsiftp url应该以"/"结尾。 RFT支持目录到目录,文件到目录,文件到文件传输。可能有更多的URL对并且他们都用如上相同的选项来执行传输。
gsiftp://localhost:5678/tmp/rftTest.tmp
gsiftp://localhost:5678/tmp/rftTest_Done.tmp
局限性
这个命令行客户端非常简单并且不对多种命令行选项或作为例子的传输文件里的选项做只能解析。如果用在这里描述的方法使用的话有很好的效果。对这些选项想了解更多信息的话请参考globus-url-copy的文档。同时,请注意在默认的JVM堆大小在耗尽内存前命令行客户端可以处理的最大传输数目是~21K。请看性能报告以获得更多信息。
名字:globus-crft -用RFT传输文件的命令行客户端。
工具描述:这个分配包含了一个用C编写的RFT服务客户端。RFT是可靠传输服务器。它允许客户端向一个持久服务提交URL传输请求,这个服务会代理客户端执行传输。
选项:略
局限性:这个命令行工具不存在局限性。
名字:rft-delete --用RFT删除
工具描述:这个命令行工具用来提交要删除的文件列表。
命令和选项:
rft-delete [-h <host-ip of the container default localhost>
-r <port, defaults to 8080>
-l <lifetime for the resource default 60mins>
-m <security mechanism.'msg' for secure message or 'conv' for secure conversation and 'trans' for transport.Default to secure transport.>
-p <protection type,'sig' signature and 'enc' encryption,defaults to signature>
-z <authorization mechanism can be self or host.default self>
-file <file to write EPR of created Repliable File Transfer Resource>]
-f <path to the file that contains list of transfers>
???怀疑上面的选项解释又弄错了???
这是一个命令行客户端可以解析的样本文件。和其它路径传输和删除的例子(以#开头的行为注释)一起都可以在$GLOBUS_LOCATION/share/globus_wsrf_rft_client中找到。
#subject名(默认是主机subject)
/DC=org/DC=doegrids/OU=People/CN=Ravi Madduri 134710
gsiftp://localhost:5678/tmp/rftTest_Done.tmp
gsiftp://localhost:5678/tmp/rftTest_Done1.tmp
局限性:这个命令行工具不存在局限性。
第二章:疑难解答
未完待续···