Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "HOWTO12 Globus Online cookbook for EGI VOs"

From EGIWiki
Jump to navigation Jump to search
Line 234: Line 234:


* GridFTP compatible versions with GlobusOnline access methods
* GridFTP compatible versions with GlobusOnline access methods


Configuration requirements (These may be different, depending on how EGI decides to configure SRM/GridFTP in general and how GlobusOnline finds important information within EGI):
Configuration requirements (These may be different, depending on how EGI decides to configure SRM/GridFTP in general and how GlobusOnline finds important information within EGI):

Revision as of 11:44, 2 November 2012


This page contains the steps how to use GlobusOnline.eu and enable it on existing storage elements in EGI.

VO Managers

All commands are performed using gLite UI. EGI VO "lsgrid" is used for examples.

1. Find storage elements available for your VO.

-bash-3.2$ lcg-infosites --is bdii.grid.sara.nl --vo lsgrid se 
 Avail Space(kB)  Used Space(kB)  Type 	SE
------------------------------------------
< output truncated >
       717032688       382478939  SRM  	se.grid.rug.nl
     17542103037       460842863  SRM  	se.lsg.hubrecht.eu
     16560797796      1442148104  SRM  	se.lsg.psy.vu.nl
     58680692895             n.a  SRM  	srm.grid.sara.nl
     14994733204         5266796  SRM  	srm.grid.sara.nl
             n.a             n.a  SRM  	srm.grid.sara.nl

2. Find the SRM endpoint for chosen storage element.

-bash-3.2$ lcg-info --list-service --bdii ldap://bdii.grid.sara.nl:2170 --vo lsgrid --query 'ServiceType=SRM' --attrs 'ServiceEndpoint'| grep srm.grid.sara.nl
- Service: httpg://srm.grid.sara.nl:8443/srm/managerv2
  - ServiceEndpoint     httpg://srm.grid.sara.nl:8443/srm/managerv2

3. Find your VO home directory path for the SRM endpoint.

lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo lsgrid --query 'SE=srm.grid.sara.nl' --attrs 'VOInfoPath'
- SE: srm.grid.sara.nl
  - VOInfoPath          /pnfs/grid.sara.nl/data/lsgrid

4. Find if SRM endpoint is the real storage endpoint by attempting file copy.

-bash-3.2$ touch test
-bash-3.2$ srmcp -2 file:///test srm://srm.grid.sara.nl:8443/pnfs/grid.sara.nl/data/lsgrid/test -debug
Storage Resource Manager (SRM) Client version 2.1.5-16
< output truncated >
copying CopyJob, source = file:///test destination = gsiftp://bee51.grid.sara.nl:2811/pnfs/grid.sara.nl/data/lsgrid/test
execution of CopyJob, source = file:///test destination = gsiftp://bee51.grid.sara.nl:2811/pnfs/grid.sara.nl/data/lsgrid/test completed
< output truncated >

From this line "copying CopyJob, source = file:///test destination = gsiftp://bee51.grid.sara.nl:2811/pnfs/grid.sara.nl/data/lsgrid/test" in the log we see that there is another host (bee51.grid.sara.nl) used by SRM to transfer files via GridFTP. This host (bee51.grid.sara.nl) and must be used at GlobusOnline.eu.

5. Go to GlobusOnline.eu.

a) Create account with your VO name e.g. lsgrid.
b) Go to "Manage Endpoints" and click "Add Endpoint".
c) Filling the endpoint details:

Name lsgrid# < enter name of the Storage >  (e.g. SARA)
Short Description: < enter description > (e.g. VO default path for this storage - /pnfs/grid.sara.nl/data/lsgrid/)
Server Address gsiftp:// < storage hostname with GridFTP access > (e.g. bee51.grid.sara.nl)
Visible To: Anyone (public)
       
Set the Identity Provider to be used with this endpoint. 
Type: MyProxy
MyProxy Hostname: < myproxy server for your VO > (e.g. px.grid.sara.nl)

