ATTENTION! You want to go to here: https://github.com/JasonAlt/GridFTP-DSI-for-HPSS
HPSS DSI for GridFTP: globus_gridftp_server_hpss-0.3.tar.gz
This is a standard Globus package that will build 3 GridFTP server DSI modules for HPSS 6.2. hpss_control is the frontend DSI for a single or multistripe GridFTP configuration. hpss_data is the backend(s) DSI for a single or multistripe GridFTP configuration. Both frontend and backend GridFTP processes are required for striped operation. This is the preferred configuration. hpss_local provides HPSS access via a single GridFTP process. This gives poor performance compared to frontend/backend striped configuration, but is acceptable for light use. ============= Prerequistes: ============= This package requires a working GridFTP server, from at least version 4.0.1 of the toolkit. A threaded build of the server is required. To build a threaded gridftp server, run 'make globus_gridftp_server-thr' from the source installer. =========== Installing: =========== From this package: gpt-build [CONFIGOPTS_GPTMACRO="[options]"] \ globus_gridftp_server_hpss-x.x.tar.gz gcc32dbgpthr From a CVS checkout, from this dir, run: ./bootstrap gpt-build [CONFIGOPTS_GPTMACRO="[options]"] gcc32dbgpthr Options are: --with-hpssdir=[hpssdir] #/opt/hpss is the default HPSS dir, use this to specify a different path. --with-unixauth --with-krb5auth #enable hpss authentication types. the libs libhpssunixauth.so #and/or libhpsskrb5auth.so must exist in [hpssdir]/lib/ --without-rpath #this option disables setting of rpath, and is probably required on non-Linux platforms. If this option is set, [hpssdir] needs to be added to the environment library path (LIBPATH, LD_LIBRARY_PATH, etc, depending on platform) before the server is run. Note: the flavor here (gcc32dbgpthr) must match the flavor of the server. It is usually gcc32dbgpthr on Linux and vendorcc32dbgpthr on other platforms. The command 'gpt-query globus_gridftp_server' can be run to verify which flavor is installed. ======== Running: ======== In order to use the module, the server must be started with the -dsi commandline option: globus-gridftp-server -dsi hpss_local -p 5000 -debug will start a server listening on port 5000 using the hpss_local module. hpss_control and hpss_data also require other options to specify frontend/backend: globus-gridftp-server -dsi hpss_control -debug \ -p 5000 -r localhost:5001,localhost:5002 globus-gridftp-server -dsi hpss_data -p 5001 -dn -debug globus-gridftp-server -dsi hpss_data -p 5002 -dn -debug will start a frontend listening on port 5000 that will connect to 2 backends on ports 5001 and 5002, using the striped hpss modules. Here are xinetd confs and daemon mode commands for running as a user. The user (globus in this case, but it can be any non-root user) needs read permission on the keytab, as well as ownership of /home/globus/.globus/*. This is assuming both processes on the same machine. Change '-r localhost' to the appropriate hostname. service gridftp_frontend (/etc/services as 2811) { instances = 250 socket_type = stream wait = no user = globus env += GLOBUS_LOCATION=[GL] env += GRIDMAP=/etc/grid-security/grid-mapfile env += X509_USER_CERT=/home/globus/.globus/hostcert.pem env += X509_USER_KEY=/home/globus/.globus/hostkey.pem server = [GL]/sbin/globus-gridftp-server server_args = -i -r localhost:2812 \ -auth-level 4 -dsi hpss_control log_on_success += DURATION log_on_failure += ATTEMPT, HOST nice = 10 disable = no } service gridftp_backend1 (/etc/services as 2812) { instances = 250 socket_type = stream wait = no user = globus env += GLOBUS_LOCATION=[GL] env += GRIDMAP=/etc/grid-security/grid-mapfile env += X509_USER_CERT=/home/globus/.globus/hostcert.pem env += X509_USER_KEY=/home/globus/.globus/hostkey.pem server = [GL]/sbin/globus-gridftp-server server_args = -i -dn -auth-level 4 -dsi hpss_data log_on_success += DURATION log_on_failure += ATTEMPT, HOST nice = 10 disable = no } or as a daemon: export GLOBUS_LOCATION=[GL] export GRIDMAP=/etc/grid-security/grid-mapfile export X509_USER_CERT=/home/globus/.globus/hostcert.pem export X509_USER_KEY=/home/globus/.globus/hostkey.pem $GLOBUS_LOCATION/sbin/globus-gridftp-server -S -p 2811 \ -r localhost:2812 -auth-level 4 -dsi hpss_control $GLOBUS_LOCATION/sbin/globus-gridftp-server -S -p 2812 \ -dn -auth-level 4 -dsi hpss_data ============== Configuration: ============== A configuration file is requried to specify security parameters. By default, this file is expected to be at /var/hpss/etc/gridftp-hpss.conf. If you need to point to a file in a different location, specify the path with the -dsi option to globus-gridftp-server: -dsi hpss_control:/path/to/config.file The format of this file, and required parameters: -------- login_name "hpss_login@host.domain" realm_name "kerb_realm.host.domain" keytab "/var/hpss/etc/hpss.keytab" --------- The following are optional: unixauth [0|1] #to enable HPSS UNIX authentication (kerberos is the default) noauth [0|1] #disable additional authentication calls -- the process will run #with whatever permissions running user has. ============= Known Issues: ============= - There are known bugs in the HPSS PIO interfaces we use in versions of HPSS earlier than 6.2.2.1. - Writing to a multiple backend coniguration is the most likely scenario to encounter bugs. - Memory may become corrupted if a transfer is aborted, this shouldn't pose a problem except in -debug mode when the process does not fork for each new connection. ====== Other: ====== For a general understanding of the interface that these modules implement, see http://viewcvs.globus.org/viewcvs.cgi/*checkout*/gridftp/server/src/dsi_bones/README.txt and http://viewcvs.globus.org/viewcvs.cgi/*checkout*/gridftp/server/src/globus_gridftp_server.h (or $GLOBUS_LOCATION/include/globus_gridftp_server.h). Additionally, there are notes and comments in each module's source.