ceph/doc/cephfs/cephfs-io-path.rst
Kefu Chai 0cb56e0f13 doc: use plantweb as fallback of sphinx-ditaa
RTD does not support installing system packages, the only ways to install
dependencies are setuptools and pip. while ditaa is a tool written in
Java. so we need to find a native python tool allowing us to render ditaa
images. plantweb is able to the web service for rendering the ditaa
diagram. so let's use it as a fallback if "ditaa" is not around.

also start a new line after the directive, otherwise planweb server will
return 500 at seeing the diagram.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-04-10 08:38:06 +08:00

51 lines
2.4 KiB
ReStructuredText

=========================
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