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) -JM ----- Forwarded Message ----- From: "Jeff Darcy (Code Review)" <root@xxxxxxxxxxxxxxx> 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 follows: 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 2/3. Change-Id: I6e982dd7e697e6eb20590c07e10cbf0b54473b27 Signed-off-by: Jeff Darcy <jdarcy@xxxxxxxxxx> --- 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@xxxxxxxxxx>