wiki:manuals/dCache_clients/client_dcache_srm
Last modified 11 years ago Last modified on 09/24/09 15:26:18

Using the dCache SRM client

dCache provides a series of clients one of which is the srm client which supports a large number operations, but is just one Java application, the script name is sent to the Java applications command line to invoke each operation.

This page just shows the scripts command line and not the invocation of the Java application directly.

Getting the dCache Version

the srmping command will tell you the backend version of dCache but only when you are authorized not just when you are authenticated.

[omsynge@lucan ~]$ srmping -2 -l srm://swords.desy.de:8443/pnfs 
WARNING: SRM_PATH is defined, which might cause a wrong version of srm client to be executed
WARNING: SRM_PATH=/opt/d-cache/srm
VersionInfo : v2.2
backend_type:dCache
backend_version:production-1-9-1-11

Creating a new directory

Usage: srmmkdir [command line options] srmUrl

Example:

[user]$ srmmkdir srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/myDir

Removing files from dCache

Usage: srmrm [command line options] srmUrl [[srmUrl]...]

[user]$ srmrm srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/myDir/myFile

Removing empty directories from dCache

It is allowed to remove only empty directories as well as trees of empty directories.

Usage: srmrmdir [command line options] srmUrl

Examples:

[user]$ srmrmdir srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/myDir
[user]$ srmrmdir -recursive=true srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/myDir

srmcp for SRM v1

Usage: srmcp [command line options] source(s) destination

or : srmcp [command line options] -copyjobfile <file>

Copying files to dCache

[user]$ srmcp -webservice_protocol=http 
   file://///etc/group 
   srm://leoben.desy.de:8443/pnfs/desy.de/data/dteam/test_Srm.clinton.501.32050.20070907153055.0

Copying files from dCache

[user]$ srmcp -webservice_protocol=http 
   srm://leoben.desy.de:8443/pnfs/desy.de/data/dteam/test_Srm.clinton.501.32050.20070907153055.0 
   file://///tmp/testfile1 -streams_num=1

srmcp for SRM v2.2

Space Tokens

Space tokens are only supported in dCache 1.8.0 and above. Space token support must be set up and reserving space with the admin interface is also documented in this wiki.

Space Token Listing

Usage:get-space-tokens [command line options] srmUrl

Example surveying's the space tokens available in a directory.

[user]$ srm-get-space-tokens srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam -srm_protocol_version=2

A successful result:

return status code : SRM_SUCCESS
return status expl. : OK
Space Reservation Tokens:
148241
148311
148317
28839
148253
148227
148229
148289
148231
148352

Example of listing the space tokens for a SRM:

[omsynge@clinton ~]$ srm-get-space-tokens srm://srm-devel.desy.de:8443
Space Reservation Tokens:
145614
145615
144248
144249
25099
145585
145607
28839
145589

Space Token Reservation

Usage: srm-reserve-space [command line options] srmUrl

[user]$ srm-reserve-space  
-desired_size 2000 
-srm_protocol_version=2 
-retention_policy=REPLICA 
-access_latency=ONLINE 
-guaranteed_size 1024 
-lifetime 36000 
srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam

A successful result:

Space token =144573

A typical failure

SRMClientV2 : srmStatusOfReserveSpaceRequest , contacting service httpg://steyr.desy.de:8443/srm/managerv2
status: code=SRM_NO_FREE_SPACE explanantion= at Thu Nov 08 15:29:44 CET 2007 state Failed :  no space available
lifetime = null
access latency = ONLINE
retention policy = REPLICA
guaranteed size = null
total size = 34

Also you can get info for this space token (144573):

[user]$ srm-get-space-metadata srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam -space_tokens=144573

Possible result:

Space Reservation with token=120047
                   owner:VoGroup=/dteam VoRole=NULL
               totalSize:1024
          guaranteedSize:1024
              unusedSize:1024
        lifetimeAssigned:36000
            lifetimeLeft:25071
           accessLatency:ONLINE
         retentionPolicy:REPLICA

Writing to a Space Token

Usage: srmcp [command line options] source(s) destination

Examples:

[user]$ srmcp -protocols=gsiftp -space_token=144573 
file://///home/user/path/to/myFile 
srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/myFile 
[user]$ srmcp -protocols=gsiftp -space_token=144573 
file://///home/user/path/to/myFile1 
file://///home/user/path/to/myFile2 
srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam 

Space Metadata

Allows users to establish the metadata available for the space. Please note that space attributes are bounded by the setup of the server.

