RGW池放置(Mimic版本)
放置目标控制哪些池与特定桶。 存储桶的放置目标是在创建时选择的,不能修改的。 radosgw-admin bucket stats
命令将显示其 placement_rule。
1. 查询放置配置
$ radosgw-admin zonegroup get
{
"id": "ab01123f-e0df-4f29-9d71-b44888d67cd5",
"name": "default",
"api_name": "default",
...
"placement_targets": [
{
"name": "default-placement",
"tags": [],
}
],
"default_placement": "default-placement",
...
}
$ radosgw-admin zone get
{
"id": "557cdcee-3aae-4e9e-85c7-2f86f5eddb1f",
"name": "default",
"domain_root": "default.rgw.meta:root",
...
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "default.rgw.buckets.index",
"data_pool": "default.rgw.buckets.data",
"data_extra_pool": "default.rgw.buckets.non-ec",
"index_type": 0
}
}
],
...
}
2. 添加放置目标
$ radosgw-admin zonegroup placement add \
--rgw-zonegroup default \
--placement-id temporary
$ radosgw-admin zone placement add \
--rgw-zone default \
--placement-id temporary \
--data-pool default.rgw.temporary.data \
--index-pool default.rgw.temporary.index \
--data-extra-pool default.rgw.temporary.non-ec \
--compression lz4
3. 自定义放置
3.1 默认位置
$ radosgw-admin zonegroup placement default \
--rgw-zonegroup default \
--placement-id new-placement
3.2 用户布局
$ radosgw-admin user info --uid testid
{
...
"default_placement": "",
"placement_tags": [],
...
}
注:如果区域组的放置目标包含任何 tags
,用户将无法使用该放置目标创建存储桶,除非它们的用户信息包含至少有一个匹配的标签在其 placement_tags
。 这在限制对某些类型的存储的访问时可能很有用 。
$ radosgw-admin metadata get user:<user-id> > user.json
$ vi user.json
$ radosgw-admin metadata put user:<user-id> < user.json
4. S3存储桶放置
使用 S3 协议创建存储桶时,放置目标可以是作为 LocationConstraint 的一部分提供以覆盖默认位置来自用户和区域组的目标。
通常,LocationConstraint 必须与 zonegroup 的 api_name
:
<LocationConstraint>default</LocationConstraint>
可以将自定义放置目标添加到 api_name
冒号后:
<LocationConstraint>default:new-placement</LocationConstraint>