You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2008/09/29 22:26:14 UTC
svn commit: r700239 - in /geronimo/sandbox/failover: README.txt all.sh
cycleservers.sh deploy.gsh deploy.sh run.sh servers.sh setup.sh
svn-commit.tmp~
Author: dblevins
Date: Mon Sep 29 13:26:13 2008
New Revision: 700239
URL: http://svn.apache.org/viewvc?rev=700239&view=rev
Log:
Second rev of the failover setup
Added:
geronimo/sandbox/failover/all.sh (with props)
geronimo/sandbox/failover/deploy.gsh
geronimo/sandbox/failover/servers.sh (with props)
geronimo/sandbox/failover/svn-commit.tmp~
Removed:
geronimo/sandbox/failover/deploy.sh
geronimo/sandbox/failover/run.sh
geronimo/sandbox/failover/setup.sh
Modified:
geronimo/sandbox/failover/README.txt
geronimo/sandbox/failover/cycleservers.sh
Modified: geronimo/sandbox/failover/README.txt
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/README.txt?rev=700239&r1=700238&r2=700239&view=diff
==============================================================================
--- geronimo/sandbox/failover/README.txt (original)
+++ geronimo/sandbox/failover/README.txt Mon Sep 29 13:26:13 2008
@@ -54,45 +54,47 @@
Here's what the do:
- setup.sh
-
- Unpacks the vanilla
- geronimo-tomcat6-javaee5-2.2-SNAPSHOT-bin.tar.gz binary then
- copies it four times and updates the port offset on each of the
- copies so that they don't conflict. Note that if you do split
- these servers onto separate machines, you will need to update the
- "ServerHostname" property in
- var/config/config-substitutions.properties to something other than
- 0.0.0.0. The Geronimo 2.2 snapshot binary image is a build of the
- current Geronimo 2.2 trunk and is not a customized build. Anyone
- who builds Geronimo 2.2 trunk will have the same code.
-
- deploy.sh
-
- Copies the load-beans app into the hot deploy directory of each
- the server copies. This script is called from setup.sh and does
- not need to be run unless you feel like experimenting with the
- sample code and want an easy way to update the app on all the
- servers.
-
- run.sh
-
- Starts each of the server copies giving them a bit of time to
- start. The it starts the Grinder Console, waits a bit then starts
- the Grinder Agent which will connect to the Grinder Console. Once
- that is up you can click the little icon at the top left that
- looks like a "play" button. This will start hammering on the
- cluster. Note that the Grinder Agent and Grinder Console can be
- run on separate machines which will give you better stats that
- don't include overhead of the client and console. Grinder has
- some pretty cool options, definitely recommended to check them
- out.
+ all.sh
+ This unpacks and runs everything.
+ - unpacks and starts the farm controller server
+ - runs servers.sh start to unpack and start the farm nodes
+ - runs the deploy.gsh gshell script against the farm controller server
+ to deploy the load-beans app and distribute it to the farm
+ - starts grinder. You will need to actually start the run from the console.
+
+ deploy.gsh
+ A gshell script that deploys and distributes the load-beans app.
cycleservers.sh
+ This must be run in the geronimo-plugin-farm-node-2.2-SNAPSHOT directory.
A simple utility that makes the whole repeated killing and
starting of servers automated so you can let it run for a few
hours unattended to see how things look over a prolonged period.
- It kills a server, waits for a minute, starts the server again,
- waits a minute, then moves on to the next server. It does this
- infinitely till the script is killed.
+ It kills a server, waits 10 seconds, starts the server again,
+ waits 10 seconds, then moves on to the next server. It does this
+ infinitely till the script is killed. (this is slightly different from the previous
+ version, it is adapted to the multiple servers on one installation setup)
+
+-- Servers --
+
+Two servers are included.
+
+The geronimo-plugin-farm-node is a server that only has the bits needed to
+install more stuff from the plugin controller. When the load-beans app is
+installed, everything needed to run the app is also pulled down and installed
+from the appropriate geronimo plugin repository, in this case the controller
+server. This server is built as part of a normal geronimo build.
+
+The geronimo-tomcat-farm-controller server is a custom assembly that includes:
+-- everything in a normal geronimo-tomcat-javaee5 server
+-- the plugin-farm controller plugin
+-- a customization that makes the plugin farm controller use itself as the plugin repository.
+While its very easy to install these into a standard server its even easier and more
+automated to simply use a custom server assembly. This one is under
+https://svn.apache.org/repos/asf/geronimo/sandbox/djencks/assemblies
+
+-- Plugin farming --
+There's a little bit of documentation on the plugin farm stuff under
+http://cwiki.apache.org/confluence/display/GMOxDOC22/Plugin+based+Farming
+
Added: geronimo/sandbox/failover/all.sh
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/all.sh?rev=700239&view=auto
==============================================================================
--- geronimo/sandbox/failover/all.sh (added)
+++ geronimo/sandbox/failover/all.sh Mon Sep 29 13:26:13 2008
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+echo unpack controller server
+tar xzf geronimo-tomcat-farm-controller-2.2-SNAPSHOT-bin.tar.gz
+
+echo start controller server in background
+./geronimo-tomcat-farm-controller-2.2-SNAPSHOT/bin/gsh geronimo/start-server >controller.log &
+
+echo wait 20 seconds for controller to start
+sleep 20
+
+echo unpack and start nodes
+./servers.sh start
+
+
+echo wait 20 seconds for nodes to start
+sleep 20
+
+echo deploy the app, distribute it to the farm
+./geronimo-tomcat-farm-controller-2.2-SNAPSHOT/bin/gsh<deploy.gsh
+
+echo start grinder
+./grinder-3.0.1/bin/console &
+
+sleep 5
+
+./grinder-3.0.1/bin/agent
+
+# you need to start the workers from the grinder console
Propchange: geronimo/sandbox/failover/all.sh
------------------------------------------------------------------------------
svn:executable = *
Modified: geronimo/sandbox/failover/cycleservers.sh
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/cycleservers.sh?rev=700239&r1=700238&r2=700239&view=diff
==============================================================================
--- geronimo/sandbox/failover/cycleservers.sh (original)
+++ geronimo/sandbox/failover/cycleservers.sh Mon Sep 29 13:26:13 2008
@@ -1,19 +1,32 @@
#!/bin/bash
+(cd geronimo-plugin-farm-node-2.2-SNAPSHOT
+
while true; do
- for server in server-*; do
+ for server in server*; do
+
+ pid=$(ps ax | grep "gshell-bootstrap.jar geronimo/start-server -s $server" | grep -v 'grep' | cut -c 1-6)
- echo "Killing $server"
- kill -9 $(ps ax | grep "javaagent.*$server" | grep -v 'grep' | cut -c 1-6)
+ if [ $pid ] ; then
+ echo "Killing gshell for $server at pid $pid"
+ kill -9 $pid
+ fi
+ pid=$(ps ax | grep "javaagent.*$server" | grep -v 'grep' | cut -c 1-6)
- sleep 60
+ if [ $pid ] ; then
+ echo "Killing $server at pid $pid"
+ kill -9 $pid
+ fi
- echo "Starting $server"
+ sleep 10
- ./$server/bin/startup.sh > /dev/null
+ s=${server/server/}
+ echo "Starting $server id $s"
+ ./bin/gsh geronimo/start-server -s ${server} -G config.substitution.PortOffset=${s}0 >${s}.log &
- sleep 60
+ sleep 10
done
done
+)
\ No newline at end of file
Added: geronimo/sandbox/failover/deploy.gsh
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/deploy.gsh?rev=700239&view=auto
==============================================================================
--- geronimo/sandbox/failover/deploy.gsh (added)
+++ geronimo/sandbox/failover/deploy.gsh Mon Sep 29 13:26:13 2008
@@ -0,0 +1,3 @@
+#gshell script
+deploy/deploy load-beans/target/load-beans-1.0.jar load-beans/plan.xml --username system --password manager
+deploy/farm add -f cluster1 -l pluginList1 -a org.superbiz/load-beans/1.0/car
Added: geronimo/sandbox/failover/servers.sh
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/servers.sh?rev=700239&view=auto
==============================================================================
--- geronimo/sandbox/failover/servers.sh (added)
+++ geronimo/sandbox/failover/servers.sh Mon Sep 29 13:26:13 2008
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+BASE=geronimo-plugin-farm-node-2.2-SNAPSHOT
+if [ "$1" = "stop" ] ; then
+(
+ cd $BASE
+ for server in server*; do
+ pid=$(ps ax | grep "gshell-bootstrap.jar geronimo/start-server -s $server" | grep -v 'grep' | cut -c 1-6)
+
+ if [ $pid ] ; then
+ echo "Killing gshell for $server at pid $pid"
+ kill -9 $pid
+ fi
+ pid=$(ps ax | grep "javaagent.*$server" | grep -v 'grep' | cut -c 1-6)
+
+ if [ $pid ] ; then
+ echo "Killing $server at pid $pid"
+ kill -9 $pid
+ fi
+ done
+)
+fi
+
+rm -rf $BASE
+tar xzf $BASE-bin.tar.gz
+(
+cd $BASE
+
+for s in {1..5}
+do
+ sn="server${s}"
+ mkdir ${sn}
+ cp -r var ${sn}/
+ if [ "$1" = "start" ] ; then
+ ./bin/gsh geronimo/start-server -s ${sn} -G config.substitution.PortOffset=${s}0 >${s}.log &
+ fi
+done
+)
+
Propchange: geronimo/sandbox/failover/servers.sh
------------------------------------------------------------------------------
svn:executable = *
Added: geronimo/sandbox/failover/svn-commit.tmp~
URL: http://svn.apache.org/viewvc/geronimo/sandbox/failover/svn-commit.tmp%7E?rev=700239&view=auto
==============================================================================
--- geronimo/sandbox/failover/svn-commit.tmp~ (added)
+++ geronimo/sandbox/failover/svn-commit.tmp~ Mon Sep 29 13:26:13 2008
@@ -0,0 +1,12 @@
+
+--This line, and those below, will be ignored--
+
+AM all.sh
+M cycleservers.sh
+AM servers.sh
+D deploy.sh
+D setup.sh
+A svn-commit.tmp~
+M README.txt
+A deploy.gsh
+D run.sh