Menu Close
5.7.2. 1 つのレルムのあるマルチサイト Ceph Object Gateway の設定
Ceph-Ansible は、複数のストレージクラスター間で 1 つのレルムのデータをミラーリングするように Ceph Object Gateways を設定します。
Ceph-Ansible は、ゲートウェイがシングルサイト構成で開始した後に、マルチサイトセットアップにゲートウェイを再構成することはできません。この設定は手動でデプロイできます。レッドハットサポート にお問い合わせください。
前提条件
- Red Hat Ceph Storage クラスターを実行する 2 つ。
- Ceph Object Gateway ノード上で、『Red Hat Ceph Storage インストールガイド』の「Red Hat Ceph Storage のインストール要件」セクションに記載のタスクを実行します。
- 各 Object Gateway ノードについて、『Red Hat Ceph Storage インストールガイド』の「Ceph Object Gateway のインストール」セクションに記載のステップ 1 から 6 を実施します。
手順
プライマリーストレージクラスターの Ansible ノードで以下の手順を実行します。
システムキーを生成し、
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
Ceph-Ansible 設定ディレクトリー
/usr/share/ceph-ansible
に移動します。[root@ansible ~]# cd /usr/share/ceph-ansible
group_vars/all.yml
ファイルを開いて編集します。それぞれ、ZONE_NAME、ZONE_GROUP_NAME、ZONE_USER_NAME、ZONE_DISPLAY_NAME、および REALM_NAME の更新と共に以下の設定を行います。ACCESS_KEY および SECRET_KEY のmulti-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
セカンダリーストレージクラスターの Ansible ノードで以下の手順を実行します。
Ceph-Ansible 設定ディレクトリー
/usr/share/ceph-ansible
に移動します。[root@ansible ~]# cd /usr/share/ceph-ansible
group_vars/all.yml
ファイルを開いて編集します。以下の設定を構成します。ZONE_USER_NAME、ZONE_DISPLAY_NAME、ACCESS_KEY、SECRET_KEY、REALM_NAME、および ZONE_GROUP_NAME の最初のクラスターで使用するものと同じ値を指定します。ZONE_NAME には、プライマリーストレージクラスターとは異なる値を使用します。マスターゾーンの Ceph Object Gateway ノードに MASTER_RGW_NODE_NAME を設定します。なお、プライマリストレージクラスターと比較して、rgw_zonemaster
、rgw_zonesecondary
、rgw_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
プライマリーストレージクラスターで Ansible Playbook を実行します。
注記クラスターがデプロイされていて、Ceph Object Gateway のみに変更を加える場合は、
--limit rgws
オプションを使用します。ベアメタル デプロイメント:
[user@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
コンテナー デプロイメント:
[user@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts
セカンダリーのストレジクラスターがプライマリーのストレージクラスターの API にアクセスできることを確認します。
セカンダリーのストレージクラスターの Object Gateway ノードから、
curl
または別の HTTP クライアントを使用して、プライマリークラスターの API に接続します。all.yml
でrgw_pull_proto
、rgw_pullhost
、およびrgw_pull_port
の設定に使用する情報を使用して URL を作成します。上記の例では、URL はhttp://cluster0-rgw-000:8080
です。API にアクセスできない場合は、URL が正しいことを確認し、必要な場合はall.yml
を更新します。URL が有効になり、ネットワークの問題が解決したら、次の手順に進み、セカンダリーのストレージクラスターで Ansible Playbook を実行します。セカンダリーのストレージクラスターで Ansible Playbook を実行します。
注記クラスターがデプロイされていて、Ceph Object Gateway に変更を加える場合は、
--limit rgws
オプションを使用します。ベアメタル デプロイメント:
[user@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
コンテナー デプロイメント:
[user@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts
プライマリーストレージクラスターおよびセカンダリーストレージクラスターで Ansible Playbook を実行した後に、Ceph Object Gateway はアクティブ/アクティブ状態で実行されます。
両方のサイトでマルチサイト Ceph Object Gateway の設定を確認します。
構文
radosgw-admin sync status