5.9. マルチサイトのコマンドラインの使用方法
5.9.1. レルム リンクのコピーリンクがクリップボードにコピーされました!
レルムは、1 つ以上のゾーンが含まれる 1 つ以上のゾーングループと、バケットが含まれるゾーンで設定されるグローバル固有の名前空間を表します。この名前空間にはオブジェクトが含まれます。レルムにより、Ceph Object Gateway は同じハードウェアで複数の名前空間および設定をサポートできるようになります。
レルムには期間の概念が含まれます。それぞれの期間は、ゾーングループとゾーン設定の状態を時間で表しています。ゾーングループまたはゾーンに変更を加えるたびに、期間を更新してコミットします。
デフォルトでは、Ceph Object Gateway バージョン 2 は、バージョン 1.3 以前のリリースとの後方互換性のためのレルムを作成しません。ただし、ベストプラクティスとして、Red Hat は新規クラスターのレルムを作成することを推奨します。
5.9.1.1. レルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
レルムを作成するには、realm create を実行してレルム名を指定します。レルムがデフォルトの場合は、--default を指定します。
[root@master-zone]# radosgw-admin realm create --rgw-realm={realm-name} [--default]
以下に例を示します。
[root@master-zone]# radosgw-admin realm create --rgw-realm=movies --default
--default を指定すると、--rgw-realm とレルム名が明示的に指定されていない限り、各 radosgw-admin 呼び出しでレルムが暗黙的に呼び出されます。
5.9.1.2. レルムのデフォルトの設定 リンクのコピーリンクがクリップボードにコピーされました!
レルム一覧にある 1 つのレルムはデフォルトのレルムである必要があります。デフォルトレルムは 1 つのみです。レルムが 1 つだけあり、そのレルムが作成時にデフォルトレルムとして指定されていない場合は、デフォルトのレルムにします。または、デフォルトであるレルムを変更するには、以下のコマンドを実行します。
[root@master-zone]# radosgw-admin realm default --rgw-realm=movies
レルムがデフォルトの場合、コマンドラインでは --rgw-realm=<realm-name> を引数と想定します。
5.9.1.3. レルムの削除 リンクのコピーリンクがクリップボードにコピーされました!
レルムを削除するには、realm delete を実行し、レルム名を指定します。
[root@master-zone]# radosgw-admin realm delete --rgw-realm={realm-name}
以下に例を示します。
[root@master-zone]# radosgw-admin realm delete --rgw-realm=movies
5.9.1.4. レルムの取得 リンクのコピーリンクがクリップボードにコピーされました!
レルムを取得するには、realm get を実行してレルム名を指定します。
# radosgw-admin realm get --rgw-realm=<name>
以下に例を示します。
# radosgw-admin realm get --rgw-realm=movies [> filename.json]
CLI は、レルムプロパティーを使用して JSON オブジェクトを echo します。
{
"id": "0a68d52e-a19c-4e8e-b012-a8f831cb3ebc",
"name": "movies",
"current_period": "b0c5bbef-4337-4edd-8184-5aeab2ec413b",
"epoch": 1
}
> と出力ファイル名を使用して、JSON オブジェクトをファイルに出力します。
5.9.1.5. レルムの設定 リンクのコピーリンクがクリップボードにコピーされました!
レルムを設定するには、realm set を実行し、レルム名を指定し、--infile= を入力ファイル名で指定します。
[root@master-zone]# radosgw-admin realm set --rgw-realm=<name> --infile=<infilename>
以下に例を示します。
[root@master-zone]# radosgw-admin realm set --rgw-realm=movies --infile=filename.json
5.9.1.6. レルムの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
レルムを一覧表示するには、realm list を実行します。
# radosgw-admin realm list
5.9.1.7. レルム期間の一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
レルムの期間を一覧表示するには、realm list-periods を実行します。
# radosgw-admin realm list-periods
5.9.1.8. レルムのプル リンクのコピーリンクがクリップボードにコピーされました!
マスターゾーングループとマスターゾーンを含むノードからセカンダリーゾーングループまたはゾーンを含むノードにレルムをプルするには、レルム設定を受け取るノードで realm pull を実行します。
# radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
5.9.1.9. レルムの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
レルムは期間の一部ではありません。そのため、レルムの名前変更はローカルでのみ適用され、realm pull でプルされません。複数のゾーンを持つレルムの名前を変更する場合は、各ゾーンでこのコマンドを実行します。レルムの名前を変更するには、以下のコマンドを実行します。
# radosgw-admin realm rename --rgw-realm=<current-name> --realm-new-name=<new-realm-name>
realm set を使用して name パラメーターを変更しないでください。これにより、内部名のみが変更されます。--rgw-realm を指定すると、古いレルム名が使用されます。
5.9.2. ゾーングループ リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は、ゾーングループの概念を使用したマルチサイトデプロイメントおよびグローバル名前空間をサポートします。以前はリージョンと呼ばれていたゾーングループは、1 つ以上のゾーン内の 1 つ以上の Ceph Object Gateway インスタンスの地理的な場所を定義します。
ゾーングループの設定は、設定のすべてが Ceph 設定ファイルになるわけではないため、一般的な設定手順とは異なります。ゾーングループの一覧を表示し、ゾーングループ設定を取得し、ゾーングループ設定を設定できます。
期間を更新するステップはクラスター全体に変更を伝播するため、radosgw-admin zonegroup 操作はレルム内の任意のノードで実行できます。ただし、radosgw-admin zone 操作は、ゾーン内のホストで実行する 必要があります。
5.9.2.1. ゾーングループの作成 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループの作成は、ゾーングループ名の指定から始まります。ゾーンの作成では、--rgw-realm=<realm-name> が指定されていない限り、デフォルトのレルムで実行されていることを前提としています。ゾーングループがデフォルトのゾーングループの場合は、--default フラグを指定します。ゾーングループがマスターゾーングループの場合は、--master フラグを指定します。以下に例を示します。
# radosgw-admin zonegroup create --rgw-zonegroup=<name> [--rgw-realm=<name>][--master] [--default]
zonegroup modify --rgw-zonegroup=<zonegroup-name> を使用して、既存のゾーングループの設定を変更します。
5.9.2.2. ゾーングループをデフォルトにする リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループ一覧内の 1 つのゾーングループは、デフォルトのゾーングループである必要があります。デフォルトのゾーングループは 1 つのみです。ゾーングループが 1 つだけあり、そのゾーンは作成時にデフォルトのゾーングループとして指定されていない場合は、デフォルトのゾーングループにします。デフォルトであるゾーングループを変更する場合は、次のコマンドを実行します。
# radosgw-admin zonegroup default --rgw-zonegroup=comedy
ゾーングループがデフォルトの場合、コマンドラインは --rgw-zonegroup=<zonegroup-name> を引数として想定します。
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.3. ゾーングループへのゾーンの追加 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループにゾーンを追加するには、ゾーンに追加するホストでこの手順を実行する必要があります。ゾーンをゾーングループに追加するには、次のコマンドを実行します。
# radosgw-admin zonegroup add --rgw-zonegroup=<name> --rgw-zone=<name>
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.4. ゾーングループからのゾーンの削除 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループからゾーンを削除するには、次のコマンドを実行します。
# radosgw-admin zonegroup remove --rgw-zonegroup=<name> --rgw-zone=<name>
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.5. ゾーングループの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループの名前を変更するには、次のコマンドを実行します。
# radosgw-admin zonegroup rename --rgw-zonegroup=<name> --zonegroup-new-name=<name>
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.6. ゾーングループの削除 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループを削除するには、次のコマンドを実行します。
# radosgw-admin zonegroup delete --rgw-zonegroup=<name>
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.7. ゾーングループの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
Ceph クラスターには、ゾーングループの一覧が含まれます。ゾーングループを一覧表示するには、次のコマンドを実行します。
# radosgw-admin zonegroup list
radosgw-admin は、JSON 形式のゾーングループの一覧を返します。
{
"default_info": "90b28698-e7c3-462c-a42d-4aa780d24eda",
"zonegroups": [
"us"
]
}
5.9.2.8. ゾーングループの取得 リンクのコピーリンクがクリップボードにコピーされました!
ゾーングループの設定を表示するには、次のコマンドを実行します。
# radosgw-admin zonegroup get [--rgw-zonegroup=<zonegroup>]
ゾーングループの設定は以下のようになります。
{
"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.9.2.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) に保存します。次に、次のコマンドを実行します。
# radosgw-admin zonegroup set --infile zonegroup.json
ここで、zonegroup.json は作成した JSON ファイルです。
default ゾーングループの is_master 設定は true です。新しいゾーングループを作成してそれをマスターゾーングループにしたい場合は、default ゾーングループ is_master 設定を false に設定するか、default ゾーングループを削除する必要があります。
最後に、期間を更新します。
# radosgw-admin period update --commit
5.9.2.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
}
}
ゾーングループマップを設定するには、次のコマンドを実行します。
# radosgw-admin zonegroup-map set --infile zonegroupmap.json
ここで、zonegroupmap.json は作成した JSON ファイルです。ゾーングループマップで指定したゾーンが作成されていることを確認します。最後に、期間を更新します。
# radosgw-admin period update --commit
5.9.3. ゾーン リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway はゾーンの概念をサポートします。ゾーンは、1 つ以上の Ceph Object Gateway インスタンスで設定される論理グループを定義します。
ゾーンの設定は、Ceph 設定ファイル内で終了するすべての設定ではないため、一般的な設定手順とは異なります。ゾーンを一覧表示して、ゾーン設定を取得し、ゾーン設定を設定できます。
radosgw-admin zone 操作はすべて、ゾーン内で動作するまたはこれから動作するホストで実行する 必要があります。
5.9.3.1. ゾーンの作成 リンクのコピーリンクがクリップボードにコピーされました!
ゾーンを作成するには、ゾーン名を指定します。マスターゾーンの場合は、--master オプションを指定します。ゾーングループ内の 1 つのゾーンのみがマスターゾーンになることができます。ゾーングループにゾーンを追加するには、--rgw-zonegroup オプションをゾーングループ名で指定します。
ゾーン内の Ceph Object Gateway ノードでゾーンを作成する必要があります。
[root@zone] radosgw-admin zone create --rgw-zone=<name> \
[--zonegroup=<zonegroup-name]\
[--endpoints=<endpoint:port>[,<endpoint:port>] \
[--master] [--default] \
--access-key $SYSTEM_ACCESS_KEY --secret $SYSTEM_SECRET_KEY
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.3.2. ゾーンの削除 リンクのコピーリンクがクリップボードにコピーされました!
ゾーンを削除するには、最初にゾーングループからこれを削除します。
# radosgw-admin zonegroup remove --rgw-zonegroup=<name>\
--rgw-zone=<name>
次に、期間を更新します。
# radosgw-admin period update --commit
次に、ゾーンを削除します。
この手順では、ゾーン内のホストで MUST を実行する 必要があります。
以下のコマンドを実行します。
[root@zone]# radosgw-admin zone delete --rgw-zone<name>
最後に、期間を更新します。
# radosgw-admin period update --commit
ゾーングループから先にゾーンを削除せずに、ゾーンを削除しないでください。それ以外の場合には、期間の更新に失敗します。
削除したゾーンのプールが他に使用されていない場合は、プールを削除することを検討してください。以下の例の <del-zone> を、削除したゾーン名に置き換えます。
Ceph がゾーンプールを削除すると、それによってリカバリー不可能な方法でその中のデータが削除されます。Ceph クライアントにプールの内容が必要なくなった場合にのみ、ゾーンプールを削除します。
マルチレルムクラスターでは、.rgw.root プールをゾーンプールと共に削除すると、クラスターのレルム情報のすべてが削除されます。.rgw.root プールを削除する前に、.rgw.root に他のアクティブなレルムが含まれていないことを確認します。
# ceph osd pool delete <del-zone>.rgw.control <del-zone>.rgw.control --yes-i-really-really-mean-it
# ceph osd pool delete <del-zone>.rgw.data.root <del-zone>.rgw.data.root --yes-i-really-really-mean-it
# ceph osd pool delete <del-zone>.rgw.log <del-zone>.rgw.log --yes-i-really-really-mean-it
# ceph osd pool delete <del-zone>.rgw.users.uid <del-zone>.rgw.users.uid --yes-i-really-really-mean-it
プールの削除後に、RGW プロセスを再起動します。
5.9.3.3. ゾーンの変更 リンクのコピーリンクがクリップボードにコピーされました!
ゾーンを変更するには、ゾーン名と、変更するパラメーターを指定します。
ゾーンは、ゾーン内にある Ceph Object Gateway ノードで変更する必要があります。
[root@zone]# radosgw-admin zone modify [options]
--access-key=<key> --secret/--secret-key=<key> --master --default --endpoints=<list>
次に、期間を更新します。
# radosgw-admin period update --commit
5.9.3.4. ゾーンの一覧 リンクのコピーリンクがクリップボードにコピーされました!
root でクラスター内のゾーンを一覧表示するには、以下を実行します。
# radosgw-admin zone list
5.9.3.5. ゾーンの取得 リンクのコピーリンクがクリップボードにコピーされました!
root でゾーンの設定を取得するには、次のコマンドを実行します。
# radosgw-admin zone get [--rgw-zone=<zone>]
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.9.3.6. ゾーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
ゾーンの設定には、一連の Ceph Object Gateway プールを指定する必要があります。一貫性を保つために、ゾーン名と同じプールの接頭辞を使用することが推奨されます。プールの設定に関する詳細は、Pools_ を参照してください。
ゾーン内の Ceph Object Gateway ノードでゾーンを設定する必要があります。
ゾーンを設定するには、プールで設定される JSON オブジェクトを作成し、オブジェクトをファイル (例: zone.json) に保存します。続いて以下のコマンドを実行して、{zone-name} をゾーンの名前に置き換えます。
[root@zone]# radosgw-admin zone set --rgw-zone={zone-name} --infile zone.json
ここで、zone.json は作成した JSON ファイルです。
次に、root でピリオドを更新します。
# radosgw-admin period update --commit
5.9.3.7. ゾーンの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
ゾーンの名前を変更するには、ゾーン名および新しいゾーン名を指定します。ゾーン内のホストで以下を実行します。
[root@zone]# radosgw-admin zone rename --rgw-zone=<name> --zone-new-name=<name>
次に、期間を更新します。
# radosgw-admin period update --commit