srmcp T3
A wrapper for srmcp/ftscp which recursively creates destination directories (and sets up the appropriate permissions), necessary for T3s running PhEDEx
The srmcp_wrapper script is a script which wraps around srmcp/ftscp and performs some necessary actions for a T3 site which PhEDEx 3.0 does not currently do.
Installation
To install srmcpT3, start off by installing the Nebraska yum repository; this process is documented here. Once this is done, simply install the appropriate RPM:
yum install srmcpT3
You should now have the srmcp_wrapper executable in the system path. Note that this brings in the dcache-srmclient package as a dependency (and if it doesn't, let Brian know...).
Usage
The srmcpT3 takes all the arguments it gets from the command line and passes it straight to the underlying client. There are a few exceptions which cause it to trigger other actions:
- -copyjobfile=<filename> option: For each destination path in the copyjobfile which is prefixed with file:/, make sure that the underlying directory exists.
- If the file $HOME/sleep exists, the client sleeps until this is removed. This is handy for temporarily blocking new transfers without restarting PhEDEx.
- -user=<username>: Any created or existing directory is altered using sudo so the user can write into it. This isn't that necessary for T3s, but was very handy at T2s to ensure dCache had the correct permissions set.
- -cmd=<command name>: Instead of srmcp, <command name> is launched after the wrapper has finished. This allows another command (such as ftscp) to do the actual file transfer.
- srmcp_wrapper currently does some crazy stuff for SRM v1 (it utilizes a custom SRM client instead of srmcp); let me recommend using SRM v2.2.
PhEDEx configuration
Here is the PhEDEx configuration we used at the T2 site for FNAL->Nebraska transfers with this wrapper script. Note that the number of jobs is probably too large for a T3 site.### AGENT LABEL=download-srm PROGRAM=Toolkit/Transfer/FileDownload ENVIRON=common
-db ${PHEDEX_DBPARAM}
-nodes ${PHEDEX_NODE}
-delete ${PHEDEX_CONFIG}/FileDownloadDelete
-validate ${PHEDEX_CONFIG}/FileDownloadVerify
-accept '%FNAL%'
-verbose
-backend SRM
-protocols srmv2,srm
-command srmcp_wrapper,-user=uscms01,-srm_protocol_version=2,-x509_user_proxy=${X509_USER_PROXY},-debug=true,-retry_num=2
-jobs 42
-batch-files 2
-timeout 9600