GT 4.0 GridFTP: Storage Resource Broker (SRB)

1. Introduction

The Storage Resource Broker Data Storage Interface (SRB-DSI) is an extension to the GridFTP server that allows it to interact with SRB. Plugging this extension into a GridFTP server allows the GridFTP server to access a SRB resource and serve it to any GridFTP client as though it were a filesystem.

2. Architecture

SRB DSI Architecture

The above image shows the architecture of the system. Their are 4 major components:

  • SRB Server - This is where the data is stored. It is accessed by the GridFTP server via the standard SRB protocols using GSI_AUTH.
  • SRB-DSI - This component is the bridge between GridFTP and SRB. All operation requests and data are routed through this component. The GridFTP server makes requests of it, then it translates these requests into SRB client commands.
  • GridFTP Server - A standard GridFTP 4.0.1 server is loaded with the SRB-DSI. Clients contact this server to access data in a SRB resource. The server passes the request to the SRB-DSI which, as described above, passes the request on to the SRB server. The responses to the requests return along the same path.
  • GridFTP Client - A stock GridFTP client (like globus-url-copy). No modifications to the client are needed.

3. Software

You need the following items to use the SRB-DSI:

  • Globus 4.0.1 - You need the GridFTP distributed with globus 4.0.1 or later. You can find that here.
  • SRB Client 3.4.0 - You only need the client libraries to build the SRB-DSI, but you will need access to a running SRB server and resource. You can find the client libraries here.
  • SRB-DSI - You can find the SRB-DSI here.

4. Building

Instructions for building Globus and SRB are well documented in the above links. The following sections describe one way of building these two packages. However, if any questions or errors are discovered, the reader should look to the above links for solutions.

4.1. Building Globus

Download the source installer, choose a path on your filesystem for your GLOBUS_LOCATION, and run the following:

% bunzip2 gt4.0.1-all-source-installer.tar.bz2
% tar -xvf gt4.0.1-all-source-installer.tar
% export GLOBUS_LOCATION=<path you chose for your GLOBUS_LOCATION>
% ./configure --prefix=$GLOBUS_LOCATION
% make gridftp globus_gridftp_server-thr
% source $GLOBUS_LOCATION/etc/globus-user-env.sh

4.2. Building SRB

% ./configure  --enable-gsi-auth --enable-globus-location=$GLOBUS_LOCATION --enable-globus-flavor=<a threaded globus flavor>
% make

4.3. Building SRB-DSI

The SRB-DSI is a GPT package. More information about GPT package installation can be found here. Most users should simply need:

gpt-build -force CONFIGOPTS_GPTMACRO="--with-srb-path=<location of SRB source tree>"  globus_srb_dsi-0.13.tar.gz <threaded flavor>

5. Administration

Before you can run the GridFTP server with the SRB-DSI, you need to set up some files.

5.1. Creating and setting up the SRB configuration file

A configuration file must be created at:

$GLOBUS_LOCATION/etc/gridftp_srb.conf

The following values must be set in this file:

srb_hostname <host>:<port>
srb_hostname_dn <domain name to expect from SRB server>
srb_default_resource <default srb resource to use>

5.2. Setting up the gridmap file

Additionally, the gridmap file must be special for this DSI. Along with the subject name and username, the SRB-DSI needs to know the SRB domain name for the user. This is handled by adding an additional value to the gridmap file:

 
"<user security DN>" <srb user name>@<domain name>

6. Running

Once you have the configuration files in place, you can run the server.

[Important]Important

All options of the server apply, but the parameter -dsi srb -auth-level 4 must also be used.

For more information on setting these values and running the GridFTP server see Configuring GridFTP.

Most users can run with:

 
$GLOBUS_LOCATION/sbin/globus-gridftp-server -p <port> -dsi srb -auth-level 4

7. See Also

See the README file for more information.