Print

Print


Hi,

You don't need pnfs installed on the pool node. There should only be one pnfs running in your entire dcache instance.
What you need to do is nfs mount the pnfs service from your admin node on the pool node. 

On the admin node, go to  /pnfs/fs/admin/etc/exports and copy the file 127.0.0.1 to a file that has the ip address of your pool node as the name, then cd into the trusted directory and do the same.

Then on the pool node add something like
gw04.hep.ph.ic.ac.uk:/fs /pnfs/fs             nfs     hard,intr,rw,noac,auto 0 0
to your /etc/fstab, create the /pnfs/fs directory, mount it and create the symlink

Then, to run a gridftp door on your pool node:
Set the /opt/d-cache/etc/door_config file on the pool node to 

ADMIN_NODE     gw04.hep.ph.ic.ac.uk

door          active
--------------------
GSIDCAP         no
GRIDFTP         yes
SRM             no

and then run /opt/d-cache/install/install_doors.sh
and then start dcache-opt.

dCache uses the name of things to work out which one to use. so if you have two gridftp doors named GFTP then the one that started last gets used. What the install_doors script does is change the name to something more unique (GFTP-<hostname -s> basically) so you don't get name collisions. You can change the names yourself in the /opt/d-cache/config/*.batch files

Derek




-----Original Message-----
From: GRIDPP2: Deployment and support of SRM and local storage management [mailto:[log in to unmask]]On Behalf Of Mona Aggarwal
Sent: 17 May 2005 14:16
To: [log in to unmask]
Subject: dCache- clients transfer files



Hi all,

At IC we have the following dCache nodes:

admin_node   --- gw04.hep.ph.ic.ac.uk
pool_node    --- gw03.hep.ph.ic.ac.uk

We want to configure the pool node such that clients transfer 
files directly to/from the pool node, and not via the admin node.

We installed pnfs and dcache-opt rpms on the pool node
and started pnfs and dcache-opt (including gsiftp) services.


> /opt/pnfs.3.1.10/pnfs/install/pnfs-install.sh


NB. There was no pnfs configuration (this seems to be part of the 
dcache-core package, which of course we did not want to install on the 
pool node!) so:

 >/sbin/service pnfs start
 >pnfs unrecognised service

so we used

> /opt/pnfs.3.1.10/pnfs/bin/pnfs start


then we manually created the

/pnfs/fs/usr/data/dteam

directory and set the ownership and permissions and

 > ln -s /pnfs/fs/usr /pnfs/hep.ph.ic.ac.uk

We also started dcahe-opt service on the pool node


>[root@gw03 root]# /opt/d-cache/bin/dcache-opt start
>Starting dcache services: Starting gridftpdoorDomain  6 5 4 3 2 1 0 Done (pid=30168)
>Starting gsidcapdoorDomain  6 5 4 3 2 1 0 Done (pid=30250)
>Starting srmDomain  6 5 4 3 2 1 0 Done (pid=30333)


Then we conducted tests with srmcp and following are our observations.

1. If pnfs service is not running on the pool_node then it is not
   selected by the dCache as a TURL. Admin_node is selected
   as a TURL by default and srmcp is succesfull.

2. If pnfs service is running on the pool_node then it fails, if the TURL is selected through it. 
   TURL=gsiftp://gw03.hep.ph.ic.ac.uk:2811///dteam/testfile1721

// Error message

-------------------------------------------------------------------------------------------------

[root@gw04 root]# /opt/d-cache/srm/bin/srmcp -debug=true -x509_user_proxy=./mtmproxy file:////root/testfile srm://gw04.hep.ph.ic.ac.uk:8443/pnfs/hep.ph.ic.ac.uk
/data/dteam/testfile1721
SRM Configuration:
        debug=true
        gsissl=true
        help=false
        pushmode=false
        userproxy=true
        buffer_size=2048
        tcp_buffer_size=0
        config_file=/root/.srmconfig/config.xml
        glue_mapfile=/opt/d-cache/srm/conf/SRMServerV1.map
        webservice_path=srm/managerv1.wsdl
        webservice_protocol=https
        gsiftpclinet=globus-url-copy
        protocols_list=http,gsiftp
        save_config_file=null
        srmcphome=/opt/d-cache/srm
        urlcopy=/opt/d-cache/srm/bin/url-copy.sh
        x509_user_cert=/root/k5-ca-proxy.pem
        x509_user_key=/root/k5-ca-proxy.pem
        x509_user_proxy=./mtmproxy
        x509_user_trusted_certificates=/root/.globus/certificates
        retry_num=20
        retry_timeout=10000
        wsdl_url=null
        use_urlcopy_script=false
        connect_to_wsdl=false
        from[0]=file:////root/testfile
        to=srm://gw04.hep.ph.ic.ac.uk:8443/pnfs/hep.ph.ic.ac.uk/data/dteam/testfile1721

