radosgw多站点

一、概述

1.1 概念与术语

radosgw多站点指的是在多个地理位置或数据中心之间进行数据复制和同步,用于实现负载均衡、灾备恢复以及满足数据在特定地理位置存储要求。

  • zone:
    多站点中最小的配置单元,通俗指在同一地域内,电力和网络互相独立的物理区域。每个 zone 都有一个或多个 ceph-radosgw 实例。

  • zone group:

    由一个或多zone组成,包含一个master zone,其它zone称为secondary zone,zone group内的zone之间同步数据,以实现数据备份和灾难恢复。并且支持active-active与active-passive两种模式。

  • realm:

    由一个或多zone group组成,包含一个master zone group,其它zone group称为secondary zone group。

  • period

    跟踪zone、zone group和realm的配置状态。

中英文对照表

英文 中文
zone 区域或站点
master zone 主区域或主站点
secondary zone 备区域或备站点
zone group 区域组
master zone group 主区域组
secondary zone group 备区域组
realm

1.2 演示环境说明

演示环境为单realm下的单zone group,zone group内有两个zone。bingo-A为已存放数据的老集群,准备作为主站点,bingo-B为未存放数据的新集群,用来作为灾备的备站点。bingo-A与bingo-B的Ceph版本为12.2.x。

二、主站点配置

2.1 主站点环境查看

radosgw安装后会在Ceph集群创建一些带有rgw的名字的pool。如果上传过对象还会自动创建default.rgw.buckets.indexdefault.rgw.buckets.data这两个pool。

1
2
3
4
5
6
7
[root@node-10 ~]# ceph osd pool ls | grep rgw
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
default.rgw.buckets.index
default.rgw.buckets.data

bingo-A已经存放了数据,为后续测试向bingo-B数据同步做铺垫。

1
2
3
4
5
6
7
8
9
10
11
12
[root@node-10 ~]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
1.83TiB 1.81TiB 14.0GiB 0.75
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
.rgw.root 157 1.09KiB 0 440GiB 4
default.rgw.control 158 0B 0 440GiB 8
default.rgw.meta 159 786B 0 440GiB 5
default.rgw.log 160 0B 0 440GiB 175
default.rgw.buckets.index 161 0B 0 440GiB 16
default.rgw.buckets.data 162 15.3MiB 0 440GiB 5 # 已存有数据

注意:配置主站点前如果ceph.conf中有rgw_admin_entry选项请先删掉。

2.2 创建域

radosgw多站点中,可能存在不同的zone group和zone。然而,它们必须在realm中协同工作。所有的radosgw从master zone group的master zone主机上的ceph-radosgw守护进程检索其配置。

2.2.1创建前查看

1
2
3
4
5
[root@node-10 ~]# radosgw-admin realm list
{
"default_info": "", # 可以看到当前没有realm
"realms": []
}

2.2.2 创建

radosgw-admin realm create --rgw-realm={realm-name} [--default]

  • 参数说明:

    –default:设置该realm为默认realm。如果没有指定 --default,添加 zone-groups 和zone需要指定 --rgw-realm 标志或 --realm-id 标志,以便在添加 zone group 和 zone 时标识realm。

1
2
3
4
5
6
7
8
// 在创建了realm 后,radosgw-admin 将回显 realm 配置
[root@node-10 ~]# radosgw-admin realm create --rgw-realm=gz --default
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"epoch": 1
}

2.2.3 验证

1
2
3
4
5
6
7
[root@node-10 ~]# radosgw-admin realm get
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"epoch": 1
}

2.3 重命名默认区域组和区域

2.3.1 重命名前查看

通常情况下,radosgw启动后会自动创建一个名为default的zone group,并且会在该zone group下自动创建一个名为default的zone。可以通过下面命令查看验证。

radosgw-admin zonegroup list :查看所有的zone group

radosgw-admin zonegroup get --rgw-zonegroup={zone-group-name}:查看某个zone group详细信息

radosgw-admin zone list :查看所有的zone

radosgw-admin zone get --rgw-zone={zone-name}:查看某个zone详细信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[root@node-10 ~]# radosgw-admin zonegroup list
{
"default_info": "",
"zonegroups": [
"default"
]
}

[root@node-10 ~]# radosgw-admin zonegroup get --rgw-zonegroup=default
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "default",
"api_name": "default",
"is_master": "true",
"endpoints": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "default",
"endpoints": [],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": ""
}

[root@node-10 ~]# radosgw-admin zone list
{
"default_info": "",
"zones": [
"default"
]
}

[root@node-10 ~]# radosgw-admin zone get --rgw-zone=default
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "default",
"domain_root": "default.rgw.meta:root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.log:gc",
"lc_pool": "default.rgw.log:lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.log:intent",
"usage_log_pool": "default.rgw.log:usage",
"reshard_pool": "default.rgw.log:reshard",
"user_keys_pool": "default.rgw.meta:users.keys",
"user_email_pool": "default.rgw.meta:users.email",
"user_swift_pool": "default.rgw.meta:users.swift",
"user_uid_pool": "default.rgw.meta:users.uid",
"system_key": {
"access_key": "",
"secret_key": ""
},
"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,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": ""
}

