SlideShare a Scribd company logo
Copyright © 2016 Mirantis, Inc. All rights reserved
1
RGW Multisite Overview
[任家英 |朱荣泽]
2016-10-15
Copyright © 2015 Mirantis, Inc. All rights reserved
2
• 背景介绍
• 开发历史
• 核⼼心概念
• 核⼼心机制
• 后续⼯工作
议程
Copyright © 2015 Mirantis, Inc. All rights reserved 3
背景介绍
Copyright © 2016 Mirantis, Inc. All rights reserved
4
跨地理理位置的多数据中⼼心需求
Copyright © 2016 Mirantis, Inc. All rights reserved
5
跨地理理位置的多数据中⼼心需求
• 异地容灾: 地区性的灾害(停电,飓⻛风,电缆被挖断)可能导致整个数据中
⼼心不不可⽤用,geo-replicated 是解决这个问题的唯⼀一⽅方法
• 就近读取: 让数据的副本落到不不同的地理理位置,客户端可以就近访问
Copyright © 2016 Mirantis, Inc. All rights reserved
6
Ceph - ⾯面向单⼀一数据中⼼心的存储系统
• 同步进⾏行行的数据复制策略略
• 强⼀一致性约束
• 这对于单个数据中⼼心以及邻近的数据中⼼心来说是没有问题的。但但对相邻很远的数据中
⼼心来说,延迟就太⾼高了了。
• 在引⼊入 geo-replicated ⽀支持前,Ceph 中的数据冗余操作都是同步进⾏行行的,这就要求⾼高带
宽低延 迟的使⽤用环境。这也就使得 Ceph 在 WAN 层⾯面的数据冗余变得不不现实了了。
Copyright © 2016 Mirantis, Inc. All rights reserved
7
• 基于 RADOS 层的多数据中⼼心 Ceph 集群
• 多个数据中⼼心之间在 RADOS 存储池级别进⾏行行异步同步
• POC,并没有产品化
Ceph 下的多数据中⼼心⽅方案
Copyright © 2016 Mirantis, Inc. All rights reserved
8
• 基于具体客户端层实现多数据中⼼心
• 块存储 rbd-mirror
• 基于 RBD journal
• 提供 point-in-time ⼀一致性
• 对象存储 rgw multisite
• 基于 log 机制
• 提供最终⼀一致性
Ceph 下的多数据中⼼心⽅方案
Copyright © 2015 Mirantis, Inc. All rights reserved 9
开发历史
Copyright © 2016 Mirantis, Inc. All rights reserved
10
• 13 年年 Dumpling 版本实现
• Blueprint
• http://tracker.ceph.com/projects/ceph/wiki/RGW_Geo-
Replication_and_Disaster_Recovery
Multisite v1
引⼊入外部agent做同步。
Copyright © 2016 Mirantis, Inc. All rights reserved
11
• 16 年年 Jewel 版本实现
• Blueprint
• http://tracker.ceph.com/projects/ceph/wiki/Rgw_new_multisite_sync
• http://tracker.ceph.com/projects/ceph/wiki/Rgw_new_multisite_configuration
Multisite v2
第⼀一个 BP 来通过在 radosgw 中实现同步,不不依赖外部的 sync-agent。
第⼆二个 BP 则是精简 multisite 的配置过程。更更简便便的操作。
Copyright © 2016 Mirantis, Inc. All rights reserved
12
• ⽀支持主从/主主模式
• 简化配置过程
• 简化部署,内嵌 radosgw 进程,⽆无需额外组件
Multisite v1 vs v2
Copyright © 2015 Mirantis, Inc. All rights reserved 13
核⼼心概念
Copyright © 2015 Mirantis, Inc. All rights reserved 14
• zone: zone Ceph RGW/MON/OSD
• zonegroup: zonegroup zone zone
• realm: realm realm zonegroup zonegroup
• user: user realm
• bucket: bucket realm zonegroup
Copyright © 2016 Mirantis, Inc. All rights reserved
15
核⼼心概念
• cluster:表示 rados 集群
• zone:由 rados 集群承载,通过⼀一组 radosgw 提供服务
• zonegroup (multisite v1 时的 region)
• 由⼀一组 zone 组成,分 master 和⾮非 master zone
• 每个 zg 中都有 master zone,master zone 中的元数据(存储桶和⽤用户)会被同步 zg 中⾮非 master zone 去
• 多个 zg 中需要选择单个 master zg,master zg 负责系统配置的变更更
• zonegroup-map: ⽤用于保存 zone 和 zg 之间的关系,以及若⼲干配置项。⾥里里⾯面有两个核⼼心概念:
• realm:
• 主要是为了了在同⼀一组集群上运⾏行行多套 realm,也就是多套配置。
• ⾄至少要有⼀一个 zg(因为必须有⼀一个 master zg)
• period
• 拥有唯⼀一的 id 和 epoch
• 保持当前 realm 的状态
• 每个 realm 都有关联的当前的 period 以及⼀一组按照时间顺序排列列的 period 列列表,还有 zg 的当前
配置
Copyright © 2016 Mirantis, Inc. All rights reserved
16
举个例例⼦子
Copyright © 2015 Mirantis, Inc. All rights reserved 17
核⼼心机制
Copyright © 2015 Mirantis, Inc. All rights reserved 18
Copyright © 2016 Mirantis, Inc. All rights reserved
19
核⼼心机制
• 同步处理理
• 同步状态
• 同步⾼高可⽤用
• 故障处理理
• 错误处理理
Copyright © 2016 Mirantis, Inc. All rights reserved
20
核⼼心机制 - 同步处理理
• 集群配置同步 (realm sync)
• 元数据同步 (meta sync)
• 数据同步 (data sync)
Copyright © 2016 Mirantis, Inc. All rights reserved
21
核⼼心机制 - 同步处理理
• 集群配置同步 (realm sync)
• radosgw-admin period update
• radosgw-admin period commit
• radosgw-admin period pull
• 变更更机制类似 git,编辑后的 period 更更新处于 stagging 状态并不不⽣生效 (radosgw-admin period update),如果需要
period ⽣生效的话需要使⽤用 radosgw-admin period commit
• ⾸首次使⽤用时⾮非 master zone 通过 radosgw-admin period pull 来⼿手动获取 period 更更新
• RGWPeriodPusher 实现了了 RGWRealmWatcher 接⼝口以便便在有新 period 出现时得到通知。它在得到通知之后
会启动线程发送新的 period 到所有 zone,直到所有的 zone 都确认收到新的 period。
• 也就是说 period,realm 的更更新是主动推送的。
Copyright © 2016 Mirantis, Inc. All rights reserved
22
核⼼心机制 - 同步处理理
• 元数据同步 (meta sync)
• master zone 上 radosgw-admin mdlog status
• target zone 上 radosgw-admin metadata sync status
• 不不同于集群配置同步,元数据和数据的同步执⾏行行全量量同步和增量量同步。在⾸首次同步时应对对全是全
新的,所以会进⾏行行全量量同步,之后再进⾏行行增量量的同步。全量量和增量量同步的区别在于下⼀一次更更新到底
是从头开始还是接着上⼀一次同步完成的 marker 位置继续。(到底是按照全量量还是增量量同步,在
multisite v1 版本中是可以⼿手动指定的,默认使⽤用增量量。multisite v2 的话这个过程被⾃自动化了了)
• 所有的 meta 更更新都发⽣生在 master zone 上,⾮非 master zone 上收到的 meta 更更新操作将被 forward
到 master zone,master zone 更更新之后再主动将更更新 push 到所有的 zone 去,⾮非 master zone 拉
取 meta 更更新并保存在本地。
• 除了了 master zone 主动的推送,所有 zone 还会周期性的检查 meta 更更新。
• 同步的过程就是通过 RGW Admin API 来获取 metadata log,并更更新对应的 marker。
Copyright © 2016 Mirantis, Inc. All rights reserved
23
核⼼心机制 - 同步处理理
• 数据同步 (data sync)
• master zone 上 radosgw-admin bilog status —
bucket={bucket} —rgw-realm={realm}
• target zone 上 radosgw-admin bucket sync status —
bucket={bucket} —source-zone={source-zone} —rgw-
realm={realm}
• 同步的过程就是通过 RGW Admin API 来获取 bilog,并更更新对应的 marker。
• 对于 data sync 的检查使⽤用 bilog:
Copyright © 2016 Mirantis, Inc. All rights reserved
24
核⼼心机制 - 同步状态
• 同步状态概览
• ⽤用户级别同步状态
• 存储桶级别同步状态
• 对象级别同步状态
Copyright © 2016 Mirantis, Inc. All rights reserved
25
核⼼心机制 - 同步状态
• 同步状态概览
• radosgw-admin sync status
Copyright © 2016 Mirantis, Inc. All rights reserved
26
核⼼心机制 - 同步状态
• ⽤用户级别同步状态
• radosgw-admin mdlog list 中 section 为 user
Copyright © 2016 Mirantis, Inc. All rights reserved
27
核⼼心机制 - 同步状态
• 存储桶级别同步状态
• radosgw-admin mdlog list 中 section 为 bucket
Copyright © 2016 Mirantis, Inc. All rights reserved
28
核⼼心机制 - 同步状态
• 对象级别同步状态
• 已经同步的最后⼀一条 op_id 在 marker 字段 : radosgw-
admin bilog status —bucket={bucket}
• 特定存储桶的完全 op_id 列列表 : radosgw-admin bilog list
—bucket={bucket}
Copyright © 2016 Mirantis, Inc. All rights reserved
29
核⼼心机制 - 同步⾼高可⽤用
• 单个 zone ⽀支持配置多个 endpoints
• radosgw-admin zone create —rgw-
zonegroup={zonegroup} —rgw-zone={zone} —
endpoints={url-to-master-zone-gateway}
• 执⾏行行同步时轮转选择
• 拉取 period 时显式指定
• radosgw-admin period pull --url={url-to-master-zone-
gateway} --access-key={access-key} --secret={secret}
Copyright © 2016 Mirantis, Inc. All rights reserved
30
核⼼心机制 - 故障处理理
• 故障转移
• 故障恢复
Copyright © 2016 Mirantis, Inc. All rights reserved
31
核⼼心机制 - 故障处理理
• 故障转移(failover)
• radosgw-admin zone modify --rgw-zone={zone-name} --
master --default
• radosgw-admin period update --commit
所有的 meta 更更新都发⽣生在 master zone 上,如果说 meta zone 宕掉,则⽆无法进⾏行行
meta 更更新。failover 的过程就是⼿手动切换 master zone 的过程
Copyright © 2016 Mirantis, Inc. All rights reserved
32
核⼼心机制 - 故障处理理
• 故障恢复(failback)
• radosgw-admin period pull --url={url-to-master-zone-
gateway} --access-key={access-key} -secret={secret}
• radosgw-admin zone modify --rgw-zone={zone-name} --
master --default
• radosgw-admin period update --commit
failback 就更更简单了了,在宕机的 master zone 恢复之后,先在其上拉取 period 配置,并
重新设置其为 master zone 可以。
Copyright © 2016 Mirantis, Inc. All rights reserved
33
核⼼心机制 - 错误处理理
• 错误重试
• 错误报告
Copyright © 2016 Mirantis, Inc. All rights reserved
34
核⼼心机制 - 错误处理理
• 错误报告
• radosgw-admin sync error list —shard-id={shard-id}
Copyright © 2015 Mirantis, Inc. All rights reserved 35
后续⼯工作
Copyright © 2016 Mirantis, Inc. All rights reserved
36
后续⼯工作
• partial mesh
• sync module plugin
对 RGW 的同步功能进⾏行行扩展,提供⼀一套插件系统,以对 zg 中的所有数据进⾏行行导出。
sync plugin 的使⽤用需要我们在 zg 中定义⼀一个新的 zone(我们叫 plugin-sync zone),plugin-sync zone 将使⽤用特定的
[meta]data 插件来替换掉之前进⾏行行 [meta]data 同步功能。
通过 sync-plugin 可以⽀支持下列列功能:
metadata indexing(通过 Elasticsearch)
code storage
dump data to a remote cloud
tape backups
Copyright © 2015 Mirantis, Inc. All rights reserved 37
Q&A
Copyright © 2015 Mirantis, Inc. All rights reserved
38
谢谢⼤大家 ;-)

