<!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 "lha_form" 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 Verbose logging mode selected.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG Checking for available Request Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG Starting Support Daemons on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143110 [ 4260] LOG slack10s1,slack10s2,slack10s3,slack10s4 ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s1 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s2 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s3 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s4 : hbd YES,lockd YES,netd NO,syncd YES,statd YES</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG Starting Cluster Daemons on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s1,slack10s2,slack10s3,slack10s4 ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s1 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s2 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s3 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143113 [ 4260] LOG slack10s4 OK STARTED</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143115 [ 4260] LOG slack10s1 acting as current cluster master.</FONT></TT><BR>
<BR>
The "lha_startapp" 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 No configured or specified timeout for 'test1' - default</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] WARN to 60.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Validated node 'slack10s1' is suitable for hosting</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG application 'test1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Attempting connection to Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Connection to Cluster Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Attempting connection to Master Cluster Daemon on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Connection to Master Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Checking for available Request Daemons - please wait.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Required Request Daemons [slack10s1] running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Attempting connection to Lock Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Connection to Lock Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Attempting connection to Stat Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Connection to Stat Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Stat Daemon on 'slack10s1' confirmed 'test1' is not</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG Attempting storage activation on other nodes - please</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG other nodes:</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143443 [ 4279] LOG slack10s2,slack10s1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG Available relevant nodes have performed non-current</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG storage activation.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG Attempting storage activation on node 'slack10s1' -</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143444 [ 4279] LOG please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Attempting final storage configuration on secondary nodes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG - please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Attempting to mount file systems on 'slack10s1' - please</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG File Systems mounted: OK=1, FAILED=0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Application 'test1' IP configured successfully:</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Configuring 192.168.1.243: /sbin/ifconfig eth0:1 inet</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG 192.168.1.243</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Sending Builtin Gratuitous arp for eth0:1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143446 [ 4279] LOG Application Started successfully [RC=0].</FONT></TT><BR>
<BR>
Once the application is running the "lha_stat" 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: 4 [0 DOWN/4 UP]</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">Node Status Apps</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s1 UP 1</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s2 UP 0</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s3 UP 0</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">slack10s4 UP 0</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">Appname Status Node F/O Notes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">test1 UP slack10s1 2 </FONT></TT><BR>
<BR>
The "lha_stat" can be passed a "-A appname" 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 Status Node Storage Validated Valid Nodes</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">test1 RUNNING slack10s1 DRBD1 Y slack10s1,slack10s2</FONT></TT><BR>
<BR>
<TT><FONT COLOR="#0000ff">VG/LV Type Mount Point Size Status</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">testvg/test1 ext3 /test1 131072 Active,Syncing[12Kb/Sec]</FONT></TT><BR>
<BR>
Applications are stopped using the "lha_stopapp" - 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 No configured or specified timeout for 'test1' - default</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] WARN to 60.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Ascertaining current node for 'test1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Application 'test1' is running on 'slack10s1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Attempting connection to Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Connection to Cluster Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Attempting connection to Master Cluster Daemon on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Connection to Master Cluster Daemon on 'slack10s1'</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Checking for available Request Daemons - please wait.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Following Request Daemons running:slack10s1,slack10s2</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Attempting connection to Lock Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Connection to Lock Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Attempting connection to Stat Daemon on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Connection to Stat Daemon on 'slack10s1' successful.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143634 [ 4321] LOG Stat Daemon on 'slack10s1' confirmed 'test1' is running.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Stopping application 'test1' on 'slack10s1'...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Application Stopped successfully.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Deconfiguration IP configuration for 'test1' on</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG 'slack10s1'...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG IP Addresses deconfigured successfully.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Attempting to un-mount file systems on 'slack10s1' -</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG please wait...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG File Systems un-mounted: OK=1, FAILED=0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Attempting storage deactivation on 'slack10s1' ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Re-attempting remote storage deactivation ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN slack10s1 : ERROR - Status information for device 0 not</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN found in '/proc/drbd'. from</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] WARN run_before_shutdown_on_non_current</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG Available relevant nodes have performed storage</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143635 [ 4321] LOG deactivation.</FONT></TT><BR>
<BR>
Finally dissolving the cluster requires running the "lha_dissolve" 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 Checking for available Request Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143705 [ 4328] LOG Querying which nodes are running Cluster Daemons ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG Current cluster master is 'slack10s1'.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG Number of applications currently running: 0.</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG Stopping all 'clusterd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG Stopping all 'hbd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143706 [ 4328] LOG Stopping all 'syncd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG Stopping all 'netd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG Stopping all 'lockd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG Stopping all 'statd' processes ...</FONT></TT><BR>
<TT><FONT COLOR="#0000ff">143707 [ 4328] LOG Cluster has been halted.</FONT></TT><BR>
<BR>
A "alpha" 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>