Split-brain in a replicated GlusterFS volume prevents replicas from converging, often surfacing as Input/output error on client reads and leaving conflicting copies of the same file across bricks.
The bigger-file policy resolves a split-brained file by selecting the replica copy with the larger file size as the source and healing the other replicas from it using the server-side gluster volume heal command. Resolution is performed per file, so each entry listed in the split-brain output requires a separate heal command.
The selected copy overwrites the other replicas, so the larger file must represent the correct version before applying the policy. Avoid bigger-file when file sizes are identical, when sparse files make size misleading, or when the problem is a directory-entry split-brain that cannot be fixed by size-based selection.
Steps to resolve GlusterFS split-brain using bigger-file:
- Identify split-brain entries in the volume.
$ sudo gluster volume heal volume1 info split-brain Brick node1:/srv/gluster/brick1 Number of entries in split-brain: 1 /dir/file1
The output can list file paths (/dir/file1) or gfid: entries, and the brick directory plus file path forms the on-disk path (example: /srv/gluster/brick1/dir/file1).
- Resolve the split-brain entry using the bigger-file policy.
$ sudo gluster volume heal volume1 split-brain bigger-file /dir/file1 Healed /dir/file1.
Use the gfid: string from the split-brain output when a file path is not available.
The larger replica copy is forced onto the other bricks, which permanently discards the smaller copy.
- Confirm the split-brain list is empty after the resolution.
$ sudo gluster volume heal volume1 info split-brain Brick node1:/srv/gluster/brick1 Number of entries in split-brain: 0
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
