Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 3 KB

cookbook-multiple-pnfsmanagers.md

File metadata and controls

59 lines (41 loc) · 3 KB

Running dCache with multiple pnfs and PnfsManagers

Tigran Mkrtchyan This chapter contains solutions for several running one dCache instance with multiple pnfses. Due to missinterpretation of serverId and serverName in erlier versions, this feature is available in dCache release 1.6.7 or later.

Multiple pnfs instances support based on the pnfsid with domain and convinied pnfs path. A pnfsid contains two parts - ID and serverID:

000000000000000000000000.myserver.mydomain

Basicly, serverID is never used. While a pnfsID is unique only in the pnfs instance, ID+serverID uniueq as long as serverID is unique. This makes possible to destingwish between requsest to different pnfs instances.

Path based redirection based on convinied paths:

/pnfs/myserver.mydomain/....

To enable multiple pnfses suport you need to start the PnfsManagerBroker cell and declare it as a PnfsManager. The main function of PnfsManagerBroker is a message redirection based on pnfs id of request or path. The domain invormation of a message, which sented to the domain PnfsManager, omited. Never the less all replyes returned to orign of a request become the domain.

       client(door)          => PnfsManager( broker ) : create /pnfs/mydomain/file0001
       PnfsManager( broker ) => PnfsManager-mydomain  : create /pnfs/mydomain/file0001
       PnfsManager-mydomain  => PnfsManager( broker ) : ID = 000000000000000000000000
       PnfsManager( broker ) => client(door)          : ID = 000000000000000000000000.mydomain

       client(door)          => PnfsManager( broker ) : stat 000000000000000000000000.mydomain
       PnfsManager( broker ) => PnfsManager-mydomain  : stat 000000000000000000000000
       PnfsManager-mydomain  => PnfsManager( broker ) : size=...; mdate=...;uid=....
       PnfsManager( broker ) => client(door)          : size=...; mdate=...;uid=....
       
       client(door)          => PnfsManager( broker ) : cachelocation /pnfs/mydomain/file0001
       PnfsManager( broker ) => PnfsManager-mydomain  : cachelocation /pnfs/mydomain/file0001
       PnfsManager-mydomain  => PnfsManager( broker ) : pool=poola, ID = 000000000000000000000000
       PnfsManager( broker ) => client(door)          : pool=poola, ID = 000000000000000000000000.mydomain

As soon as

#
# Multiple PnfsManagers
#
# forwarder
create diskCacheV111.namespace.PnfsManagerBroker PnfsManager

# for desy.de
create diskCacheV111.namespace.PnfsManagerV3 PnfsManager-pnfs01.desy.de \
       "diskCacheV111.util.OsmInfoExtractor \
        -enableLargeFileSimulation \
        -storeFilesize  \
        -cmRelay=broadcast \
        -threads=4 \
        -default=pnfs01.desy.de\
        -defaultPnfsServer=pnfs01.desy.de \
        -pnfs=/pnfs/pnfs01.desy.de \
        -namespace-provider=diskCacheV111.namespace.provider.BasicNameSpaceProviderFactory \
        ..... \
       "