Search
uscms.org  uscms.fnal.gov  www 

Data and Computing Facility Operations

How to use SRM on the UAF

Introduction
Prerequisites
Prepare your UAF account to use srmcp
Transfering a file
Monitoring SRM
Gettin Help

Introduction
SRM (Storage Resource Management)  is a grid-service available on the UAF. The srmcp command  allows for file transfers between sites and mass storage systems. Here we will show examples to transfer files from CASTOR at CERN to Fermilab.  Since it is a grid service there are two prerequisites:

Prerequisites
The whole procedure will probaly take a few days but you might want to start using other CMS grid services like CRAB  to do analysis on the grid and to access available data sets e.g. from the Computing, Software and Analysis challenge: CSA06. So let's get on the GRID.

First you need to get a valid grid credential (a.k.a certificate). This can be obtained from the following site: http://www.doegrids.org/

Once you have your certificate and imported it into your browser you can  register to the VO (Virtual Organization): https://lcg-voms.cern.ch:8443/vo/cms/vomrs

Prepare your UAF account to use srmcp
First  export the certificate from the exact browser you used when applying for the certificate. E.g. in Firefox the sequence is:

edit-> preferences -> advanced ->certificates -> manage certificates -> select the DOE certificate -> backup

select a name .e.g YourCert.p12
select a passphrase

You  should now have the file YourCert.p12 that you can copy to the UAF.

Now log into the UAF and setup the globus user environment:
source /opt/globus/etc/globus-user-env.csh
Besides setting all the environmental variables this should also create the $HOME/.globus directory. Copy your YourCert.p12 into this directory.

This now has to be converted  into PEM format.
openssl pkcs12 -in YourCert.p12 -clcerts -nokeys -out $HOME/.globus/usercert.pem
To get the encrypted private key:
openssl pkcs12 -in YourCert.p12 -nocerts -out $HOME/.globus/userkey.pem
For more details have a look at the following web site:
http://www.grid-support.ac.uk/content/view/63/55/

Now we are ready try the certification proxy initialization using the grid-poxy-init  command. If everything is ok and you enter the correct passphrase:

/opt/globus/bin/grid-proxy-init -valid 30:00

Your identity: /DC=org/DC=doegrids/OU=People/CN=Hans Wenzel 869603
Enter GRID pass phrase for this identity:
Creating proxy .............................. Done
Your proxy is valid until: Tue Oct 31 17:32:46 2006

Certification proxy initialization may fail for several reasons. When you copy
your .pem files into  ~/.globus/ verify file protections that must be as follows:

ls -l .globus
-rw-r--r--    1 wenzel   us_cms       1711 Oct 26 10:37 usercert.pem
-r--------    1  wenzel   us_cms       1910 Oct 26 10:39 userkey.pem

Note that userkey.pem must be readable only by the user that owns the file.
If either userkey.pem permissions are bad or your passphrase is wrong, you will get the following error message:

/opt/globus/bin/grid-proxy-init -valid 30:00

Your identity: /C=IT/O=ANY/OU=Personal Certificate/L=BBB/CN=Mm Lz/Email=M.@site
Enter GRID pass phrase for this identity:
ERROR: Couldn't read user key. This is likely caused by
either giving the wrong passphrase or bad file permissions
key file location: /home/lz/.globus/userkey.pem
Use -debug for further information.

More detailed information is given by the -debug option. You may use the debug option as default with the proxy commands. The printed information is brief and it is more or less meaningful depending on the failure reason. One situation in which the -debug option is very useful is when your proxy is missing or expired as shown below:

/opt/globus/bin/grid-proxy-info -debug

ERROR: Couldn't find a valid proxy.
grid_proxy_info.c:334:
globus_gsi_system_config.c:4538: globus_gsi_sysconfig_get_proxy_filename_unix:
Could not find a valid proxy certificate file location:
A file location for the proxy cert could not be found in:
1) env. var. X509_USER_PROXY=NULL
2) /tmp/x509up_u10009

Transfering a file
At this point we should be ready to try to transfer a file. In the example below I am copying a file from my area in CASTOR at CERN to a local disk area on the UAF. Using the  -debug option you will receive very detailed information what's happening and in case things are failing it should explain why.  The printed information is more or less meaningful depending on the failure reason.

export PATH=/usr/java/jdk1.5.0_10/bin/:$PATH
srmcp -debug=true -2 "srm://cms-srm.cern.ch:8443/srm/managerv2?
SFN=/castor/cern.ch/user/w/wenzel/hsimple.root"
file:////uscmst1b_scratch/lpc1/wenzel/hsimple.root

srmcp -debug=true "srm://cmssrm.fnal.gov:8443/srm/managerv2?SFN=/4/test/TESTFILE"
file:////uscmst1b_scratch/lpc1/3DayLifetime/yujun/TESTFILE

One can also copy directly from CASTOR SRM (and other SRM servers) from/to FNAL dCache. E.g. To copy to your local area in dCache which is mounted as /pnfs/cms/WAX/2/wenzel on the UAF issue the following command:

srmcp -debug=true -2 "srm://cms-srm.cern.ch:8443/srm/managerv2?SFN=/castor/cern.ch/user/w/wenzel/hsimple.root" "srm://cmssrm.fnal.gov:8443/srm/managerv2?SFN=/2/wenzel/hsimple.root"

Some users may have some confusion with how many "slashes(/)" to put for the SURL. One easiest way, as suggested by Jon, to think about this is: "a / is a separator and part of the file path, and if in doubt add a / because the dcache will gladly ignore multiple slashes (like unix), but it will never add one for you. For example file:////dev/null looks ridiculous, but if you divide it up:

     file:// <implied localhost.localdomain>/ /dev/null

and if you don't add the localhost, you get 4 slashes in a row.

If the pnfs path of the your resilient file is, for example:
/pnfs/cms/WAX/resilient/gerbaudo/mc-hcal-120_Ieta1-29_Iphi1-2_E005.root
you srmcp that as
"srmcp srm://cmssrm.fnal.gov:8443/resilient/gerbaudo/mc-hcal-120_Ieta1-29_Iphi1-2_E005.root file:///test.root"

Monitoring SRM

http://cmssrv33.fnal.gov:8080/srmwatch/

Getting Help

SRM client package provider is - at the moment this is osg-int@opensciencegrid.or

or if you think the problem is on the fermilab side contact the helpdesk (helpdesk@fnal.gov) or the t1 team (cms-t1@fnal.gov).

Last modified: October 30, 2006 by Hans Wenzel

Webmaster | Last modified: Thursday, 17-Jul-2008 13:35:42 CDT