VO Members

All commands are performed using gLite UI. EGI VO "lsgrid" is used for examples.

1. Generating credentials.

Generate VOMS proxy.mediawiki right TOC

-bash-3.2$ voms-proxy-init --voms lsgrid
Enter GRID pass phrase:
Your identity: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
Creating temporary proxy .............................................................................................................. Done
Contacting  voms.hellasgrid.gr:15004 [/C=GR/O=HellasGrid/OU=hellasgrid.gr/CN=voms.hellasgrid.gr] "lsgrid" Done
Creating proxy ............................................................ Done
Your proxy is valid until Fri Nov  2 02:16:10 2012

Upload VOMS proxy to MyProxy.

-bash-3.2$ myproxy-init --voms lsgrid
Enter GRID pass phrase:
Your identity: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
Creating temporary proxy ............................. Done
Contacting  voms.hellasgrid.gr:15004 [/C=GR/O=HellasGrid/OU=hellasgrid.gr/CN=voms.hellasgrid.gr] "lsgrid" Done
Creating proxy ........................................... Done
Your proxy is valid until Thu Nov  8 14:17:47 2012
verify OK
Enter MyProxy pass phrase:
Verifying - Enter MyProxy pass phrase:
A proxy valid for 168 hours (7.0 days) for user karolise now exists on px.grid.sara.nl.

2. Go to GlobusOnline.eu.

a) Create account for yourself
b) Go to "Manage Endpoints" and click "View All".
c) Search for your VO name e.g. lsgrid

You could see something like:

lsgrid#SARA     activate


d) Click on "activate"

Fill in the details for your credentials to retrieve.

MyProxy Server: < myproxy server you have credentials at > (e.g. px.grid.sara.nl)
Username: < your user on a myproxy machine > (e.g. karolise) 
Passphrase: < you chosen password > (e.g. You used to Enter MyProxy pass phrase in step 1.)

e) Click "Authenticate"

f) Go to "Start Transfer"

Choose your endpoint which is: lsgrid#SARA
Look for your VO path directory in the endpoint description: /pnfs/grid.sara.nl/data/lsgrid/

That is it. Now using Globus Online you can access Storage Element in EGI which is used also by SRM and FTS.

What you can do ?

  • Transfer files from your laptop using GlobusConnect client to SRM storage endpoint in EGI using GO.
  • Transfer files from SRM endpoint in EGI using GO to your laptop using GlobusConnect client.
  • Transfer files from one SRM endpoint in EGI to another SRM endpoint in EGI or to any other Infrastructure using GO and receive nice notifications by email

Testing

Clearly at the moment we see that some issues are because of configurations:

  • restrictive permissions on local storage elements for the main SRM directory.
  • VOInfoPath in BDII may be the path only for SRM interface, but accessing via GridFTP it is different.
  • the SRM hostname advertised in BDII may not be the real one used to store files. (GO endpoint is the one which provides GirdFTP)
-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SE=bostorm.bo.infn.it' --attrs 'VOInfoPath'
- SE: bostorm.bo.infn.it
  - VOInfoPath          /dteam

VOInfoPath is /dteam for SRM interface:

-bash-3.2$ srmls -2 srm://bostorm.bo.infn.it:8444/dteam
Picked up _JAVA_OPTIONS: -Xmx512M
  0 /dteam/
      599 /dteam/20080528-143657-3356-0.txt
      755 /dteam/20081117-145803-15525-0.txt
      599 /dteam/20080528-143353-2676-0.txt
      0 /dteam/misurelli
      0 /dteam/testas
      0 /dteam/-acls
      599 /dteam/20080528-145209-4387-0.txt
      755 /dteam/20081117-145800-15187-0.txt
      0 /dteam/karolis
      599 /dteam/20080528-144905-4048-0.txt
      755 /dteam/20081117-150109-16203-0.txt
      0 /dteam/generated
      0 /dteam/dbauer

but if we connnect using GridFTP, /dteam directory even does not exist:

-bash-3.2$ uberftp bostorm.bo.infn.it "ls /dteam"
220 bostorm.bo.infn.it GridFTP Server 6.10 (gcc64, 1334324800-83) [Globus Toolkit 5.2.0] ready.
230 User dteam028 logged in.
Could not list /dteam: 500-Command failed. : System error in stat: No such file or directory
500-A system call failed: No such file or directory
500 End.

because , it is a "symlink" in SRM WS to real directory which is /storage/dteam, but only SRM interface may access it:

-bash-3.2$ uberftp bostorm.bo.infn.it "ls /storage"
220 bostorm.bo.infn.it GridFTP Server 6.10 (gcc64, 1334324800-83) [Globus Toolkit 5.2.0] ready.
230 User dteam028 logged in.
drwxrwxr-x  21  storm  storm   4096 Sep 26 12:45  alice
drwxrwxr-x   4  storm  storm   4096 Sep 26 12:45  atlas
drwxrwxr-x   3  storm  storm   4096 Sep 26 12:45  cms
drwxr-x---   2  storm  storm   4096 Sep 26 12:45  comput-er.it
drwxrwxr-x   2  storm  storm   4096 Jun 29 09:34  computer
drwxrwxr-x   6  storm  storm   4096 Oct 29 15:01  dteam
drwxr-x---   2  storm  storm   4096 Sep 26 12:45  infngrid
drwx------   2   root   root  16384 Jun  7 18:43  lost+found
drwxrwxr-x   4  storm  storm  69632 Nov  2 09:58  ops
-bash-3.2$ uberftp bostorm.bo.infn.it "ls /storage/dteam"
220 bostorm.bo.infn.it GridFTP Server 6.10 (gcc64, 1334324800-83) [Globus Toolkit 5.2.0] ready.
230 User dteam028 logged in.
Could not list /storage/dteam: 500-Command failed. : System error in scandir: Permission denied
500-A system call failed: Permission denied
500 End.


Directory listing on GlobusOnline

On GO Web, if directory is empty, GO Web fails with error listing that directory, if at least on file exists it works fine.

e.g. if i try to enter the directory which is empty i get:

