Object Storage Service
Unlike traditional storage methods, object storage does not store data in files or blocks. Instead, it stores data as objects or key-value pairs. Multiple servers are configured with large-capacity drives and the Ceph object storage software to provide external read and write interfaces. Each object needs to store data, metadata, and a unique identifier. Object storage provides fast read/write speed like block storage and support data sharing like file storage. Therefore, object storage applies to scenarios with few updates, such as image storage and video storage. However, object storage cannot be directly accessed by the OS like a drive of a file system, and can only be accessed at an application layer by using APIs. The Ceph object gateway (also called RADOS gateway (
RADOS is the basis of the Ceph storage cluster. In Ceph, all data is stored as objects, and RADOS object storage is responsible for storing these objects regardless of the data type. The RADOS layer ensures data consistency. The RADOS must have its own user management. The RADOS gateway provides RESTful API for users' applications to store data in the Ceph cluster. The RGW interface is compatible with OpenStack Swift and Amazon S3.
RGW uses librgw and librados to allow applications to connect to the Ceph object storage. It converts API requests into librados requests and provides RESTful API interfaces compatible with OpenStack Swift and Amazon S3.
During the internal logic processing of the RGW, the HTTP front end receives the request data and saves it in the data structure. The RESTful API common processing layer parses the HTTP semantics to obtain the OpenStack Swift or Amazon S3 data and performs a series of checks. After the checks are passed, different processing procedures are performed according to the API operation requests. To obtain data from or write data to the RADOS cluster, the RGW and RADOS API adaptation layer calls the librados API to send a request to the RADOS cluster.
You can bypass the RGW layer to access the Ceph object storage system in a more flexible and faster manner. The librados software library allows users' applications to directly access the Ceph object storage through C, C++, Java, Python, and PHP. The Ceph object storage supports the multi-site capability, that is, it can provide a solution for disaster recovery (DR). You can use RADOS or the unified gateway to configure object storage for multiple sites.
From a storage perspective, Ceph OSDs perform a mapping from objects to blocks (a task that is often performed at the