EGEE Home | JRA1 Home | JRA1 DM Home | EDMS Documents | People | Calendar | Agenda maker | Glossary

The gLite File Transfer Service

euroflag.gif (3058 octets)

FTS Home
Documents
Wiki

Download

CVS Source
Bug Tracking
For Developers
Links

 
The File Transfer Service (FTS) is the lowest-level data movement service defined in the gLite architecture. It is responsible for moving sets of files from one site to another, allowing participating sites to control the network resource usage. It is designed for point to point movement of physical files. The FTS has dedicated interfaces for managing the network resource and to display statistics of ongoing transfers. Optionally, the FTS supports Logical File Names (LFNs), i.e. is able to provide catalog lookup and registration.
 

Current Usage on SC3 on GridView

News:

  • FTS Website is in place (Dec. 8)

Concepts Usage Installation Troubleshooting

Concepts

 Channels

The FTS performs file transfers on channels. An FTS instance serves a configurable set of channels. Every channel is unidirectional, i.e. it is intentional that different FTS instances may serve the two directions of a network link between two sites. Usually the receiving site configures the corresponding channel, as it is shown on the image to the right. We define channel as follows:

Channel: A channel is a specific (perhaps dedicated) network pipe for transferring
files between two sites. We distinguish between

  • Production Channels. These are typically dedicated Tier0-Tier1, Tier1-Tier1 or Tier1-Tier2 network pipes. Production transfer jobs run on these channels to ensure efficient bulk distribution. All files in a job must be assignable to the same channel, otherwise the job will not be assigned to a production channel.
  • Non-production Channels. Typically open networks shared with other applications. Jobs otherwise not assignable to a production channel may be serviced on the open network. Such channels are usually denoted by a 'Star'.

FTS Deployment Example: for transferring file between two sites two
FTS instances manage the same physical network link in either direction



Transfer Jobs and Placement Jobs

The difference between Transfer and Placement jobs is the interaction with the File and Replica catalogs. For Transfer Jobs the client has to specify the SURLs involved in the transfer, for Placement Jobs, the FTS will resolve the logical file names to SURLs by itself.

Transfer Jobs are composed of:

  • A list of files (source - destination pairs) to transfer. For production channels, each pair has to be coming from the same source and be transferred to the same desitnation. On non-production channels, this restriction is not there.
  • A set of optional parameters (key/value pairs), for passing options to the underlying transport layer. Currently the only supported options are the gridFTP parameters for TCP buffer size and number of streams. If present, the key must be 'gridFTP' with the values specified as '-tcp-bs 1000 -p 20' in the format used by the globus-url-copy commandline tool. The options are advisory to the service. If not specified, the service defaults are used. It is recommended to use the service defaults, i.e. to ignore this option.
  • A security token. Depending of the mode of operation this is either a MyProxy password or a delegation ID.

Alternatively, you can also submit what we call Placement Jobs. Placement Jobs are composed of:

  • A list of Logical File Names (string array) to involve in the transfer.
  • The destination Storage Element This is the name of the destination SE as published in the information system and retrievable through Service Discovery.
  • The source Storage Element This is the name of the source SE to use.
  • A set of optional parameters - same as for Transfer Jobs
  • A security token. - same as for Transfer Jobs

 


 

Job States

Final States for Transfer Jobs

Transfer jobs will go through a set of states while the FTS is working on them.
The final states for the FTS Transfer Jobs are:

 
DONE
 
CANCELED
 
FAILED

Normal Job Path: Transfer Jobs

The normal route for a Transfer Job through the FTS is as follows:

  • Upon submission to the FTS, the job will be in Submitted state.
  • If the VO to which the user belongs authorizes the transfer, the transfer will move into Pending state.
  • Once the files in the given job start to be transferred, the job becomes Active.
  • If all files have successfully transferred, the final state will be Done.
 
SUBMITTED
PENDING
ACTIVE
DONE

The Transfer Job states.

Final States for Placement Jobs

The difference between transfer jobs and placement jobs is that there is also a lookup and a registration step involved, which means that the state machine is slightly different.
The final states for the FTS Placement Jobs are:

 
FINISHED
 
CANCELED
 
FINISHEDDIRTY

Normal Job Path: Placement Jobs

The normal route for a Placement Job through the FTS is as follows:

  • Upon submission to the FTS, the job will be in Submitted state.
  • If the VO to which the user belongs authorizes the transfer, the transfer will move into Pending state.
  • Once the files in the given job start to be transferred, the job becomes Active.
  • If all files have successfully transferred, the state will be Done.
  • Finally, if the copies have been successfully registered in the replica catalog, the final state will be Finished.
 
