mirror of
https://github.com/ceph/ceph
synced 2025-03-30 07:19:14 +00:00
Merge pull request #44116 from lxbsz/caps_doc1
doc: fix the style of the cephfs capability doc Reviewed-by: Venky Shankar <vshankar@redhat.com>
This commit is contained in:
commit
675e4219a5
@ -80,21 +80,21 @@ Abilities granted by each cap
|
|||||||
While that is how capabilities are granted (and communicated), the important
|
While that is how capabilities are granted (and communicated), the important
|
||||||
bit is what they actually allow the client to do:
|
bit is what they actually allow the client to do:
|
||||||
|
|
||||||
* PIN: this just pins the inode into memory. This is sufficient to allow the
|
* **PIN**: this just pins the inode into memory. This is sufficient to allow
|
||||||
client to get to the inode number, as well as other immutable things like
|
the client to get to the inode number, as well as other immutable things like
|
||||||
major or minor numbers in a device inode, or symlink contents.
|
major or minor numbers in a device inode, or symlink contents.
|
||||||
|
|
||||||
* AUTH: this grants the ability to get to the authentication-related metadata.
|
* **AUTH**: this grants the ability to get to the authentication-related metadata.
|
||||||
In particular, the owner, group and mode. Note that doing a full permission
|
In particular, the owner, group and mode. Note that doing a full permission
|
||||||
check may require getting at ACLs as well, which are stored in xattrs.
|
check may require getting at ACLs as well, which are stored in xattrs.
|
||||||
|
|
||||||
* LINK: the link count of the inode
|
* **LINK**: the link count of the inode
|
||||||
|
|
||||||
* XATTR: ability to access or manipulate xattrs. Note that since ACLs are
|
* **XATTR**: ability to access or manipulate xattrs. Note that since ACLs are
|
||||||
stored in xattrs, it's also sometimes necessary to access them when checking
|
stored in xattrs, it's also sometimes necessary to access them when checking
|
||||||
permissions.
|
permissions.
|
||||||
|
|
||||||
* FILE: this is the big one. These allow the client to access and manipulate
|
* **FILE**: this is the big one. These allow the client to access and manipulate
|
||||||
file data. It also covers certain metadata relating to file data -- the
|
file data. It also covers certain metadata relating to file data -- the
|
||||||
size, mtime, atime and ctime, in particular.
|
size, mtime, atime and ctime, in particular.
|
||||||
|
|
||||||
@ -130,49 +130,53 @@ it will fail. The loner client will always get all the capabilities.
|
|||||||
The filelock will control files' partial metadatas' and the file contents' access
|
The filelock will control files' partial metadatas' and the file contents' access
|
||||||
permissions. The metadatas include **mtime**, **atime**, **size**, etc.
|
permissions. The metadatas include **mtime**, **atime**, **size**, etc.
|
||||||
|
|
||||||
**Fs**: Once a client has it, all other clients are denied **Fw**.
|
* **Fs**: Once a client has it, all other clients are denied **Fw**.
|
||||||
|
|
||||||
**Fx**: Only the loner client is allowed this capability. Once the lock state transitions
|
* **Fx**: Only the loner client is allowed this capability. Once the lock state
|
||||||
to LOCK_EXCL, the loner client is granted this along with all other file capabilities
|
transitions to LOCK_EXCL, the loner client is granted this along with all other
|
||||||
except the **Fl**.
|
file capabilities except the **Fl**.
|
||||||
|
|
||||||
**Fr**: Once a client has it, the **Fb** capability will be already revoked from all
|
* **Fr**: Once a client has it, the **Fb** capability will be already revoked from
|
||||||
the other clients.
|
all the other clients.
|
||||||
|
|
||||||
If clients only request to read the file, the lock state will be transferred
|
If clients only request to read the file, the lock state will be transferred
|
||||||
to LOCK_SYNC stable state directly. All the clients can be granted **Fscrl**
|
to LOCK_SYNC stable state directly. All the clients can be granted **Fscrl**
|
||||||
capabilities from the auth MDS and **Fscr** capabilities from the replica MDSes.
|
capabilities from the auth MDS and **Fscr** capabilities from the replica MDSes.
|
||||||
|
|
||||||
If multiple clients read from and write to the same file, then the lock state
|
If multiple clients read from and write to the same file, then the lock state
|
||||||
will be transferred to LOCK_MIX stable state finally and all the clients could
|
will be transferred to LOCK_MIX stable state finally and all the clients could
|
||||||
have the **Frwl** capabilities from the auth MDS, and the **Fr** from the replica
|
have the **Frwl** capabilities from the auth MDS, and the **Fr** from the replica
|
||||||
MDSes. The **Fcb** capabilities won't be granted to all the clients and the
|
MDSes. The **Fcb** capabilities won't be granted to all the clients and the
|
||||||
clients will do sync read/write.
|
clients will do sync read/write.
|
||||||
|
|
||||||
**Fw**: If there is no loner client and once a client have this capability, the **Fsxcb**
|
* **Fw**: If there is no loner client and once a client have this capability, the
|
||||||
capabilities won't be granted to other clients.
|
**Fsxcb** capabilities won't be granted to other clients.
|
||||||
|
|
||||||
If multiple clients read from and write to the same file, then the lock state
|
If multiple clients read from and write to the same file, then the lock state
|
||||||
will be transferred to LOCK_MIX stable state finally and all the clients could
|
will be transferred to LOCK_MIX stable state finally and all the clients could
|
||||||
have the **Frwl** capabilities from the auth MDS, and the **Fr** from the replica
|
have the **Frwl** capabilities from the auth MDS, and the **Fr** from the replica
|
||||||
MDSes. The **Fcb** capabilities won't be granted to all the clients and the
|
MDSes. The **Fcb** capabilities won't be granted to all the clients and the
|
||||||
clients will do sync read/write.
|
clients will do sync read/write.
|
||||||
|
|
||||||
**Fc**: This capability means the clients could cache file read and should be issued
|
* **Fc**: This capability means the clients could cache file read and should be
|
||||||
together with **Fr** capability and only in this use case will it make sense.
|
issued together with **Fr** capability and only in this use case will it make
|
||||||
While actually in some stable or interim transitional states they tend to keep
|
sense.
|
||||||
the **Fc** allowed even the **Fr** capability isn't granted as this can avoid
|
|
||||||
forcing clients to drop full caches, for example on a simple file size extension
|
|
||||||
or truncating use case.
|
|
||||||
|
|
||||||
**Fb**: This capability means the clients could buffer file write and should be issued
|
While actually in some stable or interim transitional states they tend to keep
|
||||||
together with **Fw** capability and only in this use case will it make sense.
|
the **Fc** allowed even the **Fr** capability isn't granted as this can avoid
|
||||||
While actually in some stable or interim transitional states they tend to keep
|
forcing clients to drop full caches, for example on a simple file size extension
|
||||||
the **Fc** allowed even the **Fw** capability isn't granted as this can avoid
|
or truncating use case.
|
||||||
forcing clients to drop dirty buffers, for example on a simple file size extension
|
|
||||||
or truncating use case.
|
|
||||||
|
|
||||||
**Fl**: This capability means the clients could perform lazy io. LazyIO relaxes POSIX
|
* **Fb**: This capability means the clients could buffer file write and should be
|
||||||
semantics. Buffered reads/writes are allowed even when a file is opened by multiple
|
issued together with **Fw** capability and only in this use case will it make
|
||||||
applications on multiple clients. Applications are responsible for managing cache
|
sense.
|
||||||
coherency themselves.
|
|
||||||
|
While actually in some stable or interim transitional states they tend to keep
|
||||||
|
the **Fc** allowed even the **Fw** capability isn't granted as this can avoid
|
||||||
|
forcing clients to drop dirty buffers, for example on a simple file size extension
|
||||||
|
or truncating use case.
|
||||||
|
|
||||||
|
* **Fl**: This capability means the clients could perform lazy io. LazyIO relaxes
|
||||||
|
POSIX semantics. Buffered reads/writes are allowed even when a file is opened by
|
||||||
|
multiple applications on multiple clients. Applications are responsible for managing
|
||||||
|
cache coherency themselves.
|
||||||
|
Loading…
Reference in New Issue
Block a user