More Related Content

PDF
Divein ceph objectstorage-cephchinacommunity-meetup
PPTX
應用Ceph技術打造軟體定義儲存新局
PDF
阿里CDN技术揭秘
PDF
阿里云CDN技术演进之路
PDF
淘宝软件基础设施构建实践
PDF
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
PDF
Hacking Nginx at Taobao
PDF
Ceph中国社区9.19 Some Ceph Story-朱荣泽03
Divein ceph objectstorage-cephchinacommunity-meetup
應用Ceph技術打造軟體定義儲存新局
阿里CDN技术揭秘
阿里云CDN技术演进之路
淘宝软件基础设施构建实践
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Hacking Nginx at Taobao
Ceph中国社区9.19 Some Ceph Story-朱荣泽03

What's hot (20)

PDF
Traffic server 管理员指南v1.0
PDF
Nginx深度開發與客制化
PDF
美团点评技术沙龙010-Redis Cluster运维实践
PPTX
云梯的多Namenode和跨机房之路
PDF
淘宝图片存储与Cdn系统
PDF
How to plan a hadoop cluster for testing and production environment
PDF
美团点评技术沙龙14:美团云对象存储系统
PDF
OpenStack Introduction Ecosystem
PDF
美团技术沙龙04 - Kv Tair best practise
PDF
2016-07-12 Introduction to Big Data Platform Security
PDF
Hadoop大数据实践经验
PDF
Hybrid Cloud Based on Ceph Object Storage - ShanChun
PDF
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
PDF
美团点评技术沙龙010-点评RDS系统介绍
PDF
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
PPTX
Memcached vs redis
PDF
Taobao图片存储与cdn系统到服务
PDF
Ceph intro
PPTX
“云存储系统”赏析系列分享三:Sql与nosql
PDF
Ceph perf-tunning
Traffic server 管理员指南v1.0
Nginx深度開發與客制化
美团点评技术沙龙010-Redis Cluster运维实践
云梯的多Namenode和跨机房之路
淘宝图片存储与Cdn系统
How to plan a hadoop cluster for testing and production environment
美团点评技术沙龙14:美团云对象存储系统
OpenStack Introduction Ecosystem
美团技术沙龙04 - Kv Tair best practise
2016-07-12 Introduction to Big Data Platform Security
Hadoop大数据实践经验
Hybrid Cloud Based on Ceph Object Storage - ShanChun
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
美团点评技术沙龙010-点评RDS系统介绍
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Memcached vs redis
Taobao图片存储与cdn系统到服务
Ceph intro
“云存储系统”赏析系列分享三:Sql与nosql
Ceph perf-tunning
Ad

