标签:tac server 类对象 属性 rest api head 可靠 ipa open
Ceph是一个统一的、分布式的的存储系统,具有优秀的性能、可靠性和可扩展性。Ceph支持对象存储(RADOSGW)、块存储(RBD)和文件存储(CephFS)。一个Ceph存储集群至少包含一个Ceph monitor、Ceph manager及Ceph OSD(Object Store Daemon)。若要运行CephFS client,还需要Ceph metadata server。以下是Ceph的整体架构图:
由上面的架构图可以看到,对于RGW来说,它对上层APP扮演一个HTTP server,对下层RADOS集群作为RADOS client。RGW作为HTTP server接收和解析HTTP客户端请求,RGW作为RADOS client为对象存储应用提供数据存储的通道,将应用请求数据处理并发送至RADOS存储。
以下是RGW的内部逻辑处理层级结构图:
HTTP 前端接收请求数据并保存在相应的数据结构中。
REST API 通用处理层从 HTTP 语义中解析出 S3 或 Swift 数据并进行一系列检查。
检查通过后,根据不同 API 操作请求执行不同的处理流程。
如需从 RADOS 集群中获取数据或者往 RADOS 集群中写入数据,则通过 RGW 与 RADOS 接口适配层调用 librados 接口将请求发送到 RADOS 集群中获取或写入相应数据。
RGW对外提供三种基础数据逻辑实体:
RGW兼容AWS S3和OpenStack Swift。RGW user对应S3 user,RGW user对应Swift Account,RGW subuser对应Swift user。
用户数据信息包含:
存储桶是对象的容器,是为了方便管理和操作具有相同属性的一类对象而引入的一级管理单元。
存储桶信息包含:
对于bucket placement rule,
RGW中的应用对象对应RADOS对象。应用对象上传分整体上传和分段上传,不同的上传方式应用对象对应RADOS对象的方式不同。
首先介绍三个概念:
“shadow_” + “.” + “32bit 随机字符串” + “_” + “条带编号”
,其中条带编号从1开始。RGW依照条带大小将应用对象的每一个分段分成多个RADOS对象,每个分段的第一个 RADOS 对象名称为:
“_multipart_” + “用户上传对象名称” + “分段上传ID” + “分段编号”
“_shadow_” + “用户上传对象名称” + “分段上传ID” + “分段编号” +? “_” + “条带编号”
当所有的分段上传结束后,RGW 会从 data_extra_pool 中的分段上传临时对象中读取各个分段信息,主要是各分段的 manifest 信息,组成一个 manifest;然后生成一个新的 RADOS 对象,即 head obj,用来保存分段上传的应用对象的元数据信息和各分段的manifest。
标签:tac server 类对象 属性 rest api head 可靠 ipa open
原文地址:https://www.cnblogs.com/dengchj/p/9444437.html