Creating indexless buckets

You can configure a placement target where created buckets do not use the bucket index to store objects index; that is, indexless buckets. Placement targets that do not use data replication or listing might implement indexless buckets. Indexless buckets provide a mechanism in which the placement target does not track objects in specific buckets. Indexless buckets removes a resource contention that happens whenever an object write happens and reduces the number of round-trips that Ceph Object Gateway needs to make to the Ceph storage cluster. This can have a positive effect on concurrent operations and small object write performance.

Before you begin

Before you begin, make sure that you have the following prerequisites in place:
  • A running IBM Storage Ceph cluster.
  • Installation of the Ceph Object Gateway software.
  • Root-level access to a Ceph Object Gateway node.

About this task

Important: The bucket index does not reflect the correct state of the bucket, and listing these buckets does not correctly return their list of objects, which affects multiple features. Specifically, these buckets are not synced in a multi-zone environment because the bucket index is not used to store change information. Do not to use S3 object versioning on indexless buckets because the bucket index is necessary for this feature.
Note: Using indexless buckets removes the limit of the max number of objects in a single bucket.

Procedure

  1. Add a new placement target to the zonegroup by using the radosgw-admin zonegroup placement add command.
    For example,
    [ceph: root@host03 /]# radosgw-admin zonegroup placement add --rgw-zonegroup="default" 
      --placement-id="indexless-placement"
  2. Add a new placement target to the zone by using the radosgw-admin zone placement add command.
    For example,
    [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. Set the default placement of the zonegroup to indexless-placement.
    All buckets that are created in the indexless-placement target will be indexless buckets.
    radosgw-admin zonegroup placement default --placement-id "indexless-placement"
    For example,
    [ceph: root@host03 /]# radosgw-admin zonegroup placement default --placement-id "indexless-placement"
  4. When the cluster is in a multi-site configuration, update and commit the period.
    radosgw-admin period update --commit
    For example,
    [ceph: root@host03 /]# radosgw-admin period update --commit
  5. Restart the Ceph Object Gateways on all nodes in the storage cluster for the change to take effect.
    ceph orch restart SERVICE_TYPE
    For example,
    [ceph: root@host03 /]# ceph orch restart rgw