7.3. 创建无索引存储桶

您可以配置放置目标,其中创建的存储桶不使用存储桶索引来存储对象索引,即无索引存储桶。不使用数据复制或列表的放置目标可能会实现无索引存储桶。无索引存储桶提供了一种机制,即放置目标不会跟踪特定存储桶中的对象。这消除了每当发生对象写入时发生的资源争用,并减少 Ceph 对象网关对 Ceph 存储集群进行的往返次数。这可能会对并发操作和小对象写入性能产生积极的影响。

重要

bucket 索引不会反映存储桶的正确状态,列出这些存储桶将无法正确返回其对象列表。这会影响多个功能。具体来说,这些存储桶不会在多区环境中同步,因为 bucket 索引不用于存储更改信息。红帽建议不要在无索引存储桶上使用 S3 对象版本控制,因为这个功能需要存储桶索引。

注意

使用无索引存储桶可移除单个 bucket 中最大对象数量的限值。

注意

无法从 NFS 列出无索引存储桶中的对象。

先决条件

  • 正在运行的、健康的 Red Hat Ceph Storage 集群。
  • 安装 Ceph 对象网关软件.
  • Ceph 对象网关节点的根级别访问权限.

流程

  1. 在 zonegroup 中添加新放置目标:

    示例

    [ceph: root@host03 /]# radosgw-admin zonegroup placement add --rgw-zonegroup="default" \
      --placement-id="indexless-placement"

  2. 在区中添加一个新的放置目标:

    示例

    [ceph: root@host03 /]# radosgw-admin zone placement add --rgw-zone="default" \
       --placement-id="indexless-placement" \
       --data-pool="default.rgw.buckets.data" \
       --index-pool="default.rgw.buckets.index" \
       --data_extra_pool="default.rgw.buckets.non-ec" \
       --placement-index-type="indexless"

  3. 将 zonegroup 的默认放置设置为 无索引放置

    示例

    [ceph: root@host03 /]# radosgw-admin zonegroup placement default --placement-id "indexless-placement"

    在本例中,在 indexless-placement 目标中创建的存储桶将是无索引存储桶。

  4. 如果集群处于多站点配置中,请更新并提交周期:

    示例

    [ceph: root@host03 /]# radosgw-admin period update --commit

  5. 在存储集群的所有节点上重启 Ceph 对象网关,以使更改生效:

    语法

    ceph orch restart SERVICE_TYPE

    示例

    [ceph: root@host03 /]# ceph orch restart rgw