Configuring the "Pool" Node

Process for configuring the "Pool" Node is started by running the LCG configuration script.

/opt/d-cache-lcg/install/dcache-lcg-install.sh pool -pool=/pool -admin=dev07.gridpp.rl.ac.uk

This scripts sets up much of the configuration files with default values. It also resolves some of the packaging problems that would occur if you configure the script by hand. Example include the path to Java and the initiation and shutdown scripts.

Problems can occur if this script is run multiple times. For this reason .*_done files are created in the directory "/opt/d-cache-lcg/install/"

#ls -al /opt/d-cache-lcg/install/
total 24
drwxr-xr-x    2 root     root         4096 Jan 10 16:36 .
drwxr-xr-x    3 root     root         4096 Jan  7 16:42 ..
-rw-r--r--    1 root     root            0 Jan 10 16:36 .dcache_done
-rwxr-xr-x    1 root     root         4611 Dec 16 23:41 dcache-lcg-install.sh
-rw-r--r--    1 root     root            0 Jan 10 15:41 .pnfs_done
-rwxr-xr-x    1 root     root         1431 Jan 10 11:25 postgres-conf.sh
-rw-r--r--    1 root     root         1284 Dec 17 00:00 README
#rm /opt/d-cache-lcg/install/.dcache_done
#rm /opt/d-cache-lcg/install/.pnfs_done

These files must be deleted to make the setup script more than once

/opt/d-cache-lcg/install/dcache-lcg-install.sh pool -pool=/pool
-admin=dev07.gridpp.rl.ac.uk 
less /pool/pool/setup 

The file "/opt/d-cache/config/dCacheSetup" contains much of the configuration of dCache, this file needs to be installed and modified by hand.

cat /opt/d-cache/config/dCacheSetup
#
#   Chose the Java VM and possible options
#
java="/usr/java/j2sdk1.4.2_04/bin/java "

#        "-Djava.security.krb5.realm=FNAL.GOV \
#        -Djava.security.krb5.kdc=krb-fnal-1.fnal.gov \
#        -Djavax.security.auth.useSubjectCredsOnly=false \
#       
-Djava.security.auth.login.config=/home/enstore/dcache-deploy/config/jgss.conf"
#java_options=""
#java_options="-server -Xmx400m -Xms400m"
java_options="-server \
-Xmx256m \
-XX:MaxDirectMemorySize=256m \
-Dorg.globus.tcp.port.range=20000,25000 "
#" -Dlog4j.configuration=/usr/d-cache/classes/log4j.properties"
#
#  The automatic classpath is :
#
#    ${classpath}          only if specified
#    ../..                 the dCache dev. path
#    ../classes/cells.jar  autoinstall path for cells
#    ../classes/dcache.jar autoinstall path for dCache
#
classpath=${thisDir}/../classes/javatunnel.jar:${thisDir}/../classes/glue/GLUE-STD.jar:${thisDir}/../classes/glue/dom.jar:${thisDir}/../classes/glue/servlet.jar:${thisDir}/../classes/glue/jnet.jar:${thisDir}/../classes/glue/jsse.jar:${thisDir}/../classes/glue/jsert.jar:${thisDir}/../classes/pgjdbc2.jar:${thisDir}/../classes/cog-url.jar:${thisDir}/../classes/globus/puretls.jar:${thisDir}/../classes/globus/cryptix.jar:${thisDir}/../classes/globus/log4j-1.2.8.jar:${thisDir}/../classes/globus/cog-jglobus.jar:${thisDir}/../classes/globus/cryptix-asn1.jar:${thisDir}/../classes/globus/cryptix32.jar:${thisDir}/../classes/globus/jce-jdk13-125.jar:${thisDir}/../classes/globus/jgss.jar:${thisDir}/../classes/globus/junit.jar:${ourHomeDir}/classes/dcache-srm.jar:${ourHomeDir}/classes/concurrent.jar
#
librarypath=${ourHomeDir}/lib
#
#   do not change the following three entries.
#   they are used from within the java vm.
#
images=${ourHomeDir}/docs/images
config=${ourHomeDir}/config
keyBase=${ourHomeDir}/config
billingDb=/opt/d-cache/billing
#
serviceLocatorHost=dev07.gridpp.rl.ac.uk
serviceLocatorPort=11111
#
# the service port numbers
# (telnet is only started if the
#  telnetPort line is uncommented, debug only)
#
portBase=22
adminPort=${portBase}223
#httpdPort=${portBase}88
httpdPort=${portBase}88
#telnetPort=${portBase}123
sshPort=${portBase}124
dCapPort=${portBase}125
ftpPort=${portBase}126
kerberosFtpPort=${portBase}127
dCapGsiPort=${portBase}128
gftpPort=${kerberosFtpPort}
# Set the path to SRM/GridFTP authentication file
kpwdFile=/opt/d-cache/etc/dcache.kpwd
# GFTP port range
clientDataPortRange=20000:25000
# SRM options
srmPort=8443
version=version1
# Set the SRM root path
pnfsSrmPath=/
# Set transfer buffer size
bufferSize=1048576
tcpBufferSize=1048576
# Set number of parallel streams per GridFTP transfer
parallelStreams=10
# Set the max. number of concurrent active SRM put/get/copy
transfers
maxActiveGet=1000
maxActivePut=1000
maxActiveCopy=1000
# Allow automatic creation of directories (SRM transfers only),
allow=true, disallow=false
RecursiveDirectoryCreation=true
AdvisoryDelete=true
# Enable (true) /disable (false) overwrite of existing files
truncate=false
#srmPort=${portBase}128
#spyPort=${portBase}222
#
# to be backward compatible
#
vspPort=${dCapPort}
#
# the pnfsServer actually autodetects the possible
# pnfs file systems. The ${defaultPnfsServer} is 
# chosen from the list and used as primary pnfs
# file-system. (currently the others are ignored). 
# the ${pnfs} variable can be used to override this
# mechanism.
#
pnfs=/pnfs/fs
defaultPnfsServer=dev07.gridpp.rl.ac.uk
#
# the cleaner (which can only run on the pnfs server
# machine itself autodetects the 'trash' directory.
# ${trash} overwrites the auto detect.
# (Do not uncomment the following line, but
#  simply set it to 'blank' if not needed.
#
trash=
#
#  the current ftp need pnfs to be mounted 
#  for some file exist checks and for the
#  directory listing. Therefore it needs to
#  know where pnfs is mounted. In future
#  the Ftp and dCap: daemons will ask the
#  pnfsService cell for help and the directory
#  listing is done by a DirListPool.
#
ftpBase=/pnfs/fs
#
# future use
#
scheme=development

