Chapter 13. Self-heal does not complete
If a self-heal operation never completes, the cause could be a Gluster File ID (GFID) mismatch.
13.1. Gluster File ID mismatch Copy linkLink copied to clipboard!
Diagnosis
Check self-heal state.
Run the following command several times over a few minutes. Note the entries that are shown.
gluster volume heal <volname> info
# gluster volume heal <volname> info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow If the same entries are shown each time, these entries may have a GFID mismatch.
Check the GFID of each entry on each host.
On each host, run the following command for each entry:
getfattr -d -m. -ehex <backend_path> -h
# getfattr -d -m. -ehex <backend_path> -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
<backend_path>
for an entry is comprised of the brick path and the entry. For example, if the brick for theengine
volume has the path of/gluster_bricks/engine/engine
and the entry shown in heal info is58d392a6-e5b1-4aed-9bbc-952210a7137d/ha_agent/hosted-engine.metadata
, thebackend_path
to use is/gluster_bricks/engine/engine/58d392a6-e5b1-4aed-9bbc-952210a7137d/ha_agent/hosted-engine.metadata
.Compare the output from each host.
If the
trusted.gfid
for an entry is not the same on all hosts, there is a GFID mismatch.
Solution
Resolve the mismatch in favor of the GFID with the most recent modification time:
gluster volume heal <volume> split-brain latest-mtime <entry>
# gluster volume heal <volume> split-brain latest-mtime <entry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For example:
gluster volume heal engine split-brain latest-mtime /58d392a6-e5b1-4aed-9bbc-952210a7137d/ha_agent/hosted-engine.metadata
# gluster volume heal engine split-brain latest-mtime /58d392a6-e5b1-4aed-9bbc-952210a7137d/ha_agent/hosted-engine.metadata
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Manually trigger a heal on the volume.
gluster volume heal <volname>
# gluster volume heal <volname>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow