快捷搜索:  汽车  科技

ceph存储特性(012Ceph多区域网关)

ceph存储特性(012Ceph多区域网关)multi-zone:一个relam中只有一个zonegroup,但是有多个zone。一个realm中存储的数据复制到该zonegroup中的所有zone中single-zone:一个realm中只有一个zonegroup和一个zone,可以有多个RGW区域组(zonegroup):由一个或多个区域组成,包含一个主区域(master zone),其他区域称为Secondary Zone,区域组内的所有区域之间同步数据域(realm): 同一个或多个区域组组成,包含一个主区域组,其他都次区域组。域中的所有rados网关都从位于主区域组和主区域中的rados网关拉取配置注意: master zone group中的master zone处理所元数据更新,因此创建用户、bucket等操作都必须经由master zone

目录

  • 一、基本概念1.1 多区域概念1.2 多区域相关术语1.3 多区域网关配置架构
  • 二、配置2.1 查看2.2 创建realm2.3 创建zonegroup2.4 修改名2.5 删除一个zonegroup2.6 重建一个zonegroup2.7 创建一个zone2.8 为zone创建一个系统账号2.9 修改zone绑定这个用户2.10 查看用户2.11 实施刷盘操作 更新period 2.12 更新配置文件并重启
  • 三、测试3.1 修改为full3.2 客户端测试3.3 服务端
  • 四 、ceph2配置secondary域4.1 拉取realm4.2 拉取period4.3 创建Secondary Zone4.4 更新period4.5 删除relam 4.6 重新拉取
  • 五、迁移Single-Zone至Multi-Zone5.1 查看5.2 ceph5把default的zone添加到一个realm5.3 为default创建一个新的zonegroup5.4 修改default的realm,设置为master5.5 创建一个系统用户5.6 将master-zone与系统用户关联5.7 提交新的配置 5.8 修改配置文件使生效

回到顶部

一、基本概念1.1 多区域概念

Multi-Size功能是从J版本开始的。一个single zone配置通常由一个zone group组成,该zone group包含一个zone和多个用于负载均衡的RGW实例。从K版本开始,ceph为RGW提供了Multi-Size的配置选项

1.2 多区域相关术语

区域(zone): 一个ceph集群可以包含多个区域,一个区域只属于一个集群,一个区域可以有多个RGW

区域组(zonegroup):由一个或多个区域组成,包含一个主区域(master zone),其他区域称为Secondary Zone,区域组内的所有区域之间同步数据

域(realm): 同一个或多个区域组组成,包含一个主区域组,其他都次区域组。域中的所有rados网关都从位于主区域组和主区域中的rados网关拉取配置

注意: master zone group中的master zone处理所元数据更新,因此创建用户、bucket等操作都必须经由master zone

1.3 多区域网关配置架构

single-zone:一个realm中只有一个zonegroup和一个zone,可以有多个RGW

multi-zone:一个relam中只有一个zonegroup,但是有多个zone。一个realm中存储的数据复制到该zonegroup中的所有zone中

multi-zonegroup:一个realm中有多个zonegroup,每个zonegroup中又有一个或多个zone

multi-realms:多个realm

ceph存储特性(012Ceph多区域网关)(1)

两个集群配置两个zone,实现两个zone之间的数据同步:

periods和Epochs:

每个zone有关联的period,每个period有关联的epoch。

period用于跟踪zone、zone group和realm的配置状态

epoch用于跟踪zone period的配置变更的版本号

每个period具有唯一ID,含有zone配置,并且知道其先前period的id

在更改zone的配置时,需要更新zone的当前period

1.4 多区域同步流程

RGW在所有zone group集合之间同步元数据和数据操作。元数据操作与bucket相关:创建、删除、启用和禁用版本控制、管理用户。meta master位于master zone group中的master zone,负责管理元数据更新

多区域配置后处于活跃状态时,RGW会在master和secondary区域之间执行一次初始的完整同步。随后的更新是增量更新

当RGW将数据写入zone group的任意zone时,它会在该zone group的所有其他zone之间同步这一数据

当RGW同步数据时,所有活跃的网关会更新数据日志并通知其他网关

当RGW网关因用户操作而同步元数据时,主网关会更新元数据日志并通知其他RGW网关

两个集群配置两个zone,实现两个zone之间的数据同步:periods和Epochs:每个zone有关联的period,每个period有关联的epoch。period用于跟踪zone、zone group和realm的配置状态epoch用于跟踪zone period的配置变更的版本号每个period具有唯一ID,含有zone配置,并且知道其先前period的id在更改zone的配置时,需要更新zone的

当前period多区域同步流程:RGW在所有zone group集合之间同步元数据和数据操作。元数据操作与bucket相关:创建、删除、启用和禁用版本控制、管理用户。meta master位于master zone group中的master zone,负责管理元数据更新多区域配置后处于活跃状态时,RGW会在master和secondary区域之间执行一次初始的完整同步。随后

