]> git.proxmox.com Git - ceph.git/blobdiff - ceph/doc/cephfs/cephfs-io-path.rst
import 15.2.0 Octopus source
[ceph.git] / ceph / doc / cephfs / cephfs-io-path.rst
diff --git a/ceph/doc/cephfs/cephfs-io-path.rst b/ceph/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