Viewers also liked (20)

PDF
Ceph at Spreadshirt (June 2016)
PDF
Ceph中国社区9.19 Ceph IO 路径 和性能分析-王豪迈05
PDF
Intorduce to Ceph
PDF
Ceph Object Storage at Spreadshirt (July 2015, Ceph Berlin Meetup)
PDF
CephFS update February 2016
PPTX
My SQL on Ceph
PDF
Red Hat Storage for Mere Mortals
PPTX
Ceph Performance and Sizing Guide
PPTX
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
PDF
Disaster Recovery and Ceph Block Storage: Introducing Multi-Site Mirroring
PDF
Ceph Block Devices: A Deep Dive
PDF
Red Hat Gluster Storage Performance
PDF
Storage tiering and erasure coding in Ceph (SCaLE13x)
PPTX
Ceph Introduction 2017
PPTX
Hadoop over rgw
DOC
Leigh lillis Medical TW resume 8 2016
PDF
Drgorad sm project
PDF
The Social Challenge of 1.5°C Webinar: Melissa Leach and Susanne Moser
PPTX
めとべや東京#7セッション資料(公開用)
DOCX
More sharing services partager
Ceph at Spreadshirt (June 2016)
Ceph中国社区9.19 Ceph IO 路径 和性能分析-王豪迈05
Intorduce to Ceph
Ceph Object Storage at Spreadshirt (July 2015, Ceph Berlin Meetup)
CephFS update February 2016
My SQL on Ceph
Red Hat Storage for Mere Mortals
Ceph Performance and Sizing Guide
Ceph at Work in Bloomberg: Object Store, RBD and OpenStack
Disaster Recovery and Ceph Block Storage: Introducing Multi-Site Mirroring
Ceph Block Devices: A Deep Dive
Red Hat Gluster Storage Performance
Storage tiering and erasure coding in Ceph (SCaLE13x)
Ceph Introduction 2017
Hadoop over rgw
Leigh lillis Medical TW resume 8 2016
Drgorad sm project
The Social Challenge of 1.5°C Webinar: Melissa Leach and Susanne Moser
めとべや東京#7セッション資料(公開用)
More sharing services partager
Ad

