The National Institute for Computational Sciences

GridFTP

Based upon the Internet FTP protocol, GridFTP is a high-performance, secure, reliable data transfer protocol optimized for high-bandwidth wide-area networks. Note that GridFTP is not a command—there is no client program named GridFTP. Instead, there are client programs (globus-url-copy and uberftp) that that are part of the Globus Toolkit that use the GridFTP protocol and there are Globus Web-based tools at https://www.globus.org/ that can help you transfer files easily.

Getting Started

GridFTP clients use GSI (Grid Security Infrastructure) authentication which relies on proxy certificates to allow access to various resources. The Globus Toolkit contains the utilities to manage proxy certificates. On NICS and XSEDE resources, the Globus module should be loaded by default. If not, load it with:

> module load globus

For using GridFTP on other machines outside of XSEDE, see the Globus Toolkit page for instructions on obtaining and installing the Globus Toolkit.

To use a GridFTP client, you must first acquire a proxy certificate with the myproxy-logon command. Certificates can be obtained from either NCSA's myproxy server (which requires your XSEDE username and password) of from NICS myproxy server (which requires your NICS username and passcode using OTP). Use the -s option with myproxy-logon to specify the server and the -l to specify username if needed:

for XSEDE certificates:
> myproxy-logon -s myproxy.xsede.org -l <XSEDE username>
Enter MyProxy pass phrase: [enter XSEDE password]

for NICS certificates:
> myproxy-logon -s myproxy.nics.utk.edu -l <NICS username>
Enter MyProxy pass phrase: [enter NICS passcode (pin + OTP token code)]

You should receive a message like:

A credential has been received for user <username> in /tmp/x509up_u000.

Note: If using your own installation of the Globus Toolkit, you may need to use the -T option with myproxy-logon to install trusted certificates on your machine.

Proxy certificates are valid for 12 hours by default. You may specify a longer time (in hours) with the -t option for myproxy-logon. The command grid-proxy-info will give information on any existing proxy certificates including remaining time limit.

Using GridFTP Clients

Once you have established your proxy certificate, you may use either globus-url-copy (command line driven) or uberftp (interactive) to transfer data using GridFTP.

globus-url-copy

The globus-url-copy client is included in the globus module. The basic form of a globus-url-copy command is:

> globus-url-copy <source_url> <destination_url>

The source and destination URLs can be of two types. If it is a local file, use:

file://<full path>

and for remote files use:

gsiftp://<hostname>/<full path>

Note: If specifying a directory, you must use a trailing / in your path.

The URLs for NICS GridFTP servers are:

Resource URL
Darter gridftp.darter.nics.xsede.org
Nautilus gridftp.nautilus.nics.xsede.org
Beacon gridftp.beacon.nics.xsede.org

Example 1

On Nautilus, copying a directory in /lustre/medusa/ on Darter to /lustre/medusa/ on Nautilus:

> globus-url-copy -r -vb -tcp-bs 8388608 -p 1 \
gsiftp://gridftp.darter.nics.xsede.org/lustre/medusa/<username>/mydir/ \
file:///lustre/medusa/<username>/mydir/

The command-line options are:

-r recursive; will copy all subdirectories of mydir
-vb verbose output (number of bytes transferred, performance, etc.)
-tcp-bs size (in bytes) of TCP buffer
8MB (8388608 bytes) is recommended
-p number of parallel data connections
1 is recommended
Note: For extremely large files or with high network traffic, you may wish to change the number of parallel streams to 2 and the buffer size to 4MB.

Example 2

On Nautilus, copying single file from Nautilus to Darter:

> globus-url-copy -vb -tcp-bs 8388608 -p 1 \
file:///lustre/medusa/<username>/myfile.tar \
gsiftp://gridftp.darter.nics.xsede.org/lustre/medusa/<username>/mydir/

Example 3

While on another XSEDE resource (not Darter or Nautilus) and transferring a file from Darter to Nautilus:

> globus-url-copy -vb -tcp-bs 8388608 -p 1 \
gsiftp://gridftp.darter.nics.xsede.org/lustre/medusa/<username>/myfile.tar \
gsiftp://gridftp.nautilus.nics.xsede.org/lustre/medusa/<username>/mydir/
For more detailed information on globus-url-copy see the globus website.

UberFTP

UberFTP is an interactive GridFTP client with syntax similar to sftp. Like globus-url-copy, it also requires a GSI proxy certificate (set up through the globus module). On Darter, UberFTP is included within the globus module. On Nautilus, you must load UberFTP as a separate module:

> module load uberftp

When using UberFTP, you must specify a GridFTP server URL for an XSEDE resource (listed in the table above). Here is an example session on Nautilus, moving a file from Nautilus to Darter:


> module load uberftp
> myproxy-logon
Enter MyProxy pass phrase:
A credential has been received for user username in /tmp/x509up_u2187.
> uberftp gridftp.darter.nics.xsede.org
220 gridftp8.nics.utk.edu GridFTP Server 2.8 (gcc64dbg, 1217607445-63) [Globus Toolkit 4.0.8] ready.
230 User username logged in.
UberFTP> cd /lustre/medusa/username
UberFTP> put test.tar
test.tar: 530944000 bytes in 8.228181 Seconds (61.538 MB/s)
UberFTP> quit
221 Goodbye.
> 

For more information on UberFTP, see the manpage or visit the UberFTP homepage.