From 9e9e3c5620882d2f769694996ff4d7e0cf36cc2b Mon Sep 17 00:00:00 2001 From: raghavendra talur Date: Thu, 20 Aug 2015 15:09:31 +0530 Subject: Create basic directory structure All new features specs go into in_progress directory. Once signed off, it should be moved to done directory. For now, This change moves all the Gluster 4.0 feature specs to in_progress. All other specs are under done/release-version. More cleanup required will be done incrementally. Change-Id: Id272d301ba8c434cbf7a9a966ceba05fe63b230d BUG: 1206539 Signed-off-by: Raghavendra Talur Reviewed-on: http://review.gluster.org/11969 Reviewed-by: Humble Devassy Chirammal Reviewed-by: Prashanth Pai Tested-by: Humble Devassy Chirammal --- done/Features/gfid-access.md | 73 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 done/Features/gfid-access.md (limited to 'done/Features/gfid-access.md') diff --git a/done/Features/gfid-access.md b/done/Features/gfid-access.md new file mode 100644 index 0000000..2d324a1 --- /dev/null +++ b/done/Features/gfid-access.md @@ -0,0 +1,73 @@ +#Gfid-access Translator +The 'gfid-access' translator provides access to data in glusterfs using a +virtual path. This particular translator is designed to provide direct access to +files in glusterfs using its gfid. 'GFID' is glusterfs's inode number for a file +to identify it uniquely. As of now, Geo-replication is the only consumer of this +translator. The changelog translator logs the 'gfid' with corresponding file +operation in journals which are consumed by Geo-Replication to replicate the +files using gfid-access translator very efficiently. + +###Implications and Usage +A new virtual directory called '.gfid' is exposed in the aux-gfid mount +point when gluster volume is mounted with 'aux-gfid-mount' option. +All the gfids of files are exposed in one level under the '.gfid' directory. +No matter at what level the file resides, it is accessed using its +gfid under this virutal directory as shown in example below. All access +protocols work seemlessly, as the complexities are handled internally. + +###Testing +1. Mount glusterfs client with '-o aux-gfid-mount' as follows. + + mount -t glusterfs -o aux-gfid-mount : + + Example: + + #mount -t glusterfs -o aux-gfid-mount rhs1:master /master-aux-mnt + +2. Get the 'gfid' of a file using normal mount or aux-gfid-mount and do some + operations as follows. + + getfattr -n glusterfs.gfid.string + + Example: + + #getfattr -n glusterfs.gfid.string /master-aux-mnt/file + # file: file + glusterfs.gfid.string="796d3170-0910-4853-9ff3-3ee6b1132080" + + #cat /master-aux-mnt/file + sample data + + #stat /master-aux-mnt/file + File: `file' + Size: 12 Blocks: 1 IO Block: 131072 regular file + Device: 13h/19d Inode: 11525625031905452160 Links: 1 + Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 2014-05-23 20:43:33.239999863 +0530 + Modify: 2014-05-23 17:36:48.224999989 +0530 + Change: 2014-05-23 20:44:10.081999938 +0530 + + +3. Access files using virtual path as follows. + + /mountpoint/.gfid/' + + Example: + + #cat /master-aux-mnt/.gfid/796d3170-0910-4853-9ff3-3ee6b1132080 + sample data + #stat /master-aux-mnt/.gfid/796d3170-0910-4853-9ff3-3ee6b1132080 + File: `.gfid/796d3170-0910-4853-9ff3-3ee6b1132080' + Size: 12 Blocks: 1 IO Block: 131072 regular file + Device: 13h/19d Inode: 11525625031905452160 Links: 1 + Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 2014-05-23 20:43:33.239999863 +0530 + Modify: 2014-05-23 17:36:48.224999989 +0530 + Change: 2014-05-23 20:44:10.081999938 +0530 + + We can notice that 'cat' command on the 'file' using path and using virtual + path displays the same data. Similarly 'stat' command on the 'file' and using + virtual path with gfid gives same Inode Number confirming that its same file. + +###Nature of changes +This feature is introduced with 'gfid-access' translator. -- cgit