]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
doc/cephfs: add doc for cephfs io path
authorYan, Zheng <zyan@redhat.com>
Fri, 13 Sep 2019 01:46:20 +0000 (09:46 +0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 23 Oct 2019 08:01:07 +0000 (16:01 +0800)
Fixes: https://tracker.ceph.com/issues/41738
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
doc/cephfs/cephfs-io-path.rst [new file with mode: 0644]
doc/cephfs/index.rst

diff --git a/doc/cephfs/cephfs-io-path.rst b/doc/cephfs/cephfs-io-path.rst
new file mode 100644 (file)
index 0000000..61ce379
--- /dev/null
@@ -0,0 +1,49 @@
+=========================
+ Ceph File System IO Path
+=========================
+
+All file data in CephFS is stored as RADOS objects. CephFS clients can directly
+access RADOS to operate on file data. MDS only handles metadata operations.
+
+To read/write a CephFS file, client needs to have 'file read/write' capabilities
+for corresponding inode. If client does not have required capabilities, it sends
+a 'cap message' to MDS, telling MDS what it wants. MDS will issue capabilities
+to client when it is possible. Once client has 'file read/write' capabilities,
+it can directly access RADOS to read/write file data. File data are stored as
+RADOS objects in the form of <inode number>.<object index>. See 'Data Striping'
+section of `Architecture`_ for more information. If the file is only opened by
+one client, MDS also issues 'file cache/buffer' capabilities to the only client.
+The 'file cache' capability means that file read can be satisfied by client
+cache. The 'file buffer' capability means that file write can be buffered in
+client cache.
+
+
+.. ditaa::
+            +---------------------+
+            |     Application     |
+            +---------------------+
+              |
+              V
+            +---------------------+  Data IOs  +--------------------+
+            |    CephFS Library   | ---------> |       LibRados     |
+            +---------------------+            +--------------------+
+              |                                  |
+              | Metadata Operations              | Objects Read/Write
+              V                                  V
+            +---------------------+            +--------------------+
+            |         MDSs        | -=-------> |         OSDs       |
+            +---------------------+            +--------------------+
+
+
+            +----------------------+           +---------------------+
+            | CephFS kernel client | Data IOs  | Ceph kernel library |
+            |      (ceph.ko)       | --------> |     (libceph.ko)    |
+            +----------------------+           +---------------------+
+              |                                  |
+              | Metadata Operations              | Objects Read/Write
+              v                                  v
+            +---------------------+            +--------------------+
+            |         MDSs        | -=-------> |         OSDs       |
+            +---------------------+            +--------------------+
+
+.. _Architecture: ../architecture
index ea52aa1a28682ee33ed23be122a9722c0571026a..d40cb08cde0e224b39d7e6314e086d69d041242c 100644 (file)
@@ -143,6 +143,7 @@ Additional Details
     Distributed Metadata Cache <mdcache>
     FS volume and subvolumes <fs-volumes>
     Dynamic Metadata Management in CephFS <dynamic-metadata-management>
+    CephFS IO Path <cephfs-io-path>
 
 .. raw:: html