[Gluster-devel] Automated split-brain resolution

Joe Julian joe at julianfamily.org
Fri Aug 8 19:53:22 UTC 2014


Thinking about it more, I'd still rather have this functionality exposed 
at the client through xattrs. For 5 years I've thought about this, and 
the more I encounter split-brain, the more I think this is the needed 
approach.

"getfattr -n trusted.glusterfs.stat" returns 
xml/json/some_madeup_datastructure with the results of stat from each brick
"getfattr -n trusted.glusterfs.afr" returns the afr matrix
"setfattr -n trusted.glusterfs.sb-pick -v "server2:/srv/brick1"

That gives us the tools we need to choose what to do with any given 
split-brain. For large swaths of automated repair, we can use find.

I suppose that last bit could still be implemented through that cli command.


On 08/07/2014 01:35 AM, Ravishankar N wrote:
>
> Manual resolution of split-brains [1] has been a tedious task 
> involving understanding and modifying AFR's changelog extended 
> attributes. To simplify and to an extent automate this task, we are 
> proposing a new CLI command with which the user can  specify what the 
> source brick/file is, and automatically heal the files in the 
> appropriate direction.
>
> Command: gluster volume resolve-split-brain <VOLNAME> {<bigger_file>  
> |  source-brick <brick_name> [<file>] }
>
> Breaking up the command into its possible options, we have:
>
> a) gluster volume resolve-split-brain <VOLNAME> <bigger_file>
> When this command is executed, AFR will consider the brick having the 
> highest file size as the source and heal it to all other bricks 
> (including all other sources and sinks) in that replica subvolume. If 
> the file size is same in all the bricks, it does *not* heal the file.
>
> b) gluster volume resolve-split-brain <VOLNAME > source-brick 
> <brick_name > [<file>]
>
> When this command is executed, if <file> is specified, AFR heals the 
> file from the source-brick <brick_name> to all other bricks of that 
> replica subvolume. For resolving multiple files, the command must be 
> run iteratively, once per file.
> If <file> is not specified, AFR heals all the files that have an entry 
> in .glusterfs/indices/xattrop *and* are in split-brain. As before, 
> heals happen from source-brick <brick_name> to all other bricks.
>
> Future work could also include extending the command to add other 
> policies like choosing the file having the latest mtime as the source, 
> integration with trash xlator wherein the files deleted from the sink 
> are moved to the trash dir etc.
>
> Please give feedback on the above.
>
> Regards,
> Ravi
>
> [1] https://github.com/gluster/glusterfs/blob/master/doc/split-brain.md
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://supercolony.gluster.org/mailman/listinfo/gluster-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20140808/7b494c3e/attachment.html>


More information about the Gluster-devel mailing list