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
 
(134 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category: Community Engagement]]
{{Template:Op menubar}} {{Template:Doc_menubar}}
 
[[Category:Operations Manuals]]
 
[[Category:Deprecated]]
{| align="right"
{| style="border:1px solid black; background-color:lightgrey; color: black; padding:5px; font-size:140%; width: 90%; margin: auto;"
 
| style="padding-right: 15px; padding-left: 15px;" |
| __TOC__
|[[File:Alert.png]] This page is '''Deprecated'''  and should no longer be used
 
|}
|}


== About ==
{{TOC_right}}
 
This page provides guidance for Virtual Organisations (VO) of the European Grid Infrastructure (EGI) on how to use the Globus Online service that is available at http://www.globusonline.eu. The services provides robust and easy to use file transfer capabilities for EGI users. Globus Online manages file transfers for you, monitoring performance, retrying failures, auto-tuning and recovering from faults automatically where possible, and reporting status. The Cookbook demonstrates how SRM storages of EGI could be used as endpoints for file transfers in Globus Online.
 
The Cookbook consists of two parts:
 
* The first part provides step-by-step instructions for VO Managers on how to register SRM storage services in Globus Online in such a way, that these appear as endpoints that VO members can find and use for file tranfers. Although these steps could be performed by any member of a VO, we assume that for most VOs the VO Manager is the most suitable person to complete the steps, because the VO Managers have sufficient knowledge on storage sites of the VO and about using the BDII information system to obtain detailed information about these storages.
 
* The second part provides step-by-step instructions for VO members on how to use storage endpoints in Globus Online. These steps can be carried out by any VO member.
 
The "lsgrid" VO is used as an example in the Cookbook to demonstrate Globus Online usage.
 
'''Please email any feedback about this Cookbook to the EGI.eu User Community Support Team: ucst@egi.eu.'''
 
== VO Managers ==
 
All commands are performed from the command line of a gLite User Interface (UI). The "lsgrid" VO is used as an example.
 
1. Find storage elements available for your VO:
 
<pre>


-bash-3.2$ lcg-infosites --is bdii.grid.sara.nl --vo lsgrid se
The '''Globus Online cookbook''' describes how the 'SRM type' storage services that are federated into EGI can be used as endpoints of file transfers managed by Globus Online. The "biomed" VO is used as an example in the Cookbook to demonstrate EGI storage usage, but the steps are the same for other EGI VOs as well.  


Avail Space(kB) Used Space(kB)  Type    SE
The cookbook was prepared as a guide for EGI Virtual Organisations (VOs) on how to use the Globus Online service that is available at http://www.globusonline.eu. GlobusOnline.eu provides robust and easy to use file transfer capabilities for EGI users. The service manages file transfers for you, monitoring performance, retrying failures, auto-tuning and recovering from faults automatically where possible, and reporting status.


------------------------------------------
The Cookbook consists of two parts:


< output truncated >
#[[Globus Online cookbook for EGI VOs#VO_Managers|For VO Managers ]]: The first part provides step-by-step instructions for VO Managers on how to register SRM storage services in Globus Online in such a way, that these appear as transfer endpoints for VO members. This registration could be performed by any member of a VO, however for most VOs the VO Manager is the most suitable person to complete this step because the VO Manager has sufficient knowledge on storage sites that support the VO and about the BDII information system where detailed information about the storages is recorded.
#[[Globus Online cookbook for EGI VOs#VO_Members|For VO Members (researchers) ]]: The second part provides step-by-step instructions for VO members on how to use VO storage endpoints in Globus Online. This part is relevant for any meber of any EGI VO. The list of EGI VOs and information on joining these VOs is available at http://operations-portal.egi.eu/vo.


      717032688      382478939  SRM      se.grid.rug.nl
''Important note: the http://www.globusonline.eu server is hosted in the US, but the files that the service moves between EGI sites do not leave Europe. The service orchestrates file copies with the GridFTP third party transfer, so files are copied directly between the EGI endpoints. ''


    17542103037      460842863  SRM      se.lsg.hubrecht.eu
This cookbook has been prepared by the EGI.eu User Community Support Team in consultation with representatives of EGI Operations, storage technology and information system developer groups. Please email any feedback about this Cookbook to the EGI.eu User Community Support Team: ucst@egi.eu.


    16560797796      1442148104 SRM      se.lsg.psy.vu.nl
== VO Managers ==


    58680692895            n.a  SRM      srm.grid.sara.nl
1. Get all endpoints suporting gsiftp for biomed&nbsp;VO (Glue 2.0):
<pre>-bash-3.2$ ldapsearch -LLL -x -h lcg-bdii.cern.ch -p 2170 -b o=glue '(&amp;(objectclass=GLUE2AccessPolicy)(GLUE2PolicyRule=*:biomed))' \
-bash-3.2$ GLUE2AccessPolicyEndpointForeignKey | perl -p00e 's/\r?\n //g' | grep GLUE2AccessPolicyEndpointForeignKey | sort | uniq | awk '{ print $2 }' |grep -i gsiftp &gt; APEndpoints


    14994733204        5266796  SRM      srm.grid.sara.nl