2.3.2 重命名

radosgw-admin zonegroup rename --rgw-zonegroup {zone-group-name} --zonegroup-new-name={new-zone-group-name}

radosgw-admin zone rename --rgw-zonegroup {zone-group-name} --rgw-zone {zone name} --zone-new-name={new-zone-name}

1
2
[root@node-10 ~]# radosgw-admin zonegroup rename --rgw-zonegroup default --zonegroup-new-name=bingo
[root@node-10 ~]# radosgw-admin zone rename --rgw-zonegroup bingo --rgw-zone default --zone-new-name=bingo-A

2.3.3 验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
[root@node-10 ~]# radosgw-admin zonegroup list
{ # 如果还有名为default的zone group不用在意
"default_info": "",
"zonegroups": [
"bingo"
]
}

[root@node-10 ~]# radosgw-admin zonegroup get --rgw-zonegroup=bingo
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582", # id 没有变
"name": "bingo", # zone group已改名
"api_name": "default",
"is_master": "true",
"endpoints": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": ""
}

[root@node-10 ~]# radosgw-admin zone list
{ # 如果还有名为default的zone不用在意
"default_info": "",
"zones": [
"bingo-A"
]
}

[root@node-10 ~]# radosgw-admin zone get --rgw-zone=bingo-A
{ # 回显内容有删减
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b", # id没有改变
"name": "bingo-A", # zone已改名
"domain_root": "default.rgw.meta:root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.log:gc",
"lc_pool": "default.rgw.log:lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.log:intent",
"usage_log_pool": "default.rgw.log:usage",
"reshard_pool": "default.rgw.log:reshard",
"user_keys_pool": "default.rgw.meta:users.keys",
"user_email_pool": "default.rgw.meta:users.email",
"user_swift_pool": "default.rgw.meta:users.swift",
"user_uid_pool": "default.rgw.meta:users.uid",
"realm_id": ""
}

2.4 设置主区域组和主区域

2.4.1 设置主区域组

radosgw-admin zonegroup modify --rgw-realm={realm-name} --rgw-zonegroup={zone-group-name} --endpoints={url} --master --default

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@node-10 ~]# radosgw-admin zonegroup modify --rgw-realm=gz --rgw-zonegroup=bingo --endpoints=http://10.16.205.10:80 --master --default
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true", # master zone group
"endpoints": [
"http://10.16.205.10:80"
],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
"tier_type": "",
"sync_from_all": "true",
"sync_from": []
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

2.4.2 设置主区域

radosgw-admin zone modify --rgw-realm={realm-name} --rgw-zonegroup={zone-group-name} --rgw-zone={zone-name} --endpoints={url} --master --default

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@node-10 ~]# radosgw-admin zone modify --rgw-realm=gz --rgw-zonegroup=bingo --rgw-zone=bingo-A --endpoints=http://10.16.205.10:80 --master --default
{ # 回显内容有删减
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"domain_root": "default.rgw.meta:root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.log:gc",
"lc_pool": "default.rgw.log:lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.log:intent",
"usage_log_pool": "default.rgw.log:usage",
"reshard_pool": "default.rgw.log:reshard",
"user_keys_pool": "default.rgw.meta:users.keys",
"user_email_pool": "default.rgw.meta:users.email",
"user_swift_pool": "default.rgw.meta:users.swift",
"user_uid_pool": "default.rgw.meta:users.uid",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

2.4.3 验证

radosgw-admin zonegroup get [ --rgw-zonegroup={zone-group-name} ]

说明:

  • 在2.4.1节设置主区域组的时候已将bingo设置为default zone group,以后zone group操作如果没有指定名字,则默认是bingo这个zone group。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node-10 ~]# radosgw-admin zonegroup get
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
"tier_type": "",
"sync_from_all": "true",
"sync_from": []
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

2.5 创建系统同步用户

secondary zone必须向master zone获取realm和period用于数据同步,获取前需要进行身份验证,我们需要在master zone上创建一个系统级别用户用于身份验证。

2.5.1 创建前查看

radosgw-admin user info --uid={user-name}:查看用户信息

1
2
[root@node-10 ~]# radosgw-admin user info --uid=sync-user
could not fetch user info: no user info saved # 此用户名不存在,可以创建

2.5.2 创建

radosgw-admin user create --uid="{user-name}" --display-name="{display-name}" --system

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@node-10 ~]# radosgw-admin user create --uid="sync-user" --display-name="Sync User" --system
{ # 回显内容有删减
"user_id": "sync-user",
"display_name": "Sync User",
"email": "",
"suspended": 0,
"max_buckets": 100,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "sync-user",
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"system": "true", # 系统级别用户
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": true,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": 10000000
},
"type": "rgw"
}

