第9章 Administration
ストレージ管理者は、radosgw-admin
コマンドラインインターフェイス (CLI) または Red Hat Ceph Storage Dashboard を使用して Ceph Object Gateway を管理できます。
Red Hat Ceph Storage Dashboard では、すべての Ceph Object Gateway 機能が利用できる訳ではありません。
前提条件
- 正常かつ実行中の Red Hat Ceph Storage クラスター
- Ceph Object Gateway ソフトウェアのインストール。
9.1. ストレージポリシーの作成
Ceph Object Gateway は配置ターゲットを特定し、配置ターゲットに関連付けられたプールにバケットおよびオブジェクトを保存することで、クライアントバケットとオブジェクトデータを保存します。配置ターゲットを設定しておらず、インスタンスのゾーン設定内のプールにマッピングすると、Ceph Object Gateway はデフォルトのターゲットとプールを使用します (例: default_placement
)。
ストレージポリシーは、Ceph Object Gateway クライアントに対し、ストレージストラテジーにアクセスする手段を提供します。つまり、たとえば耐久性、レプリケーション、イレイジャーコーディングなどを確保するための方法として、SSD、SAS ドライブ、SATA ドライブなどの特定のタイプのストレージをターゲットに設定する機能があります。詳細は、Red Hat Ceph Storage 8 の ストレージストラテジー を参照してください。
ストレージポリシーを作成するには、以下の手順に従います。
-
必要なストレージストラテジーを使用して、新しいプールの
.rgw.buckets.special
を作成します。たとえば、イレイジャーコーディング、特定の CRUSH ルールセット、レプリカ数、およびpg_num
数およびpgp_num
数でカスタマイズしたプールなどです。 ゾーングループの設定を取得して、これをファイルに保存します。
構文
radosgw-admin zonegroup --rgw-zonegroup=ZONE_GROUP_NAME get > FILE_NAME.json
例
[root@host01 ~]# radosgw-admin zonegroup --rgw-zonegroup=default get > zonegroup.json
zonegroup.json
ファイルのplacement_target
の下に、特別なspecial-placement
を追加します。例
{ "name": "default", "api_name": "", "is_master": "true", "endpoints": [], "hostnames": [], "master_zone": "", "zones": [{ "name": "default", "endpoints": [], "log_meta": "false", "log_data": "false", "bucket_index_max_shards": 5 }], "placement_targets": [{ "name": "default-placement", "tags": [] }, { "name": "special-placement", "tags": [] }], "default_placement": "default-placement" }
変更された
zonegroup.json
ファイルでゾーングループを設定します。例
[root@host01 ~]# radosgw-admin zonegroup set < zonegroup.json
ゾーン設定を取得して、これをファイル (例:
zone.json
) に保存します。例
[root@host01 ~]# radosgw-admin zone get > zone.json
ゾーンファイルを編集し、
placement_pool
に新しい配置ポリシーキーを追加します。例
{ "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", "data_extra_pool": ".rgw.buckets.extra" } }, { "key": "special-placement", "val": { "index_pool": ".rgw.buckets.index", "data_pool": ".rgw.buckets.special", "data_extra_pool": ".rgw.buckets.extra" } }] }
新しいゾーン設定を設定します。
例
[root@host01 ~]# radosgw-admin zone set < zone.json
ゾーングループのマップを更新します。
例
[root@host01 ~]# radosgw-admin period update --commit
special-placement
エントリーはplacement_target
としてリスト表示されます。要求の実行時にストレージポリシーを指定するには、以下を実行します。
例
$ curl -i http://10.0.0.1/swift/v1/TestContainer/file.txt -X PUT -H "X-Storage-Policy: special-placement" -H "X-Auth-Token: AUTH_rgwtxxxxxx"