<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.14.1">
</HEAD>
<BODY>
Hello all,<BR>
<BR>
The follow up to Linuxha 1.x is now really taking shape. Due to my day-to-day workload it has taken far longer than expected to get this far - but now the software is living up to the intended design. I've captured some logs from cluster forming, application starting, status reporting, application stopping and cluster halting to give an idea of how things are currently.<BR>
<BR>
The &quot;lha_form&quot; routine is used to start the cluster - the example cluster is a 4 node cluster running Slackware, though the distribution does not matter. Notice the formation time is 5 seconds. A 8 node cluster forms in less than 10 seconds. <BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_form --verbose</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">Date: 2007/07/24</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG&nbsp;&nbsp;&nbsp; Verbose logging mode selected.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG&nbsp;&nbsp;&nbsp; Checking for available Request Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG&nbsp;&nbsp;&nbsp; Starting Support Daemons on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s1,slack10s2,slack10s3,slack10s4 ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s1 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s2 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s3 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s4 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; Starting Cluster Daemons on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s1,slack10s2,slack10s3,slack10s4 ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s1 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s2 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s3 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s4 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143115 [ 4260] LOG&nbsp;&nbsp;&nbsp; slack10s1 acting as current cluster master.</FONT></TT><BR>
<BR>
The &quot;lha_startapp&quot; routine starts an application. By default it runs on the current node if that node is suitable for the application.<BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_startapp -A test1 -V</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">Date: 2007/07/24</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] WARN&nbsp;&nbsp; No configured or specified timeout for 'test1' - default</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] WARN&nbsp;&nbsp; to 60.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Validated node 'slack10s1' is suitable for hosting</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; application 'test1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Connection to Cluster Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Master Cluster Daemon on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Connection to Master Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Checking for available Request Daemons - please wait.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Required Request Daemons [slack10s1] running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Lock Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Connection to Lock Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Stat Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Connection to Stat Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Stat Daemon on 'slack10s1' confirmed 'test1' is not</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting storage activation on other nodes - please</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; other nodes:</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG&nbsp;&nbsp;&nbsp; slack10s2,slack10s1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG&nbsp;&nbsp;&nbsp; Available relevant nodes have performed non-current</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG&nbsp;&nbsp;&nbsp; storage activation.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting storage activation on node 'slack10s1' -</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG&nbsp;&nbsp;&nbsp; please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting final storage configuration on secondary nodes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; - please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Attempting to mount file systems on 'slack10s1' - please</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; File Systems mounted: OK=1, FAILED=0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Application 'test1' IP configured successfully:</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Configuring 192.168.1.243: /sbin/ifconfig eth0:1 inet</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; 192.168.1.243</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Sending Builtin Gratuitous arp for eth0:1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG&nbsp;&nbsp;&nbsp; Application Started successfully [RC=0].</FONT></TT><BR>
<BR>
Once the application is running the &quot;lha_stat&quot; gives an overview of the cluster status:<BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_stat</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">cluster: slackcl - UP</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">nodes:&nbsp;&nbsp; 4 [0 DOWN/4 UP]</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">Node&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Status&nbsp; Apps</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s1&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s2&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s3&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s4&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">Appname&nbsp;&nbsp; Status&nbsp;&nbsp; Node&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F/O&nbsp;&nbsp; Notes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">test1&nbsp;&nbsp;&nbsp;&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; slack10s1&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp; </FONT></TT><BR>
<BR>
The &quot;lha_stat&quot; can be passed a &quot;-A appname&quot; to give more details on a particular application:<BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_stat -A test1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">Application&nbsp; Status&nbsp;&nbsp; Node&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Storage&nbsp; Validated&nbsp; Valid Nodes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">test1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUNNING&nbsp; slack10s1&nbsp; DRBD1&nbsp;&nbsp;&nbsp; Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; slack10s1,slack10s2</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">VG/LV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp; Mount Point&nbsp; Size&nbsp;&nbsp;&nbsp; Status</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">testvg/test1&nbsp; ext3&nbsp;&nbsp; /test1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072&nbsp; Active,Syncing[12Kb/Sec]</FONT></TT><BR>
<BR>
Applications are stopped using the &quot;lha_stopapp&quot; - again works more quickly than linuxha 1.x:<BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_stopapp -A test1 -V</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">Date: 2007/07/24</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] WARN&nbsp;&nbsp; No configured or specified timeout for 'test1' - default</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] WARN&nbsp;&nbsp; to 60.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Ascertaining current node for 'test1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Application 'test1' is running on 'slack10s1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Connection to Cluster Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Master Cluster Daemon on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Connection to Master Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Checking for available Request Daemons - please wait.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Following Request Daemons running:slack10s1,slack10s2</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Lock Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Connection to Lock Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting connection to Stat Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Connection to Stat Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG&nbsp;&nbsp;&nbsp; Stat Daemon on 'slack10s1' confirmed 'test1' is running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Stopping application 'test1' on 'slack10s1'...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Application Stopped successfully.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Deconfiguration IP configuration for 'test1' on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; 'slack10s1'...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; IP Addresses deconfigured successfully.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting to un-mount file systems on 'slack10s1' -</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; File Systems un-mounted: OK=1, FAILED=0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Attempting storage deactivation on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Re-attempting remote storage deactivation ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN&nbsp;&nbsp; slack10s1 : ERROR - Status information for device 0 not</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN&nbsp;&nbsp; found in '/proc/drbd'. from</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN&nbsp;&nbsp; run_before_shutdown_on_non_current</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; Available relevant nodes have performed storage</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG&nbsp;&nbsp;&nbsp; deactivation.</FONT></TT><BR>
<BR>
Finally dissolving the cluster requires running the &quot;lha_dissolve&quot; command:<BR>
<BR>
<TT><FONT COLOR="#0000ff">root@slack10s1:/opt/truecl/log# lha_dissolve --verbose</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">Date: 2007/07/24</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143705 [ 4328] LOG&nbsp;&nbsp;&nbsp; Checking for available Request Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143705 [ 4328] LOG&nbsp;&nbsp;&nbsp; Querying which nodes are running Cluster Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG&nbsp;&nbsp;&nbsp; Current cluster master is 'slack10s1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG&nbsp;&nbsp;&nbsp; Number of applications currently running: 0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'clusterd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'hbd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'syncd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'netd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'lockd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG&nbsp;&nbsp;&nbsp; Stopping all 'statd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG&nbsp;&nbsp;&nbsp; Cluster has been halted.</FONT></TT><BR>
<BR>
A &quot;alpha&quot; version is now not far off being released. The network daemon needs to be written and more tests and functionality added and a huge amount of testing needs to be done - but overall things are looking good!<BR>
<BR>
Regards,<BR>
Simon.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>