的更新是增量更新当RGW将数据写入zone group的任意zone时,它会在该zone group的所有其他zone之间同步这一数据当RGW同步数据时,所有活跃的网关会更新数据日志并通知其他网关当RGW网关因用户操作而同步元数据时,主网关会更新元数据日志并通知其他RGW网关

回到顶部

二、配置2.1 查看

[root@ceph5 ~]# radosgw-admin realm list

ceph存储特性(012Ceph多区域网关)(2)

[root@ceph5 ~]# radosgw-admin zonegroup list

ceph存储特性(012Ceph多区域网关)(3)

[root@ceph5 ~]# radosgw-admin zone list

[root@ceph5 ~]# radosgw-admin zone list --rgw-zonegroup default

ceph存储特性(012Ceph多区域网关)(4)

2.2 创建realm

[root@ceph5 ~]# radosgw-admin realm create --rgw-realm hubei --default

ceph存储特性(012Ceph多区域网关)(5)

2.3 创建zonegroup

[root@ceph5 ~]# radosgw-admin zonegroup create --rgw-realm hubei --rgw-zonegroup fancheng --default --master

ceph存储特性(012Ceph多区域网关)(6)

2.4 修改名

[root@ceph5 ~]# radosgw-admin zonegroup rename --rgw-realm hubei --rgw-zonegroup fancheng --zonegroup-new-name xiangyang

[root@ceph5 ~]# radosgw-admin zonegroup get --rgw-zonegroup xiangyang

ceph存储特性(012Ceph多区域网关)(7)

2.5 删除一个zonegroup

[root@ceph5 ~]# radosgw-admin realm remove --rgw-realm hubei --rgw-zonegroup xiangyang

[root@ceph5 ~]# radosgw-admin zonegroup list

ceph存储特性(012Ceph多区域网关)(8)

[root@ceph5 ~]# radosgw-admin zonegroup delete --rgw-zonegroup xiangyang

[root@ceph5 ~]# radosgw-admin zonegroup list

ceph存储特性(012Ceph多区域网关)(9)

2.6 重建一个zonegroup

[root@ceph5 ~]# radosgw-admin zonegroup create --rgw-realm hubei --rgw-zonegroup xiangyang --default --master