SUBMITTED
PENDING
ACTIVE
DONE
FINISHED

The Placement Job States.


Cancel a Job

Should the user decide to cancel the job, the following possibilities may occur:

  • If the user cancels while the job is still in Submitted state, the job will go to the final Canceled state immediately.
  • If the user cancels while the job is Pending or Active, the job will go into the Canceling state.
  • Jobs in the Canceling state will not start to execute new file transfers in the list of files the job has anymore. Current active transfers will be canceled. Once all active transfers have either transferred successfully or have been cancelled, the job state will move to the final Canceled state. On the rare occasion where the user is cancelling just before the last file that is being transferred is just finishing, the final state may move to Done (for Transfer, and eventually Finished for Placement jobs).
 
SUBMITTED
 
CANCELED
 
PENDING
CANCELING
 
ACTIVE
DONE

Failures

Transfer Jobs: If there was an error that the FTS cold not resolve, the transfer is moved to the Failed or Hold state from Active. From the Hold state the user has to resurrect the job by either moving it to the Pending or Failed states explicitly.

Placement Jobs: The same as for Transfer Jobs, except that Failed is not a final state and there is an additional failure that can happen after the Done state (failure to register the file in the catalog). The final state will be FinishedDirty instead.


Individual File States

Final States

The individual states of a single file inside a Transfer Job will also go through a set of states while the FTS is queuing it for transfer.
The final states for the files are:

FTS
DONE
FPS
FINISHED
 
CANCELED
 
FAILED
FPS
FAILEDCATALOG

Normal File Path: Transfer Jobs

The normal route for a file through the FTS is as follows:

  • Upon submission to the FTS, all files in a job will be in Submitted state.
  • If the VO to which the user belongs authorizes the transfer, the transfer will move into Pending state and all files will do so as well.
  • Once the file is scheduled for transfer and the transfer is being executed, the file state is set to Active.
  • If the file has successfully transferred, its final state will be Done.
 
SUBMITTED
PENDING
ACTIVE
DONE

File Transfer States

 

Normal File Path: Placement Jobs

The normal route for a file through the FTS for Placement Jobsis as follows:

  • Upon submission to the FTS, all files in a job will be in Submitted state.
  • If the VO to which the user belongs authorizes the transfer, the transfer will move into Pending state and all files will do so as well.
  • Once the file is scheduled for transfer and the transfer is being executed, the file state is set to Active.
  • If the file has successfully transferred, its state will be Done.
  • Finally, if it has been registered successfully in the catalog, its final state will be Finished.
 
SUBMITTED
PENDING
ACTIVE
DONE
FINISHED

 

Cancel a File

Should the user decide to cancel a file transfer, the following possibilities may occur:

  • If the user cancels while the file is still in Submitted state, the file will go to the final Canceled state immediately.
  • If the user cancels while the file transfer is Active, the FTS will try to cancel the ongoing transfer and the file state will be set to the Canceling state.
  • Files in the Canceling state will either be canceled and cleaned up or they will successfully transferred to the end. Files that have been cancelled will move to the final Canceled state. Files that have been transferred correctly will move to Done. In some cases the file transfer may also fail for reasons unrelated to the cancel request, in which case the final state will be set to Failed.
 
SUBMITTED
 
CANCELED
 
PENDING
CANCELING
DONE
 
ACTIVE
FAILED

Failures and the Waiting State

If there was an error, the transfer is moved to the Waiting state. Depending on the VO policy on what to do with files in this state, the file may move automatically to the Hold, Pending or Failed states. From the Hold state, the file has to be set to Pending or Failed explicitly through the FTS interface. This is the place where the VO may implements its own retry policies.

 
WAITING
PENDING
ACTIVE...
 
HOLD
PENDING...
FAILED
 
FAILED

In addition, for Placement Jobs, there may be the failure to register the file in the catalog, which may move a file from the Done state to FailedCatalog instead of Finished.


Authorization

There are in total 6 different roles that a user can have and acumulate on the service:

  • Admin: Administrator of the service. Can perform any operation,
    including submitting jobs.
  • Channel Manager: Manages a single channel. Can perform any
    operation involving the same channel information (query and update)
    and requests linked to the same channel (query and update/cancel).
  • VO Manager: Manages a single VO. Can perform any operation
    involving requests linked to the same VO (query and update/cancel).
    Can also query information about channels.
  • Submitter User: Regular user with additional capability to submit jobs.
  • Regular User: Managers its own job, including querying and canceling it.
  • Vetoed User: has been vetoed in the service. Cannot perform any operation.

These five roles have the following abilities to operate on the FTS in detail:

Operation
Admin
Channel Manager
VO Manager
Submitter
Regular
Add a channel
X
Remove a channel
X
Set VO share on the channel
X
X
Add a manager to the channel
X
X
Remove a manager from the channel
X
X
Change state for held jobs on the channel
X
X
Set number of streams on the channel
X
X
Set number of files on the channel
X
X
Set state of the channel
X
X
Set bandwith of the channel
X
X
Set contact of the channel
X
X
Set nominal throughput of the channel
X
X
Add a manager to the VO X   X    
Remove a manager from the VO X   X    
Get information of the channel X X X    
Cancel the job X C V U U
Get the status of file transfers in the job X C V U U
Get the status of the job X C V U U
Get the summary of the job X C V U U
Submit a new job X     X  
List the channels X X X X X
List requests. X C V U U
  • X The operation marked with an X is fully authorized for the given role.
  • C The Channel Manager is authorized to perform the operations on the jobs of the channels that it is actually managing. Listing will retrieve only the requests of the channes that it actually manages.
  • V The VO Manager is authorized to perform the operations for the jobs of the VOs that it manages. Listing will retrieve all jobs for the given VOs.
  • U The user is authorized to perform the operation only for its own jobs. Listing will list all its jobs.
  • The vetoed user may be successful in performing a List request, but the returned list will always be empty.

Architecture

The gLite File Transfer Service has been designed in a modular and extensible way to allow good scalability. The components of the FTS are:

  • The clients. The FTS client libraries or command line tools are used by the applications to communicate with the FTS. Of course there may be many clients connected to the FTS web service, the communication is over a secure connection using the SOAP protocol.
     
  • The FTS Web Service. The web service component is implemented as a Tomcat web application. This is a proper web service that implements the WSDL as defined by the FTS interface. Based on the Web Service Description Language document, anyone can build their own clients in their own preferred language. There can be many Tomcat containers deployed that access the same underlying database, which is one of the possibilities to scale the system. The web service connects to the database through JDBC using a Tomcat database connection pool.
     
  • The FTS Database. There is a MySQL and an Oracle implementation of the FTS schema. This is the only persistency point in the system and it scales only as well as the corresponding backend allows (Oracle scales better than MySQL, obviously). There can be only a single instance of this database for a given FTS instance.
     
  • The File Transfer Agents. The agents will act based on certain conditions in the database. They make sure that the finite state machine of the FTS is adhered to and perform all state transitions for the transfer jobs and the files being transferred. It is an agent that actually performs the file transfers on the channels that the FTS manages. The architecture of the agents is explained in more detail below.

The File Transfer Agents

The Agent component also has a modular design in itself. There are two basic agent types for the different responsabilities and tasks that the FTS has to perform. We distinguish between VO Agents and Channel Agents.

 

VO Agent

 

Channel Agent

Responsibilities
Calling on
 
Responsibilities
Calling on
  • Channel Allocation
  • Retry failed transfers
  • Cancel pending transfers
  • Intra-VO scheduling
  • Resolve LFNs into SURLs
  • Register new replicas
  • Pre-staging
  • Dynamic prioiritization
  • Service Discovery (InfoSys)
  • MyProxy
  • Catalogs
  • SRM (for prestaging)
 
  • Start and monitor transfers
  • Cancel active transfers
  • Inter-VO scheduling (VO sharing)
  • Channel monitoring
  • Service Discovery (InfoSys)
  • MyProxy
  • Transfer Service (glite-url-copy, srmcp,stork,..)

The table above gives a description of the responsiblities and dependencies for VO and Channel Agents. For Placement Jobs,
also the items printed in blue are relevant. The items in red are in planning and not part of the FTS yet (Nov.2005).

 


There is a dedicated VO agent for each VO that a given channel serves and there is a dedicated channel agent per channel. So if an FTS serves 5 channels for 4 VOs each, there will be 20 Agents running. These agents may be running all on different physical machines, which also allows for additional scalability of the service.

 


Components involved in the File Transfe Agent (FTA) architecture. The yellow box contents belong to the FTA, the other
componets are external to the FTA and are shown to emphasize the modular aspect of this particular component of Grid middleware.

The FTA implements a set of connectors which may be extended to support more external components. For example, now Oracle and MySQL connectors are supported as of version 1.3. It is straightforward to implement connectors for other database backends. The same modular model is used for the catalogs and the transfer service connectors. The FTA makes use of the gLite service discovery API which itself is also modular and can switch between information system implementations based on configuration.

 

 

 


      Disclaimer Mail to FTS Support Last Modified: 08/12/2005December 8, 2005