</pre>
2. Get all GridFTP&nbsp;(gsiftp) endpoints for biomed VO (Glue 2.0):
<pre>-bash-3.2$ for i in `cat APEndpoints`;do ldapsearch -LLL -x -h lcg-bdii.cern.ch -p 2170 -b o=glue \
-bash-3.2$ '(&amp;(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID='$i'))' \
-bash-3.2$ GLUE2EndpointURL GLUE2EndpointImplementationName GLUE2ENdpointImplementationVersion GLUE2EndpointInterfaceName | grep ^GLUE&nbsp;;echo "-------";done
</pre>
3. Find myproxy server for biomed VO:
<pre>-bash-3.2$ lcg-infosites --is lcg-bdii.cern.ch --vo biomed myproxy
myproxy://px.grid.sara.nl:7512/
myproxy.cern.ch:7512
myproxy.usatlas.bnl.gov:7512
myproxy://cluster6.knu.ac.kr:7512/
myproxy://grid-mypx.feit.ukim.edu.mk:7512/
myproxy://grid-px0.desy.de:7512/
myproxy://grid153.kfki.hu:7512/
myproxy://gridpx01.ifca.es:7512/
myproxy://ii.biomed.kiev.ua:7512/
myproxy://kek2-px.cc.kek.jp:7512/
myproxy://lcg-px01.icepp.jp:7512/
myproxy://lcg2proxy.ific.uv.es:7512/
myproxy://lcgpx01.jinr.ru:7512/
myproxy://lcgrbp01.gridpp.rl.ac.uk:7512/
&lt;...&gt;


            n.a             n.a  SRM      srm.grid.sara.nl
</pre>
If your VO does not have a dedicated MyPRoxy server, then the catch-all MyProxy server of EGI can be used. This catch-all service is available from CESNET at myproxy.egi.eu.<br>


</pre>
<br>  


[[GO_testing|Our tests with Globus Online]] were successful with DMP and dCache type of SRM storages, however the same process may work with some Storm storages (Storm is the third SRM storage type in use in EGI). With this query you can find out the type of the SRM storage that support your VO (GlueSEUniqueID=<SE_hostname>):
Extras: example script to obtain GridFTP endpoint information with Glue 2.0. (Command line tools from emi-ui-3.0.0-1.el6.x86_64):
<pre>#!/bin/bash


<pre>
bdii="top-bdii.cern.ch";


-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE)(GlueSEUniqueID=se.grid.rug.nl))' GlueSEImplementationName


GlueSEImplementationName: dCache
ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&amp;(objectclass=GLUE2AccessPolicy)(GLUE2PolicyRule=*:$1))" GLUE2AccessPolicyEndpointForeignKey | perl -p00e 's/\r?\n //g' | grep GLUE2AccessPolicyEndpointForeignKey |sort | uniq | awk '{ print $2 }' |grep -i gsiftp &gt; APEndpoints


-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE)(GlueSEUniqueID=se.lsg.hubrecht.eu))' GlueSEImplementationName


GlueSEImplementationName: DPM
for i in `cat APEndpoints`;do


</pre>


2. Find the SRM endpoint for chosen storage element:
SEtype=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&amp;(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointImplementationName |grep ^GLUE2| cut -d" " -f2`;


<pre>


-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
if [ "$SEtype" = "DPM" ]; then


- Service: httpg://srm.grid.sara.nl:8443/srm/managerv2
SE=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&amp;(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointServiceForeignKey |grep ^GLUE2| cut -d" " -f2`;


- ServiceEndpoint    httpg://srm.grid.sara.nl:8443/srm/managerv2
fi


</pre>


3. Find your VO home directory path for the SRM endpoint:
if [ "$SEtype" = "dCache" ]; then


(This is the path of the directory where VO users can write files.)
SE=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&amp;(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointServiceForeignKey |grep ^GLUE2| cut -d" " -f2 | cut -d":" -f2|sed 's/\/data//g'`;


<pre>
fi


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
SRM=`lcg-info --list-service --bdii ldap://$bdii:2170 --vo $1 --query "ServiceType=SRM" --attrs "ServiceEndpoint"|grep $SE | cut -d" " -f3|head -1`;


- VOInfoPath          /pnfs/grid.sara.nl/data/lsgrid
details=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&amp;(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointURL GLUE2EndpointImplementationName GLUE2ENdpointImplementationVersion | grep ^GLUE`;


</pre>
VOInfoPath=`lcg-info --list-se --bdii ldap://$bdii:2170 --vo biomed --query "SE=$SE" --attrs "VOInfoPath"|grep VOInfoPath|awk '{print $3}'`;


4. Find the GridFTP endpoint that belongs to this SRM endpoint with attempting copying a file:
echo -e "$details\nVOInfoPath: $VOInfoPath\nHost: $SE\nSRM: $SRM\n";


<pre>
done;


-bash-3.2$ touch test
</pre> <pre>
-bash-3.2$ ./go.sh biomed


-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
GLUE2EndpointImplementationName: DPM
GLUE2EndpointURL: gsiftp://glite-se.scai.fraunhofer.de:2811
GLUE2EndpointImplementationVersion: 1.8.8
VOInfoPath: /dpm/scai.fraunhofer.de/home/biomed
Host: glite-se.scai.fraunhofer.de
SRM: httpg://glite-se.scai.fraunhofer.de:8446/srm/managerv2


< 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
GLUE2EndpointImplementationVersion: 2.6.19
GLUE2EndpointURL: gsiftp://dcache-door-desy09.desy.de:2811
GLUE2EndpointImplementationName: dCache
VOInfoPath: /pnfs/desy.de/biomed
Host: dcache-se-desy.desy.de
SRM: httpg://dcache-se-desy.desy.de:8443/srm/managerv2


< output truncated >
&lt;...&gt;


</pre>


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.
</pre>
Testing access to GridFTP endpoint:  
<pre>-bash-3.2$ uberftp glite-se.scai.fraunhofer.de "ls /dpm/scai.fraunhofer.de/home/biomed"


5. Go to http://www.globusonline.eu/
</pre>
<br>


a) Create an account with your VO name e.g. lsgrid. (Note that usernames can include only letters and numbers. The name of your VO may need to be altered!)<br>
4. Register the endpoints in Globus Online:


b) Go to "Manage Endpoints" and click "Add Endpoint".<br>
a) Go to http://www.globusonline.eu/signup, create an account with your VO name e.g. biomed. (Note that usernames can include only letters and numbers and "_".)<br> (Using the VO name as an account name will ensure that VO members can easily find the endpoints that are available for them.)


