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 use the GridFTP protocol.
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. See our instructions for using the globus module to set up your authentication.
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 |
|---|---|
| Kraken | gridftp.kraken.nics.xsede.org |
| Nautilus | gridftp.nautilus.nics.xsede.org |
Example 1
On Nautilus, copying a directory in /lustre/scratch/ on Kraken
to /lustre/medusa/ on Nautilus:
> globus-url-copy -r -vb -tcp-bs 8388608 -p 1 \
gsiftp://gridftp.kraken.nics.xsede.org/lustre/scratch/<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 Kraken:
> globus-url-copy -vb -tcp-bs 8388608 -p 1 \
file:///lustre/medusa/<username>/myfile.tar \
gsiftp://gridftp.kraken.nics.xsede.org/lustre/scratch/<username>/mydir/
Example 3
While on another XSEDE resource (not Kraken or Nautilus) and transferring a file from Kraken to Nautilus:
> globus-url-copy -vb -tcp-bs 8388608 -p 1 \
gsiftp://gridftp.kraken.nics.xsede.org/lustre/scratch/<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 Kraken, 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 Kraken:
> module load globus > module load uberftp > myproxy-logon Enter MyProxy pass phrase: A credential has been received for user username in /tmp/x509up_u2187. > uberftp gridftp.kraken.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/scratch/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.

