Notice
This document is for a development version of Ceph.
Ceph Container Storage Interface (CSI)
Ceph-CSI implements the Container Storage Interface specification for Ceph storage. Container orchestrators such as Kubernetes use it to dynamically provision Ceph volumes and to attach those volumes to workloads. Kubernetes clusters that dynamically provision Ceph volumes rely on Ceph-CSI, whether Ceph runs inside the cluster under Rook or as an external cluster. Other CSI-capable platforms, including HashiCorp Nomad, can use Ceph-CSI as well.
Storage Backends
Ceph-CSI ships several drivers in a single binary. Each driver exposes a different Ceph interface to containerized workloads:
Driver |
Access model |
Typical use |
|---|---|---|
RBD |
Block volumes. |
Databases, virtual machines, and most single-writer workloads. See RBD with Ceph-CSI. |
CephFS |
Shared POSIX file system. |
Workloads that share data across many pods. See CephFS with Ceph-CSI. |
NFS |
CephFS subvolumes exported over NFS. |
Clients that cannot run Ceph client code, and NAS-style export of volumes to consumers outside the cluster. See NFS with Ceph-CSI. |
NVMe-oF |
Block volumes through standard NVMe/TCP initiators. |
Under active development. See NVMe-oF with Ceph-CSI. |
Warning
RBD volumes are not safe for ReadWriteMany access unless the
workloads themselves coordinate access to the shared device to
avoid corruption. ReadWriteMany raw block is required for
virtual machine live migration, but few other workloads can use it
safely. For general-purpose shared access, use CephFS.
Where the Documentation Lives
Ceph-CSI is developed and released independently of Ceph itself, and each Ceph-CSI release supports multiple Ceph releases. For that reason the canonical driver documentation is maintained by the Ceph-CSI project and published at ceph.github.io/ceph-csi.
The pages in this chapter cover the Ceph side of a Ceph-CSI deployment: preparing pools, file systems, and CephX users, and choosing a deployment method. For driver internals, complete example manifests, version compatibility, and upgrade procedures, follow the links to the canonical documentation in each page.
Brought to you by the Ceph Foundation
The Ceph Documentation is a community resource funded and hosted by the non-profit Ceph Foundation. If you would like to support this and our other efforts, please consider joining now.