Similar to Rgw multisite-overview v2 (20)

PDF
MongoDB at Qihoo 360
PPT
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
PDF
主库自动切换 V2.0
PDF
MySQL自动切换设计与实现
PDF
淘宝主备数据库自动切换
PDF
新时代的分析型云数据库 Greenplum
PPTX
Nosql三步曲
PDF
ElasticSearch Training#2 (advanced concepts)-ESCC#1
PDF
云网锦绣 SDN实战研讨会
PDF
吴岷 视频Cdn分发、调度与服务的探讨
PPTX
Track2 -刘继伟--openstack in gamewave
PDF
稳定、高效、低碳 -淘宝软件基础设施构建实践
PDF
开源+自主开发 - 淘宝软件基础设施构建实践
PDF
Kvmopt osforce
PDF
Apache trafficserver
PDF
大資料趨勢介紹與相關使用技術
PDF
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
PDF
Bypat博客出品-服务器运维集群方法总结2
PDF
Bypat博客出品-服务器运维集群方法总结3
PDF
微博平台混合云实践 - Docker全架构
MongoDB at Qihoo 360
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
主库自动切换 V2.0
MySQL自动切换设计与实现
淘宝主备数据库自动切换
新时代的分析型云数据库 Greenplum
Nosql三步曲
ElasticSearch Training#2 (advanced concepts)-ESCC#1
云网锦绣 SDN实战研讨会
吴岷 视频Cdn分发、调度与服务的探讨
Track2 -刘继伟--openstack in gamewave
稳定、高效、低碳 -淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
Kvmopt osforce
Apache trafficserver
大資料趨勢介紹與相關使用技術
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结3
微博平台混合云实践 - Docker全架构

