5.2. マルチサイト設定および管理
ストレージ管理者は、さまざまなユースケースに対して複数の Ceph Object Gateway を設定し、管理することができます。障害復旧中の手順、およびフェイルオーバーイベントを確認できます。また、マルチサイトの Ceph Object Gateway 環境でレルム、ゾーン、および同期ポリシーについて詳しく説明します。
単一ゾーン設定は通常、1 つのゾーンと 1 つ以上の ceph-radosgw
インスタンスを含む 1 つのゾーングループで設定され、インスタンス間でゲートウェイクライアント要求の負荷を分散できます。単一ゾーン設定では、通常複数のゲートウェイインスタンスが単一の Ceph Storage Cluster を参照します。ただし、Red Hat は、Ceph Object Gateway の複数のマルチサイト設定オプションをサポートしています。
-
マルチゾーン: より高度な設定は、1 つのゾーングループと複数のゾーンで設定され、各ゾーンには 1 つ以上の
ceph-radosgw
インスタンスがあります。各ゾーンは、独自の Ceph Storage Cluster でサポートされます。ゾーングループ内の複数のゾーンは、ゾーンの 1 つで重大な障害が発生した場合に、ゾーングループに障害復旧を提供します。各ゾーンはアクティブで、書き込み操作を受け取る可能性があります。障害復旧に加え、複数のアクティブなゾーンがコンテンツ配信ネットワークの基盤としても機能する場合があります。レプリケーションなしで複数のゾーンを設定するには、レプリケーションなしで複数のゾーンを設定 を参照してください。 - マルチゾーングループ: 以前はリージョンと呼ばれていた Ceph Object Gateway は、複数のゾーングループをサポートすることもでき、各ゾーングループには 1 つ以上のゾーンがあります。同じレルム内のゾーングループに保管されるオブジェクトは、グローバル名前空間を共有し、ゾーングループとゾーン全体で一意のオブジェクト ID を確保します。
- 複数のレルム: Ceph Object Gateway は、レルムの概念をサポートします。レルムは、単一のゾーングループまたは複数のゾーングループと、レルムのグローバルに一意の名前空間です。複数のレルムは、多数の設定と名前空間をサポートする機能を提供します。
前提条件
- 正常かつ実行中の Red Hat Ceph Storage クラスター
- Ceph Object Gateway ソフトウェアの デプロイメント。
5.2.1. 要件および前提条件
マルチサイト設定には、少なくとも 2 つの Ceph Storage Cluster が必要です。さらに、2 つ以上の Ceph Object Gateway インスタンス (Ceph Storage Cluster ごとに 1 つずつ) が必要です。
本ガイドでは、地理的に別々の場所にある Ceph Storage Cluster が 2 つ以上あることを前提としていますが、この設定は同じ物理サイトで機能することができます。。本ガイドでは、rgw1
、rgw2
、rgw3
、および rgw4
という名前の 4 つの Ceph Object Gateway サーバーをそれぞれ前提としています。
マルチサイト設定では、マスターゾーングループとマスターゾーンが必要です。さらに、各ゾーングループにはマスターゾーンが必要です。ゾーングループには、1 つ以上のセカンダリーゾーンまたはマスター以外のゾーンがあります。
マルチサイトのネットワークに関する考慮事項を計画するときは、マルチサイト同期ネットワークで観察される帯域幅と遅延の関係、およびセカンダリーサイトに負っているオブジェクトの現在の同期状態と直接相関するクライアント取り込み速度を理解することが重要です。Red Hat Ceph Storage マルチサイトクラスター間のネットワークリンクは、プライマリークラスターへの取り込みを処理して、セカンダリーサイトで効果的な復旧時間を維持できる必要があります。マルチサイト同期は非同期であり、制限の 1 つは、同期ゲートウェイがリンクを介してデータを処理できる速度です。ネットワークの相互接続速度に関して検討する例としては、クライアントゲートウェイごとに 8 TB または累積受信データごとに 1 GbE またはデータセンター間接続が考えられます。したがって、他の 2 つのサイトにレプリケートし、1 日 16 TB を取り込む場合、マルチサイトレプリケーションには 6 GbE の専用帯域幅が必要です。
Red Hat では、追加のオーバーヘッドが発生するため、インターネット経由の VPN は理想的ではないため、プライベートイーサネットまたは高密度波長分割多重 (DWDM) も推奨しています。
レルムのマスターゾーングループ内のマスターゾーンは、(radosgw-admin
CLI によって作成された) ユーザー、クォータ、バケットを含むレルムのメタデータのマスターコピーを保存するロールを果たします。このメタデータは、セカンダリーゾーンおよびセカンダリーゾーングループに自動的に同期されます。radosgw-admin
CLI で実行されるメタデータ操作は、セカンダリーゾーングループおよびゾーンに確実に同期されるように、マスターゾーングループのマスターゾーン内のホストで 実行する必要 があります。現在、セカンダリーゾーンおよびゾーングループでメタデータ操作を実行することは 可能 ですが、それらが同期されず、メタデータが断片化されるため、推奨されません。
次の例では、rgw1
ホストがマスターゾーングループのマスターゾーンとして機能します。rgw2
ホストは、マスターゾーングループのセカンダリーゾーンとして機能します。rgw3
ホストは、セカンダリーゾーングループのマスターゾーンとして機能します。rgw4
ホストは、セカンダリーゾーングループのセカンダリーゾーンとして機能します。
マルチサイトストレージクラスターに多くの Ceph Object Gateway が設定された大規模なクラスターがある場合、Red Hat は、HAProxy ロードバランサーを備えたサイトごとに同期が有効な Ceph Object Gateway を、最大 3 つまでマルチサイト同期専用にすることを推奨します。同期中の Ceph Object Gateway が 3 つ以上ある場合、パフォーマンスの点で戻り値の同期率が低下し、競合が増えると、タイミング関連のエラー状態に達するリスクが増加します。これは、同期の公平性の既知の問題 BZ#1740782 によるもの です。
このような設定の残りの Ceph Object Gateways (ロードバランサーを介したクライアント I/O 操作専用) については、ceph 設定 セット client.rgw を実行します。CLIENT_NODE rgw_run_sync_thread false
コマンドを使用して同期操作を実行できないようにしてから、Ceph Object Gateway を再起動します。
以下は、ゲートウェイを同期するための HAProxy の一般的な設定ファイルです。
例
[root@host01 ~]# cat ./haproxy.cfg global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 7000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 30s timeout server 30s timeout http-keep-alive 10s timeout check 10s timeout client-fin 1s timeout server-fin 1s maxconn 6000 listen stats bind 0.0.0.0:1936 mode http log global maxconn 256 clitimeout 10m srvtimeout 10m contimeout 10m timeout queue 10m # JTH start stats enable stats hide-version stats refresh 30s stats show-node ## stats auth admin:password stats uri /haproxy?stats stats admin if TRUE frontend main bind *:5000 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app maxconn 6000 backend static balance roundrobin fullconn 6000 server app8 host01:8080 check maxconn 2000 server app9 host02:8080 check maxconn 2000 server app10 host03:8080 check maxconn 2000 backend app balance roundrobin fullconn 6000 server app8 host01:8080 check maxconn 2000 server app9 host02:8080 check maxconn 2000 server app10 host03:8080 check maxconn 2000
5.2.2. Pools
Red Hat は、Ceph 配置グループのプールごとの計算機 を使用して、radosgw
デーモンが作成するプールに適した配置グループの数を計算することを推奨します。Ceph 設定データベースで計算された値をデフォルト値として設定します。
例
[ceph: root@host01 /]# ceph config set osd osd_pool_default_pg_num 50 [ceph: root@host01 /]# ceph config set osd osd_pool_default_pgp_num 50
Ceph の設定にこの変更を行うと、Ceph Object Gateway インスタンスがプールを作成する際にこれらのデフォルトが使用されます。または、プールを手動で作成することもできます。
ゾーンに固有のプール名は、命名規則 ZONE_NAME.POOL_NAME
に従います。たとえば、us-east
という名前のゾーンには以下のプールがあります。
-
.rgw.root
-
us-east.rgw.control
-
us-east.rgw.meta
-
us-east.rgw.log
-
us-east.rgw.buckets.index
-
us-east.rgw.buckets.data
-
us-east.rgw.buckets.non-ec
-
us-east.rgw.meta:users.keys
-
us-east.rgw.meta:users.email
-
us-east.rgw.meta:users.swift
-
us-east.rgw.meta:users.uid
関連情報
- プールの作成に関する詳細は、Red Hat Ceph Storage ストラテジーガイドの プール の章を参照してください。
5.2.3. シングルサイトシステムからマルチサイトへの移行
default
ゾーングループとゾーンを持つシングルサイトシステムからマルチサイトシステムに移行するには、次の手順を使用します。
レルムを作成します。
NAME
を、レルム名に置き換えます。構文
radosgw-admin realm create --rgw-realm=NAME --default
デフォルトゾーンとゾーングループの名前を変更します。
<name>
を、ゾーングループまたはゾーン名に置き換えます。構文
radosgw-admin zonegroup rename --rgw-zonegroup default --zonegroup-new-name=NEW_ZONE_GROUP_NAME radosgw-admin zone rename --rgw-zone default --zone-new-name us-east-1 --rgw-zonegroup=ZONE_GROUP_NAME
プライマリーゾーングループを設定します。
NAME
を、レルムまたはゾーングループ名に置き換えます。FQDN
を、ゾーングループの完全修飾ドメイン名に置き換えます。構文
radosgw-admin zonegroup modify --rgw-realm=REALM_NAME --rgw-zonegroup=ZONE_GROUP_NAME --endpoints http://FQDN:80 --master --default
システムユーザーを作成します。
USER_ID
を、ユーザー名に置き換えます。DISPLAY_NAME
を、表示名に置き換えます。これにはスペースを含めることができます。構文
radosgw-admin user create --uid=USER_ID \ --display-name="DISPLAY_NAME" \ --access-key=ACCESS_KEY --secret=SECRET_KEY \ --system
プライマリーゾーンを設定します。
NAME
を、レルム、ゾーングループ、またはゾーン名に置き換えます。FQDN
を、ゾーングループの完全修飾ドメイン名に置き換えます。構文
radosgw-admin zone modify --rgw-realm=REALM_NAME --rgw-zonegroup=ZONE_GROUP_NAME \ --rgw-zone=ZONE_NAME --endpoints http://FQDN:80 \ --access-key=ACCESS_KEY --secret=SECRET_KEY \ --master --default
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone PRIMARY_ZONE_NAME
例
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-1
更新された設定をコミットします。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
- セカンダリーゾーンを確立します。Establishing a secondary zone セクションを参照してください。
5.2.4. セカンダリーゾーンの確立
ゾーングループ内のゾーンは、すべてのデータを複製して、各ゾーンが同じデータを持つようにします。セカンダリーゾーンを作成するときは、セカンダリーゾーンにサービスを提供するように識別されたホストで すべて の radosgw-admin zone
操作を発行します。
ゾーンを追加するには、セカンダリーゾーンを追加する手順と同じ手順に従います。別のゾーン名を使用します。
マスターゾーングループのマスターゾーン内のホストで、ユーザーの作成やクォータなどのメタデータ操作を実行する必要があります。マスターゾーンおよびセカンダリーゾーンは、RESTful API からバケット操作を受信できますが、セカンダリーゾーンはバケット操作をマスターゾーンにリダイレクトします。マスターゾーンがダウンしている場合、バケット操作は失敗します。radosgw-admin
CLI を使用してバケットを作成する場合は、バケットが他のゾーングループおよびゾーンと同期するように、マスターゾーングループのマスターゾーン内のホストでバケットを実行する必要があります。
前提条件
- 少なくとも 2 つの実行中の Red Hat Ceph Storage クラスター
- 少なくとも 2 つの Ceph Object Gateway インスタンス (各 Red Hat Ceph Storage クラスターに 1 つ)。
- すべてのノードへの root レベルのアクセス。
- ノードまたはコンテナーがストレージクラスターに追加されます。
- すべての Ceph Manager、Monitor、および OSD デーモンがデプロイされます。
手順
cephadm
シェルにログインします。例
[root@host04 ~]# cephadm shell
ホストからプライマリーレルム設定をプルします。
構文
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
例
[ceph: root@host04 /]# radosgw-admin realm pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
ホストからプライマリー期間設定をプルします。
構文
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
例
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
セカンダリーゾーンを設定します。
注記デフォルトでは、すべてのゾーンはアクティブ/アクティブ設定で実行されます。つまり、ゲートウェイクライアントは任意のゾーンにデータを書き込むことができ、ゾーンはゾーングループ内の他のすべてのゾーンにデータを複製します。セカンダリーゾーンが書き込み操作を受け入れない場合は、
--read-only
フラグを指定して、マスターゾーンとセカンダリーゾーンの間にアクティブ-パッシブ設定を作成します。さらに、マスターゾーングループのマスターゾーンに格納されている、生成されたシステムユーザーのaccess_key
およびsecret_key
を指定します。構文
radosgw-admin zone create --rgw-zonegroup=_ZONE_GROUP_NAME_ \ --rgw-zone=_SECONDARY_ZONE_NAME_ --endpoints=http://_RGW_SECONDARY_HOSTNAME_:_RGW_PRIMARY_PORT_NUMBER_1_ \ --access-key=_SYSTEM_ACCESS_KEY_ --secret=_SYSTEM_SECRET_KEY_ \ [--read-only]
例
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
必要に応じて、デフォルトゾーンを削除します。
重要デフォルトゾーンおよびゾーングループを使用してデータを保存する場合は、デフォルトゾーンとそのプールは削除しないでください。
例
[ceph: root@host04 /]# radosgw-admin zone rm --rgw-zone=default [ceph: root@host04 /]# ceph osd pool rm default.rgw.log default.rgw.log --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.meta default.rgw.meta --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.control default.rgw.control --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone SECONDARY_ZONE_NAME
例
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm test_realm [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup us [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone us-east-2
変更をコミットします。
構文
radosgw-admin period update --commit
例
[ceph: root@host04 /]# radosgw-admin period update --commit
cephadm
シェルの外部で、ストレージクラスターおよびプロセスの FSID を取得します。例
[root@host04 ~]# systemctl list-units | grep ceph
Ceph Object Gateway デーモンを起動します。
構文
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
例
[root@host04 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service [root@host04 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service
5.2.5. アーカイブゾーンの設定 (テクノロジープレビュー)
ゾーンをアーカイブとして設定する前に、レルムがあることを確認してください。レルムがないと、デフォルトのゾーン/ゾーングループのアーカイブゾーンを通じてデータをアーカイブすることはできません。
アーカイブ同期モジュールは、Ceph Object Gateway の S3 オブジェクトのバージョン管理機能を利用して、アーカイブゾーンを設定します。アーカイブゾーンには、アーカイブゾーンに関連付けられたゲートウェイを介してのみ削除できる S3 オブジェクトのバージョンの履歴があります。すべてのデータ更新およびメタデータを取得し、それらを S3 オブジェクトのバージョンとして統合します。
アーカイブ同期モジュールは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。詳細は、Red Hat テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
- Ceph Object Gateway ソフトウェアのインストール。
手順
アーカイブ
層を使用して新しいゾーンを作成するときに、アーカイブゾーンを設定します。構文
radosgw-admin zone create --rgw-zonegroup={ZONE_GROUP_NAME} --rgw-zone={ZONE_NAME} --endpoints={http://FQDN:PORT},{http://FQDN:PORT} --tier-type=archive
例
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east --endpoints={http://example.com:8080} --tier-type=archive
関連情報
- 詳細は、Red Hat Ceph Storage Object Gateway ガイドの Ceph Orchestrator を使用したマルチサイト Ceph Object Gateway のデプロイ セクションを参照してください。
5.2.5.1. アーカイブゾーン内のオブジェクトの削除
S3 ライフサイクルポリシー拡張機能を使用して、<ArchiveZone>
要素内のオブジェクトを削除できます。
アーカイブゾーンオブジェクトは、expiration
ライフサイクルポリシールールを使用してのみ削除できます。
-
いずれかの
<Rule>
セクションに<ArchiveZone>
要素が含まれている場合、そのルールはアーカイブゾーンで実行され、アーカイブゾーンで実行される唯一のルールになります。 -
<ArchiveZone>
とマークされたルールは、非アーカイブゾーンでは実行されません。
ライフサイクルポリシー内のルールにより、いつ、どのオブジェクトを削除するかが決まります。ライフサイクルの作成と管理の詳細は、バケットのライフサイクル を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
- Ceph Object Gateway ソフトウェアのインストール。
手順
<ArchiveZone>
ライフサイクルポリシールールを設定します。ライフサイクルポリシーの作成の詳細は、Red Hat Ceph Storage オブジェクトゲートウェイガイド の ライフサイクル管理ポリシーの作成 セクションを参照してください。例
<?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>delete-1-days-az</ID> <Filter> <Prefix></Prefix> <ArchiveZone /> 1 </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration>
オプション: 特定のライフサイクルポリシーにアーカイブゾーンルールが含まれているかどうかを確認します。
構文
radosgw-admin lc get --bucket BUCKET_NAME
例
[ceph: root@host01 /]# radosgw-admin lc get --bucket test-bkt { "prefix_map": { "": { "status": true, "dm_expiration": true, "expiration": 0, "noncur_expiration": 2, "mp_expiration": 0, "transitions": {}, "noncur_transitions": {} } }, "rule_map": [ { "id": "Rule 1", "rule": { "id": "Rule 1", "prefix": "", "status": "Enabled", "expiration": { "days": "", "date": "" }, "noncur_expiration": { "days": "2", "date": "" }, "mp_expiration": { "days": "", "date": "" }, "filter": { "prefix": "", "obj_tags": { "tagset": {} }, "archivezone": "" 1 }, "transitions": {}, "noncur_transitions": {}, "dm_expiration": true } } ] }
Ceph Object Gateway ユーザーが削除されると、そのユーザーが所有するアーカイブサイトのバケットにアクセスできなくなります。これらのバケットを別の Ceph Object Gateway ユーザーにリンクして、データにアクセスします。
構文
radosgw-admin bucket link --uid NEW_USER_ID --bucket BUCKET_NAME --yes-i-really-mean-it
例
[ceph: root@host01 /]# radosgw-admin bucket link --uid arcuser1 --bucket arc1-deleted-da473fbbaded232dc5d1e434675c1068 --yes-i-really-mean-it
関連情報
- 詳細は、Red Hat Ceph Storage オブジェクトゲートウェイガイド の バケットライフサイクル セクションを参照してください。
- より詳細は、Red Hat Ceph Storage 開発者ガイド の S3 バケットライフサイクル セクションを参照してください。
5.2.5.2. アーカイブモジュール内のオブジェクトの削除
Red Hat Ceph Storage 5.3 以降では、S3 ライフサイクルポリシー拡張機能を使用して、<ArchiveZone>
要素内のオブジェクトを削除できます。
-
いずれかの
<Rule>
セクションに<ArchiveZone>
要素が含まれている場合、そのルールはアーカイブゾーンで実行され、アーカイブゾーンで実行される唯一のルールになります。 -
<ArchiveZone>
とマークされたルールは、非アーカイブゾーンでは実行されません。
ライフサイクルポリシー内のルールにより、いつ、どのオブジェクトを削除するかが決まります。ライフサイクルの作成と管理の詳細は、バケットのライフサイクル を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
- Ceph Object Gateway ソフトウェアのインストール。
手順
<ArchiveZone>
ライフサイクルポリシールールを設定します。ライフサイクルポリシーの作成の詳細は、Red Hat Ceph Storage オブジェクトゲートウェイガイド の ライフサイクル管理ポリシーの作成 セクションを参照してください。例
<?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>delete-1-days-az</ID> <Filter> <Prefix></Prefix> <ArchiveZone /> 1 </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration>
オプション: 特定のライフサイクルポリシーにアーカイブゾーンルールが含まれているかどうかを確認します。
構文
radosgw-admin lc get -- _BUCKET_NAME_
例
[ceph: root@host01 /]# radosgw-admin lc get --bucket test-bkt { "prefix_map": { "": { "status": true, "dm_expiration": true, "expiration": 0, "noncur_expiration": 2, "mp_expiration": 0, "transitions": {}, "noncur_transitions": {} } }, "rule_map": [ { "id": "Rule 1", "rule": { "id": "Rule 1", "prefix": "", "status": "Enabled", "expiration": { "days": "", "date": "" }, "noncur_expiration": { "days": "2", "date": "" }, "mp_expiration": { "days": "", "date": "" }, "filter": { "prefix": "", "obj_tags": { "tagset": {} }, "archivezone": "" 1 }, "transitions": {}, "noncur_transitions": {}, "dm_expiration": true } } ] }
関連情報
- 詳細は、Red Hat Ceph Storage オブジェクトゲートウェイガイド の バケットライフサイクル セクションを参照してください。
- より詳細は、Red Hat Ceph Storage 開発者ガイド の S3 バケットライフサイクル セクションを参照してください。
5.2.6. フェイルオーバーおよび障害復旧
プライマリーゾーンに障害が発生した場合は、障害復旧のためにセカンダリーゾーンにフェイルオーバーします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Monitor ノードへの root レベルのアクセス。
- Ceph Object Gateway ソフトウェアのインストール。
手順
セカンダリーゾーンをプライマリーおよびデフォルトゾーンにします。以下に例を示します。
構文
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default
デフォルトでは、Ceph Object Gateway は active-active 設定で実行されます。クラスターが active-passive 設定で実行されるように設定されている場合、セカンダリーゾーンは読み取り専用ゾーンになります。ゾーンが書き込み操作を受け取れるように
--read-only
ステータスを削除します。以下に例を示します。構文
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default --read-only=false
期間を更新して、変更を反映します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
以前のプライマリーゾーンが復旧する場合は、操作を元に戻します。
復旧したゾーンから、現在のプライマリーゾーンからレルムをプルします。
構文
radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY \ --access-key=ACCESS_KEY --secret=SECRET_KEY
復旧ゾーンをプライマリーおよびデフォルトゾーンにします。
構文
radosgw-admin zone modify --rgw-zone=ZONE_NAME --master --default
期間を更新して、変更を反映します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
復旧されたゾーンで Ceph Object Gateway を再起動します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
セカンダリーゾーンを読み取り専用設定を使用する必要がある場合は、セカンダリーゾーンを更新します。
構文
radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-only radosgw-admin zone modify --rgw-zone=ZONE_NAME --read-only
期間を更新して、変更を反映します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
セカンダリーゾーンで Ceph Object Gateway を再起動します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
5.2.7. マルチサイトデータログの同期
デフォルトでは、Red Hat Ceph Storage 4 以前のバージョンでは、マルチサイトデータログはオブジェクトマップ (OMAP) データログに設定されます。
デフォルトのデータログタイプを使用することを推奨します。
切り替え時にすべてを同期およびトリミングする必要はありません。Red Hat Ceph Storage クラスターは、radosgw-admin
データログタイプを使用すると、要求されたタイプのデータログを開始し、新しいログに移動する前に、古いログの同期とトリミングを続行し、古いログが空になったら、パージします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway マルチサイトがインストールされています。
- すべてのノードでの root レベルのアクセス。
手順
データログのタイプを表示します。
例
[root@host01 ~]# radosgw-admin datalog status { "marker": "1_1657793517.559260_543389.1", "last_update": "2022-07-14 10:11:57.559260Z" },
マーカー内の
1_
は、OMAP データログタイプを反映します。データログタイプを FIFO に変更します。
注記設定値では、大文字と小文字が区別されます。設定オプションを設定するには、小文字の
fifo
を使用します。注記Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードした後、デフォルトのデータログタイプを
fifo
に変更します。例
[root@host01 ~]# radosgw-admin --log-type fifo datalog type
変更内容を確認します。
例
[root@host01 ~]# radosgw-admin datalog status { "marker": "G00000000000000000001@00000000000000000037:00000000000003563105", "last_update": "2022-07-14T10:14:07.516629Z" },
マーカー内の
:
は、FIFO データログタイプを反映します。
5.2.8. レプリケーションなしで複数のゾーンを設定
互いをレプリケートしない複数のゾーンを設定できます。たとえば、会社内の各チームに専用のゾーンを作成できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ceph Object Gateway ソフトウェアのインストール。
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
レルムを新規作成します。
構文
radosgw-admin realm create --rgw-realm=REALM_NAME [--default]
例
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default { "id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62", "name": "test_realm", "current_period": "1950b710-3e63-4c41-a19e-46a715000980", "epoch": 1 }
新しいゾーングループを作成します。
構文
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=FQDN:PORT --rgw-realm=REALM_NAME|--realm-id=REALM_ID --master --default
例
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --rgw-realm=test_realm --master --default { "id": "f1a233f5-c354-4107-b36c-df66126475a6", "name": "us", "api_name": "us", "is_master": "true", "endpoints": [ "http:\/\/rgw1:80" ], "hostnames": [], "hostnames_s3webzone": [], "master_zone": "", "zones": [], "placement_targets": [], "default_placement": "", "realm_id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62" }
ユースケースに応じて、1 つ以上のゾーンを作成します。
構文
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=FQDN:PORT,FQDN:PORT
例
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east --master --default --endpoints=http://rgw1:80
ゾーングループの設定が含まれる JSON ファイルを取得します。
構文
radosgw-admin zonegroup get --rgw-zonegroup=ZONE_GROUP_NAME > JSON_FILE_NAME
例
[ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup=us > zonegroup-us.json
編集用にファイルを開き、
log_meta
フィールド、log_data
フィールド、およびsync_from_all
フィールドをfalse
に設定します。例
{ "id": "72f3a886-4c70-420b-bc39-7687f072997d", "name": "default", "api_name": "", "is_master": "true", "endpoints": [], "hostnames": [], "hostnames_s3website": [], "master_zone": "a5e44ecd-7aae-4e39-b743-3a709acb60c5", "zones": [ { "id": "975558e0-44d8-4866-a435-96d3e71041db", "name": "testzone", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 11, "read_only": "false", "tier_type": "", "sync_from_all": "false", "sync_from": [] }, { "id": "a5e44ecd-7aae-4e39-b743-3a709acb60c5", "name": "default", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 11, "read_only": "false", "tier_type": "", "sync_from_all": "false", "sync_from": [] } ], "placement_targets": [ { "name": "default-placement", "tags": [] } ], "default_placement": "default-placement", "realm_id": "2d988e7d-917e-46e7-bb18-79350f6a5155" }
更新された JSON ファイルを使用してゾーングループを設定します。
構文
radosgw-admin zonegroup set --rgw-zonegroup=ZONE_GROUP_NAME --infile=JSON_FILE_NAME
例
[ceph: root@host01 /]# radosgw-admin zonegroup set --rgw-zonegroup=us --infile=zonegroup-us.json
期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
2 つのゾーンが正常に無効化されているかどうかを確認します。
例
[root@ceph-ck-multi-pst82t-node5 ~]# radosgw-admin sync status realm 1e513df5-279b-4558-9dd0-3e50af411740 (india) zonegroup 09d320dd-d9f8-4fce-b951-8a59306a2d85 (south) zone a88defd9-84f4-4a4e-8b21-7f3fbc190005 (ka) current time 2024-03-15T05:01:18Z zonegroup features enabled: compress-encrypted,resharding metadata sync no sync (zone is master) data sync source: 7a1ad335-9e09-403a-879c-d29cd81e9c4d (tn) not syncing from zone
5.2.9. 同じストレージクラスターに複数のレルムの設定
同じストレージクラスターで複数のレルムを設定できます。これは、マルチサイトの高度なユースケースです。同一のストレージクラスター内に複数のレルムを設定することで、ローカルの Ceph Object Gateway クライアントのトラフィックを処理するためのローカルレルムと、セカンダリーサイトに複製されるデータ用のレプリケートされたレルムを使用することができます。
Red Hat では、各レルムに独自の Ceph Object Gateway があることを推奨しています。
前提条件
- ストレージクラスターの 2 つの稼働中の Red Hat Ceph Storage データセンター。
- ストレージクラスター内の各データセンターのアクセスキーおよびシークレットキー。
- すべての Ceph Object Gateway ノードへの root レベルのアクセス。
- 各データセンターには独自のローカルレルムがあります。両方のサイトでレプリケートするレルムを共有する。
手順
ストレージクラスターの最初のデータセンターにローカルレルムを 1 つ作成します。
構文
radosgw-admin realm create --rgw-realm=REALM_NAME --default
例
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=ldc1 --default
最初のデータセンター上に、1 つのローカルマスターゾーングループを作成します。
構文
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --default
例
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc1zg --endpoints=http://rgw1:80 --rgw-realm=ldc1 --master --default
最初のデータセンターに 1 つのローカルゾーンを作成します。
構文
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]
例
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=ldc1zg --rgw-zone=ldc1z --master --default --endpoints=http://rgw.example.com
期間をコミットします。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
適切なレルムおよびゾーンで Ceph Object Gateway デーモンをデプロイするか、設定データベースを更新できます。
配置仕様を使用して Ceph Object Gateway をデプロイします。
構文
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
例
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc1 --zone=ldc1z --placement="1 host01"
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
例
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc1z
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
ストレージクラスターの 2 番目のデータセンターに、ローカルレルムを 1 つ作成します。
構文
radosgw-admin realm create --rgw-realm=REALM_NAME --default
例
[ceph: root@host04 /]# radosgw-admin realm create --rgw-realm=ldc2 --default
2 番目のデータセンターに、1 つのローカルマスターゾーングループを作成します。
構文
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_NODE_NAME:80 --rgw-realm=REALM_NAME --master --default
例
[ceph: root@host04 /]# radosgw-admin zonegroup create --rgw-zonegroup=ldc2zg --endpoints=http://rgw2:80 --rgw-realm=ldc2 --master --default
2 番目のデータセンターに 1 つのローカルゾーンを作成します。
構文
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME --master --default --endpoints=HTTP_FQDN[, HTTP_FQDN]
例
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=ldc2zg --rgw-zone=ldc2z --master --default --endpoints=http://rgw.example.com
期間をコミットします。
例
[ceph: root@host04 /]# radosgw-admin period update --commit
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
適切なレルムおよびゾーンで Ceph Object Gateway デーモンをデプロイするか、設定データベースを更新できます。
配置仕様を使用して Ceph Object Gateway をデプロイします。
構文
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
例
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=ldc2 --zone=ldc2z --placement="1 host01"
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
例
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm ldc2 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup ldc2zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone ldc2z
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host04 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host04 /]# ceph orch restart rgw
ストレージクラスターの最初のデータセンターにレプリケートされたレルムを作成します。
構文
radosgw-admin realm create --rgw-realm=REPLICATED_REALM_1 --default
例
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=rdc1 --default
--default
フラグを使用して、レプリケートされたレルムをプライマリーサイトにデフォルト設定します。最初のデータセンターのマスターゾーングループを作成します。
構文
radosgw-admin zonegroup create --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=http://_RGW_NODE_NAME:80 --rgw-realm=_RGW_REALM_NAME --master --default
例
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=rdc1zg --endpoints=http://rgw1:80 --rgw-realm=rdc1 --master --default
最初のデータセンターにマスターゾーンを作成します。
構文
radosgw-admin zone create --rgw-zonegroup=RGW_ZONE_GROUP --rgw-zone=_MASTER_RGW_NODE_NAME --master --default --endpoints=HTTP_FQDN[,HTTP_FQDN]
例
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=rdc1zg --rgw-zone=rdc1z --master --default --endpoints=http://rgw.example.com
同期ユーザーを作成し、システムユーザーをマルチサイトのマスターゾーンに追加します。
構文
radosgw-admin user create --uid="SYNCHRONIZATION_USER" --display-name="Synchronization User" --system radosgw-admin zone modify --rgw-zone=RGW_ZONE --access-key=ACCESS_KEY --secret=SECRET_KEY
例
radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system [ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=rdc1zg --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
期間をコミットします。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
適切なレルムおよびゾーンで Ceph Object Gateway デーモンをデプロイするか、設定データベースを更新できます。
配置仕様を使用して Ceph Object Gateway をデプロイします。
構文
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
例
[ceph: root@host01 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc1z --placement="1 host01"
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
例
[ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host01 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc1z
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host01 /]# ceph orch restart rgw
2 番目のデータセンターでレプリケートされたレルムをプルします。
構文
radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEY
例
[ceph: root@host01 /]# radosgw-admin realm pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
最初のデータセンターから期間をプルします。
構文
radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=ACCESS_KEY --secret-key=SECRET_KEY
例
[ceph: root@host01 /]# radosgw-admin period pull --url=https://tower-osd1.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
2 番目のデータセンターにセカンダリーゾーンを作成します。
構文
radosgw-admin zone create --rgw-zone=RGW_ZONE --rgw-zonegroup=RGW_ZONE_GROUP --endpoints=https://tower-osd4.cephtips.com --access-key=_ACCESS_KEY --secret-key=SECRET_KEY
例
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zone=rdc2z --rgw-zonegroup=rdc1zg --endpoints=https://tower-osd4.cephtips.com --access-key=3QV0D6ZMMCJZMSCXJ2QJ --secret-key=VpvQWcsfI9OPzUCpR4kynDLAbqa1OIKqRB6WEnH8
期間をコミットします。
例
[ceph: root@host04 /]# radosgw-admin period update --commit
オプション: Ceph Object Gateway のデプロイ中にサービス仕様でレルムとゾーンを指定した場合は、仕様ファイルの
spec
セクションを更新します。構文
spec: rgw_realm: REALM_NAME rgw_zone: ZONE_NAME
適切なレルムおよびゾーンで Ceph Object Gateway デーモンをデプロイするか、設定データベースを更新できます。
配置仕様を使用して Ceph Object Gateway をデプロイします。
構文
ceph orch apply rgw SERVICE_NAME --realm=REALM_NAME --zone=ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
例
[ceph: root@host04 /]# ceph orch apply rgw rgw --realm=rdc1 --zone=rdc2z --placement="1 host04"
Ceph 設定データベースを更新します。
構文
ceph config set client.rgw.SERVICE_NAME rgw_realm REALM_NAME ceph config set client.rgw.SERVICE_NAME rgw_zonegroup ZONE_GROUP_NAME ceph config set client.rgw.SERVICE_NAME rgw_zone ZONE_NAME
例
[ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_realm rdc1 [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zonegroup rdc1zg [ceph: root@host04 /]# ceph config set client.rgw.rgwsvcid.mons-1.jwgwwp rgw_zone rdc2z
Ceph Object Gateway を再起動します。
注記NAME
列のceph orch ps
コマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
例
[root@host02 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
例
[ceph: root@host04 /]# ceph orch restart rgw
-
2 番目のデータセンターのエンドポイントに
root
としてログインします。 マスターレルムで同期のステータスを確認します。
構文
radosgw-admin sync status
例
[ceph: root@host04 /]# radosgw-admin sync status realm 59762f08-470c-46de-b2b1-d92c50986e67 (ldc2) zonegroup 7cf8daf8-d279-4d5c-b73e-c7fd2af65197 (ldc2zg) zone 034ae8d3-ae0c-4e35-8760-134782cb4196 (ldc2z) metadata sync no sync (zone is master) current time 2023-08-17T05:49:56Z zonegroup features enabled: resharding disabled: compress-encrypted
重要Red Hat Ceph Storage 5.3z5 リリースでは、
圧縮暗号化された
機能がradosgw-admin sync status
コマンドで表示され、デフォルトでは無効になっています。この機能は Red Hat Ceph Storage 6.1z2 まではサポートされていないため、この機能を有効にしないでください。-
最初のデータセンターのエンドポイントに
root
としてログインします。 レプリケーション同期レルムの同期ステータスを確認します。
構文
radosgw-admin sync status --rgw-realm RGW_REALM_NAME
例
[ceph: root@host01 /]# radosgw-admin sync status --rgw-realm rdc1 realm 73c7b801-3736-4a89-aaf8-e23c96e6e29d (rdc1) zonegroup d67cc9c9-690a-4076-89b8-e8127d868398 (rdc1zg) zone 67584789-375b-4d61-8f12-d1cf71998b38 (rdc2z) metadata sync syncing full sync: 0/64 shards incremental sync: 64/64 shards metadata is caught up with master data sync source: 705ff9b0-68d5-4475-9017-452107cec9a0 (rdc1z) syncing full sync: 0/128 shards incremental sync: 128/128 shards data is caught up with source realm 73c7b801-3736-4a89-aaf8-e23c96e6e29d (rdc1) zonegroup d67cc9c9-690a-4076-89b8-e8127d868398 (rdc1zg) zone 67584789-375b-4d61-8f12-d1cf71998b38 (rdc2z) metadata sync syncing full sync: 0/64 shards incremental sync: 64/64 shards metadata is caught up with master data sync source: 705ff9b0-68d5-4475-9017-452107cec9a0 (rdc1z) syncing full sync: 0/128 shards incremental sync: 128/128 shards data is caught up with source
ローカルサイトにデータを保存およびアクセスするには、ローカルレルムのユーザーを作成します。
構文
radosgw-admin user create --uid="LOCAL_USER" --display-name="Local user" --rgw-realm=_REALM_NAME --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
例
[ceph: root@host04 /]# radosgw-admin user create --uid="local-user" --display-name="Local user" --rgw-realm=ldc1 --rgw-zonegroup=ldc1zg --rgw-zone=ldc1z
重要デフォルトでは、ユーザーはデフォルトのレルムに作成されます。ユーザーがローカルレルム内のデータにアクセスするには、
radosgw-admin
コマンドに--rgw-realm
引数が必要です。
5.2.10. マルチサイト同期ポリシーの使用 (テクノロジープレビュー)
Ceph Object Gateway のマルチサイト同期ポリシーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、実稼働環境での Red Hat サービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。詳細は、Red Hat テクノロジープレビュー機能のサポート範囲 を参照してください。
ストレージ管理者は、バケットレベルでマルチサイト同期ポリシーを使用して、異なるゾーンのバケット間のデータ移動を制御できます。このようなポリシーは、バケット粒度同期ポリシーと呼ばれます。これまでは、ゾーン内のすべてのバケットが対称的に扱われていました。これは、各ゾーンに指定のバケットのミラーコピーが含まれ、バケットのコピーはすべてのゾーンで同一であることを意味します。同期プロセスでは、バケット同期ソースとバケット同期宛先が同じバケットを参照していることが前提となっています。
バケット粒度同期ポリシーを使用すると、異なるゾーンのバケットに異なるデータを含めることができます。これにより、あるバケットが他のゾーンにある他のバケットからデータを引き出すことができ、それらのバケットにはデータを引き出したバケットと同じ名前や ID がありません。この場合は、バケット同期のソースおよびバケット同期の宛先は異なるバケットを参照します。
同期ポリシーは、古いゾーングループ設定 (sync_from*
) よりも優先されます。同期ポリシーは、ゾーングループレベルで設定できます。これが設定されていると、ゾーングループレベルで旧スタイルの設定を置き換えますが、バケットレベルでも設定できます。
5.2.10.1. 前提条件
- Red Hat Ceph Storage クラスターが実行されている。
- Ceph Monitor ノードへの root レベルのアクセス。
- Ceph Object Gateway ソフトウェアのインストール。
5.2.10.2. マルチサイト同期ポリシーグループの状態
同期ポリシーでは、データフロー設定のリストを含む複数のグループと、パイプ設定のリストを定義することができます。データフローは、異なるゾーン間のデータの流れを定義します。複数のゾーンが互いにデータを同期する対称的なデータフローを定義でき、データが 1 つのゾーンから別のゾーンに一方向に移動する指向性データフローを定義できます。
パイプは、これらのデータフローを使用することができる実際のバケットと、それに関連付けられるプロパティーを定義します (例: ソースオブジェクト接頭辞)。
同期ポリシーグループには 3 つの状態があります。
- Enabled - 同期が許可され、有効になっています。
- Allowed - 同期が許可されています。
- Forbidden - このグループで定義されている同期は、許可されません。このグループの同期状態は、他のグループよりも優先されます。
ポリシーはバケットレベルで定義できます。バケットレベルの同期ポリシーはゾーングループポリシーのデータフローを継承するため、ゾーングループで許可されるもののサブセットのみを定義できます。
ワイルドカードゾーンおよびポリシーのワイルドカードバケットパラメーターは、すべての関連するゾーンまたは関連するバケットをすべて定義します。バケットポリシーのコンテキストでは、現在のバケットインスタンスを意味します。ゾーン全体がミラーリングされている障害復旧設定では、バケットに何も設定する必要がありません。しかし、細かいバケットの同期を行うには、ゾーングループレベルではワイルドカードを使うなどしてパイプの同期を許可 (status=allowed) し、バケットレベルでは特定の同期を有効 (status=enabled) にするように設定するのがよいでしょう。必要に応じて、バケットレベルのポリシーで、データの移動を特定の関連ゾーンに制限することができます。
ZoneGroup | Bucket | バケット内で同期する |
---|---|---|
enabled | enabled | enabled |
enabled | allowed | enabled |
enabled | forbidden | disabled |
allowed | enabled | enabled |
allowed | allowed | disabled |
allowed | forbidden | disabled |
forbidden | enabled | disabled |
forbidden | allowed | disabled |
forbidden | forbidden | disabled |
任意の同期ペア (SOURCE_ZONE、SOURCE_BUCKET)、(DESTINATION_ZONE、DESTINATION_BUCKET) を反映するように設定されている複数のグループポリシーの場合、次のルールが次の順序で適用されます。
-
1 つの同期ポリシーが
forbidden
の場合でも、同期はdisabled
になります。 -
同期を
allowed
にするには、少なくとも 1 つのポリシーをenabled
にする必要があります。
このグループの同期状態は、他のグループよりも優先されます。
ワイルドカードゾーンおよびポリシーのワイルドカードバケットパラメーターは、すべての関連するゾーンまたは関連するバケットをすべて定義します。バケットポリシーのコンテキストでは、現在のバケットインスタンスを意味します。ゾーン全体がミラーリングされている障害復旧設定では、バケットに何も設定する必要がありません。ただし、きめ細かいバケット同期の場合は、ゾーングループレベルで (たとえば、ワイルドカードを使用して) パイプを許可 (status=allowed
) して同期するように設定することを推奨します。ただし、特定の同期はバケットレベル (status=enabled
) でのみ有効にします。
ゾーングループポリシーの変更は、ゾーングループマスターゾーンに適用する必要があり、期間更新とコミットが必要です。バケットポリシーへの変更は、ゾーングループマスターゾーンに適用する必要があります。Ceph Object Gateway はこれらの変更を動的に処理します。
5.2.10.3. 現在のポリシーの取得
get
コマンドを使用して、現在のゾーングループ同期ポリシーまたは特定のバケットポリシーを取得できます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
現在のゾーングループ同期ポリシーまたはバケットポリシーを取得します。特定のバケットポリシーを取得するには、
--bucket
オプションを使用します。構文
radosgw-admin sync policy get --bucket=BUCKET_NAME
例
[ceph: root@host01 /]# radosgw-admin sync policy get --bucket=mybucket
5.2.10.4. 同期ポリシーグループの作成
現在のゾーングループまたは特定のバケットの同期ポリシーグループを作成できます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
同期ポリシーグループまたはバケットポリシーを作成します。バケットポリシーを作成するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group create --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbidden
例
[ceph: root@host01 /]# radosgw-admin sync group create --group-id=mygroup1 --status=enabled
5.2.10.5. 同期ポリシーグループの変更
現在のゾーングループの既存の同期ポリシーグループまたは特定のバケットに対して変更できます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
同期ポリシーグループまたはバケットポリシーを変更します。バケットポリシーを変更するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group modify --bucket=BUCKET_NAME --group-id=GROUP_ID --status=enabled | allowed | forbidden
例
[ceph: root@host01 /]# radosgw-admin sync group modify --group-id=mygroup1 --status=forbidden
5.2.10.6. 同期ポリシーグループを取得する
group get
コマンドを使用して、グループ ID で現在の同期ポリシーグループを表示するか、特定のバケットポリシーを表示できます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
現在の同期ポリシーグループまたはバケットポリシーを表示します。特定のバケットポリシーを表示するには、
--bucket
オプションを使用します。注記--bucket
オプションが指定されていない場合は、バケットレベルではなく、ゾーングループレベルで作成されたグループが取得されます。構文
radosgw-admin sync group get --bucket=BUCKET_NAME --group-id=GROUP_ID
例
[ceph: root@host01 /]# radosgw-admin sync group get --group-id=mygroup
5.2.10.7. 同期ポリシーグループの削除
group remove
コマンドを使用して、グループ ID で現在の同期ポリシーグループを削除したり、特定のバケットポリシーを削除したりできます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
現在の同期ポリシーグループまたはバケットポリシーを削除します。特定のバケットポリシーを削除するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group remove --bucket=BUCKET_NAME --group-id=GROUP_ID
例
[ceph: root@host01 /]# radosgw-admin sync group remove --group-id=mygroup
5.2.10.8. 同期フローの作成
同期ポリシーグループまたは特定のバケットに、異なるタイプのフローを作成できます。
- 指向性同期フロー
- 対称同期フロー
group flow create
コマンドは、同期フローを作成します。すでに同期フローがある同期ポリシーグループまたはバケットに対して group flow create
コマンドを発行すると、コマンドは同期フローの既存の設定を上書きし、指定した設定を適用します。
オプション | 説明 | 必須/オプション |
---|---|---|
--bucket | 同期ポリシーを設定する必要があるバケットの名前。バケットレベルの同期ポリシーでのみ使用されます。 | 任意 |
--group-id | 同期グループの ID。 | 必須 |
--flow-id | フローの ID。 | 必須 |
--flow-type | 同期ポリシーグループまたは特定のバケットのフロータイプ (指向性または対称性)。 | 必須 |
--source-zone | 同期元となるソースゾーンを指定します。同期グループにデータを送信するゾーンです。同期グループのフロータイプが指向性である場合は必須です。 | 任意 |
--dest-zone | 同期先となる宛先ゾーンを指定します。同期グループからデータを受信するゾーンです。同期グループのフロータイプが指向性である場合は必須です。 | 任意 |
--zones | 同期グループの一部であるゾーン。ゾーンは、送信側ゾーンと受信側ゾーンの両方に言及します。ゾーンは "," で区切って指定します。同期グループのフロータイプが対称の場合は必須です。 | 任意 |
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
指向性同期フローを作成または更新します。特定のバケットへの指向性同期フローを作成または更新するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONE
対称同期フローを作成または更新します。対称フロータイプに複数のゾーンを指定するには、
--zones
オプションにコンマ区切りのリストを使用します。構文
radosgw-admin sync group flow create --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME
5.2.10.9. 同期フローおよびゾーンの削除
group flow remove
コマンドは、同期ポリシーグループまたはバケットから同期フローまたはゾーンを削除します。
指向性フローを使用する同期ポリシーグループまたはバケットの場合は、group flow remove
コマンドによりフローが削除されます。対称フローを使用した同期ポリシーグループまたはバケットについては、group flow remove
コマンドを使用してフローから指定されたゾーンを削除したり、フローを削除したりできます。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
指向性同期フローを削除します。特定のバケットの指向性同期フローを削除するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=directional --source-zone=SOURCE_ZONE --dest-zone=DESTINATION_ZONE
対称同期フローから特定のゾーンを削除します。対称フローから複数のゾーンを削除するには、
--zones
オプションにコンマ区切りのリストを使用します。構文
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME
対称同期フローを削除します。バケットから同期フローを削除するには、
--bucket
オプションを使用します。構文
radosgw-admin sync group flow remove --bucket=BUCKET_NAME --group-id=GROUP_ID --flow-id=FLOW_ID --flow-type=symmetrical --zones=ZONE_NAME
5.2.10.10. 同期グループパイプの作成または変更
ストレージ管理者は、パイプを定義して、設定したデータフローと、これらのデータフローに関連するプロパティーを使用できるバケットを指定できます。
sync group pipe create
コマンドを使用すると、パイプを作成できます。パイプは、特定のバケットまたはバケットのグループ間、または特定のゾーンまたはゾーンのグループ間のカスタム同期グループデータフローです。
コマンドは、以下のオプションを使用します。
オプション | 説明 | 必須/オプション |
---|---|---|
--bucket | 同期ポリシーを設定する必要があるバケットの名前。バケットレベルの同期ポリシーでのみ使用されます。 | 任意 |
--group-id | 同期グループの ID | 必須 |
--pipe-id | パイプの ID | 必須 |
--source-zones |
データを同期グループに送信するゾーン。値には一重引用符 (') を使用します。複数のゾーンを分離する場合はコンマで区切ります。データフロールールに一致するすべてのゾーンに、ワイルドカード | 必須 |
--source-bucket |
データを同期グループに追加する 1 つまたは複数のバケット。バケット名を指定しない場合は、 | 任意 |
--source-bucket-id | ソースバケットの ID。 | 任意 |
--dest-zones |
同期データを受け取る 1 つまたは複数のゾーン。値には一重引用符 (') を使用します。複数のゾーンを分離する場合はコンマで区切ります。データフロールールに一致するすべてのゾーンに、ワイルドカード | 必須 |
--dest-bucket |
同期データを受け取る 1 つまたは複数のバケット。バケット名を指定しない場合は、 | 任意 |
--dest-bucket-id | 宛先バケットの ID。 | 任意 |
--prefix |
バケットの接頭辞。ワイルドカード | 任意 |
--prefix-rm | フィルタリングにバケット接頭辞を使用しないでください。 | 任意 |
--tags-add | key=value ペアのコンマ区切りリスト。 | 任意 |
--tags-rm | タグの 1 つ以上の key=value ペアを削除します。 | 任意 |
--dest-owner | ソースからオブジェクトの宛先所有者。 | 任意 |
--storage-class | ソースからのオブジェクトのための宛先ストレージクラス。 | 任意 |
--mode |
システムモードまたはユーザーモードで それぞれ | 任意 |
--uid | ユーザーモードでパーミッションの検証に使用されます。同期操作を発行するユーザー ID を指定します。 | 任意 |
特定のバケットのゾーングループレベルで同期を有効または無効にするには、ゾーングループレベルの同期ポリシーをそれぞれ状態を 有効
または 無効に
設定し、--source-bucket
および --dest-bucket
とそのバケット名または バケットを
使用して各バケットのパイプを作成します。-id
、つまり --source-bucket-id
および --dest-bucket-id
。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
同期グループパイプを作成します。
構文
radosgw-admin sync group pipe create --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET1 --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET1 --dest-bucket-id=DESTINATION_BUCKET_ID --prefix=SOURCE_PREFIX --prefix-rm --tags-add=KEY1=VALUE1, KEY2=VALUE2, ... --tags-rm=KEY1=VALUE1, KEY2=VALUE2, ... --dest-owner=OWNER_ID --storage-class=STORAGE_CLASS --mode=USER --uid=USER_ID
5.2.10.11. 同期グループパイプの変更または削除
ストレージ管理者は、同期 グループパイプ変更
コマンドを使用して同期グループパイプを変更し、同期グループパイプ削除コマンドを
使用して同期グループパイプを削除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
手順
同期グループのパイプオプションを変更します。
構文
radosgw-admin sync group pipe modify --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID --source-zones='ZONE_NAME','ZONE_NAME2'... --source-bucket=SOURCE_BUCKET1 --source-bucket-id=SOURCE_BUCKET_ID --dest-zones='ZONE_NAME','ZONE_NAME2'... --dest-bucket=DESTINATION_BUCKET1 --dest-bucket-id=DESTINATION_BUCKET-ID
同期グループパイプを削除します。
構文
radosgw-admin sync group pipe remove --bucket=BUCKET_NAME --group-id=GROUP_ID --pipe-id=PIPE_ID
5.2.10.12. 同期操作に関する情報の取得
sync info
コマンドを使用すると、同期ポリシーで定義されているように、予想される同期のソースとターゲットに関する情報を取得できます。
バケットの同期ポリシーを作成する場合、そのポリシーはそのバケットから異なるゾーンの別のバケットにデータを移動する方法を定義します。ポリシーを作成すると、バケットを別のバケットと同期するたびにヒントとして使用されるバケット依存関係のリストも作成されます。同期はデータフローが同期を許可しているかどうかによって決まるため、あるバケットが別のバケットを参照していても、実際にはそのバケットと同期していないことがあることに注意してください。
--bucket
パラメーターおよび effective-zone-name
パラメーターはいずれも任意です。オプションを指定せずに sync info
コマンドを実行すると、Object Gateway はすべてのゾーンの同期ポリシーによって定義されたすべての同期操作を返します。
前提条件
- Red Hat Ceph Storage クラスターが実行されている。
-
root または
sudo
アクセス。 - Ceph Object Gateway がインストールされている。
- グループ同期ポリシーが定義されています。
手順
同期操作に関する情報を取得します。
構文
radosgw-admin sync info --bucket=BUCKET_NAME --effective-zone-name=ZONE_NAME
5.2.11. マルチサイトの Ceph Object Gateway コマンドラインの使用
ストレージ管理者は、マルチサイト環境での Ceph Object Gateway の使用方法を理解することができます。マルチサイト環境で、レルム、ゾーングループ、およびゾーンをより適切に管理する方法を説明します。
5.2.11.1. 前提条件
- 実行中の Red Hat Ceph Storage。
- Ceph Object Gateway ソフトウェアのデプロイメント。
- Ceph Object Gateway ノードまたはコンテナーへのアクセス。
5.2.11.2. レルム
レルムは、1 つ以上のゾーンが含まれる 1 つ以上のゾーングループと、バケットが含まれるゾーンで設定されるグローバル固有の名前空間を表します。この名前空間にはオブジェクトが含まれます。レルムにより、Ceph Object Gateway は同じハードウェアで複数の名前空間および設定をサポートできるようになります。
レルムには期間の概念が含まれます。それぞれの期間は、ゾーングループとゾーン設定の状態を時間で表しています。ゾーングループまたはゾーンに変更を加えるたびに、期間を更新してコミットします。
Red Hat は新規クラスターのレルムを作成することを推奨します。
5.2.11.2.1. レルムの作成
レルムを作成するには、realm create
コマンドを発行してレルム名を指定します。レルムがデフォルトの場合は、--default
を指定します。
構文
radosgw-admin realm create --rgw-realm=REALM_NAME [--default]
例
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default
--default
を指定すると、--rgw-realm
とレルム名が明示的に指定されていない限り、各 radosgw-admin
呼び出しでレルムが暗黙的に呼び出されます。
5.2.11.2.2. レルムのデフォルトの設定
レルムリストにある 1 つのレルムはデフォルトのレルムである必要があります。デフォルトレルムは 1 つのみです。レルムが 1 つだけあり、そのレルムが作成時にデフォルトレルムとして指定されていない場合は、デフォルトのレルムにします。または、デフォルトであるレルムを変更するには、以下のコマンドを実行します。
[ceph: root@host01 /]# radosgw-admin realm default --rgw-realm=test_realm
レルムがデフォルトの場合、コマンドラインでは --rgw-realm=REALM_NAME
を引数と想定します。
5.2.11.2.3. レルムの削除
レルムを削除するには、realm delete
コマンドを実行して、レルム名を指定します。
構文
radosgw-admin realm delete --rgw-realm=REALM_NAME
例
[ceph: root@host01 /]# radosgw-admin realm delete --rgw-realm=test_realm
5.2.11.2.4. レルムの取得
レルムを取得するには、realm get
コマンドを実行してレルム名を指定します。
構文
radosgw-admin realm get --rgw-realm=REALM_NAME
例
[ceph: root@host01 /]# radosgw-admin realm get --rgw-realm=test_realm >filename.json
CLI は、レルムプロパティーを使用して JSON オブジェクトを echo します。
{ "id": "0a68d52e-a19c-4e8e-b012-a8f831cb3ebc", "name": "test_realm", "current_period": "b0c5bbef-4337-4edd-8184-5aeab2ec413b", "epoch": 1 }
>
と出力ファイル名を使用して、JSON オブジェクトをファイルに出力します。
5.2.11.2.5. レルムの設定
レルムを設定するには、realm set
コマンドを実行し、レルム名を指定し、--infile=
を入力ファイル名で指定します。
構文
radosgw-admin realm set --rgw-realm=REALM_NAME --infile=IN_FILENAME
例
[ceph: root@host01 /]# radosgw-admin realm set --rgw-realm=test_realm --infile=filename.json
5.2.11.2.6. レルムのリスト表示
レルムをリスト表示するには、realm list
コマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin realm list
5.2.11.2.7. レルム期間のリスト表示
レルムの期間をリスト表示するには、realm list-periods
コマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin realm list-periods
5.2.11.2.8. レルムのプル
マスターゾーングループとマスターゾーンを含むノードからセカンダリーゾーングループまたはゾーンを含むノードにレルムをプルするには、レルム設定を受け取るノードで realm pull
コマンドを実行します。
構文
radosgw-admin realm pull --url=URL_TO_MASTER_ZONE_GATEWAY--access-key=ACCESS_KEY --secret=SECRET_KEY
5.2.11.2.9. レルムの名前変更
レルムは期間の一部ではありません。そのため、レルムの名前変更はローカルでのみ適用され、realm pull
でプルされません。複数のゾーンを持つレルムの名前を変更する場合は、各ゾーンでこのコマンドを実行します。レルムの名前を変更するには、以下のコマンドを実行します。
構文
radosgw-admin realm rename --rgw-realm=REALM_NAME --realm-new-name=NEW_REALM_NAME
realm set
を使用して name
パラメーターを変更しないでください。これにより、内部名のみが変更されます。--rgw-realm
を指定すると、古いレルム名が使用されます。
5.2.11.3. ゾーングループ
Ceph Object Gateway は、ゾーングループの概念を使用したマルチサイトデプロイメントおよびグローバル名前空間をサポートします。以前はリージョンと呼ばれていたゾーングループは、1 つ以上のゾーン内の 1 つ以上の Ceph Object Gateway インスタンスの地理的な場所を定義します。
ゾーングループの設定は、設定のすべてが Ceph 設定ファイルになるわけではないため、一般的な設定手順とは異なります。ゾーングループのリストを表示し、ゾーングループ設定を取得し、ゾーングループ設定を設定できます。
期間を更新するステップはクラスター全体に変更を伝播するため、radosgw-admin zonegroup
操作はレルム内の任意のノードで実行できます。ただし、radosgw-admin zone
操作は、ゾーン内のホストで実行する 必要があります。
5.2.11.3.1. ゾーングループの作成
ゾーングループの作成は、ゾーングループ名の指定から始まります。ゾーンの作成では、--rgw-realm=REALM_NAME
が指定されていない限り、デフォルトのレルムで実行されていることを前提としています。ゾーングループがデフォルトのゾーングループの場合は、--default
フラグを指定します。ゾーングループがマスターゾーングループの場合は、--master
フラグを指定します。
構文
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME [--rgw-realm=REALM_NAME] [--master] [--default]
zonegroup modify --rgw-zonegroup=ZONE_GROUP_NAME
を使用して、既存のゾーングループの設定を変更します。
5.2.11.3.2. ゾーングループをデフォルトにする
ゾーングループリスト内の 1 つのゾーングループは、デフォルトのゾーングループである必要があります。デフォルトのゾーングループは 1 つのみです。ゾーングループが 1 つだけあり、そのゾーンは作成時にデフォルトのゾーングループとして指定されていない場合は、デフォルトのゾーングループにします。または、デフォルトであるゾーングループを変更するには、以下のコマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin zonegroup default --rgw-zonegroup=us
ゾーングループがデフォルトの場合、コマンドラインは --rgw-zonegroup=ZONE_GROUP_NAME
を引数として想定します。
次に、期間を更新します。
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.3. ゾーングループへのゾーンの追加
ゾーングループにゾーンを追加するには、ゾーンに追加するホストでこのコマンドを実行する必要があります。ゾーングループにゾーンを追加するには、次のコマンドを実行します。
構文
radosgw-admin zonegroup add --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.4. ゾーングループからのゾーンの削除
ゾーングループからゾーンを削除するには、次のコマンドを実行します。
構文
radosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME --rgw-zone=ZONE_NAME
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.5. ゾーングループの名前変更
ゾーングループの名前を変更するには、次のコマンドを実行します。
構文
radosgw-admin zonegroup rename --rgw-zonegroup=ZONE_GROUP_NAME --zonegroup-new-name=NEW_ZONE_GROUP_NAME
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.6. ゾーングループの削除
ゾーングループを削除するには、次のコマンドを実行します。
構文
radosgw-admin zonegroup delete --rgw-zonegroup=ZONE_GROUP_NAME
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.7. ゾーングループのリスト表示
Ceph クラスターには、ゾーングループのリストが含まれます。ゾーングループをリスト表示するには、以下のコマンドを実行します。
[ceph: root@host01 /]# radosgw-admin zonegroup list
radosgw-admin
は、JSON 形式のゾーングループのリストを返します。
{ "default_info": "90b28698-e7c3-462c-a42d-4aa780d24eda", "zonegroups": [ "us" ] }
5.2.11.3.8. ゾーングループの取得
ゾーングループの設定を表示するには、次のコマンドを実行します。
構文
radosgw-admin zonegroup get [--rgw-zonegroup=ZONE_GROUP_NAME]
ゾーングループの設定は以下のようになります。
{ "id": "90b28698-e7c3-462c-a42d-4aa780d24eda", "name": "us", "api_name": "us", "is_master": "true", "endpoints": [ "http:\/\/rgw1:80" ], "hostnames": [], "hostnames_s3website": [], "master_zone": "9248cab2-afe7-43d8-a661-a40bf316665e", "zones": [ { "id": "9248cab2-afe7-43d8-a661-a40bf316665e", "name": "us-east", "endpoints": [ "http:\/\/rgw1" ], "log_meta": "true", "log_data": "true", "bucket_index_max_shards": 11, "read_only": "false" }, { "id": "d1024e59-7d28-49d1-8222-af101965a939", "name": "us-west", "endpoints": [ "http:\/\/rgw2:80" ], "log_meta": "false", "log_data": "true", "bucket_index_max_shards": 11, "read_only": "false" } ], "placement_targets": [ { "name": "default-placement", "tags": [] } ], "default_placement": "default-placement", "realm_id": "ae031368-8715-4e27-9a99-0c9468852cfe" }
5.2.11.3.9. ゾーングループの設定
ゾーングループの定義は、少なくとも必要な設定を指定して JSON オブジェクトの作成で設定されます。
-
name
: ゾーングループの名前。必須です。 -
api_name
: ゾーングループの API 名。任意です。 is_master
: ゾーングループがマスターゾーングループであるかどうかを指定します。必須です。注記: マスターゾーングループを 1 つだけ指定できます。
-
endpoints
: ゾーングループ内のエンドポイントのリスト。たとえば、複数のドメイン名を使用して、同じゾーングループを参照できます。忘れずに前方スラッシュ (\/
) エスケープしてください。各エンドポイントにポート (fqdn:port
) を指定することもできます。任意です。 -
hostnames
: ゾーングループのホスト名のリスト。たとえば、複数のドメイン名を使用して、同じゾーングループを参照できます。任意です。rgw dns name
設定は、このリストに自動的に含まれます。この設定を変更したら、ゲートウェイデーモンを再起動する必要があります。 master_zone
: ゾーングループのマスターゾーン。任意です。指定がない場合は、デフォルトゾーンを使用します。注記ゾーングループごとにマスターゾーンを 1 つだけ指定できます。
-
zones
: ゾーングループ内のゾーンのリスト。各ゾーンには、名前 (必須)、エンドポイントのリスト (任意)、およびゲートウェイがメタデータおよびデータ操作をログに記録するかどうか (デフォルトでは false) があります。 -
placement_targets
: 配置ターゲットのリスト (任意)。各配置ターゲットには、配置ターゲットの名前 (必須) とタグのリスト (任意) が含まれているため、タグを持つユーザーのみが配置ターゲットを使用できます (つまり、ユーザー情報のユーザーのplacement_tags
フィールド)。 -
default_placement
: オブジェクトインデックスおよびオブジェクトデータのデフォルトの配置ターゲット。デフォルトではdefault-placement
に設定されます。また、ユーザーごとのデフォルトの配置を、ユーザー情報で設定することもできます。
ゾーングループを設定するには、必須フィールドで設定される JSON オブジェクトを作成し、オブジェクトをファイル (たとえば、zonegroup.json
) に保存します。次に、次のコマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin zonegroup set --infile zonegroup.json
ここで、zonegroup.json
は作成した JSON ファイルです。
default
ゾーングループの is_master
設定は true
です。新しいゾーングループを作成してそれをマスターゾーングループにしたい場合は、default
ゾーングループ is_master
設定を false
に設定するか、default
ゾーングループを削除する必要があります。
最後に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.3.10. ゾーングループマップの設定
ゾーングループマップの設定は、1 つ以上のゾーングループで設定される JSON オブジェクトの作成と、クラスターの master_zonegroup の
設定で設定されます。ゾーングループマップの各ゾーングループは、キーと値のペアで設定されます。key
設定は、個々のゾーングループ設定の 名前
設定と同等であり、val
は、個々のゾーングループ設定で設定される JSON オブジェクトです。
is_master
が true
と同等のゾーングループを 1 つだけ持つ可能性があり、ゾーングループマップの最後に master_zonegroup
として指定する必要があります。以下の JSON オブジェクトは、デフォルトゾーングループマップの例です。
{ "zonegroups": [ { "key": "90b28698-e7c3-462c-a42d-4aa780d24eda", "val": { "id": "90b28698-e7c3-462c-a42d-4aa780d24eda", "name": "us", "api_name": "us", "is_master": "true", "endpoints": [ "http:\/\/rgw1:80" ], "hostnames": [], "hostnames_s3website": [], "master_zone": "9248cab2-afe7-43d8-a661-a40bf316665e", "zones": [ { "id": "9248cab2-afe7-43d8-a661-a40bf316665e", "name": "us-east", "endpoints": [ "http:\/\/rgw1" ], "log_meta": "true", "log_data": "true", "bucket_index_max_shards": 11, "read_only": "false" }, { "id": "d1024e59-7d28-49d1-8222-af101965a939", "name": "us-west", "endpoints": [ "http:\/\/rgw2:80" ], "log_meta": "false", "log_data": "true", "bucket_index_max_shards": 11, "read_only": "false" } ], "placement_targets": [ { "name": "default-placement", "tags": [] } ], "default_placement": "default-placement", "realm_id": "ae031368-8715-4e27-9a99-0c9468852cfe" } } ], "master_zonegroup": "90b28698-e7c3-462c-a42d-4aa780d24eda", "bucket_quota": { "enabled": false, "max_size_kb": -1, "max_objects": -1 }, "user_quota": { "enabled": false, "max_size_kb": -1, "max_objects": -1 } }
ゾーングループマップを設定するには、次のコマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin zonegroup-map set --infile zonegroupmap.json
ここで、zonegroupmap.json
は作成した JSON ファイルです。ゾーングループマップで指定したゾーンが作成されていることを確認します。最後に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.4. ゾーン
Ceph Object Gateway はゾーンの概念をサポートします。ゾーンは、1 つ以上の Ceph Object Gateway インスタンスで設定される論理グループを定義します。
ゾーンの設定は、Ceph 設定ファイル内で終了するすべての設定ではないため、一般的な設定手順とは異なります。ゾーンをリスト表示して、ゾーン設定を取得し、ゾーン設定を設定できます。
radosgw-admin zone
操作はすべて、ゾーン内で動作するまたはこれから動作するホストで発行する 必要があります。
5.2.11.4.1. ゾーンの作成
ゾーンを作成するには、ゾーン名を指定します。マスターゾーンの場合は、--master
オプションを指定します。ゾーングループ内の 1 つのゾーンのみがマスターゾーンになることができます。ゾーングループにゾーンを追加するには、--rgw-zonegroup
オプションをゾーングループ名で指定します。
ゾーン内の Ceph Object Gateway ノードでゾーンを作成する必要があります。
構文
radosgw-admin zone create --rgw-zone=ZONE_NAME \ [--zonegroup=ZONE_GROUP_NAME]\ [--endpoints=ENDPOINT_PORT [,<endpoint:port>] \ [--master] [--default] \ --access-key ACCESS_KEY --secret SECRET_KEY
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.4.2. ゾーンの削除
ゾーンを削除するには、最初にゾーングループからこれを削除します。
手順
ゾーングループからゾーンを削除します。
構文
radosgw-admin zonegroup remove --rgw-zonegroup=ZONE_GROUP_NAME\ --rgw-zone=ZONE_NAME
期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
ゾーンを削除します。
重要この手順は、ゾーン内のホストで必ず使用する必要があります。
構文
radosgw-admin zone delete --rgw-zone=ZONE_NAME
期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
重要ゾーングループから先にゾーンを削除せずに、ゾーンを削除しないでください。それ以外の場合には、期間の更新に失敗します。
削除したゾーンのプールが他に使用されていない場合は、プールを削除することを検討してください。以下の例の DELETED_ZONE_NAME
を、削除したゾーン名に置き換えます。
Ceph がゾーンプールを削除すると、それによってリカバリー不可能な方法でその中のデータが削除されます。Ceph クライアントにプールの内容が必要なくなった場合にのみ、ゾーンプールを削除します。
マルチレルムクラスターでは、.rgw.root
プールをゾーンプールと共に削除すると、クラスターのレルム情報のすべてが削除されます。.rgw.root
プールを削除する前に、.rgw.root
に他のアクティブなレルムが含まれていないことを確認します。
構文
ceph osd pool delete DELETED_ZONE_NAME.rgw.control DELETED_ZONE_NAME.rgw.control --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.data.root DELETED_ZONE_NAME.rgw.data.root --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.log DELETED_ZONE_NAME.rgw.log --yes-i-really-really-mean-it ceph osd pool delete DELETED_ZONE_NAME.rgw.users.uid DELETED_ZONE_NAME.rgw.users.uid --yes-i-really-really-mean-it
プールの削除後に、RGW プロセスを再起動します。
5.2.11.4.3. ゾーンの変更
ゾーンを変更するには、ゾーン名と、変更するパラメーターを指定します。
ゾーンは、ゾーン内にある Ceph Object Gateway ノードで変更する必要があります。
構文
radosgw-admin zone modify [options]--access-key=<key>
--secret/--secret-key=<key>
--master
--default
--endpoints=<list>
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.4.4. ゾーンのリスト
root
でクラスター内のゾーンをリスト表示するには、以下のコマンドを実行します。
例
[ceph: root@host01 /]# radosgw-admin zone list
5.2.11.4.5. ゾーンの取得
root
でゾーンの設定を取得するには、次のコマンドを実行します。
構文
radosgw-admin zone get [--rgw-zone=ZONE_NAME]
default
ゾーンは以下のようになります。
{ "domain_root": ".rgw", "control_pool": ".rgw.control", "gc_pool": ".rgw.gc", "log_pool": ".log", "intent_log_pool": ".intent-log", "usage_log_pool": ".usage", "user_keys_pool": ".users", "user_email_pool": ".users.email", "user_swift_pool": ".users.swift", "user_uid_pool": ".users.uid", "system_key": { "access_key": "", "secret_key": ""}, "placement_pools": [ { "key": "default-placement", "val": { "index_pool": ".rgw.buckets.index", "data_pool": ".rgw.buckets"} } ] }
5.2.11.4.6. ゾーンの設定
ゾーンの設定には、一連の Ceph Object Gateway プールを指定する必要があります。一貫性を保つために、ゾーン名と同じプールの接頭辞を使用することが推奨されます。プールの設定に関する詳細は、Red Hat Ceph Storage Storage Strategies Guideの Pools の章を参照してください。
ゾーン内の Ceph Object Gateway ノードでゾーンを設定する必要があります。
ゾーンを設定するには、プールで設定される JSON オブジェクトを作成し、オブジェクトをファイル (例: zone.json
) に保存します。続いて以下のコマンドを実行して、ZONE_NAME
をゾーンの名前に置き換えます。
例
[ceph: root@host01 /]# radosgw-admin zone set --rgw-zone=test-zone --infile zone.json
ここで、zone.json
は作成した JSON ファイルです。
次に、root
でピリオドを更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit
5.2.11.4.7. ゾーンの名前変更
ゾーンの名前を変更するには、ゾーン名および新しいゾーン名を指定します。ゾーン内のホストで以下のコマンドを発行します。
構文
radosgw-admin zone rename --rgw-zone=ZONE_NAME --zone-new-name=NEW_ZONE_NAME
次に、期間を更新します。
例
[ceph: root@host01 /]# radosgw-admin period update --commit