2.5.3 验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@node-10 ~]# radosgw-admin user info --uid=sync-user
{ # 回显内容有删减
"user_id": "sync-user",
"display_name": "Sync User",
"email": "",
"suspended": 0,
"max_buckets": 100,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "sync-user",
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"system": "true", # 系统级别用户
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": true,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": 10000000
},
"type": "rgw"
}

2.6 绑定域

将zone和zone group与realm绑定。

2.6.1 绑定前查看

1
2
3
4
5
6
7
[root@node-10 ~]# radosgw-admin realm get
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"epoch": 1
}

2.6.2 绑定realm

radosgw-admin zone modify --rgw-realm={realm-name} --rgw-zonegroup={zone-group-name} --rgw-zone={zone-name} --endpoints={url} --access-key={key} --secret={key} --master --default

说明:access-keysecret为2.5节创建的系统用户。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@node-10 ~]# radosgw-admin zone modify --rgw-realm="gz" --rgw-zonegroup="bingo" --rgw-zone="bingo-A" --endpoints=http://10.16.205.10:80 --access-key=WB55YP5G6WSB36PQLM2Z  --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti --master --default
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"domain_root": "default.rgw.meta:root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.log:gc",
"lc_pool": "default.rgw.log:lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.log:intent",
"usage_log_pool": "default.rgw.log:usage",
"reshard_pool": "default.rgw.log:reshard",
"user_keys_pool": "default.rgw.meta:users.keys",
"user_email_pool": "default.rgw.meta:users.email",
"user_swift_pool": "default.rgw.meta:users.swift",
"user_uid_pool": "default.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"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,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5" # 与gz这个realm绑定了
}

2.6.3 验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node-10 ~]# radosgw-admin zonegroup get
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
"tier_type": "",
"sync_from_all": "true",
"sync_from": []
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

2.7 应用变更

应用变更period,同一个zone group的其它zone会接收新的配置变更。

2.7.1 变更前查看

1
2
3
4
5
6
7
[root@node-10 ~]# radosgw-admin realm get
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"epoch": 1
}

2.7.2 变更

radosgw-admin period update --commit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@node-10 ~]# radosgw-admin period update --commit
{ # 回显内容有删减
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"epoch": 1,
"predecessor_uuid": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"sync_status": [],
"period_map": {
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 2 # epoch从1变为2
}

2.7.3 验证

1
2
3
4
5
6
7
[root@node-10 ~]# radosgw-admin realm get
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "2a11b308-6430-47d2-8059-76894abfb74c",
"epoch": 2 # epoch从1变为2
}

2.8 重启服务

更新master zone主机上的ceph.conf配置文件,添加rgw_zone配置选项。

1
2
[client.radosgw]下添加配置:
rgw_zone=bingo-A

重启radosgw服务

systemctl restart ceph-radosgw@radosgw

1
[root@node-10 ~]# systemctl restart ceph-radosgw@radosgw

2.9 查看同步状态

radosgw-admin sync status :查看同步状态

1
2
3
4
5
[root@node-10 ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
metadata sync no sync (zone is master) # bingo-A为主站点

三、备站点配置

3.1 备站点环境查看

通常情况下,radosgw启动后会自动创建一个名为default的zone group,并且会在该zone group下自动创建一个名为default的zone。可以通过下面命令查看验证。

radosgw-admin zonegroup list :查看所有的zone group

radosgw-admin zone list :查看所有的zone

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ceph-single-cluster ~]# radosgw-admin zonegroup list
{
"default_info": "bd5c6fa4-695f-4017-8bc1-fd2fe5ee045f",
"zonegroups": [
"default"
]
}

[root@ceph-single-cluster ~]# radosgw-admin zone list
{
"default_info": "f01ddceb-92cb-4ffb-850f-099df6aecaab",
"zones": [
"default"
]
}

radosgw启动后会在集群中自动创建一些带有rgw名字的pool,本演示环境中bingo-B为全新集群,里面没存储任何数据。

1
2
3
4
5
[root@ceph-single-cluster ~]# ceph osd pool ls | grep rgw
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log

假设使用新安装的集群进行多站点配置,尚未使用默认zone及其pool来存储数据,那么可以把默认zonepool删除。如果已存在数据将会丢失并不可恢复。

删除默认zone

1
2
3
4
5
6
[root@ceph-single-cluster ~]# radosgw-admin zone delete --rgw-zone=default
[root@ceph-single-cluster ~]# radosgw-admin zone list
{
"default_info": "",
"zones": []
}

删除radosgw自动创建的默认pool(务必确认rgw尚未存数据)

