Menu Close

5.7.2. 1 つのレルムのあるマルチサイト Ceph Object Gateway の設定

Ceph-Ansible は、複数のストレージクラスター間で 1 つのレルムのデータをミラーリングするように Ceph Object Gateways を設定します。

警告

Ceph-Ansible は、ゲートウェイがシングルサイト構成で開始した後に、マルチサイトセットアップにゲートウェイを再構成することはできません。この設定は手動でデプロイできます。レッドハットサポート にお問い合わせください。

前提条件

手順

  1. プライマリーストレージクラスターの Ansible ノードで以下の手順を実行します。

    1. システムキーを生成し、multi-site-keys.txt ファイルで出力を取得します。

      [root@ansible ~]# echo system_access_key: $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n 1) > multi-site-keys.txt
      [root@ansible ~]# echo system_secret_key: $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 40 | head -n 1) >> multi-site-keys.txt
    2. Ceph-Ansible 設定ディレクトリー /usr/share/ceph-ansible に移動します。

      [root@ansible ~]# cd /usr/share/ceph-ansible
    3. group_vars/all.yml ファイルを開いて編集します。それぞれ、ZONE_NAMEZONE_GROUP_NAMEZONE_USER_NAMEZONE_DISPLAY_NAME、および REALM_NAME の更新と共に以下の設定を行います。ACCESS_KEY および SECRET_KEYmulti-site-keys.txt ファイルに保存されるランダムな文字列を使用します。

      構文

      rgw_multisite: true
      rgw_zone: ZONE_NAME
      rgw_zonegroup: ZONE_GROUP_NAME
      rgw_realm: REALM_NAME
      rgw_zonemaster: true
      rgw_zonesecondary: false
      rgw_zonegroupmaster: true
      rgw_zone_user: ZONE_USER_NAME
      rgw_zone_user_display_name: ZONE_DISPLAY_NAME
      system_access_key: ACCESS_KEY
      system_secret_key: SECRET_KEY
      rgw_multisite_proto: "http"

      rgw_multisite: true
      rgw_zone: juneau
      rgw_zonegroup: alaska
      rgw_realm: usa
      rgw_zonemaster: true
      rgw_zonesecondary: false
      rgw_zonegroupmaster: true
      rgw_zone_user: synchronization-user
      rgw_zone_user_display_name: "Synchronization User"
      rgw_multisite_proto: "http"
      system_access_key: 86nBoQOGpQgKxh4BLMyq
      system_secret_key: NTnkbmkMuzPjgwsBpJ6o

  2. セカンダリーストレージクラスターの Ansible ノードで以下の手順を実行します。

    1. Ceph-Ansible 設定ディレクトリー /usr/share/ceph-ansible に移動します。

      [root@ansible ~]# cd /usr/share/ceph-ansible
    2. group_vars/all.yml ファイルを開いて編集します。以下の設定を構成します。ZONE_USER_NAMEZONE_DISPLAY_NAMEACCESS_KEYSECRET_KEYREALM_NAME、および ZONE_GROUP_NAME の最初のクラスターで使用するものと同じ値を指定します。ZONE_NAME には、プライマリーストレージクラスターとは異なる値を使用します。マスターゾーンの Ceph Object Gateway ノードに MASTER_RGW_NODE_NAME を設定します。なお、プライマリストレージクラスターと比較して、rgw_zonemasterrgw_zonesecondaryrgw_zonegroupmaster の設定が逆にることに注意してください。

      構文

      rgw_multisite: true
      rgw_zone: ZONE_NAME
      rgw_zonegroup: ZONE_GROUP_NAME
      rgw_realm: REALM_NAME
      rgw_zonemaster: false
      rgw_zonesecondary: true
      rgw_zonegroupmaster: false
      rgw_zone_user: ZONE_USER_NAME
      rgw_zone_user_display_name: ZONE_DISPLAY_NAME
      system_access_key: ACCESS_KEY
      system_secret_key: SECRET_KEY
      rgw_multisite_proto: "http"
      rgw_pull_proto: http
      rgw_pull_port: 8080
      rgw_pullhost: MASTER_RGW_NODE_NAME

      rgw_multisite: true
      rgw_zone: fairbanks
      rgw_zonegroup: alaska
      rgw_realm: usa
      rgw_zonemaster: false
      rgw_zonesecondary: true
      rgw_zonegroupmaster: false
      rgw_zone_user: synchronization-user
      rgw_zone_user_display_name: "Synchronization User"
      system_access_key: 86nBoQOGpQgKxh4BLMyq
      system_secret_key: NTnkbmkMuzPjgwsBpJ6o
      rgw_multisite_proto: "http"
      rgw_pull_proto: http
      rgw_pull_port: 8080
      rgw_pullhost: cluster0-rgw-000

  3. プライマリーストレージクラスターで Ansible Playbook を実行します。

    注記

    クラスターがデプロイされていて、Ceph Object Gateway のみに変更を加える場合は、--limit rgws オプションを使用します。

    1. ベアメタル デプロイメント:

      [user@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
    2. コンテナー デプロイメント:

      [user@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts
  4. セカンダリーのストレジクラスターがプライマリーのストレージクラスターの API にアクセスできることを確認します。

    セカンダリーのストレージクラスターの Object Gateway ノードから、curl または別の HTTP クライアントを使用して、プライマリークラスターの API に接続します。all.ymlrgw_pull_protorgw_pullhost、および rgw_pull_port の設定に使用する情報を使用して URL を作成します。上記の例では、URL は http://cluster0-rgw-000:8080です。API にアクセスできない場合は、URL が正しいことを確認し、必要な場合は all.yml を更新します。URL が有効になり、ネットワークの問題が解決したら、次の手順に進み、セカンダリーのストレージクラスターで Ansible Playbook を実行します。

  5. セカンダリーのストレージクラスターで Ansible Playbook を実行します。

    注記

    クラスターがデプロイされていて、Ceph Object Gateway に変更を加える場合は、--limit rgws オプションを使用します。

    1. ベアメタル デプロイメント:

      [user@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
    2. コンテナー デプロイメント:

      [user@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts

      プライマリーストレージクラスターおよびセカンダリーストレージクラスターで Ansible Playbook を実行した後に、Ceph Object Gateway はアクティブ/アクティブ状態で実行されます。

  6. 両方のサイトでマルチサイト Ceph Object Gateway の設定を確認します。

    構文

    radosgw-admin sync status