From b47b46d98a5e1d3e6e9eb9bde4f81b745f2ac09d Mon Sep 17 00:00:00 2001 From: Raghavendra Bhat Date: Mon, 14 Apr 2014 11:24:12 +0530 Subject: mgmt/glusterd: quorum check before taking the snapshot without force option: quorum fails if glusterds are not in quorum. If glusterd are in quorum, then volume quorum (i.e quorum of the bricks) is checked. volume quorum fails even if one of the bricks are down. with force option: even though the glusterds are not in quorum, and some bricks are down, the quorum check of the volume (i.e bricks) is done and if the volume quorum is met, snapshot is taken. Change-Id: I06971e45d5cf09880032ef038bfe011e6c244268 BUG: 1061685 Signed-off-by: Raghavendra Bhat Reviewed-on: http://review.gluster.org/7463 Tested-by: Gluster Build System Reviewed-by: Rajesh Joseph Reviewed-by: Kaushal M --- xlators/mgmt/glusterd/src/glusterd-utils.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.h') diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index d36444e9d9a..05d5ce6eb50 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -796,4 +796,24 @@ glusterd_take_lvm_snapshot (glusterd_volinfo_t *snap_vol, int32_t glusterd_snap_brick_create (char *device, glusterd_volinfo_t *snap_volinfo, int32_t brick_count, char *snap_brick_dir); + +int32_t +glusterd_snap_quorum_check (dict_t *dict, gf_boolean_t snap_volume, + char **op_errstr); + +int32_t +glusterd_volume_quorum_check (glusterd_volinfo_t *volinfo, int64_t index, + dict_t *dict, char *key_prefix, + int8_t snap_force, int32_t quorum_count, + char *quorum_type, char **op_errstr); + +gf_boolean_t +glusterd_volume_quorum_calculate (glusterd_volinfo_t *volinfo, dict_t *dict, + int down_count, gf_boolean_t first_brick_on, + int8_t snap_force, int32_t quorum_count, + char *quorum_type, char **op_errstr); + +int +glusterd_merge_brick_status (dict_t *dst, dict_t *src); + #endif -- cgit