4.2. DNS へのワイルドカードの追加

ホスト名などのワイルドカードを DNS サーバーの DNS レコードに追加できます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • Ceph Object Gateway がインストールされている。
  • 管理ノードへのルートレベルのアクセス。

手順

  1. S3 スタイルのサブドメインで Ceph を使用するには、ceph-radosgw デーモンがドメイン名を解決するために使用する DNS サーバーの DNS レコードにワイルドカードを追加します。

    構文

    bucket-name.domain-name.com

    dnsmasq の場合は、ホスト名の先頭にドット (.) を付けた以下のアドレス設定を追加します。

    構文

    address=/.HOSTNAME_OR_FQDN/HOST_IP_ADDRESS

    address=/.gateway-host01/192.168.122.75

    bind の場合は、ワイルドカードを DNS レコードに追加します。

    $TTL    604800
    @       IN      SOA     gateway-host01. root.gateway-host01. (
                                  2         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      gateway-host01.
    @       IN      A       192.168.122.113
    *       IN      CNAME   @

  2. DNS サーバーを再起動して、サブドメインを使用してサーバーに ping し、ceph-radosgw デーモンがサブドメイン要求を処理できるようにします。

    構文

    ping mybucket.HOSTNAME

    [root@host01 ~]# ping mybucket.gateway-host01

  3. DNS サーバーがローカルマシンにある場合は、ローカルマシンのネームサーバーエントリーを追加して /etc/resolv.conf を変更しないといけない場合があります。
  4. Ceph Object Gateway ゾーングループにホスト名を追加します。

    1. ゾーングループを取得します。

      構文

      radosgw-admin zonegroup get --rgw-zonegroup=ZONEGROUP_NAME > zonegroup.json

      [ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup.json

    2. JSON ファイルのバックアップを取ります。

      [ceph: root@host01 /]# cp zonegroup.json zonegroup.backup.json

    3. zonegroup.json ファイルを表示します。

      [ceph: root@host01 /]# cat zonegroup.json
      {
          "id": "d523b624-2fa5-4412-92d5-a739245f0451",
          "name": "asia",
          "api_name": "asia",
          "is_master": "true",
          "endpoints": [],
          "hostnames": [],
          "hostnames_s3website": [],
          "master_zone": "d2a3b90f-f4f3-4d38-ac1f-6463a2b93c32",
          "zones": [
              {
                  "id": "d2a3b90f-f4f3-4d38-ac1f-6463a2b93c32",
                  "name": "india",
                  "endpoints": [],
                  "log_meta": "false",
                  "log_data": "false",
                  "bucket_index_max_shards": 11,
                  "read_only": "false",
                  "tier_type": "",
                  "sync_from_all": "true",
                  "sync_from": [],
                  "redirect_zone": ""
              }
          ],
          "placement_targets": [
              {
                  "name": "default-placement",
                  "tags": [],
                  "storage_classes": [
                      "STANDARD"
                  ]
              }
          ],
          "default_placement": "default-placement",
          "realm_id": "d7e2ad25-1630-4aee-9627-84f24e13017f",
          "sync_policy": {
              "groups": []
          }
      }

    4. zonegroup.json ファイルを新しいホスト名で更新します。

      "hostnames": ["host01", "host02","host03"],

    5. ゾーングループを Ceph Object Gateway に戻します。

      構文

      radosgw-admin zonegroup set --rgw-zonegroup=ZONEGROUP_NAME --infile=zonegroup.json

      [ceph: root@host01 /]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup.json

    6. 期間を更新します。

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

    7. Ceph Object Gateway を再起動して DNS 設定を有効にします。

関連情報