1
2
3
4
5
6
7
8
9
10
[root@ceph-single-cluster ~]# ceph osd pool ls | grep -F default.rgw.
default.rgw.control
default.rgw.meta
default.rgw.log
[root@ceph-single-cluster ~]# rados rmpool default.rgw.control default.rgw.control --yes-i-really-really-mean-it
successfully deleted pool default.rgw.control
[root@ceph-single-cluster ~]# rados rmpool default.rgw.meta default.rgw.meta --yes-i-really-really-mean-it
successfully deleted pool default.rgw.meta
[root@ceph-single-cluster ~]# rados rmpool default.rgw.log default.rgw.log --yes-i-really-really-mean-it
successfully deleted pool default.rgw.log

注意:配置备站点前如果ceph.conf配置文件中有 rgw_admin_entry选项请先删掉此选项。

3.2 从主站点拉取域

radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}

说明:

  • access-keysecret为2.5节创建的系统用户。
1
2
3
4
5
6
7
8
9
[root@ceph-single-cluster ~]# radosgw-admin realm pull --url=http://10.16.205.10:80 --access-key=WB55YP5G6WSB36PQLM2Z  --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti 
2023-09-10 19:04:56.407005 7f1b46286f80 1 error read_lastest_epoch .rgw.root:periods.2a11b308-6430-47d2-8059-76894abfb74c.latest_epoch # 该错误信息可以忽略
2023-09-10 19:04:56.567897 7f1b46286f80 1 Set the period's master zonegroup 89129545-7900-46a3-be71-943a85bba582 as the default
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "2a11b308-6430-47d2-8059-76894abfb74c",
"epoch": 2
}

设置gz为默认realm。

radosgw-admin realm default --rgw-realm={realm-name}

1
2
3
[root@ceph-single-cluster ~]# radosgw-admin realm default --rgw-realm=gz
[root@ceph-single-cluster ~]# radosgw-admin realm get-default
default realm: 31a49490-d7f4-42c6-ad88-15493474a3d5

3.3 从主站点拉取 period

radosgw-admin period pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}

说明:access-keysecret为2.5节创建的系统用户。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[root@ceph-single-cluster ~]# radosgw-admin period  pull --url=http://10.16.205.10:80 --access-key=WB55YP5G6WSB36PQLM2Z  --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti 
2023-09-10 19:07:24.203099 7f084e32ff80 1 found existing latest_epoch 1 >= given epoch 1, returning r=-17
{ # 回显内容有删减
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"epoch": 1,
"predecessor_uuid": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"sync_status": [],
"period_map": {
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 2
}

3.4 创建备区域

1
2
3
4
radosgw-admin zone create --rgw-zonegroup={zone-group-name}\
--rgw-zone={zone-name} --endpoints={url}\
--access-key={system-key} --secret={secret}\
[--read-only]

说明:

  • –read-only:默认所有zone都以active-active模式运行;即客户端可能会将数据写入任何zone,zone会将数据复制到 zone group 中的所有其他 zone。如果 second zone 不接受写操作,请指定 --read-only 标志,以active-passive模式运行。
  • 本次演示环境会将bingo-B zone设置为read-only。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@ceph-single-cluster ~]# radosgw-admin zone create --rgw-zonegroup=bingo --rgw-zone=bingo-B --endpoints=http://10.3.23.136:80 --access-key=WB55YP5G6WSB36PQLM2Z --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti --read-only
2023-09-10 19:10:40.661862 7faea03c2f80 0 failed reading obj info from .rgw.root:zone_info.2dfd246d-bf16-4053-93e4-1f78570f775b: (2) No such file or directory # 该错误信息可以忽略
2023-09-10 19:10:40.661947 7faea03c2f80 0 WARNING: could not read zone params for zone id=2dfd246d-bf16-4053-93e4-1f78570f775b name=bingo-A # 该警告信息可以忽略
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"domain_root": "bingo-B.rgw.meta:root",
"control_pool": "bingo-B.rgw.control",
"gc_pool": "bingo-B.rgw.log:gc",
"lc_pool": "bingo-B.rgw.log:lc",
"log_pool": "bingo-B.rgw.log",
"intent_log_pool": "bingo-B.rgw.log:intent",
"usage_log_pool": "bingo-B.rgw.log:usage",
"reshard_pool": "bingo-B.rgw.log:reshard",
"user_keys_pool": "bingo-B.rgw.meta:users.keys",
"user_email_pool": "bingo-B.rgw.meta:users.email",
"user_swift_pool": "bingo-B.rgw.meta:users.swift",
"user_uid_pool": "bingo-B.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "bingo-B.rgw.buckets.index",
"data_pool": "bingo-B.rgw.buckets.data",
"data_extra_pool": "bingo-B.rgw.buckets.non-ec",
"index_type": 0,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
"tier_type": "",
"sync_from_all": "true",
"sync_from": []
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80" # url为bingo-B的radosgw地址
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "true", # 只读
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

3.5 应用变更

应用变更period,其他zone会接收新的配置。

