7.2. 创建存储策略


Ceph 对象网关通过标识放置目标并在与放置目标关联的池中存储 bucket 和对象来存储客户端存储桶和对象。如果您不配置放置目标,并将它们映射到实例区域配置中的池,Ceph 对象网关将使用默认目标和池,如 default_placement

存储策略使 Ceph 对象网关客户端能够访问存储策略的方式,即,以特定类型的存储(如 SSD、SAS 驱动器和 SATA 驱动器)为目标,作为确保、持久性、复制和擦除编码的方法。详情请参阅 Red Hat Ceph Storage 5 的存储策略指南。

要创建存储策略,请使用以下步骤:

  1. 使用所需的存储策略,创建一个新的池 .rgw.buckets.special。例如,使用纠删代码、特定 CRUSH 规则集、副本数和 pg_numpgp_num 计数自定义的池。
  2. 获取 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

  3. 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"
    }

  4. 使用修改的 zone group.json 文件设置 zone group :

    示例

    [root@host01 ~]# radosgw-admin zonegroup set < zonegroup.json

  5. 获取区配置并将其存储在文件中,如 zone.json

    示例

    [root@host01 ~]# radosgw-admin zone get > zone.json

  6. 编辑区文件并在 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"
    		}
    	}]
    }

  7. 设置新区配置:

    示例

    [root@host01 ~]# radosgw-admin zone set < zone.json

  8. 更新 zone group 映射:

    示例

    [root@host01 ~]# radosgw-admin period update --commit

    special-placement 条目列为 placement_target

  9. 在发出请求时指定存储策略:

    示例

    $ 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"

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.