Running GroupWise agents in non-protected address space on a NetWare Cluster

  • 7006193
  • 03-Jun-2010
  • 27-Apr-2012

Environment

Novell GroupWise 8
Novell NetWare 6.5 Support Pack 7
Novell NetWare 6.5 Support Pack 8

Situation

Here are some guidelines for running GroupWise agents in non-protected address space on a NetWare Cluster:

Resolution

Running GroupWise agents in ring 0 ( kernel mode ) on a NetWare cluster can provide better stability than running the agents in Protected Address space.  The main purpose of running GroupWise agents in protected address spaces in a cluster is to enable migration and migration back to original node from failover of any individual agent without unloading other agents with the same name running in the same node such as gwpoa.nlm. We can achieve the same capabilities as above when running in ring 0 by creating unique instance of each agent.  For example, after the installation of the software, copy and rename gwpoa.nlm to gwpoa1.nlm  and gwpoa2.nlm.  Copy and rename gwpoa.xml to gwpoa1.xml and gwpoa2.xml.  By loading gwpoa1.nlm and gwpoa2.nlm, it will create two unique instances in the kernel.  By loading gwpoa1.nlm and gwpoa2.nlm, it will create two unique instances in the kernel.  For any other agent, such as GWMTA, GWIA or GWINER, which requires running more than one instance in the cluster at the same time, copy and rename the agent NLM module to a unique name, such as gwmta1.nlm and gwmta1.xml and load them by the unique name.  The main objective of running GWDVA is to isolate the process of converting documents in a separate protected address.  To remove the requirement of running GWDVA, you can add the startup switch, /gwdvadisable, in the GWINTER startup file.  To prevent the POA from bringing up GWDCA in protected address space, you can add either the /nodca or the /noqf startup switches to the POA startup file.  you can run a separate Windows version of the POA on a Windows desktop or server to perform the Quickfinder Indexing function and the GWDCA functions.
 
The example below is based on a two nodes cluster with two cluster-enabled shared volume configured.  GroupWise Agents software are recommended to be installed on the same cluster-enabled share volume as the data resides.  GW is the cluster name, GW_POOL1 and GW_POOL2 are two cluster-enabled shared pool.  GW_VOL1 and GW_VOL2 are two shared volume created under these pools respectively.  When you cluster-enable a pool, a virtual server object such as GW_POOL1_SERVER in this example is automatically created in Novell eDirectory.
 
Sample loading resource script when running in protected address space for cluster-enabled resource GW_POOL1_SERVER:
nss /poolactivate=GW_POOL1
mount GW_VOL1 VOLID=254
clustercvsbind add GW_POOL1_SERVER 151.155.141.1
NUPD add GW_POOL1_SERVER 151.155.141.1
add secondary ipaddress 151.155.141.1
 
search add GW_VOL1:\system
load address space=GWPO1 gwpoa @po1.poa
load address space=GWDOM1 gwmta @domain1.mta
protection restart GWPO1
protection restart GWDOM1
 
Sample loading resource script when running in protected address space for cluster-enabled resource GW_POOL2_SERVER:
nss /poolactivate=GW_POOL2
mount GW_VOL2 VOLID=253
clustercvsbind add GW_POOL2_SERVER 151.155.141.2
NUPD add GW_POOL2_SERVER 151.155.141.2
add secondary ipaddress 151.155.141.2
 
search add GW_VOL2:\system
load address space=GWPO2 gwpoa @po2.poa
load address space=GWGWIA gwia @gwia.cfg
protection restart GWPO2
protection restart GWGWIA
 
The corresponding unloading resource script when running in protected address space for GW_POOL1_SERVER:
unload address space=GWPO1
unload address space= GWDOM1
delay 10
del secondary ipaddress 151.155.141.1
NUPD DEL GW_POOL1_SERVER 151.155.141.1
CLUSTER CVSBIND DEL GW1_POOL1_SERVER 151.155.141.1
NSS /POOLDEACTIVATE=GW_VOL1 /overridetype=question
 
The corresponding unloading resource script when running in protected address space for GW_POOL2_SERVER:
unload address space=GWPO2
unload address space= GWGWIA
delay 10
del secondary ipaddress 151.155.141.2
NUPD DEL GW_POOL1_SERVER 151.155.141.2
CLUSTER CVSBIND DEL GW1_POOL1_SERVER 151.155.141.2
NSS /POOLDEACTIVATE=GW_VOL2 /overridetype=question
 
Using the new approach to run the agents in ring 0, the corresponding loading resource script will look as below:
 
(for GW_POOL1_SERVER)
nss /poolactivate=GW_POOL1
mount GW_VOL1 VOLID=254
clustercvsbind add GW_POOL1_SERVER 151.155.141.1
NUPD add GW_POOL1_SERVER 151.155.141.1
add secondary ipaddress 151.155.141.1
 
search add GW_VOL1:\system
gwpoa1 @po1.poa
gwmta @dom1.mta
 
(for GW_POOL2_SERVER)
nss /poolactivate=GW_POOL2
mount GW_VOL2 VOLID=253
clustercvsbind add GW_POOL2_SERVER 151.155.141.2
NUPD add GW_POOL2_SERVER 151.155.141.2
add secondary ipaddress 151.155.141.2
 
search add GW_VOL2:\system
gwpoa2 @po2.poa
gwia @gwia.cfg


 
The unloading resource script for GW_POOL1_SERVER:
unload gwpoa1
unload gwmta
delay 10
del secondary ipaddress 151.155.141.1
NUPD DEL GW_POOL1_SERVER 151.155.141.1
CLUSTER CVSBIND DEL GW1_POOL1_SERVER 151.155.141.1
NSS /POOLDEACTIVATE=GW_VOL1 /overridetype=question

The unloading resource script for GW_POOL2_SERVER:
unload gwpoa2
unload gwia
delay 10
del secondary ipaddress 151.155.141.2
NUPD DEL GW_POOL1_SERVER 151.155.141.2
CLUSTER CVSBIND DEL GW1_POOL1_SERVER 151.155.141.2
NSS /POOLDEACTIVATE=GW_VOL2 /overridetype=question