[omsynge@clinton ~]$srm-get-space-metadata srm://swords.desy.de:8443/pnfs/desy.de/data/dteam -space_tokens=120049
WARNING: SRM_PATH is defined, which might cause a wrong version of srm client to be executed
WARNING: SRM_PATH=/opt/d-cache/srm
Space Reservation with token=120049
                   owner:VoGroup=/dteam VoRole=NULL
               totalSize:1024
          guaranteedSize:1024
              unusedSize:1024
        lifetimeAssigned:36000
            lifetimeLeft:30204
           accessLatency:ONLINE
         retentionPolicy:REPLICA

Space Token Release

Removes a space token from the SRM.

[omsynge@clinton ~]$ srm-release-space srm://steyr.desy.de:8443 -space_token=15

Listing a file in SRM

SRM 2.2 has a much richer set well defined set of file listing commands.

Usage: srmls [command line options] srmUrl [[srmUrl]...]

Example of using srmls:

[omsynge@clinton ~]$ srmls srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/testdir  -2 
  0 /pnfs/desy.de/data/dteam/testdir/
      31 /pnfs/desy.de/data/dteam/testdir/testFile1
      31 /pnfs/desy.de/data/dteam/testdir/testFile2
      31 /pnfs/desy.de/data/dteam/testdir/testFile3
      31 /pnfs/desy.de/data/dteam/testdir/testFile4
      31 /pnfs/desy.de/data/dteam/testdir/testFile5

Example of using srmls -l :
(Note: changes srm ls to long format mode may result in dramatic increase in execution time.)

[omsynge@clinton ~]$ srmls -l srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/testdir  -2
  0 /pnfs/desy.de/data/dteam/testdir/
  storage type:PERMANENT
  retention policy:CUSTODIAL
  access latency:NEARLINE
  locality:NEARLINE
 locality: null
   UserPermission: uid=18118 PermissionsRWX
   GroupPermission: gid=2688 PermissionsRWX
  WorldPermission: RX
 created at:2007/10/31 16:16:32
 modified at:2007/11/08 18:03:39
   - Assigned lifetime (in seconds):  -1
  - Lifetime left (in seconds):  -1
  - Original SURL:  /pnfs/desy.de/data/dteam/testdir
 - Status:  null
 - Type:  DIRECTORY
      31 /pnfs/desy.de/data/dteam/testdir/testFile1
      storage type:PERMANENT
      retention policy:CUSTODIAL
      access latency:NEARLINE
      locality:NEARLINE
      - Checksum value:  84d007af
      - Checksum type:  adler32
       UserPermission: uid=18118 PermissionsRW
       GroupPermission: gid=2688 PermissionsR
      WorldPermission: R
     created at:2007/11/08 15:47:13
     modified at:2007/11/08 15:47:13
       - Assigned lifetime (in seconds):  -1
      - Lifetime left (in seconds):  -1
      - Original SURL:  /pnfs/desy.de/data/dteam/testdir/testFile1
 - Status:  null
 - Type:  FILE

Remark: The maximum number of elements listed with srmls is set to 1000.
If you have more than 1000 entries in your directory, please use the following parameters:
-count=<integer> number of entries to report
-offset=<integer> offset to start number of entries to report. The default value is 0.
For example, if you list a directory (containing more than 1000 entries) without parameters above, you get the first 999 entries listed.

Example:

[user]$ srmls -count=3 srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/testdir  -srm_protocol_version=2 
0 /pnfs/desy.de/data/dteam/testdir/
      31 /pnfs/desy.de/data/dteam/testdir/testFile1
      31 /pnfs/desy.de/data/dteam/testdir/testFile2
      31 /pnfs/desy.de/data/dteam/testdir/testFile3

Example:

[user]$ srmls -count=3 -offset=1 srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/testdir  -srm_protocol_version=2 
0 /pnfs/desy.de/data/dteam/testdir/
      31 /pnfs/desy.de/data/dteam/testdir/testFile2
      31 /pnfs/desy.de/data/dteam/testdir/testFile3
      31 /pnfs/desy.de/data/dteam/testdir/testFile4

Example:

[user]$ srmls srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/dir1 
srm://srm-devel.desy.de:8443/pnfs/desy.de/data/dteam/dir2
  0 /pnfs/desy.de/data/dteam/dir1/
      31 /pnfs/desy.de/data/dteam/dir1/myFile1
      28 /pnfs/desy.de/data/dteam/dir1/myFile2
      47 /pnfs/desy.de/data/dteam/dir1/myFile3
  0 /pnfs/desy.de/data/dteam/dir2/
      25 /pnfs/desy.de/data/dteam/dir2/fileA
      59 /pnfs/desy.de/data/dteam/dir2/fileB

Last Modified by Owen @ 2008/10/13 Last Modified by Irina @ 2008/12/01 Last Modified by Owen @ 2009/02/13