[Gluster-devel] Fwd: Change in glusterfs[master]: afr: add volume-specific quorum calculation

John Mark Walker johnmark at redhat.com
Thu Jan 3 19:41:11 UTC 2013

Thought some of you might want to see this. I keep promising myself that I'll make an easy way for the code contributor to do this (send to the -devel list)


----- Forwarded Message -----
From: "Jeff Darcy (Code Review)" <root at dev.gluster.com>
Sent: Thursday, January 3, 2013 2:28:04 PM
Subject: Change in glusterfs[master]: afr: add volume-specific quorum calculation

Jeff Darcy has uploaded a new change for review.

Change subject: afr: add volume-specific quorum calculation

afr: add volume-specific quorum calculation

Volume quorum is mostly the same as the current cluster quorum - same triggers,
same calculations, same actions - except that it only counts servers which have
an interest in a volume.  Interest comes from either having a brick for that
volume or from being named as an arbiter via the cluster.arbiter option on the
volume.  An arbiter has no data for the volume it arbitrates, but can break
quorum ties when there are only two servers with bricks for the volume.

One can enable volume quorum by setting the cluster.server-quorum-type option
to be "volume-server" (instead of just "server" which enables cluster-wide
quorum).  Note that cluster.server-quorum-ratio works for volume quorum the
same as for cluster quorum, including the fact that it's set on the "all"
pseudo-volume and is thus applicable for all volumes instead of having
per-volume values.

As an example, consider a cluster with three volumes on five servers, as

	volume X has bricks on servers A and B
	volume Y is like X, but with C as an arbiter
	volume Z has bricks on servers A, D, and E

Now server A fails.  Volume X no longer has quorum, so its remaining bricks (on
B) are shut down.  Volume Y *does* have quorum, thanks to the arbiter, so it
continues to function.  Volume Z has quorum even without an arbiter, so it also
stays up.  If server B or C were to fail at this point, volume Y would lose
quorum with only 1/3 interested servers, while volume Z would remain up with

Change-Id: I6e982dd7e697e6eb20590c07e10cbf0b54473b27
Signed-off-by: Jeff Darcy <jdarcy at redhat.com>
M xlators/cluster/afr/src/afr.c
M xlators/mgmt/glusterd/src/glusterd-utils.c
M xlators/mgmt/glusterd/src/glusterd-volgen.c
M xlators/mgmt/glusterd/src/glusterd.h
4 files changed, 145 insertions(+), 34 deletions(-)

  git pull ssh://git.gluster.org/glusterfs refs/changes/63/4363/1
To view, visit http://review.gluster.org/4363
To unsubscribe, visit http://review.gluster.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6e982dd7e697e6eb20590c07e10cbf0b54473b27
Gerrit-PatchSet: 1
Gerrit-Project: glusterfs
Gerrit-Branch: master
Gerrit-Owner: Jeff Darcy <jdarcy at redhat.com>

More information about the Gluster-devel mailing list