RGW profiling

Introduction to RGW

Ceph Object Storage, also known as RGW , provides a REST -style API interface, compatible with S3 and swift . RGW is simply a semantic conversion layer. In terms of the s3 interface, it is to convert the data read and write of s3 semantics into the read and write of objects in the rados cluster. For example, when uploading a file, the main thing RGW does is to split the file object into multiple rados cluster objects and save them (of course, it is more than that simple), download the file and then read multiple rados cluster objects and return them to the user. So a file that a user sees mapped to a rados cluster may have a 1 : N relationship.

RGW design

Externally, users send http requests to apache , and apache transfers the fastcgi module to the fastcgi receiver inside radosgw , and then radosgw stores data in the rados cluster through librados . The business flow diagram is as follows:

 

RGW is mainly divided into three parts:

1. rgw-http : Parse received restful requests, including S3 , SWIFT , ADMIN Ops , etc. 

2. librgw : Convert protocol semantics to object storage semantics, and finally store metadata or data in the rados cluster. There are file data, bucket metadata, user information data, metering data, quota information data, logs, etc. 

3. Background: rgw has multiple background processing or data brushing threads. Including gc (garbage data collection), usage (metering data), renewlog (remote replication data log), etc. 

RGW main process thread model

The main thread model of Rgw uses the general thread pool management of ceph. The main thread is used to receive the request received by fastcgi , and then drop the request into the queue. The specific request is processed by the worker thread of threadPool .

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325560152&siteId=291194637