"Could not access /dpm/nikhef.nl/home/dteam/karolis.
Please check the path and try again.
Error listing directory '/dpm/nikhef.nl/home/dteam/karolis/' on endpoint 'ekarolis#nikhef_DPM':
Error: Embedded '/' in '/dpm/nikhef.nl/home/dteam/karolis' dirlist: dirlist/recurse.cpp:206: 
void _process_direntry(MLSDEntry*, OpDirlist*): Assertion `0' failed. hide details"

It fails on Nikhef DPM node, but works fine on SARA dCache node.

SRM -> GO endpoint

Go endpoint can be created from all three types (DPM, dCache, STORM) of storage elements within EGI, but SEs have to meet some requirements:


Software requirements:

  • GridFTP compatible versions with GlobusOnline access methods


Configuration requirements (These may be different, depending on how EGI decides to configure SRM/GridFTP in general and how GlobusOnline finds important information within EGI):

  • GridFTP must accept VOMS proxy e.g. user is mapped to /home/dteam009 at storage element
  • Main storage directory used by SRM must allow VO member using his VOMS proxy to access it e.g. /storage/dteam, and not only his home directory which is e.g. /home/dteam009
  • BDII or SRM WS should provide the real path to the main storage directory used on storage element e.g. VOInfoPath from BDII MAY contain the path for SRM ONLY and SRM does the mapping to the real path, but GridFTP does not know how to do that mapping.

File operations

All operations below were performed succesufully:

a) copy file using SRM and listing file using GO Web
b) copy file using GO Web and listing file using SRM
c) checking if correct Disk Used Sizes are reported by BDII (transfering at least 1GB)
d) deleting file using SRM (file was put by using GO Web)
e) deleting file using GO Web (file was put by using SRM)
f) Transfer file from NIKHEF DPM to SARA dCache.


1) Picked up few SEs:

DPM 1.8.2 - tbn18.nikhef.nl
dCache 2.2.4 - srm.grid.sara.nl
STORM 1.8.2 - bostorm.bo.infn.it

2) Finding SRM endpoints for these SEs:

-bash-3.2$ lcg-info --list-service --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'ServiceType=SRM' --attrs 'ServiceEndpoint'| grep tbn18.nikhef.nl
- Service: httpg://tbn18.nikhef.nl:8446/srm/managerv2
  - ServiceEndpoint     httpg://tbn18.nikhef.nl:8446/srm/managerv2

-bash-3.2$ lcg-info --list-service --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'ServiceType=SRM' --attrs 'ServiceEndpoint'| grep srm.grid.sara.nl
- Service: httpg://srm.grid.sara.nl:8443/srm/managerv2
  - ServiceEndpoint     httpg://srm.grid.sara.nl:8443/srm/managerv2

-bash-3.2$ lcg-info --list-service --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'ServiceType=SRM' --attrs 'ServiceEndpoint'| grep bostorm.bo.infn.it
- Service: httpg://bostorm.bo.infn.it:8444/srm/managerv2
  - ServiceEndpoint     httpg://bostorm.bo.infn.it:8444/srm/managerv2

3) Finding SRM VO home path for these SRM endpoints:

-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SE=tbn18.nikhef.nl' --attrs 'VOInfoPath'
- SE: tbn18.nikhef.nl
  - VOInfoPath          /dpm/nikhef.nl/home/dteam

-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SE=srm.grid.sara.nl' --attrs 'VOInfoPath'
- SE: srm.grid.sara.nl
  - VOInfoPath          /pnfs/grid.sara.nl/data/dteam

-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SE=bostorm.bo.infn.it' --attrs 'VOInfoPath'
- SE: bostorm.bo.infn.it
  - VOInfoPath          /dteam

4) Listing files in SRM endpoints:

-bash-3.2$ srmls -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam
Picked up _JAVA_OPTIONS: -Xmx512M
  0 /dpm/nikhef.nl/home/dteam/
< output truncated >

-bash-3.2$ srmls -2 srm://srm.grid.sara.nl:8443/pnfs/grid.sara.nl/data/dteam
Picked up _JAVA_OPTIONS: -Xmx512M
  512 /pnfs/grid.sara.nl/data/dteam/
< output truncated >

-bash-3.2$ srmls -2 srm://bostorm.bo.infn.it:8444/dteam
Picked up _JAVA_OPTIONS: -Xmx512M
  0 /dteam/
< output truncated >

5) Listing used and total space on SEs (in GB units):

-bash-3.2$ ldapsearch -LLL -h tbn18.nikhef.nl -p 2170 -x -b mds-vo-name=resource,o=grid '(&(objectClass=GlueSA)(GlueSAAccessControlBaseRule=VO:dteam))' GlueSATotalOnlineSize GlueSAUsedOnlineSize
dn: GlueSALocalID=test:replica:online,GlueSEUniqueID=tbn18.nikhef.nl,Mds-Vo-na
 me=resource,o=grid
GlueSATotalOnlineSize: 32
GlueSAUsedOnlineSize: 4

-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SAVOs=VO:dteam' --attrs 'UsedOnline,TotalOnline'|grep srm.grid.sara.nl -A 7 
- SE: srm.grid.sara.nl
  - UsedOnline          0
                        0                             
                        0                             
  - TotalOnline         0
                        15000                         
                        58681

Note: three values because it is dCache.

-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --vo dteam --query 'SAVOs=VO:dteam' --attrs 'UsedOnline,TotalOnline'|grep bostorm.bo.infn.it -A 3 
- SE: bostorm.bo.infn.it
  - UsedOnline          0
  - TotalOnline         100

6) Uploading file from UI via SRM client to SE endpoint:

-bash-3.2$ srmcp -2 file:///100M.rand  srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/100M.rand -debug
Picked up _JAVA_OPTIONS: -Xmx512M
Storage Resource Manager (SRM) Client version 2.1.5-16
Tue Oct 30 09:24:36 CET 2012: In SRMClient ExpectedName: host
Tue Oct 30 09:24:36 CET 2012: SRMClient(https,srm/managerv2,true)
SRMClieldapsearch -LLL -h tbn18.nikhef.nl -p 2170 -x -b mds-vo-name=resource,o=grid '(&(objectClass=GlueSA)(GlueSAAccessControlBaseRule=VO:dteam))' GlueSATotalOnlineSize GlueSAUsedOnlineSizentV2 : user credentials are: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
SRMClientV2 : connecting to srm at httpg://tbn18.nikhef.nl:8446/srm/managerv2
SRMClientV2 : srmPrepareToPut , contacting service httpg://tbn18.nikhef.nl:8446/srm/managerv2
copy_jobs is empty
Tue Oct 30 09:24:39 CET 2012:  srm returned requestToken = bd7521b6-65ab-4c21-a301-9c484ef81098
Tue Oct 30 09:24:39 CET 2012: sleeping 5 seconds ...
SRMClientV2 : srmStatusOfPutRequest , contacting service httpg://tbn18.nikhef.nl:8446/srm/managerv2
Tue Oct 30 09:24:44 CET 2012: no more pending transfers, breaking the loop
copy_jobs is not empty
copying CopyJob, source = file:///100M.rand destination = gsiftp://hooiwagen.nikhef.nl/hooiwagen.nikhef.nl:/export/data/dteam/dteam/2012-10-30/100M.rand.160938141.0
GridftpClient: memory buffer size is set to 131072
GridftpClient: connecting to hooiwagen.nikhef.nl on port 2811
GridftpClient: gridFTPClient tcp buffer size is set to 1048576
GridftpClient: gridFTPWrite started, source file is java.io.RandomAccessFile@74bfed5a destination path is hooiwagen.nikhef.nl:/export/data/dteam/dteam/2012-10-30/100M.rand.160938141.0
GridftpClient: gridFTPWrite started, destination path is hooiwagen.nikhef.nl:/export/data/dteam/dteam/2012-10-30/100M.rand.160938141.0
GridftpClient: set local data channel authentication mode to None
GridftpClient: parallelism: 10
GridftpClient: waiting for completion of transfer
GridftpClient: starting a transfer to hooiwagen.nikhef.nl:/export/data/dteam/dteam/2012-10-30/100M.rand.160938141.0
GridftpClient: DiskDataSink.close() called
GridftpClient: gridFTPWrite() wrote 104857600bytes
GridftpClient: closing client : org.globus.ftp.GridFTPClient@3b5b123b
GridftpClient: closed client
execution of CopyJob, source = file:///100M.rand destination = gsiftp://hooiwagen.nikhef.nl/hooiwagen.nikhef.nl:/export/data/dteam/dteam/2012-10-30/100M.rand.160938141.0 completed
SRMClientV2 : srmPutDone , contacting service httpg://tbn18.nikhef.nl:8446/srm/managerv2
srmPutDone status code=SRM_SUCCESS
copy_jobs is empty
stopping copier

Note: In the log above we see that in fact the real SE endpoint is "hooiwagen.nikhef.nl", which is not advertized in BDII, but pre-configured inside SRM WS.

7) Listing file via GO Web and deleting the file via GO Web.

-bash-3.2$ srmls -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/100M.rand
Picked up _JAVA_OPTIONS: -Xmx512M
  104857600 /dpm/nikhef.nl/home/dteam/100M.rand

-bash-3.2$ srmls -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/100M.rand
Picked up _JAVA_OPTIONS: -Xmx512M
Tue Oct 30 09:32:12 CET 2012: Return status:
 - Status code:  SRM_FAILURE
 - Explanation:  null
SRM_INVALID_PATH   File/directory 0 /dpm/nikhef.nl/home/dteam/100M.rand does not exist. 

8) Uploading file from GO Web to SE endpoint, listing with SRM client and deleting with SRM:

-bash-3.2$ srmls -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/1G.rand
Picked up _JAVA_OPTIONS: -Xmx512M
  1048576000 /dpm/nikhef.nl/home/dteam/1G.rand

-bash-3.2$ srmrm -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/1G.rand
Picked up _JAVA_OPTIONS: -Xmx512M
-bash-3.2$

9) Uploading 5GB size file from laptop to SE using GO Web and checking if BDII is reporting space correctly.

Before upload:

-bash-3.2$ ldapsearch -LLL -h tbn18.nikhef.nl -p 2170 -x -b mds-vo-name=resource,o=grid '(&(objectClass=GlueSA)(GlueSAAccessControlBaseRule=VO:dteam))' GlueSATotalOnlineSize GlueSAUsedOnlineSize
dn: GlueSALocalID=test:replica:online,GlueSEUniqueID=tbn18.nikhef.nl,Mds-Vo-na
 me=resource,o=grid
GlueSATotalOnlineSize: 32
GlueSAUsedOnlineSize: 4

Listing file with SRM client:

-bash-3.2$ srmls -2 srm://tbn18.nikhef.nl:8446/dpm/nikhef.nl/home/dteam/karolisPicked up _JAVA_OPTIONS: -Xmx512M
  0 /dpm/nikhef.nl/home/dteam/karolis/
      5242880000 /dpm/nikhef.nl/home/dteam/karolis/5G.rand

After upload:

-bash-3.2$ ldapsearch -LLL -h tbn18.nikhef.nl -p 2170 -x -b mds-vo-name=resource,o=grid '(&(objectClass=GlueSA)(GlueSAAccessControlBaseRule=VO:dteam))' GlueSATotalOnlineSize GlueSAUsedOnlineSize
dn: GlueSALocalID=test:replica:online,GlueSEUniqueID=tbn18.nikhef.nl,Mds-Vo-na
 me=resource,o=grid
GlueSATotalOnlineSize: 32
GlueSAUsedOnlineSize: 9

10) Making transfer from Nikhef DPM to SARA dCache using GO Web and listing file using SRM on dCache:

-bash-3.2$ srmls -2 srm://srm.grid.sara.nl:8443/pnfs/grid.sara.nl/data/dteam/karolis
Picked up _JAVA_OPTIONS: -Xmx512M
  512 /pnfs/grid.sara.nl/data/dteam/karolis/
      5242880000 /pnfs/grid.sara.nl/data/dteam/karolis/5G.rand

And notification by email was received:

=== Task Deta-bash-3.2$ srmls -2 srm://srm.grid.sara.nl:8443/pnfs/grid.sara.nl/data/dteam/karolis
Picked up _JAVA_OPTIONS: -Xmx512M
  512 /pnfs/grid.sara.nl/data/dteam/karolis/
      5242880000 /pnfs/grid.sara.nl/data/dteam/karolis/5G.rand
ils ===
Task ID              : 429d16a4-2278-11e2-bf56-1231380b8963
Task Type            : TRANSFER
Parent Task ID       : n/a
Status               : SUCCEEDED
Request Time         : 2012-10-30 09:57:48Z
Deadline             : 2012-10-31 09:57:48Z
Completion Time      : 2012-10-30 09:58:56Z
Total Tasks          : 1
Tasks Successful     : 1
Tasks Expired        : 0
Tasks Canceled       : 0
Tasks Failed         : 0
Tasks Pending        : 0
Tasks Retrying       : 0
Command              : API 0.10 eu
Label                : from NIKHEF DPM to SARA dCache
Sync Level           : n/a
Data Encryption      : No
Checksum Verification: No
Delete               : No
Files                : 1
Files Skipped        : 0
Directories          : 0
Bytes Transferred    : 5242880000
Bytes Checksummed    : 0
MBits/sec            : 626.016
Faults               : 0