Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

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

作成されたバケットがバケットインデックスを使用せずに、オブジェクトのインデックスを格納する、つまりインデックスレスバケットを配置先として設定することができます。データのレプリケーションや一覧表示を使用しない配置ターゲットは、インデックスレスバケットを実装することができます。

インデックスレスバケットは、配置ターゲットが特定のバケット内のオブジェクトを追跡しないメカニズムです。これにより、オブジェクト書き込みが発生するたびに発生するリソース競合が削除され、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 オブジェクトのバージョン管理を使用することは推奨されません。

注記

インデックスレスバケットを使用すると、単一バケットのオブジェクトの最大数の上限が削除されます。

注記

インデックスレスバケットのオブジェクトは NFS から一覧表示できない