[Gluster-devel] [RFC] on the fly GFID change for a existing file

Amar Tumballi atumball at redhat.com
Fri Apr 26 10:07:55 UTC 2013


This is an extended discussion on patch http://review.gluster.org/4702

With this patch going in, a mount point can be made to access the files 
directly using the gfid of the files, and not just path.

We are planning to use this along with Changelog [1] for enhanced 
geo-replication feature we are planning to develop. Now, the good thing 
is, with these combination we have many benefits, which primarily 
includes not crawling the system to find the changes done in last N minutes.

But the challenge we have now is with the upgrading of the existing 
geo-replication setup to newer one, where we would need to keep the 
'slave' volume's files to have the exact same GFID as that of 'master' 
volume. To achieve this, when we upgrade, we would need a *method* to 
change the GFID of the existing files in 'slave' volume on the fly.

We have couple of options:

1. delete the '.glusterfs/' directory from the slave volume and use the 
aux-gfid-path based mount to do the lookup (with proper GLUSTERFS_GFID 
env variable set), so it creates the gfid with new one.
  * needs a change in posix xlator to overwrite existing 'trusted.gfid' 
attribute too.

2. bring a setxattr() interface to change the gfid on the fly based on a 
virtual xattr.
  * needs extra check as the existing inode number (aka, gfid) suddenly 
changes, and we need to handle it gracefully.

Let me know if someone has better options, or can take a call on which 
is the better approach.


[1] - http://review.gluster.org/4766

More information about the Gluster-devel mailing list