Ocean base 破解数据库高可用难题

755 views

Published on

分布式选举破解跨机房部署数据库高可用难题

Published in: Software
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
755
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 开场白:
    串场
    个人介绍
  • 分层:互联网服务的可用性要求<数据库的可用性要求
    提问:哪种故障最频繁?
  • Availability vs reliability
    统计周期很重要
    故障频率-》可靠性
    提问:哪种统计周期的要求更高?
  • 冗余
  • Oracle Exadata
    纠错码,RAID等
  • No SPOF
    镜像数据量大
    距离限制,通常部署在一个IDC中
  • 实现冗余的手段是复制,复制的问题是如何保证一致性;进而在保证一致性的情况下提供最大可用性。
    日志以事务为单位
    Group commit
    光纤100km/ms rtt
  • 贵!主机宕机可用性,备机宕机,网络隔离情况下写不可用
  • 需要多各个模块进行说明
    通过云计算技术实现容错和故障恢复
  • 银行转账的例子
  • 分布式投票
  • 调侃Lampson
    Barbala Liskov
  • 1. 十二届全国人大一次会议举行第四次全体会议代表在投票
    2. 阿富汗总统选举
  • 程序有bug,就可能说假话,导致协议失败
    什么时候记不住自己一个lease周期内的投票?
  • 后面有反例说明,如果不遵守“一轮lease后才可再次投票”的规则,可能出现双主
    时序逻辑与选举逻辑紧密耦合:因为没有“协调者”,谁先发起选举谁就有可能被选为主
  • T1时刻:预投票,即每个成员广播自己的“投票权重”
    T2(>T1)时刻:投票,即每个成员向收到的“投票权重”最大者投票
    T3(>T2)时刻:计票&广播,即统计选票,得票过半者当选新任leader并向所有成员广播
    T4(>T3)时刻:选举结束(成员接收到新任leader广播)
    如何确定T1?且听下文分解
    从T1到T2:网络传输延迟、时钟误差
  • Tst=200ms=>rt=400ms
    杭州到美国RT:正常150ms,绕行香港时185ms (如中美直通专线异常会绕行中-港-美,需要增加35ms左右)。再极端点拥塞的话,那延迟会到250ms甚至丢包。
    leader自己不使用最后一个Telect2
    为什么不能在选举失败T4后立刻再选举?为什么Tcycle>Tlease?
  • 为什么不能在选举失败T4后立刻再选举?为什么Tcycle>Tlease?
  • Leader监控到自身与多数选举者时钟错位,则终止自身的leader角色
    到目前为止我们分析了Paxos投票协议,接下来看OceanBase多机群使用Paxos投票协议
  • Ocean base 破解数据库高可用难题

    1. 1. 志 (解 )孙 东 伦 xielun.szd@alipay.com 杭州 2014-6-15 破解数据 高可用库 难题
    2. 2. AgendaAgenda 数据 的高可用性传统 库 OceanBase 的高可用架构 OceanBase 的分布式选举 小结
    3. 3. 高可用的数据 系库 统高可用的数据 系库 统 数据可用性:保 数据可证 访问 数据安全性:防止数据 失丢 故障不可避免  件:软 Bug 硬件:阿里数据中心 年数万次每 天 :致命的灾 人 : 操作为 误 猜 :按概率排序竞 题
    4. 4. 几个“几个“九九”的认识”的认识
    5. 5. 可用性的 价业务 值可用性的 价业务 值 5 个 9 可用性 5.25 分 意味着什 ?钟 么 = 580,000,000 = 17 万条内裤 = 伤百万用 的心户
    6. 6. 数据 的高可用传统 库数据 的高可用传统 库  机的高可用单 高可用的硬件  件 冗余组 级 无法避免 点故障?单 集群的高可用 高端的存 区域网(储 SAN )  机房部署,无法避免的“天 ”?单 灾 主 制的高可用备复 可以跨机房
    7. 7. 高可用的 机单高可用的 机单 双路冗余 交 源热 换电 双路市 独立供电 电 双路冗余光 交互 有网纤 专 络 HostHost HostHost SwitchSwitch SwitchSwitch DataBaseDataBase
    8. 8. 集群的高可用集群的高可用 InfiniBand: 40Gbit/s Latency: 1us v.s. Ethernet: 250 us InfiniBand: 40Gbit/s Latency: 1us v.s. Ethernet: 250 us DataBase Instance DataBase Instance OSOS Node 1Node 1 DataBase Instance DataBase Instance OSOS Node 2Node 2 DataBase Instance DataBase Instance OSOS Node 3Node 3 DataBase FilesDataBase Files Shared StorageShared Storage 高端存储 高档服务器
    9. 9. 主 的高可用备主 的高可用备 主 制备复 主机提供 写, 机提供 服读 备 读 务 主机宕机,把 机切 主机备 换为 一主 N 备
    10. 10. 数据 主 制库 备复数据 主 制库 备复 主机 制复 redo 日志到 机备 同 模式(最大保 )步 护 • 机备 是否写 后 答主机?盘 应  模式(最高性能)异步 • 主机不等待 机的 答备 应 思考 : 比如上 模式题 对 两种
    11. 11. 数据 主 制库 备复数据 主 制库 备复 主机 制复 redo 日志到 机备 混合模式(最大可用) • 同 模式不可用 , 模式步 时 转为异步 • 衡了最大性能和 数据的最大保权 对 护
    12. 12. 高可用集群高可用集群 ++ 主 制备复主 制备复 IDC-1 IDC-2 Redo Stream Redo Stream DataBase Instance DataBase Instance OSOS Node 1Node 1 DataBase Instance DataBase Instance OSOS Node 2Node 2 DataBase FilesDataBase Files Shared StorageShared Storage DataBase Instance DataBase Instance OSOS Node 1Node 1 DataBase Instance DataBase Instance OSOS Node 2Node 2 DataBase FilesDataBase Files Shared StorageShared Storage 太 了!!贵
    13. 13. OceanBase 的高可用性架构
    14. 14. OceanBaseOceanBase 架构架构 (( 机群单机群单 )) 注:后 内容会将续 OB 集群作 一个单 为 DataBase 修改 量增 用接口应 基 数据线 Root Server 控中心总
    15. 15. 分布式 境的困境环分布式 境的困境环 普通服 器务 + 公用的网 境络环 故障成 常为 态 跨机房部署是必需 OceanBase 只能走主 制的路备复 如何保 真正的数据零 失?证 丢 如何 衡性能、可用性、数据安全?权 CPU
    16. 16. 最大可用 = 最大保 (同 )护 步 + 最大性能(异 )步 最大可用模式的数据 失丢 基于主 制的困境备复基于主 制的困境备复 MasterMaster SlaveSlave 7 8 9 7 87 8 9
    17. 17. OceanBaseOceanBase 主 同备 步主 同备 步 主 行写事 并同库执 务 步 redo 日志到备库  多数成功就 写事 成功认为 务 MasterMaster IDC-1IDC-1 SlaveSlave IDC-3IDC-3 SlaveSlave IDC-2IDC-2 7 8 7 9 8 7 9
    18. 18. PaxosPaxos "Time, Clocks, and the Ordering of Events in a Distributed System" Byzantine generals Paxos LaTeX 2013 ACM Turing Award
    19. 19. 基于投票的同 制步复基于投票的同 制步复  点优  保 了数据安全性证  redo 日志 同 写多强 步 份 更大化系 的可用性统  机房故障不影 写服单 响读 务 数据一致性 & 系 可用性:统 3/5 > 2/3 > 2/2
    20. 20. 同步 redo 日志写多 保 数据零 失份 证 丢 多数写成功即成功提供更高的可用性 小结小结 MasterMaster IDC-1IDC-1 SlaveSlave IDC-3IDC-3 SlaveSlave IDC-2IDC-2
    21. 21. OceanBase 的分布式选举
    22. 22. 投票和选举投票和选举 流程怎 保 成功?选举 么 证选举
    23. 23. 原 :任意 刻最多只能有一个则 时 Leader 投票 ,以不可靠成 提供可靠服协议 员 务  多数 ( 超 半数过 ) 成 可用 服 可用员 则 务  投票简单 协议  要容忍网 分区络  Leader 租 (约 Lease ) 分布式 概述选举问题分布式 概述选举问题 Leader
    24. 24. 分布式 基本原理选举分布式 基本原理选举 Paxos 的基本要求协议 成 不 假员 说 话 ( 非拜占庭式 )  个成 不自相矛盾单 员说话 :投票给 A 了,就不能再投票给 B 任何修改需要多数成 同意员 :多个成 投票的同员 步  个成 不自相矛盾单 员说话  投出的票 行持久化?对 进  住自己在一个记 lease 周期内的投票 ( 分布式选举 ) 重 后一个启 lease 周期内不投票 多个成 投票的同员 步 有 者协调 (leader) 无 者?协调
    25. 25. 多个成 投票的同员 步多个成 投票的同员 步 问题 系 或者原统刚启动 leader 常异 lease 期后,过 选 举 leader 的 候,各个参与者的投票 各不相同, 个参时 时间 每 与者收到 票的 各不相同选 时间 投票后,参与者在一轮 lease 周期内不得再次投票 (“ 不得 自相矛盾” ) 已有方案 各 个 参 与 者 在 起 投 票 , 延 某 个 随 机发 时 迟 时间 (100ms~300ms) ,最早 起者通常成 新的发 为 leader  序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举 容易出 失现选举 败 (election split) ,下次 主要等选 Lease 期!!过
    26. 26. ““ 同步同步”” 无主选举无主选举 按 一的统 规则 (“ 投票 重权 ” ) 新选择 leader 所有成 在员 T1 刻时 “ 同时同时” 起发 选举 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T4: 选举结 束 T3: 票计 & 广播
    27. 27. ““ 同 ”步 时钟同 ”步 时钟  充当无主 的 者时钟 选举 协调  个 程的 被均分 片每 进 时间 为时间  个 片内只能 行一次无主每 时间 进 选举  在 Tcycle 整数倍 刻 起时 发 选举
    28. 28. 无主 序分析选举时无主 序分析选举时  偏差最大时钟 Tdiff ,网 程收 理 最络单 发传输处 时间 长 Tst Step 1 : T1 刻广播投票 重时 权 Step 2 :接收投票 重并在权 T2 刻向最大 者投票时 值  投票到 :预 达时间 [T1-Tdiff×2 , T1+Tdiff×2+Tst=T2] 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T3: 票计 & 广播 T4: 选举结 束
    29. 29. 无主 序分析选举时无主 序分析选举时 Step 3 :接收 票,选 T3 刻 票,得票 半者时 计 过 成功并广播 投票到 :达时间 [T2-Tdiff×2 , T2+Tdiff×2+Tst=T3] Step 4 :接收新任 leader 广播并在 T4 刻时 结 束选举 新 任 leader 广 播 到 :达时间 [T3- Tdiff×2 , T3+Tdiff×2+Tst=T4]  耗选举 时 Telect=T4-T1=Tdiff×6+Tst×3 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T3: 票计 & 广播 T4: 选举结 束
    30. 30. LeaseLease 及无主 周期选举及无主 周期选举  偏差时钟 Tdiff=100ms ,网 程络单 传输 Tst=200ms  耗选举 时 Telect=Tdiff×6+Tst×3=1200ms  展的 耗扩 选举 时 Telect2=Telect+200=1400ms Tlease=4×Telect2=5600ms ,从 TT11 始开 无主 周期选举 Tcycle=5×Tlease=7000ms T1 Tlease Tlease Tcycle TcycleT4 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T3: 票计 & 广播 T4: 选举结 束
    31. 31. Why TWhy Tcyclecycle > T> Tleaselease ?? 5 个成员 C1~C5 选举 T1 刻 始 , 出新时 开 选 举 选 leader C1 T4 刻时 C2~C5 未 收 到 C1 新 任 leader 广播 Tcycle 刻时 C2~C5 重新 始 ,开 选举 选 出新 leader C4 C 2 C 1 C 3C 5 C 4 Clien t T1 Tlease Tlease Tcycle TcycleT4 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T3: 票计 & 广播 T4: 选举结 束
    32. 32. ““ 同步同步”” 无主 的 缺点选举 优无主 的 缺点选举 优  点优 超 半数成 正常且参与, 一定成功过 员 则选举  :定 数据实现简单 长 结构 + 新消息直接覆盖旧的 + 定时处 理 缺点  最大 偏差及最大网 有要求对 时钟 络传输时间 Leader 常后,最异 长 (Tlease+ Tcycle+Telect) 出新选 leader Tlease Tlease Tcycle Tcycle T1 T3
    33. 33. 的 棒性选举协议 鲁的 棒性选举协议 鲁 可能双主 ( 裂脑 ) 无主 :若选举 Tdiff > (Telect2+T3-T1)=2200ms 自 控:动监 A 在 Ta 刻 包,时 发 B 在 Tb 刻收到, :时 则 - 2*Tdiff <= Tb-Ta <= 2*Tdiff + Tst Tlease Tlease Tcycle Tcycle T1 T3 Leader Tlease Leader Tlease
    34. 34. 总结总结  数据 的高可用性传统 库 依 昂 的硬件赖 贵 设备 主 同 的局限性备 步 OceanBase 的高可用性架构 不可靠的 PC 服 器务 利用分布式投票 的多机日志同实现 步 保 一致的同 提供更大可用性证强 时 利用分布式 了可靠的 主选举实现 选 主宕机后自 恢 保 写的可用性动 复 证
    35. 35. ThanksThanks 源的分布式 系数据开 关 库 OceanBase http://alibaba.github.io/oceanbase/

    ×