[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
Hi,
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.
Regards,
Amar
[1] - http://review.gluster.org/4766
More information about the Gluster-devel
mailing list