{ "id": "5acbb712-0f7f-4108-8d93-ea75a19e33b3" "name": "xiangyang" "api_name": "xiangyang" "is_master": "true" "endpoints": [] "hostnames": [] "hostnames_s3website": [] "master_zone": "" "zones": [] "placement_targets": [] "default_placement": "" "realm_id": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" }2.7 创建一个zone

[root@ceph5 ~]# radosgw-admin zone create --rgw-zonegroup xiangyang --rgw-zone fancheng --default --endpoints http://ceph5.lab.example.com

{ "id": "b337a562-5921-46fc-aad2-e70e99454e5f" "name": "fancheng" "domain_root": "fancheng.rgw.meta:root" "control_pool": "fancheng.rgw.control" "gc_pool": "fancheng.rgw.log:gc" "lc_pool": "fancheng.rgw.log:lc" "log_pool": "fancheng.rgw.log" "intent_log_pool": "fancheng.rgw.log:intent" "usage_log_pool": "fancheng.rgw.log:usage" "reshard_pool": "fancheng.rgw.log:reshard" "user_keys_pool": "fancheng.rgw.meta:users.keys" "user_email_pool": "fancheng.rgw.meta:users.email" "user_swift_pool": "fancheng.rgw.meta:users.swift" "user_uid_pool": "fancheng.rgw.meta:users.uid" "system_key": { "access_key": "" "secret_key": "" } "placement_pools": [ { "key": "default-placement" "val": { "index_pool": "fancheng.rgw.buckets.index" "data_pool": "fancheng.rgw.buckets.data" "data_extra_pool": "fancheng.rgw.buckets.non-ec" "index_type": 0 "compression": "" } } ] "metadata_heap": "" "tier_config": [] "realm_id": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" }2.8 为zone创建一个系统账号

[root@ceph5 ~]# radosgw-admin user create --uid syncuser --display-name "sync user" --system

{ "user_id": "syncuser" "display_name": "sync user" "email": "" "suspended": 0 "max_buckets": 1000 "auid": 0 "subusers": [] "keys": [ { "user": "syncuser" "access_key": "42Y4FBWY5VDCRLG9GDM8" "secret_key": "BiGRHcqL03RFoFWAbymFZj6xDQAXYFVb60cIzvav" } ] "swift_keys": [] "caps": [] "op_mask": "read write delete" "system": "true" "default_placement": "" "placement_tags": [] "bucket_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } "user_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } "temp_url_keys": [] "type": "rgw" }2.9 修改zone绑定这个用户

[root@ceph5 ~]# radosgw-admin zone modify --rgw-zonegroup xiangyang --rgw-zone fancheng --access 42Y4FBWY5VDCRLG9GDM8 --secret BiGRHcqL03RFoFWAbymFZj6xDQAXYFVb60cIzvav

{ "id": "b337a562-5921-46fc-aad2-e70e99454e5f" "name": "fancheng" "domain_root": "fancheng.rgw.meta:root" "control_pool": "fancheng.rgw.control" "gc_pool": "fancheng.rgw.log:gc" "lc_pool": "fancheng.rgw.log:lc" "log_pool": "fancheng.rgw.log" "intent_log_pool": "fancheng.rgw.log:intent" "usage_log_pool": "fancheng.rgw.log:usage" "reshard_pool": "fancheng.rgw.log:reshard" "user_keys_pool": "fancheng.rgw.meta:users.keys" "user_email_pool": "fancheng.rgw.meta:users.email" "user_swift_pool": "fancheng.rgw.meta:users.swift" "user_uid_pool": "fancheng.rgw.meta:users.uid" "system_key": { "access_key": "" "secret_key": "BiGRHcqL03RFoFWAbymFZj6xDQAXYFVb60cIzvav" } "placement_pools": [ { "key": "default-placement" "val": { "index_pool": "fancheng.rgw.buckets.index" "data_pool": "fancheng.rgw.buckets.data" "data_extra_pool": "fancheng.rgw.buckets.non-ec" "index_type": 0 "compression": "" } } ] "metadata_heap": "" "tier_config": [] "realm_id": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" }

[root@ceph5 ~]# radosgw-admin zonegroup get --rgw-zonegroup xiangyang

{ "id": "5acbb712-0f7f-4108-8d93-ea75a19e33b3" "name": "xiangyang" "api_name": "xiangyang" "is_master": "true" "endpoints": [] "hostnames": [] "hostnames_s3website": [] "master_zone": "b337a562-5921-46fc-aad2-e70e99454e5f" "zones": [ { "id": "b337a562-5921-46fc-aad2-e70e99454e5f" "name": "fancheng" "endpoints": [ "http://ceph5.lab.example.com" ] "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": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" }2.10 查看用户

[root@ceph5 ~]# radosgw-admin user list

ceph存储特性(012Ceph多区域网关)(10)

[root@ceph5 ~]# radosgw-admin user list --rgw-zonegroup default --rgw-zone default

ceph存储特性(012Ceph多区域网关)(11)

2.11 实施刷盘操作 更新period

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

{ "id": "1c6ccdef-ca02-44b5-b212-ba68acbd6aad" "epoch": 1 "predecessor_uuid": "55fafff6-9c4c-4d54-8801-ad48861221a1" "sync_status": [] "period_map": { "id": "1c6ccdef-ca02-44b5-b212-ba68acbd6aad" "zonegroups": [ { "id": "5acbb712-0f7f-4108-8d93-ea75a19e33b3" "name": "xiangyang" "api_name": "xiangyang" "is_master": "true" "endpoints": [] "hostnames": [] "hostnames_s3website": [] "master_zone": "b337a562-5921-46fc-aad2-e70e99454e5f" "zones": [ { "id": "b337a562-5921-46fc-aad2-e70e99454e5f" "name": "fancheng" "endpoints": [ "http://ceph5.lab.example.com" ] "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": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" } ] "short_zone_ids": [ { "key": "b337a562-5921-46fc-aad2-e70e99454e5f" "val": 557238113 } ] } "master_zonegroup": "5acbb712-0f7f-4108-8d93-ea75a19e33b3" "master_zone": "b337a562-5921-46fc-aad2-e70e99454e5f" "period_config": { "bucket_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } "user_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } } "realm_id": "d4668fc2-ceed-4eb2-a5e7-a70c2aa7deba" "realm_name": "hubei" "realm_epoch": 2 }

[root@ceph5 ~]# ceph osd pool ls

ceph存储特性(012Ceph多区域网关)(12)

2.12 更新配置文件并重启

[root@ceph5 ~]# vim /etc/ceph/backup.conf

ceph存储特性(012Ceph多区域网关)(13)

[root@ceph5 ~]# systemctl restart ceph-radosgw@rgw.ceph5

为当前zone创建用户

[root@ceph5 ~]# radosgw-admin user create --uid joy --display-name "Joy Ning" --subuser joy:swift

{ "user_id": "joy" "display_name": "Joy Ning" "email": "" "suspended": 0 "max_buckets": 1000 "auid": 0 "subusers": [ { "id": "joy:swift" "permissions": "<none>" } ] "keys": [ { "user": "joy" "access_key": "4YGLC3480T3Z5ZRY3UHG" "secret_key": "UuHLN9nlTofwez8Nz0RVJ60Vl6v6zGVJtjLP04pB" } ] "swift_keys": [ { "user": "joy:swift" "secret_key": "ofbO1nZ1vqUHQwdNuyUd6zLLYhlbiDxMCILfbJoL" } ] "caps": [] "op_mask": "read write delete" "default_placement": "" "placement_tags": [] "bucket_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } "user_quota": { "enabled": false "check_on_raw": false "max_size": -1 "max_size_kb": 0 "max_objects": -1 } "temp_url_keys": [] "type": "rgw" } [root@ceph5 ~]# radosgw-admin user create --uid joy --display-name "Joy Ning" [root@ceph5 ~]# radosgw-admin subuser create --uid joy --display-name "Joy Ning" --subuser joy:swift

猜您喜欢: