WARNING Preliminary documentation, use at own
FTS 2.2 Documentation
A review of the FTS documentation.
Release status
Changes from previous version
Check the document describing
changes from FTS version 2.1 to 2.2 for the list of new features, changes in service configuration and fixed bugs.
Service deployment model
The
FTS service deployment model document describes the impact of outages of service components on the overall service quality, and suggests possible deployment scenarios.
Installation
Hardware requirements
You should install the FTS and FTA servers on reasonable Scientific Linux 4 machines, ideally of mid-range server-class.
It is recommended to have a least 512M memory, and a modern processor.
Large amounts of disk space are not critical, so a disk-server class machine is not needed.
Prerequisites
- There should be a valid host certificate and host key in /etc/grid-security/.
- Your system should have Java installed on it, this is available from http://java.sun.com
. This is not provided by gLite for redistribution licensing restrictions. FTS uses other components from the JPackage repository. You can find more details about Java and JPackage installation at https://twiki.cern.ch/twiki/bin/view/EGEE/GLite31JPackage
- Your system should have Oracle InstantClient installed on it. This is available from Oracle. The recommended version is currently 10.2.0.3. You need at least oracle-instantclient-basic and oracle-instantclient-sqlplus for a successful installation.
- For the host running the FTS web-service, the firewall should be open for incoming on port tcp/8443 for the web-service. The connection from the client to the web-service is secured with SSL/TLS.
- For the host running the FTA agent daemons, the outgoing firewall (if present) should allow access to your MyProxy server, the database, all source SRM/gridFTP clusters and all destination SRM/gridFTP clusters.
Before you start
Read the Generic Installation and Configuration Guide
Read the generic installation guides:
Please note that YAIM is only used to configure the system. You have to install the service components either by YUM (via gLite metapackages) or by your local package management system.
For FTS-specific YAIM details, see the
Configuration section.
Choose deployment scenario
Examine the possible deployment scenarios from the
deployment model section and choose the one that best fits your needs.
The miniumum suggested configuration is:
- two machine for the FTS web-service (for high availability)
- one machine for all the FTA agent daemons (both the VO agents and the channel agents)
Both the web-service instances (if there is more than one) and the agent dameons can be (and should be) spread across machines for scalability.
Grid dependencies
FTS requires:
- a MyProxy server
- For legacy mode, the MyProxy server must be configured to allow the FTS host certificate to be an "authorized_retriever" (it should allow access from all machines running FTA agents).
- For delegation renewal mode, FTS can use the same MyProxy as the WMS. Due to MyProxy restrictions, the server cannot be the same used by the resource broker to renew user credentials.
- the production storage endpoints to be running SRM (currently SRM v2.2).
- SRM services should publish themselves into the EGEE BDII information system. SRM v1.1 is still supported.
Prepare the site-info.def file
The site-wide YAIM configuration file, site-info.def, should be prepared in advance. It must contain the configuration for the web-service and agents machines.
Two template files are available:
-
/opt/glite/yaim/examples/siteinfo/site-info.def
for site configuration.
-
/opt/glite/yaim/examples/fta-info.def
for FTS/FTA.
The FTS/FTA example is provided separately as it contains many parameters. If you want to use the example, append it to the end of the example site-info.def file first. The structure of the configuration file and detailed configuration instructions are available in the
#FtsYaimValues section.
Identify the agents you need
This will depend on what VO transfers your site is required to serve, and this depends on whether you are the tier-0 or a tier-1. Please read this document which describes the suggested channel deployment model.
IS THIS DOCUMENT UP-TO-DATE???
Once you have identified the channels you need and the VOs that you want to serve, you will need to define:
- An agent daemon for every VO you want to serve
- An agent daemon for every channel you want to serve
If you are unsure of what agents you need and how to define them, there is an example at
FtsServerDeployExampleTier1 : IS IT UP TO DATE???.
New installation
Package Installation
The package installation is managed by YUM.
In general you have to add the DAG and JPackage repositories besides the node specific gLite repository.
Using YUM:
cd /etc/yum.repos.d
wget http://grid-deployment.web.cern.ch/grid-deployment/glite/repos/lcg-CA.repo
wget http://grid-deployment.web.cern.ch/grid-deployment/glite/repos/jpackage.repo
wget http://grid-deployment.web.cern.ch/grid-deployment/glite/repos/dag.repo
There are two distinct server types to install, FTS (the web-service dameons) and FTA (the agent dameons). From the deployment model you have chosen, identify which machines will be running FTS web-service and which machines will be running FTA agents.
Installing FTS web-service
You need to add the FTS gLite repository and install the glite-FTS_oracle metapackage.
yum install glite-FTS_oracle
Installing FTA agents
You need to add the FTA gLite repository and install the glite-FTA_oracle metapackage.
yum install glite-FTS_oracle
Configuring and Starting services
On each node, run the YAIM configuration script, dependent on the node type.
Configuring FTS web-service
For the web-service nodes, run (note the name FTS2 rather than FTS):
/opt/glite/yaim/bin/yaim -c -s my-sitecfg.h -n FTS2
If you have a fresh database, it will stop with a note similar to:
Database schema does not appear to be loaded. Please load it using the command:
sqlplus fts_xxxx/xxxxxxxxx@(DESCRIPTION=(LOAD_BALANCE=no)(ADDRESS=(PROTOCOL=TCP)(HOST=grid8.cern.ch)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=fts-pilot.cern.ch))) @/opt/glite/etc/glite-data-transfer-fts/schema/oracle/oracle-schema.sql
Run the suggested command to load the schema and then rerun the YAIM configuration.
Depending on your connection string, you may have to put quotes around it, as:
sqlplus fts_xxxx/xxxxxxxxx@"(DESCRIPTION=(LOAD_BALANCE=no)(ADDRESS=(PROTOCOL=TCP)(HOST=grid8.cern.ch)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=fts-pilot.cern.ch)))" @/opt/glite/etc/glite-data-transfer-fts/schema/oracle/oracle-schema.sql
Normally oracle-instantclient adds itself to the dynamic library configuration via the /etc/ld.so.conf.d/oracle-instantclient.conf file. If it did not happen, then you may also have to add the library path first:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/10.2.0.3/client/lib
You have to use lib64 instead of lib on 64 bit platforms.
Starting the FTS web-service
To start the FTS web-service (if YAIM didn't already):
service tomcat5 start
A single daemon will start under the
tomcat:tomcat
user.
Configuring the Initial Channels
You should start the web-service first and create the channels in the DB using the command
glite-transfer-channel-add
before configuring the FTA agent daemons. The FTA agent daemons will fail to start if the corresponding channel has not yet been created.
For every channel agent you have defined, create the channel using the command:
glite-transfer-channel-add SOURCE-DEST SITE1 SITE2
To choose the agents' names, see the
agents naming convention section in the configuration reference.
Channel parameters can be configured with the
glite-transfer-channel-set
command line tool.
Configuring FTA agents
For the agent nodes, run (note that the name is FTA2 rather than FTA):
/opt/glite/yaim/bin/yaim -c -s site-info.def -n FTA2
Starting FTA agents
To start the FTA agent and information system caching daemons:
service transfer-agents start
service glite-sd2cache start
Every agent daemon that you have chosen to configure on the box will be started in sequence.
The second command will start a daemon that populates the services.xml information system cache file as it is described in
FtsServicesXmlGliteSd2Cache. You may want to populate it cache initially by running
sh /etc/cron.daily/glite-sd2cache-cron
To start a single agent daemon:
service transfer-agents start --instance glite-transfer-channel-agent-srmcopy-CERN-FNAL
You can get a list of the names of the agents defined on the machine with the command
service transfer-agents status
Installing the history package
This moves old jobs away from the active schema so as to avoid performance problems. See FtsAdminTools20 ("History package") for this.
Setup your site BDII to publish the FTS information
The FTS web-service node is installed with a BDII GRIS where it publishes the FTS endpoints and the channels you have defined.
Publish this contents of this resource BDII via your site BDII. This will then be picked up by the top-level BDII servers.
Register the FTS web-service node in the GOC database
Go to the GOCDB and register the FTS web-service node (or its DNS alias) in the Grid Operations Center database. Register with node type FTS. This will automatically add your node to the LCG SAME monitoring.
Upgrade from a previous version
IMPORTANT NOTE:
With FTS 2.1, various channel settings previously handled via YAIM and agents configuration files have been moved to the database. Since the channel management command line interface had not been updated accordingly, a migration script, update_channels.py, had been provided and was called by YAIM each time a channel definition was updated. This script copied to the database these new parameters from the generated configuration files.
Starting from FTS 2.2 those parameters
are obsolete, and trying to set them through your YAIM configuration scripts will result in an error.
TBA : THE USUAL STUFF...
Client Installation
Please install the client as part of the gLite 3.1 UI. See
Generic install guide 3.1.
Client configuration
The client command line tools must be told the endpoint of the service portal that they are to talk to.
This can be done directly on the command line with the
-s
option:
glite-transfer-channel-list -s https://HOST.cern.ch:8443/TEST/glite-data-transfer-fts/services/ChannelManagement
or using one of the two options below.
Static services.xml file
If your FTS server is publishing into the EGEE.BDII, you are recommended to use the approach in 'EGEE.BDII configuration' below; skip this section.
If your FTS server is not publishing in the EGEE.BDII, you can create a gLite services.xml file in
/opt/glite/etc/services.xml
:
This is described in the client section of FtsServicesXml14.
EGEE.BDII configuration
If your FTS is publishing in the EGEE.BDII, the following should be set on the client:
export GLITE_SD_PLUGIN=bdii
export GLITE_SD_SITE=CERN-SC
export LCG_GFAL_INFOSYS=lcg-bdii.cern.ch:2170
where
lcg-bdii.cern.ch:2170
is the appropriate EGEE.BDII (the one in the example is the LCG top-level EGEE.BDII), and
CERN-SC
is the GOC-DB name for the site your FTS server is running at (the example is for the CERN production EGEE.BDII at CERN-SC). You do not need a client
services.xml
if you are using EGEE.BDII.
Path and library path
The environment variable
LD_LIBRARY_PATH
must include
/opt/glite/lib
.
The environment variable
PATH
should include
/opt/glite/bin
.
We provide a script
fts.sh
as an example (the
tcsh
profile script is left as an exercise for the sysadmin).
Download it (also attached below) to
/etc/profile.d/fts.sh
.
export GLITE_LOCATION=${GLITE_LOCATION:-/opt/glite}
if [ -z "$PATH" ]; then
export PATH=$GLITE_LOCATION/bin
else
export PATH=$PATH:$GLITE_LOCATION/bin
fi
if [ -z "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH=$GLITE_LOCATION/lib
else
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GLITE_LOCATION/lib
fi
Client testing
A basic test can be made for the client command lines.
From an unpriviliged account, obtain a standard grid proxy or a VOMS proxy. Ensure that this grid proxy has been entered in the manager mapfile of the FTS service you are testing against, or you will receive an authorisation error from the service.
grid-proxy-init
Then try a simple management command:
glite-transfer-channel-list -v
which should, after contacting the service, print the service, interface and schema version. If the service is new, it will return no channel names since none have yet been configured. Try next a job list:
glite-transfer-list -v Pending
which should print the same set of version numbers, and again, if the service is new, will return no Pending jobs, since none have yet been submitted.
If both of the tests work, then the client command line is correctly configured.
Problems you may see
If you see:
list: listChannels: SOAP fault: SOAP-ENV:Client - CGSI-gSOAP: Could not open connection ! (TCP connect failed in tcp_connect())
then either the service is down, or your
services.xml
file is pointing to the wrong endpoint. You can see what endpoint the client is attempting to connect to by using the verbose flag:
glite-transfer-channel-list -v
If you see:
list: Service discovery: No services of type org.glite.ChannelManagement were found
then either the
services.xml
file is missing or is not readable by the client.
If you see:
list: listChannels: SOAP fault: "http://xml.apache.org/axis/":Server.NoService - The AXIS engine could not find a target service to invoke! targetService is ChannelManagement
then either the endpoint specified in the
services.xml
file is incorrect, or the service is misconfigured.
To check whether the endpoint specified in the
services.xml
file is correct, connect to it directly with a web browser. e.g. connect to
https://yourhostname:8443/site-fts/glite-data-transfer-fts/services/FileTransfer
(you will need your grid certificate loaded in your browser). If the service is listening, you should see a web page with a message like:
Hi there, this is an AXIS service!
If you see:
list: listChannels: You are not authorised for channel management upon this service
then you are not a channel manager. Look in the FTS server logs (
org.glite.data
) to see how the authorisation decision was made. See the FtsServerAdmin14 guide for using the
glite-transfer-channel-addmanager
command.
Configuration
The
FTS Configuration document explains the configuration model used by FTS and provides a configuration variables reference.
Administration
See
FTS Administration.
Command Line Interface
Complete documentation for the
Command Line Interface
(man pages).
Notes
Links
Contacts
- fts-support
- configuration issues, software problems...
- ftscern.support
- issues related to CERN FTS services.
- fts-users
- open list. Announcements are also sent to this list.
Tests
See
tests for FTS version 2.2.
Last edit:
AkosFrohner on 2009-05-13 - 15:51
Number of topics: 1
Maintainer:
PaoloTedesco