[Cluster-devel] spectator setting in cluster.conf

David Teigland teigland at redhat.com
Mon Oct 22 15:12:01 UTC 2007


I believe that all cluster.conf settings currently map to a specific
setting in one specific subsystem.  We now have a proposal to add an
abstract "spectator" setting that would be translated into multiple
lower-level, subsystem-specific settings.  It's not clear what the
cluster.conf syntax would look like, but it would need to be per-node.

Initially, there could be three specific results of this setting:

1. gfs_controld would read this and append the "spectator" mount option
   to all gfs mounts made by the node.  This causes gfs to not use a
   journal, and to never write to the disk (includes never doing
   recovery).

   The standard, lower-level mechanism for doing this (*without* the
   new setting in cluster.conf), is to add "spectator" to /etc/fstab
   entries.  We need to be careful when inventing specialized ways of
   doing things outside the standard practice.

2. /etc/init.d/cman would skip the 'fence_tool join' step for nodes
   with this setting.  Because gfs is guaranteed to never write to the
   fs, we can allow the node to mount without joining the fence domain.
   If the spectator node fails, it would not be fenced.

   The standard, low-level mechanism for doing this (without the new
   setting in cluster.conf) is to add a new option to the init-script's
   config file /etc/sysconfig/cman.

3. service_cman.lcrso (the cman openais plugin) would read this and
   assign the node 0 votes, so its membership wouldn't affect quorum.

   The standard way to do this would be to set votes="0" in the
   <clusternode/> entry.

In each case, the existence of the lower-level setting would override the
effect of the abstract spectator setting.

So, setting spectator for a node would be a shortcut for configuring the
three items above.  We may also decide to add other effects in other
subsystems.  Typically, this kind of abstraction is translated by a higher
layer of software, like conga.  But, this may be a case where the
abstraction is useful enough that it should be available to non-conga
users.  I don't have any preference in the matter and would be happy to
see it implemented in either layer.

Dave




More information about the Cluster-devel mailing list