Enhanced Cell Routing

Cells 1/0/4, using one central LocationManager only

Assuming we are running the central dCacheDomain, two router domains (router-1Domain and router-2Domain), and two clients (likely to be pools) per router domain and a set of clients directly connected to the dCacheDomain without intermediate router.

This might look as follows :

       dCacheDomain  --+----  router-1Domain  ----+----- client-net-1-aDomain
                       |                           |
                       |                           +----- client-net-1-bDomain
                       |
                       |
                       +----  router-2Domain  ----+------ client-net-2-aDomain
                       |                           |
                       |                           +----- client-net-2-bDomain                          
                       |
                       |
                       +----------------------------------client-main-aDomain
                       |
                       +----------------------------------client-main-bDomain
                       |
                       +----------------------------------client-main-cDomain
  
The corresponding lm.conf files would look as follows :
  #
  #     lm.conf
  #
  define dCacheDomain
  listen dCacheDomain
  #
  #  define route1, let it listen and let it connect to main domain
  #
  define router-1Domain
  listen router-1Domain
  connect router-1Domain  dCacheDomain
  #
  #  define route2, let it listen and let it connect to main domain
  #
  define router-2Domain
  listen router-2Domain
  connect router-2Domain  dCacheDomain
  #
  #  define clients for route-1 domain
  #
  connect client-net-1-aDomain router-1Domain
  defaultroute client-net-1-aDomain router-1Domain
  #
  connect client-net-1-bDomain router-1Domain
  defaultroute client-net-1-bDomain router-1Domain
  #
  #
  #  define clients for route-2 domain
  #
  connect client-net-2-aDomain router-2Domain
  defaultroute client-net-2-aDomain router-2Domain
  #
  connect client-net-2-bDomain router-2Domain
  defaultroute client-net-2-bDomain router-2Domain
  #
  #  defining wildcards for the rest (clients for dCacheDomain)
  #
  define *
  defaultroute * dCacheDomain
  connect * dCacheDomain
  
The batchfile for a router :
   set printout default 3
   set printout CellGlue none
   onerror shutdown
   #
   check -strong setupFile
   #
   copy file:${setupFile} context:setupContext
   #
   #  import the variables into our $context.
   #  don't overwrite already existing variables.
   #
   import context -c setupContext
   #
   #   Make sure we got what we need.
   #
   check -strong serviceLocatorHost serviceLocatorPort
   #
   create dmg.cells.services.RoutingManager  RoutingMgr
   #
   #   The LocationManager Part
   #
   create dmg.cells.services.LocationManager lm \
        "${serviceLocatorHost} ${serviceLocatorPort} "
  
  
Router domains must have exactly the name as decribed in the lm.conf file except for the Domain extention. So, the batchfilename for the router-2Domain must be router-2.batch. Make sure you run the 'initPackage.sh' script in the jobs directory to create the necessary links. Starting the router is done as it would be done for any other domain.
     cd /.../jobs
     ./router-1 start
  

The advantage of having just one LocationManager (lm) running, is that the setup of all clients can still be identical. (locationManagerHost and port). The distribution of clients to routers is done centrally. In the example above, the setup is defined in the lm.conf files, which is actually not convenient because it would essentially mean that for adding new routers or clients for routers the LocationManager must be restarted and with that the whole system. But starting the LocationManager with the telnet option or including the LocationManager into the cell domain network would allow to add/remove entries dynamically while the system is running.


© dCache.ORG ; Authors : Patrick Fuhrmann; Last Update $Date: 2005/08/10 15:29:35 $