The file "/opt/d-cache/config/dev06.gridpp.rl.ac.uk.poollist" should have a name and configuration for each pool node similar. Please note ce.epcc.ed.ac.uk is the fully qualified host-name and so the file name will differ on your system.

#cat /opt/d-cache/config/dev06.gridpp.rl.ac.uk.poollist
dev06.gridpp.rl.ac.uk_1  /pool/pool sticky=allowed recover-space
recover-control recover-anyway lfs=precious
tag.hostname=dev06.gridpp.rl.ac.uk

If you make any changes please restart "dcache-pool" using the service function.

/etc/init.d/dcache-pool restart
tail /opt/d-cache/log/dev06.gridpp.rl.ac.ukDomain.log -f 

if you get a line in the log file as follows:

02/11 15:32:39 Cell(lm@dev02Domain) : whatToDo : excpetion :
java.lang.Exception: Request timed out

Please note that the typo is from D-Cache.

It strongly suggests that the communication between the server and client is broken.

Please node that it can take some time for the internal system to initialise and connect to the other servers.

tail /opt/d-cache/log/dev06.gridpp.rl.ac.ukDomain.log -f 
ls /pool/pool/data/ 
less /pool/pool/data/0001000000000000000010F0

the "less" command should show the content of the file place in the dCache server.

/etc/rc.d/init.d/rhdb start
postgres psql /var/lib/pgsql/ 
mount -o intr,rw,noac,hard dev07.gridpp.rl.ac.uk:/pnfs /mnt/tmp
export
PATH=/usr/java/j2sdk1.4.2_01/bin\:$PATH\:/opt/d-cache/srm/bin
export JAVA_HOME=/usr/java/j2sdk1.4.2_01 
export GLOBUS_LOCATION=/opt/globus 
$GLOBUS_LOCATION/etc/globus-user-env.csh 
export X509_USER_PROXY=~/k5-ca-proxy.pem 
export SRM_PATH=/opt/d-cache/srm/ ls
/opt/globus/etc/globus-user-env.sh .
$GLOBUS_LOCATION/etc/globus-user-env.sh export
SRM_PATH=/opt/d-cache/srm/ 
srmcp file:////etc/group srm://dev07.gridpp.rl.ac.uk:8443/pnfs/gridpp.rl.ac.uk/data/
/opt/d-cache/bin/dcache-pool start
/opt/d-cache/bin/dcache-opt start
/opt/d-cache/bin/dcache-core start
/opt/pnfs.3.1.10/pnfs/bin/pnfs start 
/opt/d-cache/log/pnfs.log 
service dcache-opt stop 
links   http://localhost:2288 
ssh -l admin localhost -p 22223 -c blowfish 
less /opt/d-cache/log/dCache.log 
mount
/etc/init.d/dcache-core restart 
/etc/init.d/dcache-opt stop
mount /etc/init.d/dcache-core stop 
ps uax | grep pnfs
/etc/init.d/dcache-pool stop mount umount /pnfs/fs
/etc/init.d/rhdb stop /etc/init.d/pnfs start mount
/etc/init.d/dcache-core restart 
/etc/init.d/pnfs stop
iptables -vL ps auxwww | grep java
#cat /opt/d-cache/config/dev06.gridpp.rl.ac.uk.poollist 
dev06.gridpp.rl.ac.uk_1  /pool/pool sticky=allowed recover-space recover-control recover-anyway lfs=precious tag.hostname=dev06.gridpp.rl.ac.uk

Edit this file and put in the appropriate file names. This may be done partially automatically when a pool node connects.

#/etc/init.d/dcache-pool restart 
#mount -o intr,rw,noac,hard dev07.gridpp.rl.ac.uk:/pnfs /mnt/tmp
export
#ls /pool/pool/data/
0001000000000000000010F0  000100000000000000001110 
000100000000000000001130
#less /pool/pool/data/0001000000000000000010F0