c) Filling the endpoint details:<br>
b) Upload your ssh public key via globusonline.eu -&gt; "manage identities"


<pre>
c) Now you can manage your account using globusonline.eu client
<pre>-bash-3.2$ ssh biomed@cli.globusonline.eu "help"


Name lsgrid# < enter name of the Storage >  (e.g. SARA)
</pre>
d) Register the endpoints in the Globus Online service.  


Short Description: < enter description > (add VO default path for this storage, e.g. /pnfs/grid.sara.nl/data/lsgrid/)
Endpoints can be registered through the command line interface or the graphical portal interface of Globus Online. The command line interface allows the association of a default directory with the endpoint and this simplifies the use of the endpoint by VO members. The below example therefore shows the command line tool for endpoint registration. The MyProxy server becomes the default MyProxy, and can be replaced with other MyProxy by VO members during the activation of the endpoint.
<pre>-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-add fraunhofer_DE -p gsiftp://glite-se.scai.fraunhofer.de:2811"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --public fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --myproxy-server=px.grid.sara.nl fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --default-directory=/dpm/scai.fraunhofer.de/home/biomed fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-list -v fraunhofer_DE"
Name                  &nbsp;: biomed#fraunhofer_DE
Host(s)                &nbsp;: gsiftp://glite-se.scai.fraunhofer.de:2811
Subject(s)             &nbsp;:
Target Endpoint        &nbsp;: n/a
Default Directory      &nbsp;: /dpm/scai.fraunhofer.de/home/biomed
Force Encrypted Transfer: No
Disable Verify        &nbsp;: No
MyProxy Server        &nbsp;: px.grid.sara.nl
MyProxy DN            &nbsp;: n/a
MyProxy OAuth Server  &nbsp;: n/a
Credential Status      &nbsp;: EXPIRED
Credential Expires    &nbsp;:
Credential Subject    &nbsp;:


Server Address gsiftp:// < storage hostname with GridFTP access > (e.g. bee51.grid.sara.nl)
</pre>
<br>


Visible To: Anyone (public)
== VO Members  ==


     
'''1. Generate a VOMS proxy and upload it into a MyProxy server.''' '


Set the Identity Provider to be used with this endpoint.
There are two ways to do this:


Type: MyProxy
a). With a graphical tool, such as GSISSH-Term.


MyProxy Hostname: < myproxy server for your VO > (e.g. px.grid.sara.nl)
OR


</pre>
b). With the command line tools of the User Interface machine of your VO.


== VO Members ==
The usage of GSISSH-Term for proxy management is explained on a [[MyProxy tool GUI|dedicated page]]. A usage of the command line tools is detailed below.


Commands are performed from the command line of a gLite User Interface (UI). The "lsgrid" VO is used as an example.
<br>


1. Generating credentials.
Generating a VOMS proxy with the command line tools (You should have these installed on the User Interface machine of your VO):
<pre>-bash-3.2$ voms-proxy-init --voms biomed


Generate VOMS proxy:
Enter GRID pass phrase for this identity:
Contacting cclcgvomsli01.in2p3.fr:15000 [/O=GRID-FR/C=FR/O=CNRS/OU=CC-IN2P3/CN=cclcgvomsli01.in2p3.fr] "biomed"...
Remote VOMS server contacted succesfully.


<pre>
Created proxy in /tmp/x509up_u507.


-bash-3.2$ voms-proxy-init --voms lsgrid
Your proxy is valid until Fri May 24 04:12:03 CEST 2013


Enter GRID pass phrase:
</pre>
'''VOMS proxy lifetime: by default voms proxy extension is generated for 12hours, some voms servers within EGI allow to have lifetime for 1 week (168hours), some allow up to 24hours, please consult your VO manager.'''


