Skip to content

vfs_ceph2: new VFS-module using libcephfs' low-level APIs

Ceph is a free and open-source software-defined storage platform that provides object, block and file storage on top a common distributed cluster foundation. CephFS is a POSIX-compliant file-system built on top of Ceph’s distributed object store, RADOS.

Libcephfs provides two types of programmable APIs: normal and low-level. The existing 'vfs_ceph.c' module uses the normal APIs while this new module uses the low-level one, which operates via inode and file-handle references, thus providing more fine grained granularity as well as potential for better performance.

The main advantages of using libcephfs low-level interfaces are:

  • Explicit user-credentials (libcephfs' UserPerms) per call.
  • Faster operation via (cached) inode or file-handle.
  • Improved resource consumption on libcephfs internal Client.
  • Asynchronous I/O (using ceph_ll_nonblocking_readv_writev, not impl yet).

Checklist

  • Commits have Signed-off-by: with name/author being identical to the commit author
  • (optional) This MR is just one part towards a larger feature.
  • (optional, if backport required) Bugzilla bug filed and BUG: tag added
  • Test suite updated with functionality tests
  • Test suite updated with negative tests
  • Documentation updated
  • CI timeout is 3h or higher (see Settings/CICD/General pipelines/ Timeout)

Reviewer's checklist:

  • There is a test suite reasonably covering new functionality or modifications
  • Function naming, parameters, return values, types, etc., are consistent and according to README.Coding.md
  • This feature/change has adequate documentation added
  • No obvious mistakes in the code
Edited by Anoop C S

Merge request reports

Loading