Rgw multisite-overview v2

  • 1. Copyright © 2016 Mirantis, Inc. All rights reserved 1 RGW Multisite Overview [任家英 |朱荣泽] 2016-10-15
  • 2. Copyright © 2015 Mirantis, Inc. All rights reserved 2 • 背景介绍 • 开发历史 • 核⼼心概念 • 核⼼心机制 • 后续⼯工作 议程
  • 3. Copyright © 2015 Mirantis, Inc. All rights reserved 3 背景介绍
  • 4. Copyright © 2016 Mirantis, Inc. All rights reserved 4 跨地理理位置的多数据中⼼心需求
  • 5. Copyright © 2016 Mirantis, Inc. All rights reserved 5 跨地理理位置的多数据中⼼心需求 • 异地容灾: 地区性的灾害(停电,飓⻛风,电缆被挖断)可能导致整个数据中 ⼼心不不可⽤用,geo-replicated 是解决这个问题的唯⼀一⽅方法 • 就近读取: 让数据的副本落到不不同的地理理位置,客户端可以就近访问
  • 6. Copyright © 2016 Mirantis, Inc. All rights reserved 6 Ceph - ⾯面向单⼀一数据中⼼心的存储系统 • 同步进⾏行行的数据复制策略略 • 强⼀一致性约束 • 这对于单个数据中⼼心以及邻近的数据中⼼心来说是没有问题的。但但对相邻很远的数据中 ⼼心来说,延迟就太⾼高了了。 • 在引⼊入 geo-replicated ⽀支持前,Ceph 中的数据冗余操作都是同步进⾏行行的,这就要求⾼高带 宽低延 迟的使⽤用环境。这也就使得 Ceph 在 WAN 层⾯面的数据冗余变得不不现实了了。
  • 7. Copyright © 2016 Mirantis, Inc. All rights reserved 7 • 基于 RADOS 层的多数据中⼼心 Ceph 集群 • 多个数据中⼼心之间在 RADOS 存储池级别进⾏行行异步同步 • POC,并没有产品化 Ceph 下的多数据中⼼心⽅方案
  • 8. Copyright © 2016 Mirantis, Inc. All rights reserved 8 • 基于具体客户端层实现多数据中⼼心 • 块存储 rbd-mirror • 基于 RBD journal • 提供 point-in-time ⼀一致性 • 对象存储 rgw multisite • 基于 log 机制 • 提供最终⼀一致性 Ceph 下的多数据中⼼心⽅方案
  • 9. Copyright © 2015 Mirantis, Inc. All rights reserved 9 开发历史
  • 10. Copyright © 2016 Mirantis, Inc. All rights reserved 10 • 13 年年 Dumpling 版本实现 • Blueprint • http://tracker.ceph.com/projects/ceph/wiki/RGW_Geo- Replication_and_Disaster_Recovery Multisite v1 引⼊入外部agent做同步。
  • 11. Copyright © 2016 Mirantis, Inc. All rights reserved 11 • 16 年年 Jewel 版本实现 • Blueprint • http://tracker.ceph.com/projects/ceph/wiki/Rgw_new_multisite_sync • http://tracker.ceph.com/projects/ceph/wiki/Rgw_new_multisite_configuration Multisite v2 第⼀一个 BP 来通过在 radosgw 中实现同步,不不依赖外部的 sync-agent。 第⼆二个 BP 则是精简 multisite 的配置过程。更更简便便的操作。
  • 12. Copyright © 2016 Mirantis, Inc. All rights reserved 12 • ⽀支持主从/主主模式 • 简化配置过程 • 简化部署,内嵌 radosgw 进程,⽆无需额外组件 Multisite v1 vs v2
  • 13. Copyright © 2015 Mirantis, Inc. All rights reserved 13 核⼼心概念
  • 14. Copyright © 2015 Mirantis, Inc. All rights reserved 14 • zone: zone Ceph RGW/MON/OSD • zonegroup: zonegroup zone zone • realm: realm realm zonegroup zonegroup • user: user realm • bucket: bucket realm zonegroup
  • 15. Copyright © 2016 Mirantis, Inc. All rights reserved 15 核⼼心概念 • cluster:表示 rados 集群 • zone:由 rados 集群承载,通过⼀一组 radosgw 提供服务 • zonegroup (multisite v1 时的 region) • 由⼀一组 zone 组成,分 master 和⾮非 master zone • 每个 zg 中都有 master zone,master zone 中的元数据(存储桶和⽤用户)会被同步 zg 中⾮非 master zone 去 • 多个 zg 中需要选择单个 master zg,master zg 负责系统配置的变更更 • zonegroup-map: ⽤用于保存 zone 和 zg 之间的关系,以及若⼲干配置项。⾥里里⾯面有两个核⼼心概念: • realm: • 主要是为了了在同⼀一组集群上运⾏行行多套 realm,也就是多套配置。 • ⾄至少要有⼀一个 zg(因为必须有⼀一个 master zg) • period • 拥有唯⼀一的 id 和 epoch • 保持当前 realm 的状态 • 每个 realm 都有关联的当前的 period 以及⼀一组按照时间顺序排列列的 period 列列表,还有 zg 的当前 配置
  • 16. Copyright © 2016 Mirantis, Inc. All rights reserved 16 举个例例⼦子
  • 17. Copyright © 2015 Mirantis, Inc. All rights reserved 17 核⼼心机制
  • 18. Copyright © 2015 Mirantis, Inc. All rights reserved 18
  • 19. Copyright © 2016 Mirantis, Inc. All rights reserved 19 核⼼心机制 • 同步处理理 • 同步状态 • 同步⾼高可⽤用 • 故障处理理 • 错误处理理
  • 20. Copyright © 2016 Mirantis, Inc. All rights reserved 20 核⼼心机制 - 同步处理理 • 集群配置同步 (realm sync) • 元数据同步 (meta sync) • 数据同步 (data sync)
  • 21. Copyright © 2016 Mirantis, Inc. All rights reserved 21 核⼼心机制 - 同步处理理 • 集群配置同步 (realm sync) • radosgw-admin period update • radosgw-admin period commit • radosgw-admin period pull • 变更更机制类似 git,编辑后的 period 更更新处于 stagging 状态并不不⽣生效 (radosgw-admin period update),如果需要 period ⽣生效的话需要使⽤用 radosgw-admin period commit • ⾸首次使⽤用时⾮非 master zone 通过 radosgw-admin period pull 来⼿手动获取 period 更更新 • RGWPeriodPusher 实现了了 RGWRealmWatcher 接⼝口以便便在有新 period 出现时得到通知。它在得到通知之后 会启动线程发送新的 period 到所有 zone,直到所有的 zone 都确认收到新的 period。 • 也就是说 period,realm 的更更新是主动推送的。
  • 22. Copyright © 2016 Mirantis, Inc. All rights reserved 22 核⼼心机制 - 同步处理理 • 元数据同步 (meta sync) • master zone 上 radosgw-admin mdlog status • target zone 上 radosgw-admin metadata sync status • 不不同于集群配置同步,元数据和数据的同步执⾏行行全量量同步和增量量同步。在⾸首次同步时应对对全是全 新的,所以会进⾏行行全量量同步,之后再进⾏行行增量量的同步。全量量和增量量同步的区别在于下⼀一次更更新到底 是从头开始还是接着上⼀一次同步完成的 marker 位置继续。(到底是按照全量量还是增量量同步,在 multisite v1 版本中是可以⼿手动指定的,默认使⽤用增量量。multisite v2 的话这个过程被⾃自动化了了) • 所有的 meta 更更新都发⽣生在 master zone 上,⾮非 master zone 上收到的 meta 更更新操作将被 forward 到 master zone,master zone 更更新之后再主动将更更新 push 到所有的 zone 去,⾮非 master zone 拉 取 meta 更更新并保存在本地。 • 除了了 master zone 主动的推送,所有 zone 还会周期性的检查 meta 更更新。 • 同步的过程就是通过 RGW Admin API 来获取 metadata log,并更更新对应的 marker。
  • 23. Copyright © 2016 Mirantis, Inc. All rights reserved 23 核⼼心机制 - 同步处理理 • 数据同步 (data sync) • master zone 上 radosgw-admin bilog status — bucket={bucket} —rgw-realm={realm} • target zone 上 radosgw-admin bucket sync status — bucket={bucket} —source-zone={source-zone} —rgw- realm={realm} • 同步的过程就是通过 RGW Admin API 来获取 bilog,并更更新对应的 marker。 • 对于 data sync 的检查使⽤用 bilog:
  • 24. Copyright © 2016 Mirantis, Inc. All rights reserved 24 核⼼心机制 - 同步状态 • 同步状态概览 • ⽤用户级别同步状态 • 存储桶级别同步状态 • 对象级别同步状态
  • 25. Copyright © 2016 Mirantis, Inc. All rights reserved 25 核⼼心机制 - 同步状态 • 同步状态概览 • radosgw-admin sync status
  • 26. Copyright © 2016 Mirantis, Inc. All rights reserved 26 核⼼心机制 - 同步状态 • ⽤用户级别同步状态 • radosgw-admin mdlog list 中 section 为 user
  • 27. Copyright © 2016 Mirantis, Inc. All rights reserved 27 核⼼心机制 - 同步状态 • 存储桶级别同步状态 • radosgw-admin mdlog list 中 section 为 bucket
  • 28. Copyright © 2016 Mirantis, Inc. All rights reserved 28 核⼼心机制 - 同步状态 • 对象级别同步状态 • 已经同步的最后⼀一条 op_id 在 marker 字段 : radosgw- admin bilog status —bucket={bucket} • 特定存储桶的完全 op_id 列列表 : radosgw-admin bilog list —bucket={bucket}
  • 29. Copyright © 2016 Mirantis, Inc. All rights reserved 29 核⼼心机制 - 同步⾼高可⽤用 • 单个 zone ⽀支持配置多个 endpoints • radosgw-admin zone create —rgw- zonegroup={zonegroup} —rgw-zone={zone} — endpoints={url-to-master-zone-gateway} • 执⾏行行同步时轮转选择 • 拉取 period 时显式指定 • radosgw-admin period pull --url={url-to-master-zone- gateway} --access-key={access-key} --secret={secret}
  • 30. Copyright © 2016 Mirantis, Inc. All rights reserved 30 核⼼心机制 - 故障处理理 • 故障转移 • 故障恢复
  • 31. Copyright © 2016 Mirantis, Inc. All rights reserved 31 核⼼心机制 - 故障处理理 • 故障转移(failover) • radosgw-admin zone modify --rgw-zone={zone-name} -- master --default • radosgw-admin period update --commit 所有的 meta 更更新都发⽣生在 master zone 上,如果说 meta zone 宕掉,则⽆无法进⾏行行 meta 更更新。failover 的过程就是⼿手动切换 master zone 的过程
  • 32. Copyright © 2016 Mirantis, Inc. All rights reserved 32 核⼼心机制 - 故障处理理 • 故障恢复(failback) • radosgw-admin period pull --url={url-to-master-zone- gateway} --access-key={access-key} -secret={secret} • radosgw-admin zone modify --rgw-zone={zone-name} -- master --default • radosgw-admin period update --commit failback 就更更简单了了,在宕机的 master zone 恢复之后,先在其上拉取 period 配置,并 重新设置其为 master zone 可以。
  • 33. Copyright © 2016 Mirantis, Inc. All rights reserved 33 核⼼心机制 - 错误处理理 • 错误重试 • 错误报告
  • 34. Copyright © 2016 Mirantis, Inc. All rights reserved 34 核⼼心机制 - 错误处理理 • 错误报告 • radosgw-admin sync error list —shard-id={shard-id}
  • 35. Copyright © 2015 Mirantis, Inc. All rights reserved 35 后续⼯工作
  • 36. Copyright © 2016 Mirantis, Inc. All rights reserved 36 后续⼯工作 • partial mesh • sync module plugin 对 RGW 的同步功能进⾏行行扩展,提供⼀一套插件系统,以对 zg 中的所有数据进⾏行行导出。 sync plugin 的使⽤用需要我们在 zg 中定义⼀一个新的 zone(我们叫 plugin-sync zone),plugin-sync zone 将使⽤用特定的 [meta]data 插件来替换掉之前进⾏行行 [meta]data 同步功能。 通过 sync-plugin 可以⽀支持下列列功能: metadata indexing(通过 Elasticsearch) code storage dump data to a remote cloud tape backups
  • 37. Copyright © 2015 Mirantis, Inc. All rights reserved 37 Q&A
  • 38. Copyright © 2015 Mirantis, Inc. All rights reserved 38 谢谢⼤大家 ;-)