华为云GaussDB(for Redis)揭秘第22期:拔掉电源会怎样?GaussDB(for Redis)双活让你有备无患

举报
GeminiDB-Redis博客 发表于 2022/07/12 16:11:07 2022/07/12
【摘要】 GaussDB(for Redis)推出双活方案,助力全球化业务部署,为您的数据资产保驾护航!

一、GaussDB(for Redis)双活方案介绍

       数据库系统是业务稳定运行的基石,其重要性不言而喻。然而,现实世界存在着的如断电、火灾,甚至是更小概率的地震等突发灾害,这些不稳定因素都会威胁到公司核心业务的连续性。

1.png

       华为云GaussDB(for Redis)是采用存算分离架构的企业级KV数据库,使用方式上完全兼容开源Redis,同时稳定性全面超越开源Redis,此外还提供数据高可靠存储、秒级在线扩容等企业级能力。

       在上半年的故障演练中,作为需求方的某内部重要业务部门对华为云KV数据库GaussDB(for Redis)进行了一系列严苛的可靠性测试。其中就包括模拟实例级断电,评测GaussDB(for Redis)的双活容灾能力。在故障演练中,GaussDB(for Redis)顺利通过测试,满足了业务部门对RTO和RPO等指标的严格要求。
GaussDB(for Redis)支持双活容灾,即在两个实例之间建立数据同步链路,其中主实例支持读写,备实例只读。适用于以下两类业务场景:
       1.    灾备系统:核心业务生产环境可靠性要求高,例如金融服务等。
       2.    实例级读写分离:有超高并发访问诉求,例如广告竞价、推荐系统等。
       在后续规划中,GaussDB(for Redis)还将进一步支持双主实例模式,实现双主双写,敬请期待。下面让我们来深入了解GaussDB(for Redis)的双活能力。

二、GaussDB(for Redis)双活原理及评估指标

1) 架构解析

       常见的容灾方案有以下2种:

  • 同城容灾:由于距离近,通信质量好,比较容易实现数据零丢失。一般用于防范火灾、供电故障等人为破坏引起的灾难。
  • 异地容灾:由于主备数据中心之间距离远,通常会有少量的数据丢失,而异地灾备可以防范火灾、水灾、建筑物破坏、地震、战争等可能遇到的风险隐患,保障业务的连续性。

       GaussDB(for Redis)双活方案支持同城容灾和异地容灾,下图展示了其技术原理:

2.jpg

       可以看出,与开源Redis那种简单的命令转发不同,GaussDB(for Redis)的双活方案是基于WAL日志的数据同步,原理上更类似于MySQL数据库。在双活架构中,RsyncServer进程负责数据的全量和增量同步。数据同步链路采用华为云内部高速网络,同Region内仅毫秒级延迟。

       GaussDB(for Redis)的双活功能有以下企业级特性:

  • 全量同步:支持秒级快照且不影响原有集群的正常读写,发送速度快
  • 增量同步:监听日志写入变更,实时同步最新数据,毫秒级延迟
  • key保序:主备实例采用多线程异步并发模式发送数据,按Key保序
  • 可靠传输:利用wal日志序号的单调递增特性,实现滑窗机制确保可靠传输
  • 高效传输:日志迭代、网络发送、DB增删监听等任务采用Reactor事件管理,全流程pipeline
  • 异常重传:解决网络抖动导致的丢包或延迟现象
  • 断点续传:每个DB持久化保存其应答过的日志序号,如发生宕机、网络隔离、进程重启等情况,可从该序号位置进行续传
  • 防止回流:同步到对端流量做特殊标记,防止回流到源端

2) 技术指标

       从技术上看,业界衡量容灾系统有两个主要指标:

  1. RPO:最多可能丢失数据的时长。
  2. RTO:从灾难发生到整个系统恢复正常所需要的最大时长。

       一般而言,容灾系统能够提供较好的RTORPO指标。国际通用的容灾系统的评审标准SHARE 787个层次、8个原则),可以作为广大用户衡量和选择容灾解决方案的指标。

      目前,在大部分场景下,GaussDB(for Redis)灾备方案位于6级,即只有在极端场景下才会丢失少量数据。

3.png

3) 优势总结

       根据前期市场调研,有些客户的业务场景基于开源Redis搭建集群级的灾备系统,从技术原理上评估可靠性很低,违背了灾备的初衷。与之相比,GaussDB(for Redis)提供企业级可靠的双活方案,优势如下:

4.png

三、GaussDB(for Redis)双活搭建步骤

       登录GaussDB NoSQL控制台,您可以很方便地搭建GaussDB(for Redis)双活系统:

       1.    点击“购买数据库实例”,创建2个GaussDB(for Redis)实例(主、备),建议规格保持相同。
       2.    进行网络配置,详细指导:https://support.huaweicloud.cn/redisug-nosql/nosql_10_0502.html
       3.    选中期望的主实例,如图操作,开始搭建双活关系:

5.png

       4.    在“搭建双活关系”页面,选中期望的备实例,点击确定,即开始双活系统搭建。
              注意:一旦双活系统开始搭建,备实例数据将被清空,请谨慎操作。

6.png

        双活关系搭建完成后,除了用于容灾之外,其备实例可提供读服务,可以有效分担主实例的读压力。

四、GaussDB(for Redis)双活技术演进

        当前双活方案中,备实例在运行期间仅提供读服务,如果两个数据中心能同时提供写服务,那么将极大地提高资源利用率。当灾难发生时,双活系统提供极致的RPO和RTO,从而最大程度保障业务连续性。它具有资源利用率高的特点,支持数据冲突解决等功能。目前,GaussDB(for Redis)的双活多写功能已经在开发阶段,不久之后即将上线,请大家拭目以待。

五、附录

  • 本文作者:

华为云数据库GaussDB(for Redis)团队

  • 杭州/西安/深圳简历投递:

yuwenlong4@huawei.com

  • 更多产品信息,欢迎访问官方博客:

bbs.huaweicloud.cn/blogs/248875

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。