Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 3fc6abaa49589137955cdcf489bf54d0f8220530
Parent: d549c89d2aadb902977dc8a972e81bb56ebbb3bf
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Sep 22 11:04:07 2009 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Sep 22 11:41:47 2009 -0500
dlm_controld: change default enable_quorum to 0
Fencing waits for quorum when necessary, and dlm_controld waits
for fencing. So, there's no reason that dlm_controld needs to
wait for quorum itself, apart from the possible expectation of
users/apps that a lockspace (and cluster fs) will not be enabled
in an inquorate cluster.
Not waiting for quorum does allow a lockspace (and cluster fs)
to be fully enabled/started/recovered in an inquorate cluster as
long as there is no fencing outstanding. The big advantage
is that broader shutdown is possible in an inquorate cluster,
i.e. lockspaces (and cluster fs's) can be left (unmounted) in
an inquorate cluster.
Shutting down a node involves the others disabling/enabling the
lockspace, and the enabling step is what will block on quorum,
which then prevents the shutdown on those nodes.
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
group/dlm_controld/config.h | 2 +-
group/dlm_controld/cpg.c | 12 +++++++++---
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/group/dlm_controld/config.h b/group/dlm_controld/config.h
index e498ec8..19a0bf8 100644
--- a/group/dlm_controld/config.h
+++ b/group/dlm_controld/config.h
@@ -7,7 +7,7 @@
#define DEFAULT_GROUPD_COMPAT 0
#define DEFAULT_DEBUG_LOGFILE 0
#define DEFAULT_ENABLE_FENCING 1
-#define DEFAULT_ENABLE_QUORUM 1
+#define DEFAULT_ENABLE_QUORUM 0
#define DEFAULT_ENABLE_DEADLK 0
#define DEFAULT_ENABLE_PLOCK 1
#define DEFAULT_PLOCK_DEBUG 0
diff --git a/group/dlm_controld/cpg.c b/group/dlm_controld/cpg.c
index cf249c2..1eff685 100644
--- a/group/dlm_controld/cpg.c
+++ b/group/dlm_controld/cpg.c
@@ -748,9 +748,15 @@ static int wait_conditions_done(struct lockspace *ls)
return 0;
}
- /* even though fencing also waits for quorum, checking fencing isn't
- sufficient because we don't want to start new lockspaces in an
- inquorate cluster */
+ /* fencing waits for quorum, so we don't need to check quorum for any
+ reasons related to safety or protection, so enable_quorum defaults
+ to 0. This does mean that lockspaces (and cluster fs's) can be
+ started/enabled in an inquorate cluster if there are no outstanding
+ fencing operations. Some users or apps may want lockspaces/fs's to
+ only be enabled in a quorate cluster; enable_quorum can be set to 1
+ to get that behavior. The main advantage of not waiting for quorum
+ here is to allow lockspaces to be shut down (and cluster fs's
+ unmounted) in an inquorate cluster. */
if (!check_quorum_done(ls)) {
poll_quorum++;