<br> Upload VOMS proxy to a MyProxy server with the command line tool. Note: If your VO does not have any MyProxy server, then you can use the EGI catch-all MyProxy server. [[EGI Myproxy with OAuth|Further information about the EGI catch-all MyProxy server]].
<pre>-bash-3.2$ myproxy-init -l &lt;CHOOSE ANY USERNAME&gt; -s px.grid.sara.nl
Your identity: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
Your identity: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
Enter GRID pass phrase for this identity:
Creating proxy ........................................................................ Done
Proxy Verify OK
Your proxy is valid until: Thu May 30 16:15:47 2013
Enter MyProxy pass phrase: &lt;YOU NEW PASSWORD TO BE USED LATER AT GLOBUSONLINE&gt;
Verifying - Enter MyProxy pass phrase: &lt;YOU NEW PASSWORD TO BE USED LATER AT GLOBUSONLINE&gt;
A proxy valid for 168 hours (7.0 days) for user &lt;YOUR USERNAME SPECIFIED WITH -l WITHIN THE COMMAND&gt; now exists on px.grid.sara.nl.


Creating temporary proxy .............................................................................................................. Done
</pre>  
 
'''ATTENTION:''' The password entered for MyProxy will be used to authenticate the user via GlobusOnline.eu and the user name is the one which is chosen by you and provided with "-l" argument.<br>  
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
 
</pre>
 
Upload VOMS proxy to MyProxy.
 
<pre>
 
-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.
 
</pre>
 
2. Go to to http://www.globusonline.eu/
 
a) Create account for yourself<br>
 
b) Go to "Manage Endpoints" and click "View All".<br>
 
c) Search for your VO name e.g. lsgrid<br>
 
You could see something like:
 
<pre>
 
lsgrid#SARA    activate
 
</pre>
 
 
d) Click on "activate"<br>
 
Fill in the details for your credentials to retrieve.
 
<pre>
 
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.)
 
</pre>
 
e) Click "Authenticate"<br>
 
f) Go to "Start Transfer"
 
Choose your endpoint which is: lsgrid#SARA<br>
 
Look for your VO path directory in the endpoint description: /pnfs/grid.sara.nl/data/lsgrid/<br>
 
That is it. Now using Globus Online you can access Storage Element in EGI which is used also by SRM and FTS.<br>
 
What you can do ? <br>
 
*Transfer files from your laptop using GlobusConnect client to SRM storage endpoint in EGI using GO.<br>
 
*Transfer files from SRM endpoint in EGI using GO to your laptop using GlobusConnect client.<br>
 
*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<br>
 
== Additional materials ==
 
Tests have been carried out while creating this Cookbook: [[GO_testing]]
 
This page is a summary of the tests that Karolis Eigelis from the EGI User Community Support Team (UCST) carried out with the European Globus Online service during October-November 2012.
 
The tests helped UCST establish a [[Globus_Online_cookbook_for_EGI_VOs|Globus Online Cookbook for EGI Virtual Organisations]]. Other results of the tests are a number of conclusions:
 
* Because of lack of regulations, restrictive permissions are set on local storage elements for the main SRM directory.
 
* VOInfoPath in BDII may be the path only for SRM interface, but patgh for the related GridFTP server is different.
 
* The SRM hostname that is advertised in BDII is not always the same site where the GridFTP server operates (but usually is). Globus Online uses GridFTP endpoints.
 
The tests involved the following services:
 
* Globus Online: http://www.globusonline.eu
 
* MyProxy server: px.grid.sara.nl
 
* User Interface: bosui.nikhef.nl
 
* BDII: bdii.grid.sara.nl
 
* Storage Elements:
 
** DPM 1.8.2 - tbn18.nikhef.nl
 
** dCache 2.2.4 - srm.grid.sara.nl
 
** Storm 1.8.2 - bostorm.bo.infn.it
 
* VO: dteam
 
 
<b>SRM storage directory</b>
 
<pre>
 
-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
 
</pre>
 
VOInfoPath is /dteam for SRM interface:
 
<pre>
 
-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
 
</pre>
 
but if we connnect using GridFTP, /dteam directory even does not exist:
 
<pre>
 
-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.
 
</pre>
 
because , it is a "symlink" in SRM WS to real directory which is /storage/dteam, but only SRM interface may access it:
 
<pre>
 
-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.
 
</pre>
 
 
=== 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:<br>
 
<pre>
 
"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"
 
</pre>       
 
It fails on Nikhef DPM node, but works fine on SARA dCache node.<br>
 
=== 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 versions:
 
* GridFTP compatible versions with GlobusOnline access methods within EGI
 
 
Gathering info within EGI:
 
<b>Retrieve all SEs from BDII</b>
 
<pre>
 
-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(objectClass=GlueSE)' GlueSEUniqueID|grep GlueSEUniqueID:|awk '{print $2}' > EGI_ALL_SE_HOSTS
 
</pre>
 
Count how much hosts we have
 
<pre>
 
bash-3.2$ wc -l EGI_ALL_SE_HOSTS
 
489 EGI_ALL_SE_HOSTS
 
</pre>
 
OR
 
<pre>
 
