]> git.proxmox.com Git - ceph.git/blob - ceph/doc/cephfs/cephfs-io-path.rst
Import ceph 15.2.8
[ceph.git] / ceph / doc / cephfs / cephfs-io-path.rst
1 =========================
2 Ceph File System IO Path
3 =========================
4
5 All file data in CephFS is stored as RADOS objects. CephFS clients can directly
6 access RADOS to operate on file data. MDS only handles metadata operations.
7
8 To read/write a CephFS file, client needs to have 'file read/write' capabilities
9 for corresponding inode. If client does not have required capabilities, it sends
10 a 'cap message' to MDS, telling MDS what it wants. MDS will issue capabilities
11 to client when it is possible. Once client has 'file read/write' capabilities,
12 it can directly access RADOS to read/write file data. File data are stored as
13 RADOS objects in the form of <inode number>.<object index>. See 'Data Striping'
14 section of `Architecture`_ for more information. If the file is only opened by
15 one client, MDS also issues 'file cache/buffer' capabilities to the only client.
16 The 'file cache' capability means that file read can be satisfied by client
17 cache. The 'file buffer' capability means that file write can be buffered in
18 client cache.
19
20
21 .. ditaa::
22
23 +---------------------+
24 | Application |
25 +---------------------+
26 |
27 V
28 +---------------------+ Data IOs +--------------------+
29 | CephFS Library | ---------> | LibRados |
30 +---------------------+ +--------------------+
31 | |
32 | Metadata Operations | Objects Read/Write
33 V V
34 +---------------------+ +--------------------+
35 | MDSs | -=-------> | OSDs |
36 +---------------------+ +--------------------+
37
38
39 +----------------------+ +---------------------+
40 | CephFS kernel client | Data IOs | Ceph kernel library |
41 | (ceph.ko) | --------> | (libceph.ko) |
42 +----------------------+ +---------------------+
43 | |
44 | Metadata Operations | Objects Read/Write
45 v v
46 +---------------------+ +--------------------+
47 | MDSs | -=-------> | OSDs |
48 +---------------------+ +--------------------+
49
50 .. _Architecture: ../architecture