[Cluster-devel] some new daemon code in cluster3

David Teigland teigland at redhat.com
Mon Aug 4 20:07:53 UTC 2008


In cluster3, fenced, dlm_controld, and gfs_controld have been rewritten to
use libcpg directly instead of libgroup (groupd).  However, the old code
has been preserved along side the new, so the daemons can be run in a
backware compatibility mode, and exist in a cluster2 cluster.  In thew new
mode, cluster3 nodes can not interoperate with cluster2 nodes.

To run the new code, add <group groupd_compat="0"/> to cluster.conf, or
start them with -g0 on the command line.  groupd is not used.

To run the old code, add <group groupd_compat="1"/> to cluster.conf, or
start them with -g1 on the command line.  groupd is used just like in
cluster2.

A third option was recently added: <group groupd_compat="2"/> or -g2.  In
this mode, the daemons first look for any cluster2 nodes in the cluster,
and if any are found, the old code is used so they can interoperate.  If
no cluster2 nodes are found, the new code is used.  groupd is used for the
detection of old nodes.

Previously, the daemons defaulted to groupd_compat="1".  After the commit
below, the daemons were changed to default to groupd_compat="2".


----- Forwarded message from David Teigland <teigland at fedoraproject.org> -----

Subject: master - groupd: detect group_mode
To: cluster-cvs-relay at redhat.com
From: David Teigland <teigland at fedoraproject.org>
Message-Id: <20080730203257.BDABE120022 at lists.fedorahosted.org>
Date: Wed, 30 Jul 2008 20:32:57 +0000 (UTC)

Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=f090526867f97d09f3813b7e0e1ca09ed650d71d
Commit:        f090526867f97d09f3813b7e0e1ca09ed650d71d
Parent:        d9a282126c54e371f783c2a3f5ff24b53e685f87
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Fri Jul 25 14:52:19 2008 -0500
Committer:     David Teigland <teigland at redhat.com>
CommitterDate: Wed Jul 30 12:28:53 2008 -0500

groupd: detect group_mode

command line -g2, or cluster.conf <group groupd_compat="2"/>

If old cluster2/RHEL5 nodes are in the cluster, cluster3 nodes will
adopt the groupd compatibility mode to interoperate with them (this
is the compat mode you get directly with -g1 or groupd_compat="1").

If no cluster2/RHEL5 nodes are in the cluster, cluster3 nodes will
use the new group mode that doesn't go through libgroup, and is not
compatible with cluster2/RHEL5 nodes (this is the non-compat mode
you get directly with -g0 or groupd_compat="0").

This new mode (groupd_compat="2") is the default to favor the case of
rolling cluster2->cluster3 upgrades, where cluster2 nodes and cluster3
nodes need to interoperate in a single cluster for a limited time.  After
all cluster2 nodes have been upgraded to cluster3, groupd_compat="0" can be
added to cluster.conf the next time the entire cluster is taken down.

It is still best to set groupd_compat="0" in cluster.conf for:
. new clusters that don't require compatibility with cluster2 nodes
. old clusters that are taken offline while the nodes are all upgraded
  from cluster2 to cluster3

Signed-off-by: David Teigland <teigland at redhat.com>
---
 group/daemon/app.c         |    3 +
 group/daemon/cpg.c         |  369 ++++++++++++++++++++++++++++++++++++++++++++
 group/daemon/gd_internal.h |   24 +++-
 group/daemon/main.c        |   94 +++++++++++-
 group/lib/libgroup.c       |   26 +++
 group/lib/libgroup.h       |    2 +
 6 files changed, 514 insertions(+), 4 deletions(-)




More information about the Cluster-devel mailing list