Tool to find directory issues in Gluster bricks
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Gluster Directories Health Check

A tool to detect stale or boken directories in Gluster bricks. This tool can detect following issues

No GFID: If a directory in brick backend doesn't have trusted.gfid xattr
No Parent GFID: Parent directory doesn't have a trusted.gfid xattr
No Symlink: Gluster maintains a symlink in $BRICK/.glusterfs directory for each directory, If Symlink file not present for a directory
Wrong Symlink: If symlink exists but linked to different directory
Invalid GFID: Invalid data in trusted.gfid xattr
Invalid Parent GFID: Invalid data in trusted.gfid xattr of parent dir


If Rust is installed in your machine then run the following

cargo install --git

The easiest way to get this tool is to download a binary from here and place it in a directory within your $PATH, such as /usr/local/bin.

tar xvf gluster-dir-health-check-0.1.1-linux-x86_64.tar.gz
sudo mv gluster-dir-health-check /usr/local/bin/


gluster-dir-health-check <brick_path>


gluster-dir-health-check /bricks/b1
gluster-dir-health-check /bricks/b1 > ~/bricks_b1_dirs_status.txt


Example output,

STATUS   DESCRIPTION   GFID                                 PGFID                                PATH
-------- ------------- ------------------------------------ ------------------------------------ ---------------------
[OK    ]               0b875a91-1a51-42fc-b68a-83c9248bdbb8 00000000-0000-0000-0000-000000000001 /bricks/b1/d1
[OK    ]               a6e870e4-4376-493c-96ca-678f0e1d01fe 00000000-0000-0000-0000-000000000001 /bricks/b1/n1
[NOT OK] WRONG SYMLINK a6e870e4-4376-493c-96ca-678f0e1d01fe 00000000-0000-0000-0000-000000000001 /bricks/b1/h1
[OK    ]               bac0c3fb-26c8-403b-85ab-e344b7c10011 00000000-0000-0000-0000-000000000001 /bricks/b1/md1
[OK    ]               9bef6669-ac60-48c0-8599-bd6dd1909957 bac0c3fb-26c8-403b-85ab-e344b7c10011 /bricks/b1/md1/sd1

Above output shows GFID a6e870e4-4376-493c-96ca-678f0e1d01fe is associated with two directories /bricks/b1/n1 and /bricks/b1/h1. But backend symlink is with associated with /bricks/b1/n1