radosgw-admin period update --commit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@ceph-single-cluster ~]# radosgw-admin period update --commit
2023-09-10 19:13:52.621606 7fb130a12f80 1 Cannot find zone id=3b06b85f-8266-4e44-91ee-e0b334f619c5 (name=bingo-B), switching to local zonegroup configuration # 该信息可忽略
Sending period to new master zone 2dfd246d-bf16-4053-93e4-1f78570f775b
{ # 回显内容有删减
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"epoch": 2,
"predecessor_uuid": "e3f5f0c1-1ede-4ce5-ae07-d48367b4a28b",
"sync_status": [],
"period_map": {
"id": "2a11b308-6430-47d2-8059-76894abfb74c",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "true",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 2
}

3.6 重启服务

更新备站点主机上的ceph.conf配置文件,添加rgw_zone配置选项。

1
2
[client.radosgw]下添加配置:
rgw_zone=bingo-B

重启radosgw服务

systemctl restart ceph-radosgw@radosgw

1
[root@ceph-single-cluster ~]# systemctl restart ceph-radosgw@radosgw

3.7 验证同步

radosgw-admin sync status:查看同步状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync syncing
full sync: 3/64 shards
full sync: 2 entries to sync
incremental sync: 61/64 shards
metadata is behind on 3 shards
behind shards: [28,44,61]
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
syncing
full sync: 16/128 shards
full sync: 16 buckets to sync
incremental sync: 112/128 shards
data is behind on 16 shards
behind shards: [50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65] # 数据同步中
# 数据同步时间与数据量大小有关,可以隔一段时间再查看同步是否完成
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync syncing # bingo-B为备站点
full sync: 0/64 shards
incremental sync: 64/64 shards
metadata is caught up with master
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source # 数据同步完成

查看pool中是否有从bingo-A master zone同步过来的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ceph-single-cluster ~]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
240GiB 239GiB 502MiB 0.20
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
.rgw.root 96 5.20KiB 0 75.8GiB 19
bingo-B.rgw.control 100 0B 0 75.8GiB 8
bingo-B.rgw.meta 101 1.12KiB 0 75.8GiB 7
bingo-B.rgw.log 102 7.87KiB 0 75.8GiB 565
default.rgw.meta 103 0B 0 75.8GiB 0
bingo-B.rgw.buckets.index 104 0B 0 75.8GiB 16
bingo-B.rgw.buckets.data 105 15.3MiB 0.02 75.8GiB 5 # 数据通过过来了

四、故障切换和灾难恢复

4.1 故障切换

模拟bingo-A master zone故障,切换到bingo-B secondary zone

4.1.1 模拟主站点故障

可将bingo-A的radosgw服务停止来模拟发生了故障。

1
[root@node-10 ~]# systemctl stop ceph-radosgw@radosgw

4.1.2 切换到备站点

bingo-B上查看同步状态

1
2
3
4
5
6
7
8
9
10
11
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
2023-09-10 19:19:25.833927 7f02e814ff80 0 meta sync: ERROR: failed to fetch mdlog info
metadata sync syncing # 可以发现同步异常
full sync: 0/64 shards
failed to fetch local sync status: (5) Input/output error
2023-09-10 19:19:25.835667 7f02e814ff80 0 data sync: ERROR: failed to fetch datalog info
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
failed to retrieve sync info: (5) Input/output error

bingo-B secondary zone设置为master和default zone。

radosgw-admin zone modify --rgw-zone={zone-name} --master --default [ --read-only=false ]

说明:

  • 由于bingo-Bzone为read-only,现在设置其为master zone需要将read-only取消,客户端才能写数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@ceph-single-cluster ~]# radosgw-admin zone modify --rgw-zone=bingo-B --master --default --read-only=false
2023-09-10 19:20:21.908757 7f746122ff80 0 NOTICE: overriding master zone: 2dfd246d-bf16-4053-93e4-1f78570f775b
2023-09-10 19:20:21.909132 7f746122ff80 0 failed reading obj info from .rgw.root:zone_info.2dfd246d-bf16-4053-93e4-1f78570f775b: (2) No such file or directory # 该错误信息可以忽略
2023-09-10 19:20:21.909158 7f746122ff80 0 WARNING: could not read zone params for zone id=2dfd246d-bf16-4053-93e4-1f78570f775b name=bingo-A # 该警告信息可以忽略
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"domain_root": "bingo-B.rgw.meta:root",
"control_pool": "bingo-B.rgw.control",
"gc_pool": "bingo-B.rgw.log:gc",
"lc_pool": "bingo-B.rgw.log:lc",
"log_pool": "bingo-B.rgw.log",
"intent_log_pool": "bingo-B.rgw.log:intent",
"usage_log_pool": "bingo-B.rgw.log:usage",
"reshard_pool": "bingo-B.rgw.log:reshard",
"user_keys_pool": "bingo-B.rgw.meta:users.keys",
"user_email_pool": "bingo-B.rgw.meta:users.email",
"user_swift_pool": "bingo-B.rgw.meta:users.swift",
"user_uid_pool": "bingo-B.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "bingo-B.rgw.buckets.index",
"data_pool": "bingo-B.rgw.buckets.data",
"data_extra_pool": "bingo-B.rgw.buckets.non-ec",
"index_type": 0,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