Tue May 17 13:49:10 BST 2005: starting SRMPutClient
Tue May 17 13:49:10 BST 2005: SRMClient(https,srm/managerv1.wsdl,true)
Tue May 17 13:49:10 BST 2005: connecting to server
Tue May 17 13:49:10 BST 2005: connected to server, obtaining proxy
SRMClientV1 : connecting to srm at httpg://gw04.hep.ph.ic.ac.uk:8443/srm/managerv1
Tue May 17 13:49:13 BST 2005: got proxy of type class org.dcache.srm.client.SRMClientV1
SRMClientV1 :   put, sources[0]="/root/testfile"
SRMClientV1 :   put, dests[0]="srm://gw04.hep.ph.ic.ac.uk:8443/pnfs/hep.ph.ic.ac.uk/data/dteam/testfile1721"
SRMClientV1 :   put, protocols[0]="http"
SRMClientV1 :   put, protocols[1]="dcap"
SRMClientV1 :   put, protocols[2]="gsiftp"
SRMClientV1 :  put, contacting service httpg://gw04.hep.ph.ic.ac.uk:8443/srm/managerv1
doneAddingJobs is false
copy_jobs is empty
Tue May 17 13:49:17 BST 2005:  srm returned requestId = -2147483536
Tue May 17 13:49:17 BST 2005: sleeping 1 seconds ...
Tue May 17 13:49:19 BST 2005: FileRequestStatus with SURL=srm://gw04.hep.ph.ic.ac.uk:8443/pnfs/hep.ph.ic.ac.uk/data/dteam/testfile1721 is Ready
Tue May 17 13:49:19 BST 2005:        received TURL=gsiftp://gw03.hep.ph.ic.ac.uk:2811///dteam/testfile1721
doneAddingJobs is false
copy_jobs is not empty
copying CopyJob, source = file:////root/testfile destination = gsiftp://gw03.hep.ph.ic.ac.uk:2811///dteam/testfile1721
GridftpClient: connecting to gw03.hep.ph.ic.ac.uk on port 2811
GridftpClient: gridFTPClient tcp buffer size is set to 1048576
GridftpClient: gridFTPWrite started, source file is java.io.RandomAccessFile@140984b destination path is //dteam/testfile1721
GridftpClient: parallelism: 10
GridftpClient: adler 32 for file java.io.RandomAccessFile@140984b is 82af088a
GridftpClient: waiting for completion of transfer
GridftpClient: gridFtpWrite: starting the transfer in emode to //dteam/testfile1721
GridftpClient: DiskDataSink.close() called

-----------------------------------------------------------------------------------


The client then hangs for a large time before failing with Java errors 
saying no such file or directory for /pnfs/hep.ph.ic.ac.uk/data/dteam 
(which is why we manually created it on gw03).

//java error

-----------------------------------------------------------------------------------
GridftpClient: DiskDataSink.close() called
org.globus.ftp.exception.ServerException: Server refused performing the request. Custom message:  (error code 1) [Nested exception message:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam].  Nested exception is org.globus.ftp.exception.UnexpectedReplyCodeException:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam
        at org.globus.ftp.vanilla.TransferMonitor.run(TransferMonitor.java:167)
GridftpClient:  transfer exception
org.globus.ftp.exception.ServerException: Server refused performing the request. Custom message:  (error code 1) [Nested exception message:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam].  Nested exception is org.globus.ftp.exception.UnexpectedReplyCodeException:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam
        at org.globus.ftp.vanilla.TransferMonitor.run(TransferMonitor.java:167)
GridftpClient: closing client : org.dcache.srm.util.GridftpClient$FnalGridFTPClient@1a1399
GridftpClient: closed client
copy failed with the error
org.globus.ftp.exception.ServerException: Server refused performing the request. Custom message:  (error code 1) [Nested exception message:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam].  Nested exception is org.globus.ftp.exception.UnexpectedReplyCodeException:  Custom message: Unexpected reply: 553 /dteam/testfile1721: No such file or directory. : /dteam
        at org.globus.ftp.vanilla.TransferMonitor.run(TransferMonitor.java:167)
 try again
sleeping for 30000 before retrying
copying CopyJob, source = file:////root/testfile destination = gsiftp://gw03.hep.ph.ic.ac.uk:2811///dteam/testfile1721
GridftpClient: connecting to gw03.hep.ph.ic.ac.uk on port 2811
GridftpClient: gridFTPClient tcp buffer size is set to 1048576
GridftpClient: gridFTPWrite started, source file is java.io.RandomAccessFile@18e8541 destination path is //dteam/testfile1721
GridftpClient: parallelism: 10
GridftpClient: adler 32 for file java.io.RandomAccessFile@18e8541 is 82af088a
GridftpClient: waiting for completion of transfer
GridftpClient: gridFtpWrite: starting the transfer in emode to //dteam/testfile1721
GridftpClient: DiskDataSink.close() called

-----------------------------------------------------------------------------------

We're not completely clear when/how gw03 selected over gw04 for the 
TURL: if pnfs is not running on one, the other is always selected, but 
if pnfs is running on both the choice seems almost to depend on which 
service was last restarted!

Any suggestions?

Thanks,

Mona & Owen

===========================================================
Imperial College London
High Energy Physics Department
The Blackett Laboratory
Prince Consort Road, London, SW7 2BW