7.3. 创建无索引存储桶
您可以配置放置目标,其中创建的存储桶不使用存储桶索引来存储对象索引,即无索引存储桶。不使用数据复制或列表的放置目标可能会实现无索引存储桶。无索引存储桶提供了一种机制,即放置目标不会跟踪特定存储桶中的对象。这消除了每当发生对象写入时发生的资源争用,并减少 Ceph 对象网关对 Ceph 存储集群进行的往返次数。这可能会对并发操作和小对象写入性能产生积极的影响。
bucket 索引不会反映存储桶的正确状态,列出这些存储桶将无法正确返回其对象列表。这会影响多个功能。具体来说,这些存储桶不会在多区环境中同步,因为 bucket 索引不用于存储更改信息。红帽建议不要在无索引存储桶上使用 S3 对象版本控制,因为这个功能需要存储桶索引。
使用无索引存储桶可移除单个 bucket 中最大对象数量的限值。
无法从 NFS 列出无索引存储桶中的对象。
先决条件
- 正在运行的、健康的 Red Hat Ceph Storage 集群。
- 安装 Ceph 对象网关软件.
- Ceph 对象网关节点的根级别访问权限.
流程
在 zonegroup 中添加新放置目标:
示例
[ceph: root@host03 /]# radosgw-admin zonegroup placement add --rgw-zonegroup="default" \ --placement-id="indexless-placement"
在区中添加一个新的放置目标:
示例
[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"
将 zonegroup 的默认放置设置为
无索引放置
:示例
[ceph: root@host03 /]# radosgw-admin zonegroup placement default --placement-id "indexless-placement"
在本例中,在
indexless-placement
目标中创建的存储桶将是无索引存储桶。如果集群处于多站点配置中,请更新并提交周期:
示例
[ceph: root@host03 /]# radosgw-admin period update --commit
在存储集群的所有节点上重启 Ceph 对象网关,以使更改生效:
语法
ceph orch restart SERVICE_TYPE
示例
[ceph: root@host03 /]# ceph orch restart rgw