搜索

3.11. Ceph 对象网关数据布局

download PDF

虽然 RADOS 仅了解池和对象及其扩展属性(xattrs)和对象映射(OMAP),但概念上 Ceph 对象网关将其数据分为三种不同的类型:

  • metadata
  • bucket 索引
  • data

元数据

元数据有三个部分:

  • 用户 :保存用户信息。
  • bucket :包含 bucket 名称和 bucket 实例 ID 之间的映射。
  • bucket.instance :olds bucket 实例信息。

您可以使用以下命令查看元数据条目:

语法

radosgw-admin metadata get bucket:BUCKET_NAME
radosgw-admin metadata get bucket.instance:BUCKET:BUCKET_ID
radosgw-admin metadata get user:USER
radosgw-admin metadata set user:USER

示例

[root@host01 ~]# radosgw-admin metadata list
[root@host01 ~]# radosgw-admin metadata list bucket
[root@host01 ~]# radosgw-admin metadata list bucket.instance
[root@host01 ~]# radosgw-admin metadata list user

每个元数据条目都保存在单个 RADOS 对象上。

注意

Ceph 对象网关对象可能由多个 RADOS 对象组成,第一个是包含元数据的头头,如清单、Access Control List (ACL)、内容类型、ETag 和用户定义元数据。元数据存储在 xattrs 中。头条还可能包含最多 512 KB 的对象数据,以提高效率和原子性。清单描述各个对象在 RADOS 对象中如何布局。

bucket 索引

它是不同的元数据,单独保存。bucket 索引包含 RADOS 对象中的 key-value 映射。默认情况下,每个存储桶是一个单一 RADOS 对象,但可以跨多个 RADOS 对象对映射进行分片。

映射本身保存在与每个 RADOS 对象关联的 OMAP 中。每个 OMAP 的密钥是对象的名称,值包含该对象的基本元数据,这是列出存储桶时显示的元数据。每个 OMAP 包含一个标头,我们将一些存储桶核算元数据保存在该标头中,如对象数量、总大小,等等。

注意

OMAP 是一个键值存储,与对象关联,其方式类似于与 POSIX 文件关联的扩展属性。对象的 OMAP 不实际位于对象存储中,但其精确的实施对 Ceph 对象网关不可见。

data

对象数据保存在每个 Ceph 对象网关对象的一个或多个 RADOS 对象中。

3.11.1. 对象查找路径

访问对象时,REST API 会出现 Ceph 对象网关,具有三个参数:

  • 帐户信息,它在 Swift 中具有 S3 或帐户名称中的 access 密钥
  • bucket 或容器名称
  • 对象名称或密钥

目前,Ceph 对象网关仅使用帐户信息来查找用户 ID 和 访问控制。它只使用存储桶名称和对象键来对池中的对象进行地址。

帐户信息

Ceph 对象网关中的用户 ID 是一个字符串,通常是来自用户凭证的实际用户名,而不是散列或映射的标识符。

在访问用户数据时,从 default.rgw.meta 池中的 object USER_ID 加载 用户 记录。

bucket 名称

它们用 root 命名空间在 default.rgw.meta 池中表示。bucket 记录被加载,以获取作为 bucket ID 的标记。

对象名称

该对象位于 default.rgw.buckets.data 池中。对象名称为 MARKER_KEY,如 default.7593.4_image.png,其中标记是 default.7593.4,键是 image.png。这些串联的名称没有解析,仅传递到 RADOS。因此,选择分隔符并不重要,这会导致不清。原因相同,在对象名称(如键)中允许斜杠。

3.11.1.1. 多个数据池

可以创建多个数据池,从而默认在不同 RADOS 池中创建不同的用户存储桶,从而提供必要的扩展。这些池的布局和命名通过 策略 设置进行控制。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.