-bash-3.2$ lcg-info --list-se --bdii ldap://bdii.grid.sara.nl:2170 --attrs 'SE'|tr -d '\-SE:[:blank:]'|tr -s '\r' '\n'|sort|uniq|wc -l
 
483
 
</pre>
 
 
Probe for GridFTP 2811 port EGI_ALL_SE_HOSTS
 
<pre>
 
-bash-3.2$ for i in `cat EGI_ALL_SE_HOSTS`;do echo ¨Connecting to $i `nc -w 2 $i 2811`¨;done|tee EGI_ALL_SE_GRIDFTP_VERSIONS
 
</pre>
 
Count how many of them responded with GridFTP open
 
<pre>
 
-bash-3.2$ grep FTP EGI_ALL_SE_GRIDFTP_VERSIONS|wc -l
 
299
 
</pre>
 
What are the GridFTP Server versions
 
<pre>
 
-bash-3.2$ awk '{print $8}' EGI_ALL_SE_GRIDFTP_VERSIONS|sort|uniq
 
2.3
 
2.7
 
2.8
 
3.23
 
3.28
 
3.33
 
6.10
 
6.14
 
6.5
 
</pre>
 
<b>Lets see how many types of storage exists in EGI </b>
 
<pre>
 
-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE))' GlueSEImplementationName|grep ^GlueSE|sort|uniq
 
GlueSEImplementationName: ARC
 
GlueSEImplementationName: bestman
 
GlueSEImplementationName: BeStMan
 
GlueSEImplementationName: CASTOR
 
GlueSEImplementationName: classicSE
 
GlueSEImplementationName: dcache
 
GlueSEImplementationName: dCache
 
GlueSEImplementationName: DPM
 
GlueSEImplementationName: HDFS
 
GlueSEImplementationName: StoRM
 
GlueSEImplementationName: xrootd
 
</pre>
 
How many of DPM, dCache, Storm ?
 
<pre>
 
-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE)(GlueSEImplementationName=dcache))' GlueSEUniqueID|grep ^GlueSE|wc -l
 
79
 
-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE)(GlueSEImplementationName=dpm))' GlueSEUniqueID|grep ^GlueSE|wc -l
 
217
 
-bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectClass=GlueSE)(GlueSEImplementationName=storm))' GlueSEUniqueID|grep ^GlueSE|wc -l
 
54
 
</pre>
 
 
<b>Retrieve only SRM hosts from BDII</b>
 
<pre>
 
bash-3.2$ ldapsearch -LLL -h bdii.grid.sara.nl -p 2170 -x -b mds-vo-name=local,o=grid '(&(objectclass=GlueService)(GlueServiceType=SRM))' GlueServiceEndpoint |grep GlueServiceEndpoint| awk '{print $2}'|sort|uniq|sed -e '/managerv1/d'|sed -e 's/httpg:\/\///g'|sed -e 's/:.*//' > EGI_ALL_SRM_ENDPOINTS
 
</pre>
 
Count how much SRM endpoints we have
 
<pre>
 
-bash-3.2$ wc -l EGI_ALL_SRM_ENDPOINTS
 
423 EGI_ALL_SRM_ENDPOINTS
 
</pre>
 
OR
 
<pre>
 
-bash-3.2$ lcg-info --list-service --bdii ldap://bdii.grid.sara.nl:2170 --query 'ServiceType=SRM'|awk {'print $3'}|sort|uniq|sed -e '/managerv1/d'|sed -e 's/httpg:\/\///g'|sed -e 's/:.*//'|wc -l
 
420
 
</pre>
 
 
Configuration issues:
 
* 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.
 
Note: Configuration issues may be different, depending on how EGI decides to configure SRM/GridFTP/SEs in general and how GlobusOnline finds important information within EGI):
 
=== File operations ===
 
All operations below were performed succesufully:
 
a) copy file using SRM and listing file using GO Web<br>
 
b) copy file using GO Web and listing file using SRM<br>
 
c) checking if correct Disk Used Sizes are reported by BDII (transfering at least 1GB)<br>
 
d) deleting file using SRM (file was put by using GO Web)<br>
 
e) deleting file using GO Web (file was put by using SRM)<br>
 
f) Transfer file from NIKHEF DPM to SARA dCache.<br>
 
 
1) Picked up few SEs:
 
DPM 1.8.2 - tbn18.nikhef.nl<br>
 
dCache 2.2.4 - srm.grid.sara.nl<br>
 
STORM 1.8.2 - bostorm.bo.infn.it<br>
 
2) Finding SRM endpoints for these SEs:
 
<pre>
 
-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
 
</pre>
 
3) Finding SRM VO home path for these SRM endpoints:
 
<pre>
 
-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
 
</pre>
 
4) Listing files in SRM endpoints:
 
<pre>
 
-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 >
 
</pre>
 
5) Listing used and total space on SEs (in GB units):
 
<pre>
 
-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
 
</pre>
 
6) Uploading file from UI via SRM client to SE endpoint:
 
<pre>
 
-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
 
</pre>
 
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.
 
<pre>
 
-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.
 
</pre>
 
8) Uploading file from GO Web to SE endpoint, listing with SRM client and deleting with SRM:
 
<pre>
 
-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$
 