验证bingo-B是否为master zone

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5", # bingo-B为master zone
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false", # 客户端可以写入数据
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

应用变更。

radosgw-admin period update --commit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@ceph-single-cluster ~]# radosgw-admin period update --commit
{ # 回显内容有删减
"id": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"epoch": 1,
"predecessor_uuid": "2a11b308-6430-47d2-8059-76894abfb74c",
"sync_status": [
""
],
"period_map": {
"id": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 3
}

bingo-B上重新启动radosgw服务。

1
[root@ceph-single-cluster ~]# systemctl restart ceph-radosgw@radosgw

查看同步状态

1
2
3
4
5
6
7
8
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync no sync (zone is master) # bingo-B为主站点了
2023-09-10 19:25:56.038789 7fefb3febf80 0 data sync: ERROR: failed to fetch datalog info # bingo-A故障了
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
failed to retrieve sync info: (5) Input/output error

4.2 灾难恢复

假设bingo-A恢复正常了,现在重新将master zone切换到bingo-A

4.2.1 主站点恢复

将之前模拟故障的bingo-A的radosgw服务重新启动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node-10 ~]# systemctl status ceph-radosgw@radosgw
○ ceph-radosgw@radosgw.service - Ceph rados gateway
Loaded: loaded (/usr/lib/systemd/system/ceph-radosgw@.service; enabled; vendor preset: disabled)
Active: inactive (dead) since 2023-09-10 19:27:01 CST; 11min ago
Process: 204125 ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.radosgw --setuser ceph --setgroup ceph (code=exited, status=0/SUCCESS)
Main PID: 204125 (code=exited, status=0/SUCCESS)
[root@node-10 ~]# systemctl start ceph-radosgw@radosgw
[root@node-10 ~]# systemctl status ceph-radosgw@radosgw
● ceph-radosgw@radosgw.service - Ceph rados gateway
Loaded: loaded (/usr/lib/systemd/system/ceph-radosgw@.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-09-10 19:27:08 CST; 30s ago
Main PID: 267097 (radosgw)
Tasks: 593
Memory: 51.9M
CGroup: /system.slice/system-ceph\x2dradosgw.slice/ceph-radosgw@radosgw.service
└─ 267097 /usr/bin/radosgw -f --cluster ceph --name client.radosgw --setuser ceph --setgroup ceph

查看当前bingo-A同步状态

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@node-10 ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
metadata sync syncing # bingo-A现在为备站点
full sync: 0/64 shards
incremental sync: 64/64 shards
metadata is caught up with master
data sync source: 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

bingo-A上拉取realm

radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}

说明:

  • access-keysecret为2.5节创建的系统用户。
1
2
3
4
5
6
7
8
[root@node-10 ~]# radosgw-admin realm pull --url=http://10.3.23.136:80 --access-key=WB55YP5G6WSB36PQLM2Z --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti
2023-09-10 19:31:52.430554 7fe3e6f4e080 1 found existing latest_epoch 1 >= given epoch 1, returning r=-17
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"epoch": 3
}

bingo-A的radosgw上将bingo-A重新设为master和default zone。

radosgw-admin zone modify --rgw-zone={zone-name} --master --default

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@node-10 ~]# radosgw-admin zone modify --rgw-zone=bingo-A --master --default
2023-09-10 19:32:19.697172 7fcb30974080 0 NOTICE: overriding master zone: 3b06b85f-8266-4e44-91ee-e0b334f619c5
2023-09-10 19:32:19.698813 7fcb30974080 0 failed reading obj info from .rgw.root:zone_info.3b06b85f-8266-4e44-91ee-e0b334f619c5: (2) No such file or directory # 该错误信息可忽略
2023-09-10 19:32:19.698831 7fcb30974080 0 WARNING: could not read zone params for zone id=3b06b85f-8266-4e44-91ee-e0b334f619c5 name=bingo-B # 该警告信息可忽略
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"domain_root": "default.rgw.meta:root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.log:gc",
"lc_pool": "default.rgw.log:lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.log:intent",
"usage_log_pool": "default.rgw.log:usage",
"reshard_pool": "default.rgw.log:reshard",
"user_keys_pool": "default.rgw.meta:users.keys",
"user_email_pool": "default.rgw.meta:users.email",
"user_swift_pool": "default.rgw.meta:users.swift",
"user_uid_pool": "default.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"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,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

bingo-A上应用更新。

