<!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.28.2">
</HEAD>
<BODY>
Steven &amp; team<BR>
<BR>
I see that this fork was &quot;well reasoned&quot; in which case it should have been completed more fully. Since OpenAIS is effectively 'depreciated' it should be fully dismantled in favour of a Corosync (AIS) API add-on. It currently is that anyway (you cannot install OpenAIS without first installing Corosync anyway).<BR>
<BR>
I chose &quot;ugly duckling&quot; deliberately as I do believe there is the makings of a &quot;beautiful swan&quot; in here somewhere... It just appears very &quot;messy&quot; at the moment.<BR>
<BR>
>From an external perspective (user, not developer) there appears to have been an exponential increase in components (complexity) with little (apparent) gain in functionality. This may seem harsh but bear with me whilst I try to show it from my perspective.<BR>
<BR>
Component/complexity time-line (Vs apparent functionality gain): <BR>
<BR>
1. Start: Heartbeat 1 =&gt; primitive, two node cluster<BR>
2. Heartbeat 2.x (HB 1 + internal CRM database) =&gt; massive increase in functionality, multi-node clusters are now possible.<BR>
3. Heartbeat 2.9x + Pacemaker (CRM database becomes separate product) =&gt; little functionality gain, adds support for OpenAIS<BR>
4. OpenAis + Heartbeat 2.9x + Pacemaker =&gt; Same apparent functionality as &quot;3&quot; above.<BR>
5. Corosync + OpenAis + &quot;cluster glue&quot;(Heartbeat components re-named) + Pacemaker =&gt; current situation required to match functionality of &quot;3&quot; above.<BR>
6. (what I believe your saying as the preferred development direction)<BR>
- Option A:&nbsp; Corosync + &quot;cluster glue&quot; + Pacemaker =&gt; functionality lost, removes support for OpenAIS (functionality as &quot;2&quot; above)<BR>
- Option B: Corosync + (optional/depreciated)OpenAis + &quot;cluster glue&quot;(Heartbeat components re-named) + Pacemaker =&gt; &quot;status Quo&quot;<BR>
<BR>
I know your team have been working very hard to stabilize and improve both pacemaker and corosync (I'm on the mail list) but I'm struggling to see the significant improvement in functionality over that provided by Heartbeat 2.x, especially as you appear to be wanting to depreciate the&nbsp; &quot;OpenAis&quot; compatibility.<BR>
<BR>
It's now especially hard to determine what documentation is relevant as these products are now an apparent mish-mash of old and new functionality.<BR>
<BR>
I will now 'STFU' and go back to passively monitoring the mail list and trying to implement these components in production.<BR>
I hope I have at-least highlighted how messy this is all looking from the &quot;end users perspective&quot;.<BR>
<BR>
Thanks for your time.<BR>
<BR>
Darren<BR>
<BR>
<BR>
On Wed, 2010-04-07 at 10:22 -0700, Steven Dake wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Wed, 2010-04-07 at 09:18 +0930, Darren Thompson wrote:
&gt; Steven
&gt; 
&gt; I still do not understand why Corosync was forked off from OpenAIS.
&gt; 

Answered in faq entry:
<A HREF="http://www.corosync.org/doku.php?id=faq:why">http://www.corosync.org/doku.php?id=faq:why</A>

&gt; We now have an incompatible mess of two 80% overlapping and partially
&gt; co-dependant applications (You cannot even now install OpenAIS now
&gt; without first installing Corosync).

Corosync and OpenAIS are not co-dependent.  Corosync is a standalone
component, whereas openais depends on Corosync.  It is true there is
some overlap in API feature set.

Most people don't require SA Forum AIS APIs, in which case there is no
point to installing openais.  In all of our deployments, AIS APIs
account for less then 5%.  That either means our AIS implementation
produced in openais is bad or irrelevant.  I tend to believe the
implementation is pretty good...
 
&gt; 
&gt; What would it take to re-merge these two ugly duckings back into a
&gt; single cohesive product again?

The two projects have differing missions.  My philosophy is to do one
thing, do it well.

Regards
-steve

&gt; Darren
&gt; 
&gt; 
&gt; 
&gt; On Tue, 2010-04-06 at 15:57 -0700, Steven Dake wrote: 
&gt; &gt; On Tue, 2010-04-06 at 15:26 +0200, Filip Sakalos wrote:
&gt; &gt; &gt; Hi,
&gt; &gt; &gt; 
&gt; &gt; &gt; I am using openAIS and Pacemaker for clustering. I want to use two
&gt; &gt; &gt; rings for communication between nodes. The problem is, that one of the
&gt; &gt; &gt; rings is always marked as faulty on on one or both nodes:
&gt; &gt; &gt; 
&gt; &gt; &gt;  xen1:/home/filip # openais-cfgtool -s
&gt; &gt; &gt;  Printing ring status.
&gt; &gt; &gt;  RING ID 0
&gt; &gt; &gt;          id      = 192.168.58.124
&gt; &gt; &gt;          status  = Marking ringid 0 interface 192.168.58.124 FAULTY -
&gt; &gt; &gt; adminisrtative intervention required.
&gt; &gt; &gt;  RING ID 1
&gt; &gt; &gt;          id      = 192.168.7.1
&gt; &gt; &gt;          status  = ring 1 active with no faults
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Same on the other node:
&gt; &gt; &gt; 
&gt; &gt; &gt; xen2:~ # openais-cfgtool -s
&gt; &gt; &gt; Printing ring status.
&gt; &gt; &gt; RING ID 0
&gt; &gt; &gt;         id      = 192.168.58.172
&gt; &gt; &gt;         status  = Marking seqid 12298 ringid 0 interface
&gt; &gt; &gt; 192.168.58.172 FAULTY - adminisrtative intervention required.
&gt; &gt; &gt; RING ID 1
&gt; &gt; &gt;         id      = 192.168.7.2
&gt; &gt; &gt;         status  = ring 1 active with no faults
&gt; &gt; &gt; 
&gt; &gt; &gt; This is my configuration file (/etc/ais/openais.conf):
&gt; &gt; &gt; 
&gt; &gt; &gt; # Please read the openais.conf.5 manual page
&gt; &gt; &gt; 
&gt; &gt; &gt; aisexec {
&gt; &gt; &gt;     # Run as root - this is necessary to be able to manage resources
&gt; &gt; &gt; with Pacemaker
&gt; &gt; &gt;     user:    root
&gt; &gt; &gt;     group:    root
&gt; &gt; &gt; }
&gt; &gt; &gt; 
&gt; &gt; &gt; service {
&gt; &gt; &gt;     # Load the Pacemaker Cluster Resource Manager
&gt; &gt; &gt;     ver:       0
&gt; &gt; &gt;     name:      pacemaker
&gt; &gt; &gt;     use_mgmtd: 1
&gt; &gt; &gt; }
&gt; &gt; &gt; 
&gt; &gt; &gt; totem {
&gt; &gt; &gt;     version: 2
&gt; &gt; &gt; 
&gt; &gt; &gt;     # How long before declaring a token lost (ms)
&gt; &gt; &gt;     token:          1000
&gt; &gt; &gt; 
&gt; &gt; &gt;     # How many token retransmits before forming a new configuration
&gt; &gt; &gt;     token_retransmits_before_loss_const: 10
&gt; &gt; &gt; 
&gt; &gt; &gt;     # How long to wait for join messages in the membership protocol (ms)
&gt; &gt; &gt;     join:           60
&gt; &gt; &gt; 
&gt; &gt; &gt;     # How long to wait for consensus to be achieved before starting a
&gt; &gt; &gt; new round of membership configuration (ms)
&gt; &gt; &gt;     consensus:      1500
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Turn off the virtual synchrony filter
&gt; &gt; &gt;     vsftype:        none
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Number of messages that may be sent by one processor on receipt
&gt; &gt; &gt; of the token
&gt; &gt; &gt;     max_messages:   20
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Stagger sending the node join messages by 1..send_join ms
&gt; &gt; &gt;     send_join: 45
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Limit generated nodeids to 31-bits (positive signed integers)
&gt; &gt; &gt;     clear_node_high_bit: yes
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Disable encryption
&gt; &gt; &gt;     secauth:    on
&gt; &gt; &gt; 
&gt; &gt; &gt;     # How many threads to use for encryption/decryption
&gt; &gt; &gt;     threads:       0
&gt; &gt; &gt; 
&gt; &gt; &gt;     # Optionally assign a fixed node id (integer)
&gt; &gt; &gt;     # nodeid:         1234
&gt; &gt; &gt; 
&gt; &gt; &gt;     rrp_mode: passive
&gt; &gt; &gt; 
&gt; &gt; &gt;     interface {
&gt; &gt; &gt;         ringnumber: 0
&gt; &gt; &gt;         # The following values need to be set based on your environment
&gt; &gt; &gt;         bindnetaddr: 192.168.58.0
&gt; &gt; &gt;         mcastaddr: 226.94.1.1
&gt; &gt; &gt;         mcastport: 5405
&gt; &gt; &gt;     }
&gt; &gt; &gt; 
&gt; &gt; &gt;     interface {
&gt; &gt; &gt; 
&gt; &gt; &gt;         ringnumber: 1
&gt; &gt; &gt;         bindnetaddr: 192.168.7.0
&gt; &gt; &gt;         mcastaddr: 226.94.1.2
&gt; &gt; &gt;         mcastport: 5405
&gt; &gt; &gt;     }
&gt; &gt; &gt; }
&gt; &gt; &gt; 
&gt; &gt; &gt; #logging {
&gt; &gt; &gt; #    debug: off
&gt; &gt; &gt; #    fileline: off
&gt; &gt; &gt; #    to_syslog: yes
&gt; &gt; &gt; #    to_stderr: off
&gt; &gt; &gt; #    syslog_facility: daemon
&gt; &gt; &gt; #    timestamp: on
&gt; &gt; &gt; #}
&gt; &gt; &gt; 
&gt; &gt; &gt; logging {
&gt; &gt; &gt;     debug: on
&gt; &gt; &gt;     to_file: yes
&gt; &gt; &gt;     logfile: /var/log/openais.log
&gt; &gt; &gt;     to_syslog: yes
&gt; &gt; &gt;     syslog_facility: daemon
&gt; &gt; &gt;     timestamp: on
&gt; &gt; &gt; }
&gt; &gt; &gt; 
&gt; &gt; &gt; amf {
&gt; &gt; &gt;     mode: disabled
&gt; &gt; &gt; }
&gt; &gt; &gt; 
&gt; &gt; &gt; #eof
&gt; &gt; &gt; 
&gt; &gt; &gt; I can ping the other node without problem, ssh works too. Can anyone help?
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I recommend using corosync instead of openais.  Corosync is much more
&gt; &gt; suitable for running pacemaker yet is nearly the same from a user
&gt; &gt; perspective (similar configuration, etc).
&gt; &gt; 
&gt; &gt; Provide the syslog output for the two nodes
&gt; &gt; 
&gt; &gt; Run ifconfig on the nodes and paste the output
&gt; &gt; 
&gt; &gt; Regards
&gt; &gt; -steve
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Sincerely,
&gt; &gt; &gt; Filip Sakalos
&gt; &gt; &gt; _______________________________________________
&gt; &gt; &gt; Openais mailing list
&gt; &gt; &gt; <A HREF="mailto:Openais@lists.linux-foundation.org">Openais@lists.linux-foundation.org</A>
&gt; &gt; &gt; <A HREF="https://lists.linux-foundation.org/mailman/listinfo/openais">https://lists.linux-foundation.org/mailman/listinfo/openais</A>
&gt; &gt; 
&gt; &gt; _______________________________________________
&gt; &gt; Openais mailing list
&gt; &gt; <A HREF="mailto:Openais@lists.linux-foundation.org">Openais@lists.linux-foundation.org</A>
&gt; &gt; <A HREF="https://lists.linux-foundation.org/mailman/listinfo/openais">https://lists.linux-foundation.org/mailman/listinfo/openais</A>

</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>