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 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 or PSC myproxy server which requires your XSEDE username and password to authenticate. To see which MyProxy certificate servers you have been setup to use, go to the NICS portal at https://portal.nics.utk.edu and look for your DNs (Distinguished Names).

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

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 Globus Online

Globus lets you use a web browser or command line interface to submit transfer and synchronization requests, optionally choosing encryption. Globus takes it from there. With this 'fire and forget' model you can concentrate on your research while Globus handles the mundane (but important) details of successful large-scale data transfers.

Your data is transferred directly between the source and destination systems while Globus tunes performance parameters, maintains security, monitors progress, and validates correctness. You can check the transfer status at any time via the Globus activity page and will receive email when the transfer completes.

To use the web browser capability go to www.globus.org login to Globus and follow the Globus Online instructions.

Using GridFTP Clients

Once you loaded the globus module and obtained your proxy certificate with myproxy-logon, 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
ACF (Fall 2017) gridftp.nics.xsede.org
Beacon gridftp.nics.xsede.org

Example 1

On Beacon, copying a directory in /lustre/medusa/ on Beacon to Stampede:

> globus-url-copy -r -vb -tcp-bs 8388608 -p 1 
gsiftp://gridftp.nics.xsede.org/lustre/medusa/victor/dm/ 
gsiftp://gridftp.stampede.tacc.xsede.org:2811/scratch/00642/tg458033/

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-4 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 Beacon, copying single file from Beacon to Stampede:

> globus-url-copy -vb -tcp-bs 8388608 -p 1 
gsiftp://gridftp.nics.xsede.org/lustre/medusa/victor/onegigabytefile 
gsiftp://gridftp.stampede.tacc.xsede.org:2811/scratch/00642/tg458033/onegigabytefile.from.beacon
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.

One of the latest features of Globus is Globus Connect Personal. Globus Connect Personal turns your personal computer into a Globus endpoint so you can share and transfer files to/from a local machine—campus server, desktop computer or laptop.


Transfer files between local computer and NICS resources