From 719c927592cfdb0de88243769d477ca211a2b494 Mon Sep 17 00:00:00 2001 From: Anuradha Date: Sat, 9 May 2015 10:25:08 +0530 Subject: cluster/afr : Prevent inode-evict during split-brain resolution Backport of: http://review.gluster.org/#/c/10134/ 1) Provided setfattr command to set timeout for split-brain choice. 2) If split-brain inspection/resolution is being done from the mount for a file, ref the inode when split-brain-choice is set. This inode will be unconditionally unref-ed after timeout seconds set by the user/default otherwise. 3) Updated the doc and testcase to reflect the changes. Change-Id: I15c9037dee28855f21e680e7e3632e1f48dba4e1 BUG: 1219388 Reviewed-on: http://review.gluster.org/10134 Reviewed-by: Krutika Dhananjay Reviewed-by: Ravishankar N Tested-by: Gluster Build System Reviewed-by: Pranith Kumar Karampuri Signed-off-by: Anuradha Reviewed-on: http://review.gluster.org/10679 --- doc/features/heal-info-and-split-brain-resolution.md | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'doc') diff --git a/doc/features/heal-info-and-split-brain-resolution.md b/doc/features/heal-info-and-split-brain-resolution.md index 6ca2be2f02f..7a6691db14e 100644 --- a/doc/features/heal-info-and-split-brain-resolution.md +++ b/doc/features/heal-info-and-split-brain-resolution.md @@ -426,6 +426,15 @@ Now performing cat operation on the file will again result in input/output error cat: file1: Input/output error ~~~ +The user can access each file for a timeout amount of period every time replica.split-brain-choice is set. This timeout is configurable by user, with a default value of 5 minutes. +### To set split-brain-choice timeout +A setfattr command from the mount allows the user set this timeout, to be specified in minutes. +~~~ +# setfattr -n replica.split-brain-choice-timeout -v +~~~ +This is a global timeout, i.e. applicable to all files as long as the mount exists. So, the timeout need not be set each time a file needs to be inspected but for a new mount it will have to be set again for the first time. This option also needs to be set every time there is a client graph switch (_See note #3_). + +### Resolving the split-brain Once the choice for resolving split-brain is made, source brick is supposed to be set for the healing to be done. This is done using the following command: @@ -446,3 +455,5 @@ NOTE: ~~~ 2) The above mentioned process for split-brain resolution from mount will not work on nfs mounts as it doesn't provide xattrs support. + +3) Client graph switch occurs when there is a change in the client side translator graph; typically during addition of new translators to the graph on client side and add-brick/remove-brick operations. -- cgit