Pnfs Preparation for dCache 1.4.x

dCache Global Namespace

The Pnfs Filesystem builds the meta data repository for the dCache. The interaction module is called PnfsManager Cell. The main actions are : Except for the last item all operations are based on the pnfsId which is unique within a pnfs server instance.

Configuration Details

To map the dCache world wide names to the local pnfs namespace, the PnfsManager needs some configuration information. We decided to put this information into Pnfs and not into the PnfsManager configuration to allow different PnfsManagers to use the same mapping. The provided information is : The dCache world wide name is constructed from this data as follows :
    /pnfs/<serverId>/<logicalName>/<pnfsPath>
    
serverName, serverId and serverRoots have to be provided in the global pnfs configuration directory. (See pnfs manual for further information about wormholes).

Examples

Basic setup
This example assumes that the name of the pnfs server is pnfs.desy.de (e.g. cdfensrv1.fnal.gov at Fermilab). The primary mountpoint of the server is
mount localhost:/fs /pnfs/fs
        
The server wants to have /pnfs/fs/usr/<path> to be exported by the dCache system (ftp,dCap) as /pnfs/desy.de/<path> .
pnfs.desy.de:/tmp > cd /pnfs/fs
pnfs.desy.de:/pnfs/fs > ls
README admin usr
pnfs.desy.de:/pnfs/fs > cat ".(id)(usr)"
000000000000000000001080
pnfs.desy.de:/pnfs/fs > cd ./admin/etc/config
pnfs.desy.de:/pnfs/fs/admin/etc/config > echo "pnfs.desy.de" >./serverName
pnfs.desy.de:/pnfs/fs/admin/etc/config > echo "desy.de" >./serverId
pnfs.desy.de:/pnfs/fs/admin/etc/config > echo "000000000000000000001080 ." >./serverRoot
pnfs.desy.de:/pnfs/fs/admin/etc/config > touch ".(fset)(serverName)(io)(on)"
pnfs.desy.de:/pnfs/fs/admin/etc/config > touch ".(fset)(serverId)(io)(on)"
pnfs.desy.de:/pnfs/fs/admin/etc/config > touch ".(fset)(serverRoot)(io)(on)"

If you are going to use the dccp tool with the dcache, then you must also add another file which specifies the available dcap doors. The machine name is the machine that the dcap door will be running on.  The port is the port it will be listening on.

pnfs.desy.de:/pnfs/fs/admin/etc/config > mkdir dCache
pnfs.desy.de:/pnfs/fs/admin/etc/config > cd dCache
pnfs.desy.de:/pnfs/fs/admin/etc/config > echo "dcachedoor1.desy.de:22125" > ./dcache.conf
pnfs.desy.de:/pnfs/fs/admin/etc/config > touch ".(fset)(dcache.conf)(io)(on)"
On starting the PnfsManager cell (after the dCache system is configured and ready to run), the log should report something like
cellCreated : PnfsManager
Starting PNFS autodetect
Server : desy.de(pnfs.desy.de)
RealMountPoint : 000000000000000000001040 /pnfs/fs
VirtualMountId : 000000000000000000001080
VirtualPnfsPath : /root/fs/usr
VirtualLocalPath : /pnfs/fs/usr
VirtualGlobalPath : /pnfs/desy.de
Using default pnfs server : pnfs.desy.de
In case the PnfsManager detects more than one mounted pnfs filesystem from different servers, it will chose one default pnfs server at random. So one needs to define 'defaultPnfsServer=<pnfsServerName>' in the 'config/dCacheSetup' file.