7.2. 创建存储策略
Ceph 对象网关通过标识放置目标并在与放置目标关联的池中存储 bucket 和对象来存储客户端存储桶和对象。如果您不配置放置目标,并将它们映射到实例区域配置中的池,Ceph 对象网关将使用默认目标和池,如 default_placement
。
存储策略使 Ceph 对象网关客户端能够访问存储策略的方式,即,以特定类型的存储(如 SSD、SAS 驱动器和 SATA 驱动器)为目标,作为确保、持久性、复制和擦除编码的方法。详情请参阅 Red Hat Ceph Storage 5 的存储策略指南。
要创建存储策略,请使用以下步骤:
-
使用所需的存储策略,创建一个新的池
.rgw.buckets.special
。例如,使用纠删代码、特定 CRUSH 规则集、副本数和pg_num
和pgp_num
计数自定义的池。 获取 zone group 配置并将其存储在文件中:
语法
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" }
使用修改的 zone
group.json
文件设置 zone group :示例
[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
更新 zone group 映射:
示例
[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"