While more and more companies start deploying Ceph, we also see that the open source technology is adopted by more and more market verticals. 10 years ago, we saw that Ceph was mostly adopted in the university and hosting verticals, nowadays we also see major growth in the governmental, software development, financial, fintech, telecommunications and high tech and research industries. The technical terms such as RADOS, RBD, RGW and so forth are becoming more popular. We thought it was time to create a sum-up and explanation of what each component does. So, we have summed up the definitions of some of the most important Ceph terms in this blog for you.
Ceph Block Device
Ceph Block Device (RBD) is a feature of the Ceph storage system that provides block-level storage access to Ceph objects. It allows you to create virtual block devices that can be accessed just like physical block devices, such as hard drives, NVMe’s or SSD’s.
RBD allows you to create a pool of storage from the Ceph cluster, which can then be carved up into smaller block devices. These block devices can be attached to virtual machines (VMs) or other applications that need block-level storage, such as databases or file systems. RBD also supports snapshots, which allow you to take point-in-time copies of the data stored on a block device, as well as cloning and data protection.
It also supports features such as thin provisioning, which allows you to allocate storage space to a block device on an as-needed basis. Furthermore, it is a popular choice for use in virtualized environments such as OpenStack or Cloudstack, as it allows you to provision and manage block storage for virtual machines in a centralized and automated manner. It can also be used in containerized environments, as well as in other types of distributed systems.
Ceph File System
Also called CephFS, is a distributed file system which is POSIX- compliant, with a Linux kernel and supports a file system on a user space (FUSE). It allows data to be stored in files and directories as a normal file system does. It provides a traditional file system interface with POSIX semantics. If you want files and directories to be able to communicate with the Ceph Object Store, you can achieve this with the Ceph File System Gate.
CephFS is designed to be highly scalable and to run on commodity hardware, similar to the Ceph storage system. It can be used to store and access large amounts of data, and supports features such as data replication, snapshots, and quotas.
This abbreviation stands for Reliable Autonomous Distributed Object Store. RADOS stores objects in a distributed and replicated manner, which ensures that data is available even in the event of a failure of one or more storage nodes. It also provides a self-healing mechanism that automatically detects and corrects any data inconsistencies that may occur due to failures.
RADOS is the foundation of Ceph’s storage system and provides the underlying storage layer for Ceph’s other features such as Ceph Block Device (RBD) and Ceph File System (CephFS). It is also used to provide storage for OpenStack’s Object Storage (Swift) and Block Storage (Cinder) services.
Object Storage Daemon is a component of the Ceph storage system that is responsible for storing and managing data on a storage node. Each OSD runs as a separate daemon and is responsible for managing a specific portion of the data stored in the Ceph cluster.
OSD performs operations such as reading and writing data, handling data replication and recovery, and communicating with other OSDs and clients. It also keeps track of the state of the data it stores and communicates with other OSDs in the cluster to ensure data consistency and availability.
Ceph clusters can be scaled by adding more OSDs as the storage needs grow. The more OSDs you add to a cluster, the more storage capacity and performance you can achieve. In addition, the addition of more OSDs increases the fault tolerance of the cluster.
This is the Ceph library that provides the programming interface for interacting with RADOS, the storage layer of the Ceph storage system. It allows you to write applications that can store and retrieve data in a Ceph cluster in a reliable and autonomic way.
It provides a simple object storage interface, which allows you to store and retrieve data in the form of objects. Objects are identified by a unique name and can be of any size, from a few bytes to many terabytes.
Librados provides a set of APIs that allow developers to create applications that interact with RADOS in a programmatic way. It also provides a command-line interface (CLI) tool that can be used to interact with RADOS directly from the command line. It provides functionality for performing operations like creating and deleting pools, reading and writing objects, and managing object metadata. It also provides support for advanced features such as snapshots, object-level replication, and object-level erasure coding.
Apart from Ceph LIBRADOS is widely used in many different types of applications, including big data platforms and high-performance computing environments. It is also used to provide storage for OpenStack’s Object Storage (Swift) and Block Storage (Cinder) services.
RADOS Gateway is a feature of the Ceph storage system that provides an object storage interface compatible with Amazon S3 and OpenStack Swift APIs. It allows you to access objects stored in a Ceph cluster using the S3 or Swift API, which makes it easy to integrate Ceph with a wide range of existing applications and tools that support these APIs. It provides a simple and reliable way to store and retrieve data in a Ceph cluster, and supports features such as data replication and snapshots. It also provides support for advanced features such as object versioning and multi-tenancy, which makes it well-suited for use in cloud storage environments.
RADOSGW is built on top of RADOS, the storage layer of the Ceph storage system, and uses the same simple object storage interface as RADOS. This allows it to take advantage of the same scalability, performance, and reliability features of RADOS.
There it is, our sum-up of some of the most important Ceph components. We have also created a similar article for you on OpenStack components, which you can read through the following link: https://fairbanks.nl/short-refresh-on-openstack-architecture-and-services/
Let us know if you would like to have other Ceph components explained as well in the comments.