Triggering heal for a gluster volume

Solution In Progress - Updated -

Issue

A gluster volume may have many entries that need healing at once, shown by the gluster heal info command. The list of entries (or gfids, the unique identifiers of files and directories in gluster) that need healing is maintained by a xlator called index. This xlator provides the list of gfids when the heal info command is issued. Outside of gluster cli, the self-heal daemon also gets the list for healing from the index xlator.

Index maintains a handle in each brick. The handle is present in the brick export directory/.glusterfs/indices/xattrop directory. Each handle is named “xattrop-uuid”. All of the other gfids that need healing are hardlinked to the xattrop handle. Whenever a file or directory modification operation (write or metadata change or entry creation) misses on a brick in a replica group, a new hard link is created for the xattrop handle in all the bricks where the operation was successful.

The self-heal daemon wakes up at regular intervals and starts healing those gfids present in the xattrop directory. But sometimes there will be a situation where there can be more than one xattrop handle (i.e. xattrop-uuid1, xattrop-uuid2). This can happen when the source brick restarts and a new file or directory modification occurs with the other brick in the replica group still down. This can sometimes lead to the self-heal daemon not healing the contents.

Environment

  • RHGS-3.*

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content