</pre>
 
9) Uploading 5GB size file from laptop to SE using GO Web and checking if BDII is reporting space correctly.
 
Before upload:
 
<pre>
 
-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
 
</pre>
 
Listing file with SRM client:
 
<pre>
 
-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
 
</pre>
 
After upload:
 
<pre>
 
-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
 
</pre>
 
10) Making transfer from Nikhef DPM to SARA dCache using GO Web and listing file using SRM on dCache:
 
<pre>
 
-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
 
</pre>
 
And notification by email was received:
 
<pre>
 
=== 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
<br>


Command              : API 0.10 eu
'''2. Perform file transfers'''


Label                : from NIKHEF DPM to SARA dCache
a) Go to http://www.globusonline.eu/signup and create an account. (The account can be later associated with your EGI Single Sign-On account ([http://egi.eu/sso EGI SSO]). '''Attention:''' login with the EGI Single Sign On account is possible only if you have a valid VOMS proxy in the EGI catch-all MyProxy server.)<br>


Sync Level          : n/a
b) Go to "Start Transfer"<br>


Data Encryption      : No
c) Find the transfer endpoints that are available for your VO by searching for your VO name in the endpoint field e.g. biomed<br>


Checksum Verification: No
[[Image:Gobiomed.png|thumb|none|800px]]<br>


Delete              : No
'''IMPORTANT TO KNOW:''' you may use field "Credential Lifetime (hours)" and enter 168hours - 1 week of proxy lifetime. (Default is 12hours). What is important to understand is that GlobusOnline.eu will retrieve the instance of your proxy from MyProxy server and will activate the endpoint for 168hours - within the GlobusOnline.eu interface you will see that endpoint is activated for 168hours, but this might not be true because your voms proxy lifetime depends on your VOMS server, where you should consult your VO Manager. Some EGI voms servers allow up to 24hours only of the voms proxy lifetime to be.


Files                : 1
e) Click "Authenticate"<br>


Files Skipped        : 0
What you can do with the endpoints? <br>


Directories          : 0
*Transfer files from your laptop using GlobusConnect client to a endpoint using Globus Online.<br>


Bytes Transferred    : 5242880000
*Transfer files from an endpoint to your laptop using GlobusConnect client and Globus Online.<br>


Bytes Checksummed    : 0
*Transfer files from an endpoint to another endpoint using Globus Online.<br>


MBits/sec            : 626.016
Please consult with the Globus Online documentations that are available at http://www.globusonline.eu.  


Faults              : 0
== Additional materials  ==


</pre>
The tests that have been carried out while creating this Cookbook are available at [[GO testing]]

Latest revision as of 14:48, 10 September 2021

Main EGI.eu operations services Support Documentation Tools Activities Performance Technology Catch-all Services Resource Allocation Security


Documentation menu: Home Manuals Procedures Training Other Contact For: VO managers Administrators
Alert.png This page is Deprecated and should no longer be used


The Globus Online cookbook describes how the 'SRM type' storage services that are federated into EGI can be used as endpoints of file transfers managed by Globus Online. The "biomed" VO is used as an example in the Cookbook to demonstrate EGI storage usage, but the steps are the same for other EGI VOs as well.

The cookbook was prepared as a guide for EGI Virtual Organisations (VOs) on how to use the Globus Online service that is available at http://www.globusonline.eu. GlobusOnline.eu provides robust and easy to use file transfer capabilities for EGI users. The service manages file transfers for you, monitoring performance, retrying failures, auto-tuning and recovering from faults automatically where possible, and reporting status.

The Cookbook consists of two parts:

  1. For VO Managers : The first part provides step-by-step instructions for VO Managers on how to register SRM storage services in Globus Online in such a way, that these appear as transfer endpoints for VO members. This registration could be performed by any member of a VO, however for most VOs the VO Manager is the most suitable person to complete this step because the VO Manager has sufficient knowledge on storage sites that support the VO and about the BDII information system where detailed information about the storages is recorded.
  2. For VO Members (researchers) : The second part provides step-by-step instructions for VO members on how to use VO storage endpoints in Globus Online. This part is relevant for any meber of any EGI VO. The list of EGI VOs and information on joining these VOs is available at http://operations-portal.egi.eu/vo.

Important note: the http://www.globusonline.eu server is hosted in the US, but the files that the service moves between EGI sites do not leave Europe. The service orchestrates file copies with the GridFTP third party transfer, so files are copied directly between the EGI endpoints.

This cookbook has been prepared by the EGI.eu User Community Support Team in consultation with representatives of EGI Operations, storage technology and information system developer groups. Please email any feedback about this Cookbook to the EGI.eu User Community Support Team: ucst@egi.eu.

VO Managers

1. Get all endpoints suporting gsiftp for biomed VO (Glue 2.0):

-bash-3.2$ ldapsearch -LLL -x -h lcg-bdii.cern.ch -p 2170 -b o=glue '(&(objectclass=GLUE2AccessPolicy)(GLUE2PolicyRule=*:biomed))' \
-bash-3.2$ GLUE2AccessPolicyEndpointForeignKey | perl -p00e 's/\r?\n //g' | grep GLUE2AccessPolicyEndpointForeignKey | sort | uniq | awk '{ print $2 }' |grep -i gsiftp > APEndpoints

2. Get all GridFTP (gsiftp) endpoints for biomed VO (Glue 2.0):

-bash-3.2$ for i in `cat APEndpoints`;do ldapsearch -LLL -x -h lcg-bdii.cern.ch -p 2170 -b o=glue \ 
-bash-3.2$ '(&(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID='$i'))' \
-bash-3.2$ GLUE2EndpointURL GLUE2EndpointImplementationName GLUE2ENdpointImplementationVersion GLUE2EndpointInterfaceName | grep ^GLUE ;echo "-------";done

3. Find myproxy server for biomed VO:

-bash-3.2$ lcg-infosites --is lcg-bdii.cern.ch --vo biomed myproxy
myproxy://px.grid.sara.nl:7512/
myproxy.cern.ch:7512
myproxy.usatlas.bnl.gov:7512
myproxy://cluster6.knu.ac.kr:7512/
myproxy://grid-mypx.feit.ukim.edu.mk:7512/
myproxy://grid-px0.desy.de:7512/
myproxy://grid153.kfki.hu:7512/
myproxy://gridpx01.ifca.es:7512/
myproxy://ii.biomed.kiev.ua:7512/
myproxy://kek2-px.cc.kek.jp:7512/
myproxy://lcg-px01.icepp.jp:7512/
myproxy://lcg2proxy.ific.uv.es:7512/
myproxy://lcgpx01.jinr.ru:7512/
myproxy://lcgrbp01.gridpp.rl.ac.uk:7512/
<...>

If your VO does not have a dedicated MyPRoxy server, then the catch-all MyProxy server of EGI can be used. This catch-all service is available from CESNET at myproxy.egi.eu.


Extras: example script to obtain GridFTP endpoint information with Glue 2.0. (Command line tools from emi-ui-3.0.0-1.el6.x86_64):

#!/bin/bash

bdii="top-bdii.cern.ch";


ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&(objectclass=GLUE2AccessPolicy)(GLUE2PolicyRule=*:$1))" GLUE2AccessPolicyEndpointForeignKey | perl -p00e 's/\r?\n //g' | grep GLUE2AccessPolicyEndpointForeignKey |sort | uniq | awk '{ print $2 }' |grep -i gsiftp > APEndpoints


for i in `cat APEndpoints`;do 


SEtype=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointImplementationName |grep ^GLUE2| cut -d" " -f2`;


if [ "$SEtype" = "DPM" ]; then

SE=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointServiceForeignKey |grep ^GLUE2| cut -d" " -f2`;

fi


if [ "$SEtype" = "dCache" ]; then

SE=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointServiceForeignKey |grep ^GLUE2| cut -d" " -f2 | cut -d":" -f2|sed 's/\/data//g'`;

fi


SRM=`lcg-info --list-service --bdii ldap://$bdii:2170 --vo $1 --query "ServiceType=SRM" --attrs "ServiceEndpoint"|grep $SE | cut -d" " -f3|head -1`;

details=`ldapsearch -LLL -x -H ldap://$bdii:2170 -b o=glue "(&(objectclass=GLUE2Endpoint)(GLUE2EndpointInterfaceName=gsiftp)(GLUE2EndpointID=$i))" GLUE2EndpointURL GLUE2EndpointImplementationName GLUE2ENdpointImplementationVersion | grep ^GLUE`;

VOInfoPath=`lcg-info --list-se --bdii ldap://$bdii:2170 --vo biomed --query "SE=$SE" --attrs "VOInfoPath"|grep VOInfoPath|awk '{print $3}'`;

echo -e "$details\nVOInfoPath: $VOInfoPath\nHost: $SE\nSRM: $SRM\n";

done;

-bash-3.2$ ./go.sh biomed


GLUE2EndpointImplementationName: DPM GLUE2EndpointURL: gsiftp://glite-se.scai.fraunhofer.de:2811 GLUE2EndpointImplementationVersion: 1.8.8 VOInfoPath: /dpm/scai.fraunhofer.de/home/biomed Host: glite-se.scai.fraunhofer.de SRM: httpg://glite-se.scai.fraunhofer.de:8446/srm/managerv2


GLUE2EndpointImplementationVersion: 2.6.19 GLUE2EndpointURL: gsiftp://dcache-door-desy09.desy.de:2811 GLUE2EndpointImplementationName: dCache VOInfoPath: /pnfs/desy.de/biomed Host: dcache-se-desy.desy.de SRM: httpg://dcache-se-desy.desy.de:8443/srm/managerv2

<...>


Testing access to GridFTP endpoint:

-bash-3.2$ uberftp glite-se.scai.fraunhofer.de "ls /dpm/scai.fraunhofer.de/home/biomed"


4. Register the endpoints in Globus Online:

a) Go to http://www.globusonline.eu/signup, create an account with your VO name e.g. biomed. (Note that usernames can include only letters and numbers and "_".)
(Using the VO name as an account name will ensure that VO members can easily find the endpoints that are available for them.)

b) Upload your ssh public key via globusonline.eu -> "manage identities"

c) Now you can manage your account using globusonline.eu client

-bash-3.2$ ssh biomed@cli.globusonline.eu "help"

d) Register the endpoints in the Globus Online service.

Endpoints can be registered through the command line interface or the graphical portal interface of Globus Online. The command line interface allows the association of a default directory with the endpoint and this simplifies the use of the endpoint by VO members. The below example therefore shows the command line tool for endpoint registration. The MyProxy server becomes the default MyProxy, and can be replaced with other MyProxy by VO members during the activation of the endpoint.

-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-add fraunhofer_DE -p gsiftp://glite-se.scai.fraunhofer.de:2811"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --public fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --myproxy-server=px.grid.sara.nl fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-modify --default-directory=/dpm/scai.fraunhofer.de/home/biomed fraunhofer_DE"
-bash-3.2$ ssh biomed@cli.globusonline.eu "endpoint-list -v fraunhofer_DE"
Name                    : biomed#fraunhofer_DE
Host(s)                 : gsiftp://glite-se.scai.fraunhofer.de:2811
Subject(s)              : 
Target Endpoint         : n/a
Default Directory       : /dpm/scai.fraunhofer.de/home/biomed
Force Encrypted Transfer: No
Disable Verify          : No
MyProxy Server          : px.grid.sara.nl
MyProxy DN              : n/a
MyProxy OAuth Server    : n/a
Credential Status       : EXPIRED
Credential Expires      : 
Credential Subject      : 


VO Members

1. Generate a VOMS proxy and upload it into a MyProxy server. '

There are two ways to do this:

a). With a graphical tool, such as GSISSH-Term.

OR

b). With the command line tools of the User Interface machine of your VO.

The usage of GSISSH-Term for proxy management is explained on a dedicated page. A usage of the command line tools is detailed below.


Generating a VOMS proxy with the command line tools (You should have these installed on the User Interface machine of your VO):

-bash-3.2$ voms-proxy-init --voms biomed

Enter GRID pass phrase for this identity:
Contacting cclcgvomsli01.in2p3.fr:15000 [/O=GRID-FR/C=FR/O=CNRS/OU=CC-IN2P3/CN=cclcgvomsli01.in2p3.fr] "biomed"...
Remote VOMS server contacted succesfully.

Created proxy in /tmp/x509up_u507.

Your proxy is valid until Fri May 24 04:12:03 CEST 2013

VOMS proxy lifetime: by default voms proxy extension is generated for 12hours, some voms servers within EGI allow to have lifetime for 1 week (168hours), some allow up to 24hours, please consult your VO manager.


Upload VOMS proxy to a MyProxy server with the command line tool. Note: If your VO does not have any MyProxy server, then you can use the EGI catch-all MyProxy server. Further information about the EGI catch-all MyProxy server.

-bash-3.2$ myproxy-init -l <CHOOSE ANY USERNAME> -s px.grid.sara.nl
Your identity: /O=dutchgrid/O=users/O=egi/CN=Karolis Eigelis
Enter GRID pass phrase for this identity:
Creating proxy ........................................................................ Done
Proxy Verify OK
Your proxy is valid until: Thu May 30 16:15:47 2013
Enter MyProxy pass phrase: <YOU NEW PASSWORD TO BE USED LATER AT GLOBUSONLINE>
Verifying - Enter MyProxy pass phrase: <YOU NEW PASSWORD TO BE USED LATER AT GLOBUSONLINE>
A proxy valid for 168 hours (7.0 days) for user <YOUR USERNAME SPECIFIED WITH -l WITHIN THE COMMAND> now exists on px.grid.sara.nl.

ATTENTION: The password entered for MyProxy will be used to authenticate the user via GlobusOnline.eu and the user name is the one which is chosen by you and provided with "-l" argument.


2. Perform file transfers

a) Go to http://www.globusonline.eu/signup and create an account. (The account can be later associated with your EGI Single Sign-On account (EGI SSO). Attention: login with the EGI Single Sign On account is possible only if you have a valid VOMS proxy in the EGI catch-all MyProxy server.)

b) Go to "Start Transfer"

c) Find the transfer endpoints that are available for your VO by searching for your VO name in the endpoint field e.g. biomed

Gobiomed.png


IMPORTANT TO KNOW: you may use field "Credential Lifetime (hours)" and enter 168hours - 1 week of proxy lifetime. (Default is 12hours). What is important to understand is that GlobusOnline.eu will retrieve the instance of your proxy from MyProxy server and will activate the endpoint for 168hours - within the GlobusOnline.eu interface you will see that endpoint is activated for 168hours, but this might not be true because your voms proxy lifetime depends on your VOMS server, where you should consult your VO Manager. Some EGI voms servers allow up to 24hours only of the voms proxy lifetime to be.

e) Click "Authenticate"

What you can do with the endpoints?

  • Transfer files from your laptop using GlobusConnect client to a endpoint using Globus Online.
  • Transfer files from an endpoint to your laptop using GlobusConnect client and Globus Online.
  • Transfer files from an endpoint to another endpoint using Globus Online.

Please consult with the Globus Online documentations that are available at http://www.globusonline.eu.

Additional materials

The tests that have been carried out while creating this Cookbook are available at GO testing