Monday, September 14, 2009

Blackboard - Installing Blackboard Tomcat Cluster

1. Modify the bb-config.properties and enable the tomcat cluster as shown below.

#####################################################################
## run pushconfigupdates after modifying these properties ##
#####################################################################

bbconfig.tomcat.cluster.enable=true
bbconfig.tomcat.debug.enable=true

2. Run PushConfigUpdates.sh and then execute the InstallCluster.sh script in /usr/local/blackboard/tools/admin

[root@bb admin]# ./InstallCluster.sh

------- Cluster Management... -----------
Using JAVA_HOME: /usr/local/java


tomcat.install.cluster:
     [echo] Please provide the following information for cluster configuration:
Cluster Id            (Example:    1): 
clusterA
Server shutdown port  (Example: 8005): 
9005
JK Connector port     (Example: 8009): 
9009
Cluster listener port (Example: 4000): 
5000
     [copy] Copying 1 file to /usr/local/blackboard/apps/tomcat/cluster/clusterA/conf

install.cluster:
     [copy] Copying 4 files to /usr/local/blackboard/apps/tomcat/cluster/clusterA/bin
     [copy] Copying 2 files to /usr/local/blackboard/apps/tomcat/cluster/clusterA/conf
     [copy] Copying 2 files to /usr/local/blackboard/apps/tomcat/cluster/clusterA/conf
     [copy] Copying 1 file to /usr/local/blackboard/apps/tomcat/conf/jk
     [copy] Copying 2 files to /usr/local/blackboard/config/tomcat/conf/jk
    [mkdir] Created dir: /usr/local/blackboard/apps/tomcat/cluster/clusterA/logs
    [mkdir] Created dir: /usr/local/blackboard/apps/tomcat/cluster/clusterA/temp

-impl.set.ownership:
     [echo] chown -R bbuser /usr/local/blackboard/apps/tomcat
     [echo] chown bbuser /usr/local/blackboard/apps/tomcat
     [echo] ln -s /usr/local/blackboard/apps/tomcat/cluster/clusterA/logs /usr/local/blackboard/logs/tomcat/clusterA

-impl.set.ownership:
     [echo] chown -R bbuser /usr/local/blackboard/logs/tomcat/clusterA
     [echo] chown bbuser /usr/local/blackboard/logs/tomcat/clusterA
 3. Start Blackboard Services

[root@bb admin]# ./ServiceController.sh services.start
Using JAVA_HOME: /usr/local/java


-service.wrapper:
 [10:42:09] Starting Tomcat service...
     [exec] Using Security Manager
 [10:42:11] Waiting for Tomcat service startup to complete...
 [10:44:12] ... Tomcat service ready.

-service.wrapper:
 [10:44:13] Starting Tomcat cluster clusterA service...
     [exec] Using Security Manager
 [10:44:15] Waiting for Tomcat cluster clusterA service startup to complete...
 [10:46:00] ... Tomcat cluster clusterA service ready.

-service.start:
     [echo] Collaboration service is already running under PID 3127!
     [echo] Run ServiceController "services.status" command to inspect services status.

-apache.wrapper:
     [echo] Starting mod_perl Apache...
     [exec] /usr/local/blackboard/apps/modperl/apachectl start: httpd started

-apache.wrapper:
     [echo] Starting main Apache...
     [exec] /usr/local/blackboard/apps/httpd/apachectl start: httpd started


3. Check Cluster Logs
[root@bb login]# cd /usr/local/blackboard/apps/tomcat/cluster/clusterA/logs
[root@bb logs]# ls -lht
total 32K

-rw-r--r-- 1 bbuser root 13K Aug  7 10:45 catalina.out
-rw-r--r-- 1 bbuser root 14K Aug  7 10:45 catalina-log.txt
[root@bb logs]# tail -f catalina.out
  Xythos.StorageServer.FileTypesWeGzip=.txt,.htm,.html,.doc,.,application/msword,text/*
  Xythos.StorageServer.MaxFileSizeToGzip=4000000
  Xythos.StorageServer.MinFileSizeToGzip=1000

Hosted Virtual Servers
  bbcms  (default)



==> Blackboard cluster clusterA ready to accept requests (startup took 99 seconds).

Restarting Blackboard Tomcat Cluster

To restart, use
blackboard_startup.sh in
/usr/local/blackboard/apps/tomcat/cluster/bin

Cluster Configuration

 

 

Apache Max Clients = Number of Tomcat Nodes * Tomcat Max Threads

apache.httpd.maxclients = 3 * 200 = 600
1 CPU Core per tomcat instance.
 
 
JK_Connector.pool_size = 1 if on Unix 
or = tomcat_max_threads if on Windows.

For example...if a client sets up (3) nodes (root plus two) on the same physical
server and each JVM is configured to support 200 maxthreads in Tomcat via the  
bbconfig.appserver.maxthreads parameter. Then the bbconfig.jk_connector.pool_size
would still be set to 200. On Linux or Solaris for the same scenario, it would
be set to 1 regardless of the number of nodes.
 

Tomcat Cluster Session Replication

Blackboard Tomcat Cluster Replication uses the SimpleTcpCluster in-memory replication which ships with Tomcat 5.
LoadBalance Type = lb ( weighted round-robin with sticky sessions ) loadbalance.balance_workers = root,

 

 

No comments:

Post a Comment