]>
Commit | Line | Data |
---|---|---|
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 |