radosgw-admin period update --commit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
[root@node-10 ~]# radosgw-admin period update --commit
{ # 回显内容有删减
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"epoch": 1,
"predecessor_uuid": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"sync_status": [
""
],
"period_map": {
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b", # bingo-A为master zone
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 4
}

bingo-A上重启服务

1
systemctl restart ceph-radosgw@radosgw

查看bingo-A同步状态

1
2
3
4
5
6
7
8
9
10
11
[root@node-10 ~]# systemctl restart ceph-radosgw@radosgw
[root@node-10 ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
metadata sync no sync (zone is master) # bingo-A变为主站点
data sync source: 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

4.2.2 设置备站点

bingo-B上查看同步状态

1
2
3
4
5
6
7
8
9
10
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync no sync (zone is master) # 可以看到bingo-B现在还是master zone,需要拉取最新的realm
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

bingo-B上拉取realm

radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}

说明:

  • access-keysecret为2.5节创建的系统用户。
1
2
3
4
5
6
7
8
[root@ceph-single-cluster ~]# radosgw-admin realm pull --url=http://10.16.205.10:80 --access-key=WB55YP5G6WSB36PQLM2Z --secret=aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti
2023-09-10 19:41:25.065698 7f21fb0d7f80 1 found existing latest_epoch 1 >= given epoch 1, returning r=-17
{
"id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"name": "gz",
"current_period": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"epoch": 4
}

查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b", # bingo-A为master zone
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false", # bingo-B现在还不是只读
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

我们之前规划中bingo-B为read-only,所以现在需要将bingo-B状态设置为read-only。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@ceph-single-cluster ~]# radosgw-admin zone modify --rgw-zone=bingo-B --read-only
2023-09-10 19:42:50.451069 7f3042436f80 0 failed reading obj info from .rgw.root:zone_info.2dfd246d-bf16-4053-93e4-1f78570f775b: (2) No such file or directory # 该错误信息可忽略
2023-09-10 19:42:50.451088 7f3042436f80 0 WARNING: could not read zone params for zone id=2dfd246d-bf16-4053-93e4-1f78570f775b name=bingo-A # 该警告信息可忽略
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"domain_root": "bingo-B.rgw.meta:root",
"control_pool": "bingo-B.rgw.control",
"gc_pool": "bingo-B.rgw.log:gc",
"lc_pool": "bingo-B.rgw.log:lc",
"log_pool": "bingo-B.rgw.log",
"intent_log_pool": "bingo-B.rgw.log:intent",
"usage_log_pool": "bingo-B.rgw.log:usage",
"reshard_pool": "bingo-B.rgw.log:reshard",
"user_keys_pool": "bingo-B.rgw.meta:users.keys",
"user_email_pool": "bingo-B.rgw.meta:users.email",
"user_swift_pool": "bingo-B.rgw.meta:users.swift",
"user_uid_pool": "bingo-B.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "bingo-B.rgw.buckets.index",
"data_pool": "bingo-B.rgw.buckets.data",
"data_extra_pool": "bingo-B.rgw.buckets.non-ec",
"index_type": 0,
"compression": ""
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

验证bingo-B是否为read-only

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "true", # 只读
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

bingo-B上应用变更

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[root@ceph-single-cluster ~]# radosgw-admin period update --commit
Sending period to new master zone 2dfd246d-bf16-4053-93e4-1f78570f775b
{ # 回显内容有删减
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"epoch": 2,
"predecessor_uuid": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"sync_status": [
""
],
"period_map": {
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "false",
},
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "true",
"bucket_index_max_shards": 0,
"read_only": "true",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 4
}

bingo-B上重启服务

systemctl restart ceph-radosgw@radosgw

1
[root@ceph-single-cluster ~]# systemctl restart ceph-radosgw@radosgw

查看bingo-B同步状态

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync syncing # bingo-B变为备站点
full sync: 0/64 shards
incremental sync: 64/64 shards
metadata is caught up with master
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

五、解除主备站点同步

bingo-A和bingo-B两个zone不需要同步时,解除之间的同步关系。

5.1 主站点移除备站点

5.1.1 移除备站点

移除前查看同步状态

1
2
3
4
5
6
7
8
9
10
[root@node-10 ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
metadata sync no sync (zone is master)
data sync source: 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

移除bingo-B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@node-10 ~]# radosgw-admin zonegroup remove --rgw-zonegroup=bingo --rgw-zone=bingo-B
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

