2019-09-13 01:46:20 +00:00
|
|
|
=========================
|
|
|
|
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::
|
2020-04-09 13:25:39 +00:00
|
|
|
|
2019-09-13 01:46:20 +00:00
|
|
|
+---------------------+
|
|
|
|
| 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
|