From: Yan, Zheng Date: Fri, 13 Sep 2019 01:46:20 +0000 (+0800) Subject: doc/cephfs: add doc for cephfs io path X-Git-Tag: v15.1.0~1118^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=23286989955d2eb6e3a87ac8172d64506bfb5bdc;p=ceph.git doc/cephfs: add doc for cephfs io path Fixes: https://tracker.ceph.com/issues/41738 Signed-off-by: "Yan, Zheng" --- diff --git a/doc/cephfs/cephfs-io-path.rst b/doc/cephfs/cephfs-io-path.rst new file mode 100644 index 000000000000..61ce379f5a64 --- /dev/null +++ b/doc/cephfs/cephfs-io-path.rst @@ -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 .. 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 diff --git a/doc/cephfs/index.rst b/doc/cephfs/index.rst index ea52aa1a2868..d40cb08cde0e 100644 --- a/doc/cephfs/index.rst +++ b/doc/cephfs/index.rst @@ -143,6 +143,7 @@ Additional Details Distributed Metadata Cache FS volume and subvolumes Dynamic Metadata Management in CephFS + CephFS IO Path .. raw:: html