5.5. セカンダリーゾーンの確立
ゾーングループ内のゾーンは、すべてのデータを複製して、各ゾーンが同じデータを持つようにします。セカンダリーゾーンを作成するときは、セカンダリーゾーンにサービスを提供するように識別されたホストで すべて の radosgw-admin zone
操作を実行します。
ゾーンを追加するには、セカンダリーゾーンを追加する手順と同じ手順に従います。別のゾーン名を使用します。
マスターゾーングループのマスターゾーン内のホストで、ユーザーの作成やクォータなどのメタデータ操作を実行する必要があります。マスターゾーンおよびセカンダリーゾーンは、RESTful API からバケット操作を受信できますが、セカンダリーゾーンはバケット操作をマスターゾーンにリダイレクトします。マスターゾーンがダウンしている場合、バケット操作は失敗します。radosgw-admin
CLI を使用してバケットを作成する場合は、マスターゾーングループのマスターゾーン内のホストでバケットを実行する必要があります。そうしないと、バケットは他のゾーングループおよびゾーンに同期されません。
5.5.1. レルムのプル
マスターゾーングループ内のマスターゾーンの URL パス、アクセスキー、およびシークレットを使用して、レルムをホストにプルします。デフォルト以外のレルムをプルするには、--rgw-realm
設定または --realm-id
設定オプションを使用してレルムを指定します。
# radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
このレルムがデフォルトのレルムまたは唯一のレルムである場合は、そのレルムをデフォルトのレルムにします。
# radosgw-admin realm default --rgw-realm={realm-name}
5.5.2. 期間のプル
マスターゾーングループ内のマスターゾーンの URL パス、アクセスキー、およびシークレットを使用して、期間をホストにプルします。デフォルト以外のレルムから期間をプルするには、--rgw-realm
または --realm-id
設定オプションを使用してレルムを指定します。
# radosgw-admin period pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
期間をプルすると、レルムのゾーングループとゾーン設定の最新バージョンが取得されます。
5.5.3. セカンダリーゾーンの作成
ゾーン内の Ceph Object Gateway ノードでゾーンを作成する必要があります。
セカンダリーゾーンを提供するために識別されたホストでコマンドラインインターフェイスを開いて、マルチサイト設定用のセカンダリーゾーンを作成します。ゾーングループ ID、新しいゾーン名、およびゾーンのエンドポイントを指定します。--master
フラグまたは --default
フラグを使用 しないでください。デフォルトでは、すべてのゾーンはアクティブ/アクティブ設定で実行されます。つまり、ゲートウェイクライアントは任意のゾーンにデータを書き込むことができ、ゾーンはゾーングループ内の他のすべてのゾーンにデータを複製します。セカンダリーゾーンが書き込み操作を受け入れない場合は、--read-only
フラグを指定して、マスターゾーンとセカンダリーゾーンの間にアクティブ-パッシブ設定を作成します。さらに、マスターゾーングループのマスターゾーンに格納されている、生成されたシステムユーザーの access_key
および secret_key
を指定します。以下のコマンドを実行します。
構文
[root@second-zone]# radosgw-admin zone create \ --rgw-zonegroup={zone-group-name}\ --rgw-zone={zone-name} \ --access-key={system-key} --secret={secret}\ --endpoints=http://{fqdn}:80 \ [--read-only]
例
[root@second-zone]# radosgw-admin zone create --rgw-zonegroup=us \ --rgw-zone=us-west \ --access-key={system-key} --secret={secret} \ --endpoints=http://rgw2:80
以下の手順は、データを保存していない新たにインストールしたシステムを使用するマルチサイト設定を想定しています。default
ゾーンとそのプールをすでにデータの保存に使用している場合は、削除しないでください。削除すると、データが失われ、回復できなくなります。
必要に応じてデフォルトゾーンを削除します。
[root@second-zone]# radosgw-admin zone delete --rgw-zone=default
最後に、必要に応じて Ceph Storage Cluster のデフォルトプールを削除します。
# ceph osd pool delete default.rgw.control default.rgw.control --yes-i-really-really-mean-it # ceph osd pool delete default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it # ceph osd pool delete default.rgw.log default.rgw.log --yes-i-really-really-mean-it # ceph osd pool delete default.rgw.users.uid default.rgw.users.uid --yes-i-really-really-mean-it
プールの削除後に、RGW プロセスを再起動します。
5.5.4. 期間の更新
マスターゾーン設定の更新後に、期間を更新します。
# radosgw-admin period update --commit
期間を更新するとエポックが変更され、他のゾーンが更新された設定を確実に受信できるようになります。
5.5.5. Ceph 設定ファイルを更新します。
インスタンスエントリーに rgw_zone
設定オプションとセカンダリーゾーンの名前を追加して、セカンダリーゾーンホストの Ceph 設定ファイルを更新します。
[client.rgw.{instance-name}] ... rgw_zone={zone-name}
以下に例を示します。
[client.rgw.rgw2.rgw0] host = rgw2 rgw frontends = "civetweb port=80" rgw_zone=us-west
5.5.6. ゲートウェイの開始
Object Gateway ホストで、Ceph Object Gateway サービスを開始して有効にします。
# systemctl start ceph-radosgw@rgw.`hostname -s`.rgw0 # systemctl enable ceph-radosgw@rgw.`hostname -s`.rgw0
サービスがすでに実行中の場合は、サービスを開始して有効にするのではなく、サービスを再起動します。
# systemctl restart ceph-radosgw@rgw.`hostname -s`.rgw0