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:

  1. 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).

  2. 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.

  3. 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