summaryrefslogtreecommitdiffstats
path: root/doc/features/gfid-access.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/features/gfid-access.md')
-rw-r--r--doc/features/gfid-access.md73
1 files changed, 73 insertions, 0 deletions
diff --git a/doc/features/gfid-access.md b/doc/features/gfid-access.md
new file mode 100644
index 00000000000..2d324a18bdb
--- /dev/null
+++ b/doc/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 <node-ip>:<volname> <mountpoint>
+
+ 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 <file>
+
+ 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/<actual-canonical-gfid-of-the-file\>'
+
+ 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.