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-cDomainThe 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 * dCacheDomainThe 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 startThe 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.