1. 程式人生 > 其它 >【Ceph Object Storage Placement 介紹 】

【Ceph Object Storage Placement 介紹 】

確認當前已經儲存的crush rule

 1 $ ceph osd crush rule dump
 2 
 3 [
 4     {
 5         "rule_id": 0,
 6         "rule_name": "replicated_rule",
 7         "ruleset": 0,
 8         "type": 1,
 9         "min_size": 1,
10         "max_size": 10,
11         "steps": [
12             {
13                 "op": "take
", 14 "item": -1, 15 "item_name": "default" 16 }, 17 { 18 "op": "chooseleaf_firstn", 19 "num": 0, 20 "type": "host" 21 }, 22 { 23 "op": "emit" 24 }
25 ] 26 }, 27 { 28 "rule_id": 1, 29 "rule_name": "slow", 30 "ruleset": 1, 31 "type": 1, 32 "min_size": 1, 33 "max_size": 10, 34 "steps": [ 35 { 36 "op": "take", 37 "item": -9, 38 "
item_name": "slow" 39 }, 40 { 41 "op": "chooseleaf_firstn", 42 "num": 0, 43 "type": "host" 44 }, 45 { 46 "op": "emit" 47 } 48 ] 49 } 50 ]

default Zonegroup 增加新的 Placement target 名為 slow 並且賦予 tag 為 slow

 1 $ radosgw-admin zonegroup placement add --rgw-zonegroup default --placement-id slow --tags slow
 2 
 3 [
 4     {
 5         "key": "default-placement",
 6         "val": {
 7             "name": "default-placement",
 8             "tags": [],
 9             "storage_classes": [
10                 "STANDARD"
11             ]
12         }
13     },
14     {
15         "key": "slow",
16         "val": {
17             "name": "slow",
18             "tags": [
19                 "slow"
20             ],
21             "storage_classes": [
22                 "STANDARD"
23             ]
24         }
25     }
26 ]

default-placement Placement target 新增名為 default-placement tag

 1 $ radosgw-admin zonegroup placement modify --rgw-zonegroup default --placement-id default-placement --tags default-placement
 2 
 3 [
 4     {
 5         "key": "default-placement",
 6         "val": {
 7             "name": "default-placement",
 8             "tags": [
 9                 "default-placement"
10             ],
11             "storage_classes": [
12                 "STANDARD"
13             ]
14         }
15     },
16     {
17         "key": "slow",
18         "val": {
19             "name": "slow",
20             "tags": [
21                 "slow"
22             ],
23             "storage_classes": [
24                 "STANDARD"
25             ]
26         }
27     }
28 ]

default Zone 增加新的 placement pool,並且命名為 slow。建置過程中需配置 index-pool, data-pool 與 –data-extra-pool

 1 $ radosgw-admin zone placement add --rgw-zone default --placement-id slow --index-pool slow.rgw.buckets.index --data-pool slow.rgw.buckets.data --data-extra-pool slow.rgw.buckets.non-ec
 2 
 3 {
 4     "id": "67798670-9929-4675-a595-a27b10576b5e",
 5     "name": "default",
 6     "domain_root": "default.rgw.meta:root",
 7     "control_pool": "default.rgw.control",
 8     "gc_pool": "default.rgw.log:gc",
 9     "lc_pool": "default.rgw.log:lc",
10     "log_pool": "default.rgw.log",
11     "intent_log_pool": "default.rgw.log:intent",
12     "usage_log_pool": "default.rgw.log:usage",
13     "reshard_pool": "default.rgw.log:reshard",
14     "user_keys_pool": "default.rgw.meta:users.keys",
15     "user_email_pool": "default.rgw.meta:users.email",
16     "user_swift_pool": "default.rgw.meta:users.swift",
17     "user_uid_pool": "default.rgw.meta:users.uid",
18     "otp_pool": "default.rgw.otp",
19     "system_key": {
20         "access_key": "",
21         "secret_key": ""
22     },
23     "placement_pools": [
24         {
25             "key": "default-placement",
26             "val": {
27                 "index_pool": "default.rgw.buckets.index",
28                 "storage_classes": {
29                     "STANDARD": {
30                         "data_pool": "default.rgw.buckets.data"
31                     }
32                 },
33                 "data_extra_pool": "default.rgw.buckets.non-ec",
34                 "index_type": 0
35             }
36         },
37         {
38             "key": "slow",
39             "val": {
40                 "index_pool": "slow.rgw.buckets.index",
41                 "storage_classes": {
42                     "STANDARD": {
43                         "data_pool": "slow.rgw.buckets.data"
44                     }
45                 },
46                 "data_extra_pool": "slow.rgw.buckets.non-ec",
47                 "index_type": 0
48             }
49         }
50     ],
51     "metadata_heap": "",
52     "realm_id": ""
53 }

配置完成後,建立相對應的 pools

$ ceph osd pool create slow.rgw.buckets.index 8 8

pool 'slow.rgw.buckets.index' created

$ ceph osd pool create slow.rgw.buckets.data 8 8

pool 'slow.rgw.buckets.data' created

$ ceph osd pool create slow.rgw.buckets.non-ec 8 8

pool 'slow.rgw.buckets.non-ec' created

確認新建立 pool 的 Crush Rule

$ ceph osd pool ls detail

...
pool 5 'default.rgw.buckets.index' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode warn last_change 31 flags hashpspool stripe_width 0 application rgw
pool 6 'slow.rgw.buckets.index' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode warn last_change 68 flags hashpspool stripe_width 0
pool 7 'slow.rgw.buckets.data' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode warn last_change 70 flags hashpspool stripe_width 0
pool 8 'slow.rgw.buckets.non-ec' replicated size 3 min_size 2 crush_rule 1 object_hash rjenkins pg_num 8 pgp_num 8 autoscale_mode warn last_change 72 flags hashpspool stripe_width 0

crush_rule 為 1 表示已更改為 slow Crush Rule,若讀者實際操作可能值會與範例不同

重新啟動RGW

systemctl  stop ceph-[email protected]
systemctl  start ceph[email protected]

參考資料

1. Ceph Object Storage Placement 介紹