Ceph is a distributed storage platform written in C++ that provides unified object, block, and file storage capabilities across a cluster of machines. The project is licensed primarily under LGPL version 2.1 or 3.0, with some components under BSD-style or public domain licenses, and documentation under Creative Commons Attribution Share Alike 3.0. Code contributions require a valid "Signed-off-by" line but do not require copyright assignment.
The repository supports a comprehensive range of storage interfaces and protocols including S3-compatible object storage, block storage via iSCSI, file system access through NFS and SMB, and POSIX-compliant interfaces. It integrates with Kubernetes for cloud-native deployments and supports advanced features like erasure coding for data redundancy, NVMe over Fabrics for high-performance access, and FUSE-based file system mounting. The platform is designed for high availability and fault tolerance through data replication mechanisms.
Building Ceph requires running the install-deps.sh script to handle package dependencies, followed by the do_cmake.sh script to configure the build. The project uses Ninja as its build system and supports both debug builds for development and optimized RelWithDebInfo builds for production. Debug builds run at approximately 20 percent of the performance of optimized builds. The build system allows customization through CMake options, such as disabling the RADOS Gateway with WITH_RADOSGW=OFF or specifying system libraries instead of bundled dependencies. Memory requirements are significant, with each parallel Ninja job requiring approximately 2.5 gigabytes of RAM.
The repository includes comprehensive testing infrastructure accessible through ctest, with unit tests organized into targets prefixed with "unittest" that run through ninja check, and additional test targets prefixed with "ceph_test" that must be run manually. A vstart cluster can be launched for development and testing, providing a local Ceph environment with configurable daemons and storage backends like BlueStore. The project includes troubleshooting guidance for common issues such as cluster startup failures, OSD crashes, and RocksDB-related errors, with logs available in the out directory.
The project is classified across multiple domains including redundancy, storage clustering, distributed storage, network attached storage, scalability, cloud computing, performance optimization, object storage, file systems, high availability, data management, block storage, cloud-native architectures, data replication, and fault tolerance. The comprehensive topic tags reflect the platform's broad applicability across enterprise storage, cloud infrastructure, and high-performance computing environments.