GT 2.4: GSIFTP Tools for Getting Started With the Data Grid

This document provides a step-by-step guide to setting up GSIFTP clients and servers.  Answers to frequently-asked questions about these tools are also available.

GSIFTP is a subset of the GridFTP protocol.  It is essentially standard FTP enhanced to use GSI security.  It does not includes many of the high-performance GridFTP protocol features, such as parallel data transfer, automatic TCP window/buffer sizing, enhanced reliability, etc.

Server Credentials

If your servers do not already have grid credentials, you will need to obtain these and install them correctly.

  1. Obtain root privilages for the servers if you do not already have them.
  2. Follow the instructions here for each server. (Don't forget to follow the instructions here as well!)

GSIFTP Software

Next, you must obtain the GSIFTP software.

  1. Download the gsiwuftp server from ftp://ftp.globus.org/pub/gsiftp/gsi-wuftpd-0.3b1.tar.gz.
  2. Download the gsincftp client from ftp://ftp.globus.org/pub/gsiftp/gsincftp-0.3.tar.gz.

Now that you have the software, you must build it from the source code. To do this, perform the following steps.

  1. Gunzip and Untar each file that you downloaded.
  2. Enter each directory created in Step 1 and configure, make, and make install the contents.
  3. For wuftp's configure step you will need to perform the following configure statement.
    ./configure --enable-gssapi=globus \
    --with-gssapi-dir=<your globus install directory> \
    --with-ssl-dir=<your ssl install directory> \
    --prefix=<your install directory>
  4. For gsincftp's configure step you will need to perform the following configure statement.
    ./configure --enable-gssapi \
    --disable-extra-dirs \
    --with-gssapi-dir=<your globus install directory> \
    --with-ssl-dir=<your ssl install directory> \
    --prefix=<your install directory>

You must install gsiwuftp on your server machine(s) while logged in as root. (The gsincftp client may be installed on client machines without using root priviledges.)

On each server:

  1. Edit the /etc/ftpaccess file and make sure the following statements or their equivalent exist in the file.

    class all real *
    pasv-allow all 0.0.0.0/0

    (The latter allows third-party transfers to work. To customize these settings, consult the ftpaccess manpage that should have been installed with wuftp.)

  2. Edit the /etc/services file and add the following line.

    gsiftp 2811/tcp

  3. Edit the /etc/inetd.conf file and add the following line.

    gsiftp stream tcp nowait root <your install directory>/sbin/in.ftpd -l -a

  4. Make sure that all valid user shells are listed in /etc/shells.
  5. Restart inetd services. On Linux you can do this by executing "/etc/rc.d/inet.d/inet restart". On other machines you may need to execute "kill -HUP <pid of inetd>".

Configuring Buffer Sizes

To obtain optimal performance from these FTP tools, you will most likely need to configure the TCP buffer sizes for file transfers.

The TCP buffer size used for a transfer is controlled by the FTP client. For the gsincftpget program, use the -B argument to set the buffer size. For the gsincftp (interactive) client program, use the following interactive command.

ncftp> set so-bufsize <number>

You may query the current buffer size using the following command.

ncftp> set so-bufsize

  • Incorporated NCFTP 3.0beta21 -> 3.0.0
  • Correctly handle connection failure, instead of reporting that setsockopt() fails.
  • Added support for the "gsiftp" URL scheme.  An ftp URL defaults to port 21.  A gsiftp URL defaults to port 2811.  The default port when only the host (i.e. no URL scheme) is specified is 2811.