Ceph is an open-source software-defined storage platform designed to provide highly scalable object, block, and file storage in a unified system.
Key features of Ceph include:
- Distributed storage that can scale to exabytes of data
- No single point of failure design
- Self-healing and self-managing capabilities
- Software-defined architecture that runs on commodity hardware
- Strong consistency and reliability features
- Support for object, block, and file storage interfaces
- Native replication for data redundancy and protection
Ceph is particularly popular in cloud infrastructure, data centers, and high-performance computing environments where scalability, reliability, and performance are critical requirements. It’s commonly used alongside cloud platforms and container orchestration tools like OpenStack and Kubernetes.
Ceph fs
CephFS (Ceph File System) is one of the three main storage interfaces provided by Ceph, alongside Ceph Block Device (RBD) and Ceph Object Gateway (RADOSGW).
CephFS is a POSIX-compliant distributed file system built on top of Ceph’s distributed object store (RADOS). It allows you to mount a distributed file system just like a traditional network file system such as NFS, but with the scalability and reliability benefits of Ceph’s architecture.
Key features of CephFS include:
- POSIX compliance for compatibility with existing applications
- Dynamic metadata partitioning for improved performance
- Distributed metadata servers (MDS) that can scale with demand
- Snapshot support for point-in-time recovery
- Unified storage alongside block and object interfaces
- High availability and fault tolerance
- Support for both kernel and user-space client implementations
Block size
For CephFS (Ceph File System), the typical block size structure works on multiple levels:
- Filesystem Block Size: By default, CephFS uses a 4 KB block size at the filesystem level, which is standard for most Linux filesystems. This is what applications and users directly interact with.
- Object Size: Under the hood, CephFS data is stored as objects in the RADOS layer, where the default object size is 4 MB. This is sometimes called the “object stripe size” in CephFS context.
- File Striping: For larger files, CephFS can stripe data across multiple objects. The default stripe unit is typically 4 MB (matching the object size), but this is configurable.