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.
- Reading file metadata e.g.: uid, gid, permissions.
- Reading Storage Manager information e.g.: storageClass, BitfileId and cacheClass.
- Reading and updating dCache file specific statistical information in Pnfs level II.
- Reading and modifying dCache specific steering bits (Sticky Bit).
- Reading and updating pool location information.
- Mapping dCache world wide names to Pnfs local names.
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 :
- The name (DNS) of the pnfs server.
- The logical name of the pnfs instance (serverId). A pnfs instance can be distributed amoung serveral servers as long as the pnfsIds don't overlap.
- The access points (serverRoot) of the pnfs instance and the logical name of the corresponding access point.
/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).
Basic setupThis 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 isOn starting the PnfsManager cell (after the dCache system is configured and ready to run), the log should report something likemount localhost:/fs /pnfs/fsThe 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/fsIf 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 > 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)"
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)"cellCreated : PnfsManagerIn 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.
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