带你读《存储漫谈:Ceph原理与实践》——3.2.3 I/O 路径

简介: 带你读《存储漫谈:Ceph原理与实践》——3.2.3 I/O 路径

3.2.3  I/O 路径


RGW 是 RADOS Gateway,顾名思义是 RADOS 对象存储系统上层的一个网关服务,根据网关的功能定义,网关负责完成不同协议的转换和对接。在 Ceph 场景中,RGW即完成类似的功能:接收用户 S3/Swift 接口规则的数据存取请求,然后将其转化为后端RADOS 能够处理的操作。

RGW 的请求处理经历了 3 个阶段:

(1)Web 框架主要负责接收用户请求,RGW 中常用的 Web 框架包括 CivetWeb、Apache、Beast 等;

(2) 根 据 用 户 请 求 类 型, 分 别 选 择 不 同 的 RESTMgr( 针 对 不 同 的 Resource)、Handler、RGWOp 来处理用户的具体业务,梳理出用户的请求数据;

(3)将用户的业务请求转换为对 RADOS 层数据读写请求的封装,具体操作由RGWRados 完成。

RGW 的业务架构示意如图 3-29 所示。请求到达 RGW 网关后,在 RGW Frontend 层做相应转发,请求到达 RGWRESTMgr 层,RGWRESTMgr 依照请求资源类型,对请求做相应的 RGWHandler 层的资源实例化工作。

在 RGWHandler 层中实例化后的请求,首先进行前置处理,完成基本信息的校验等工作,在校验完成后,调用相关的业务接口 RGWOp 完成 Bucket 和 Object 的请求处理,并在 RGWOp 中,调用终极接口 RGWRados,完成 RGW 数据的最终落盘(RGWRados是 RGW 网关模块和后端的 RADOS 底层存储系统交互的窗口)。RGW 请求处理流程见图 3-30。

image.png

图 3-29 RGW 业务架构示意

image.png

图 3-30 RGW 请求处理流程

对 应 上 述 业 务 处 理 过 程,RGW 中 会 有 3 个 重 要 的 数 据 结 构:RGWFrontend、RGWRESTMgr 及 RGWHandler。

◆ RGWFrontend :RGWFrontend 是 RGW 的 WEB 前端类的封装,用于处理 HTTP(s)相关的请求,完成 RGW 业务逻辑中的 WEB 框架接收用户请求的功能。目前最新的 WEB框架是 Beast。

◆ RGWRESTMgr :RGWRESTMgr 负责 RGW 处理的资源类型区分,RGWRESTMgr包含了多种不同类型的路径和资源,并可根据请求资源类型的不同,将请求“路由”到不同的业务逻辑来进行处理(请求的实例化工作)。

◆ RGWHandler :RGWHandler 负责具体的用户请求处理,如客户使用 S3 规范进行业务请求,该层中会调用 S3 相关的 RGWHandler,后续操作如下。

(1)RGWHandler_REST_Service_S3

负责处理 S3 用户类型请求,包括获取用户的统计信息、用户的桶列表、S3 账户访问权限设置等。

(2)RGWHandler_REST_Bucket_S3

负责处理 S3 桶类型请求,包括桶的 ACL 权限列表、生命周期规则以及具体的创建 / 删除桶等操作。

(3)RGWHandler_REST_Obj_S3

负责处理 S3 Object 类型请求,包括 Object 的 ACL 权限列表、Tagging 及具体的Object 数据操作(简单上传、分块上传、删除)等。

相关文章
|
3月前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
169 0
|
6月前
|
存储 安全 开发工具
oss加密存储
阿里云OSS为数据安全提供多种加密机制,包括服务器端的SSE-S3(AES-256透明加密)、SSE-C(用户管理密钥)和CSE-KMS(结合KMS进行密钥管理)。此外,OSS支持客户端加密SDK和HTTPS传输加密,确保数据在传输和存储时的安全。通过ACL、Bucket策略和访问密钥身份验证,实现权限控制与身份验证,全方位保障用户数据的安全性和隐私。用户可按需选择适合的加密方式。
266 2
|
6月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
2146 2
|
16天前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准,存储、流量和请求等多个计费项
阿里云对象存储OSS提供按量付费与包年包月两种计费方式,涵盖存储、流量、请求等费用。标准存储按量付费0.09元/GB/月,包年包月40GB起售,价格9元/年。公网流量出方向收费,内网及上传免费。具体费用视使用情况而定,详情见官网。
130 0
|
2月前
|
存储 API Swift
Ceph Reef(18.2.X)之Swift操作对象存储网关
这篇文章详细介绍了Ceph Reef(18.2.X)中通过Swift API操作对象存储网关的方法,包括创建用户、子用户、配置环境变量、以及使用swift命令行工具进行存储桶和对象的管理。
36 7
Ceph Reef(18.2.X)之Swift操作对象存储网关
|
2月前
|
存储 对象存储
Ceph Reef(18.2.X)的对象存储网关(rgw)组件搭建
这篇文章是关于Ceph Reef(18.2.X)版本中对象存储系统的配置和使用案例,包括对象存储网关的概述、核心资源介绍、Ceph RGW支持的接口、高可用radosgw的部署、s3cmd工具的使用以及如何通过HTTP方式访问对象存储。
79 3
Ceph Reef(18.2.X)的对象存储网关(rgw)组件搭建
|
2月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
150 9
|
2月前
|
对象存储 Python
Ceph Reef(18.2.X)之python操作对象存储网关
这篇文章介绍了如何在Ceph Reef(18.2.X)环境中使用Python操作对象存储网关(rgw),包括环境搭建、账号创建、使用s3cmd工具以及编写和测试Python代码。
50 3
|
3月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
|
3月前
|
存储 Java 关系型数据库
实时计算 Flink版产品使用问题之以jar包方式同步数据是否需要定义存储oss的位置
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。