[Gluster-devel] healing xattr mismatches in snapshots of volumes

Pranith Kumar Karampuri pkarampu at redhat.com
Wed Mar 19 06:31:25 UTC 2014


hi,

For snapshot design it was decided that frequent operations like 'cp -a <large-dir>' should not pause while taking snapshots. This can lead to metadata/xattr mismatches without any afr changelogs because those fops are not going to be blocked while taking snapshots on different bricks. Afr at the time of lookup detects metadata mismatches in stat structures and initiates a self-heal. But if there are any xattr mismatches between two replicas then there is no capability at the moment to detect and heal them. This enhancement tracks the changes required to achieve this change.

For afr to detect there are mismatches in xattrs, it should be able to query i.e. listxattr in lookup itself, to avoid extra over the network listxattr call latencies.
This requires changes in posix xlator.

Afr should use this feature in posix to 'listxattr' and see if there are any mismatches and trigger self-heals on that file probably at the time of fresh-lookup. This behaviour can be exposed in volumes that are exported as part of snapshot.

The change is being tracked at https://bugzilla.redhat.com/show_bug.cgi?id=1078061
I sent the patch which implements the changes required in posix xlator @ http://review.gluster.org/7293
I will be posting changes in afr once afrv2 gets merged upstream.


Pranith




More information about the Gluster-devel mailing list