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
|