Ceph is a software-defined storage solution designed to address the object, block, and file storage needs of data centres adopting open source as the new norm for high-growth block storage, object stores and data lakes. Ceph provides enterprise scalable storage while keeping CAPEX and OPEX costs in line with underlying bulk commodity disk prices.
Ceph allows decoupling data from physical hardware storage, using software abstraction layers, providing scaling and fault management capabilities. This makes Ceph ideal for cloud, Openstack, Kubernetes and other microservice and container-based workloads as it can effectively address large data volume storage needs.
The main advantage of Ceph is that it provides interfaces for multiple storage types within a single cluster, eliminating the need for multiple vendor storage solutions and specialised hardware. Use cases of Ceph vary from cloud infrastructure and hyperconverged infrastructure to big data analytics and rich media.
What is a Ceph cluster?
A Ceph storage cluster consists of the following types of daemons:
Cluster monitors (
ceph-mon) that maintain the map of the cluster state, keeping track of active and failed cluster nodes, cluster configuration, and information about data placement and manage daemon-client authentications.
Object storage devices (
ceph-osd) that store data on behalf of Ceph clients. Additionally, they handle data replication, erasure coding, recovery, rebalancing, monitoring and reporting.
ceph-mgr) that maintain cluster runtime metrics, enable dashboarding capabilities and provide an interface to external monitoring systems.
Metadata servers (
ceph-mds) that store metadata on behalf of the Ceph File System, mapping filenames and directories of the file system to RADOS objects and allow the use of POSIX semantics to access the files.
Ceph stores data as objects within logical storage pools. In order to achieve scalability, rebalancing and recovery capabilities, Ceph shards the pools into placement groups. The CRUSH algorithm then defines the placement group for storing an object and thereafter calculates which Ceph OSD Daemon should store the placement group.
- Thin provisioning of block storage for disk usage optimisation
- Partial or complete read and writes and atomic transactions
- Erasure coding for data protection
- Snapshot history, cloning and layering support
- POSIX file system semantics support
- Object level key-value mappings
Companies using Ceph
There are multiple users of Ceph across a broad range of industries, from academia to telecommunications and cloud service providers. Ceph is particularly favoured for its flexibility, scalability, and robustness.
Community and governance
Ceph was initially created by Sage Weil as part of his doctoral dissertation at the University of California, Santa Cruz and evolved from a file system prototype to a fully functional open source storage platform.
Ubuntu was an early supporter of Ceph and its community. That support continues today as Canonical maintains premier member status and serves on the governing board of the Ceph Foundation.
Multiple companies contribute to Ceph, with many more playing a part in the broader community.