3.3. インデックスレスバケットの作成

作成されたバケットがバケットインデックスを使用してオブジェクトのインデックス(インデックスなしのバケット)を保存しない場合、配置ターゲットを設定できます。データのレプリケーションまたは一覧表示を使用しない配置ターゲットは、インデックスレスバケットを実装する可能性があります。

Indexless バケットは、配置ターゲットが特定のバケットのオブジェクトを追跡しないメカニズムを提供します。これにより、オブジェクトの書き込みが行われ、Ceph Object Gateway が Ceph Storage クラスターに加える必要のあるラウンドトリップの数が減ります。これにより、同時操作やオブジェクト書き込みパフォーマンスが少なくなります。

配置ターゲットをインデックスレスとして指定するには、以下の手順に従います。

  1. zone.json の設定を取得します。

    $ radosgw-admin zone get --rgw-zone=<zone> > zone.json
  2. 新しい配置対象を追加するか、既存の配置対象を変更して "index_type": 1 を持つようにすることで、zone.json を変更します。たとえば以下のようになります。

    "placement_pools": [
        {
          "key": "default-placement",
          "val": {
            "index_pool": "default.rgw.buckets.index",
            "data_pool": "default.rgw.buckets.data",
            "data_extra_pool": "default.rgw.buckets.non-ec",
            "index_type": 1,
            "compression": ""
          }
        },
        {
          "key": "indexless",
          "val": {
            "index_pool": "default.rgw.buckets.index",
            "data_pool": "default.rgw.buckets.data",
            "data_extra_pool": "default.rgw.buckets.non-ec",
            "index_type": 1
          }
        }
      ],
  3. zone.json の設定を設定します。

    $ radosgw-admin zone set --rgw-zone=<zone> --infile zone.json
  4. 新しい配置ターゲットを作成している場合は、zonegroup が新しい配置ターゲットを参照していることを確認します。

    $ radosgw-admin zonegroup get --rgw-zonegroup=<zonegroup> > zonegroup.json
  5. ゾーングループの default_placement を設定します。

    $ radosgw-admin zonegroup placement default --placement-id indexless
  6. 必要に応じて zonegroup.json を変更します。以下に例を示します。

      "placement_targets": [
        {
          "name": "default-placement",
          "tags": []
        },
        {    "name": "indexless",
    		     "tags": []
        }
      ],
      "default_placement": "default-placement",
    $ radosgw-admin zonegroup set --rgw-zonegroup=<zonegroup> < zonegroup.json
  7. クラスターがマルチサイト構成にある場合は、期間を更新し、コミットします。

    $ radosgw-admin period update --commit

この例では、"indexless" ターゲットで作成されたバケットはインデックスレスバケットです。

重要

バケットインデックスはバケットの正しい状態を反映せず、これらのバケットの一覧表示はそれらのオブジェクトの一覧を正しく返しません。これは、複数の機能に影響します。具体的には、バケットインデックスは変更情報を保存するために使用されないため、これらのバケットはマルチゾーン環境で同期されません。この機能にはバケットインデックスが必要になるため、S3 オブジェクトのバージョン化をインデックスなしバケットに使用することは推奨されません。

注記

indexless バケットを使用すると、単一バケットのオブジェクトの最大数の制限が削除されます。

注記

インデックスなしバケットのオブジェクトは NFS から一覧表示できません。