5.1.2 应用变更

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[root@node-10 ~]# radosgw-admin period update --commit
{ # 回显内容有删减
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"epoch": 3,
"predecessor_uuid": "44ae139b-9ebf-47e3-a387-c65bafefdbd5",
"sync_status": [
""
],
"period_map": {
"id": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 4
}

5.1.3 重启服务

systemctl restart ceph-radosgw@radosgw

1
[root@node-10 ~]# systemctl restart ceph-radosgw@radosgw

5.1.4 验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@node-10 ~]# systemctl restart ceph-radosgw@radosgw
[root@node-10 ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A) # bingo-B同步关系已经移除
metadata sync no sync (zone is master)
[root@node-10 ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80"
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"zones": [
{
"id": "2dfd246d-bf16-4053-93e4-1f78570f775b",
"name": "bingo-A",
"endpoints": [
"http://10.16.205.10:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

5.2 备站点移除主站点

5.2.1 移除主站点

移除前查看同步状态

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync syncing # 在主站点移除备站点后,bingo-B没有机会更新同步信息
full sync: 0/64 shards
incremental sync: 64/64 shards
metadata is caught up with master
data sync source: 2dfd246d-bf16-4053-93e4-1f78570f775b (bingo-A)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is caught up with source

移除bingo-A

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@ceph-single-cluster ~]# radosgw-admin zonegroup remove --rgw-zonegroup=bingo --rgw-zone=bingo-A
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.16.205.10:80" # zone group 还指向bingo-A的radosgw地址
],
"master_zone": "2dfd246d-bf16-4053-93e4-1f78570f775b", # master zone还指向bingo-A
"zones": [
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "true", # 只读
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

5.2.2 设置主区域

radosgw-admin zone modify --rgw-zone={zone-name} --master --default [ --read-only=false ]

说明:

  • –read-only:可选,由于bingo-B在规划中是read-only,现在bingo-B变为master zone,客户端需要写数据,要取消read-only状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@ceph-single-cluster ~]# radosgw-admin zone modify --rgw-zone=bingo-B --master --default --read-only=false
2023-09-10 20:03:22.646446 7f2c932a9f80 0 NOTICE: overriding master zone: 2dfd246d-bf16-4053-93e4-1f78570f775b
{ # 回显内容有删减
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"domain_root": "bingo-B.rgw.meta:root",
"control_pool": "bingo-B.rgw.control",
"gc_pool": "bingo-B.rgw.log:gc",
"lc_pool": "bingo-B.rgw.log:lc",
"log_pool": "bingo-B.rgw.log",
"intent_log_pool": "bingo-B.rgw.log:intent",
"usage_log_pool": "bingo-B.rgw.log:usage",
"reshard_pool": "bingo-B.rgw.log:reshard",
"user_keys_pool": "bingo-B.rgw.meta:users.keys",
"user_email_pool": "bingo-B.rgw.meta:users.email",
"user_swift_pool": "bingo-B.rgw.meta:users.swift",
"user_uid_pool": "bingo-B.rgw.meta:users.uid",
"system_key": {
"access_key": "WB55YP5G6WSB36PQLM2Z",
"secret_key": "aXyw6Ck6MV85OZaC3bgwaMYB3pI7Dr4i9ogyBIti"
},
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

更新zone group的url

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@ceph-single-cluster ~]# radosgw-admin zonegroup modify --rgw-realm=gz --rgw-zonegroup=bingo --endpoints=http://10.3.23.136:80 --master --default
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.3.23.136:80"
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"zones": [
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

验证:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.3.23.136:80" # zone group的url已经更新
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5", # bingo-B为master zone
"zones": [
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}

5.2.3 应用变更

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[root@ceph-single-cluster ~]# radosgw-admin period update --commit
{ # 回显内容有删减
"id": "8f69cdf6-13af-476a-9647-6a174ea3bcc9",
"epoch": 1,
"predecessor_uuid": "d45e8a76-c27f-4ecc-b381-7504feafbddb",
"sync_status": [
""
],
"period_map": {
"id": "8f69cdf6-13af-476a-9647-6a174ea3bcc9",
"zonegroups": [
{
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.3.23.136:80"
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"zones": [
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}
],
},
"master_zonegroup": "89129545-7900-46a3-be71-943a85bba582",
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5",
"realm_name": "gz",
"realm_epoch": 5
}

5.2.4 重启服务

重启radosgw服务

systemctl restart ceph-radosgw@radosgw

1
[root@ceph-single-cluster ~]# systemctl restart ceph-radosgw@radosgw

5.2.5 验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@ceph-single-cluster ~]# radosgw-admin sync status
realm 31a49490-d7f4-42c6-ad88-15493474a3d5 (gz)
zonegroup 89129545-7900-46a3-be71-943a85bba582 (bingo)
zone 3b06b85f-8266-4e44-91ee-e0b334f619c5 (bingo-B)
metadata sync no sync (zone is master)

[root@ceph-single-cluster ~]# radosgw-admin zonegroup get
{ # 回显内容有删减
"id": "89129545-7900-46a3-be71-943a85bba582",
"name": "bingo",
"api_name": "default",
"is_master": "true",
"endpoints": [
"http://10.3.23.136:80"
],
"master_zone": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"zones": [
{
"id": "3b06b85f-8266-4e44-91ee-e0b334f619c5",
"name": "bingo-B",
"endpoints": [
"http://10.3.23.136:80"
],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false",
}
],
"realm_id": "31a49490-d7f4-42c6-ad88-15493474a3d5"
}