巨杉金融级数据库多活架构实践

今年以来,公有云事故频发,大有“黑天鹅”不断爆发之势头。近期,北京一初创公司清博数控表示,在使用国内某厂商云服务器8个月后,放在云服务器上包括备份的数据全部丢失,导致公司几年来的平台数据全部丢失,造成“近千万元损失”。此后,该云平台对此回应称,向该公司表达歉意,愿意赔偿该公司在平台产生的实际消费共计3569元,本着帮助用户迅速恢复业务的目的,承诺为该公司提供13.29万元现金或云资源的额外补偿,赔偿加补偿金额总计13.64万元达到其在平台中用云金额的37倍。

此外,在半年时间内,多个平台也曾出现数据安全问题。7月24日,由于某云广州一区主备两条运营商网络链路同时中断,导致部分用户出现资源访问失败、控制台登录异常。7月18日,某云全球负载均衡系统出现问题,导致Snapchat等多个热门在线服务遭遇停机或者响应缓慢情况。6月27日,某云运维失误,导致一些客户访问阿里云官方控制台出现问题。4月6日,某访问出现问题……
频繁出现的数据安全“黑天鹅”,让大众对数据安全的关注再次上升到了新的高度。

而伴随数据在企业内部价值的不断提升,数据已经成为了企业的生命线与核心资产。无论在中国还是海外,金融行业的数据安全已经成为了监管机构的首要要求。在中国,银行核心系统安全一直是我国银监会所关注的重点,对于大部分银行数据中心,监管机构目前提出了对于数据安全和数据高可用的“两地三中心”以及“双活”的能力。

“两地三中心”即生产数据中心、同城灾备中心、异地灾备中心建设方案。这种模式下,两个城市的三个数据中心互联互通,如果一个数据中心发生故障或灾难,其他数据中心可以正常运行并对关键业务或全部业务实现接管。如今,一些大型银行,甚至已经实现了“三地五中心”。“双活”数据中心就是同个城市部署两个数据中心,多活一方面是多中心之间地位均等,正常模式下协同工作,并行的为业务访问提供服务,实现了对资源的充分利用,避免一个或两个备份中心处于闲置状态,造成资源与投资浪费;二是在一个数据中心发生故障或灾难的情况下,其他数据中心可以正常运行并对关键业务或全部业务实现接管,实现用户的“故障无感知”。
当前企业在数据管理方面不断已经开始尝试新的架构和平台,在监管机构强势的监管之下,金融行业的这些数据安全要求,是所有行业里面最为严苛的,能够真正满足这些要求的产品和解决方案可谓屈指可数。作为承载着企业关键数据的数据库,其安全性、可靠性、稳定性一直是其重要的核心价值。对于数据库平台,如何通过技术实现更好的数据安全保障?在特殊情况下如何实现数据的恢复、容灾和多活?

数据库多活方案对比
随着众多企业客户对于业务延续性需求的增加,传统业务中的停机维护窗口越来越小,甚至在很多互联网类型的应用中要求24x7不间断服务,导致系统对于数据库的运维能力、持续服务能力、高可用能力以及灾难恢复能力都有着新的需求。
其中,数据库的多活架构从RTO/RPO,乃至对业务中间件的任务分发来说都至关重要。在传统多站点主从架构的环境中,往往业务中间件需要了解不同数据中心的角色,确保读写操作永远被导向主站点,而一些允许异步访问的只读类业务可以由备中心完成。但是,在一个复杂的业务环境中,这种构建方式往往会使得业务模型极度复杂,在进行主备中心切换时也会涉及到很多配置的调整。
从架构层面来看,当前传统数据库业界主要以Oracle的RAC与IBM的GDPS为多活架构代表。

其中,Oracle的RAC一般坐落在单数据中心内,以共享磁盘为基础,上层通过搭建多个Oracle运行实例,共同连接到一个SAN中,所有的事务控制、锁等待等机制都通过高速网络在数据中心内的多个Oracle实例之间共享。

图1:Oracle RAC抽象架构

而IBM的GDPS则是更加标准的多活架构。通过在多个数据中心内搭建IBM DB2 for z/OS数据库,并且在数据库之间通过QRep进行数据复制,辅以上层的Workload控制器进行任务分发,实现应用程序在多个站点之间的数据库中做到多活。

传统数据库的一些应用程序层面的多活架构,可以通过对业务进行切分完成。例如,存在于北京和上海数据中心的数据库可以分别负责北方与南方用户的账户维护,同时上海和北京的数据中心可以互相做对方数据中心的灾备节点,这种架构也是比较典型的应用程序逻辑切分的多活模型。

不论是Oracle的RAC、IBM的GDPS、还是应用程序的业务切分,其核心设计理念基本都是基于传统集中式数据库的架构进行设计并实现的。但是,在分布式数据库的领域,其多活设计思路与传统架构设计相比更加优秀。

由于大部分分布式数据库都秉承着计算存储分离的设计思路,因此其SQL解析与执行器往往与数据存储和事务控制分别运行在不同的进程中。在这种情况下,利用数据库自身分布式与三副本复制的特性,将数据打散放置在多个数据中心内,每个数据中心配置本地SQL服务节点,从应用程序的角度看不需要关注底层数据库的主从架构,仅需要通过JDBC连接到本地的SQL服务节点进行读写操作即可。

在这种架构下,每个SQL节点完全对等,并均可以处理读写操作。所有的事务控制、一致性控制、锁等待等机制都由底层的分布式数据库直接提供。

图2:分布式数据库的存储、计算(SQL)分离架构示意

通过该机制,整个集群同样可以提供秒级的RTO与RPO能力,同时对于应用程序来说并不需要关心后台数据库的主备配置,仅需要简单连接到本地的MySQL服务节点即可像使用传统数据库一样使用多活分布式数据库。

金融分布式数据库灾备多活实践
SequoiaDB已经在内部实现了容灾备份以及“双活”的机制,主要特点包括:
?异地容灾:异地的容灾和备份,保证数据安全,中心间距离超过1000km以上。满足金融机构“两地三中心”的监管需求。
?同城双活:同城双中心的数据准实时同步,保证数据一致;双中心数据可以实现同时读写,大大提升读写效率;中心切换RTO 小于 10分钟。
?数据压缩机制:节约带宽资源,加快同步和备份过程。
?更便捷的灾备管理:系统集群中统一管理灾备中心,简化了维护成本,也帮助使用者更快上手。

图3:SequoiaDB异地多活架构示意图

针对某大型银行企业,巨杉分布式数据库为其数据库实现了异地灾备的架构,以下就以实际业务对改方案进行简单的介绍。

1.灾备架构
该架构是基于SequoiaDB的三副本方案构建的同城灾备,其中两副本部署在本机生产环境中,一副本部署在灾备环境中,整个集群跨越生产环境与灾备环境两个机房。为了保证灾备环境与生产环境的数据保持实时一致,开启巨杉数据库中数据同步强一致性的功能。

开启数据同步强一致性后,每次进行数据更新时,只有当存活的节点全部同步完成后,应用端才回收到更新成功的返回,这样就能在最大程度上保证了数据不丢失。


图4:同城灾备物理部署架构图

在同城灾备的基础上,在异地机房单独部署一套SequoiaDB集群作为异地灾备集群。异地集群只保持单副本,两地间结构化数据的同步通过传输同城灾备集群日志到异地灾备集群,然后通过重放日志记录的方式实现结构化数据的同步。

图5:异地容灾部署架构图

  1. 灾难应对
    1)单节点故障应对
    由于采用了三副本高可用架构,个别节点故障情况下,数据组依然可以正常工作。针对个别节点的故障场景,无需采取特别的应对措施,只需要及时修复故障节点,并通过自动数据同步或者人工数据同步的方式去恢复故障节点数据即可。


图6:单节点故障情况

2)本地生产环境整体故障应对
当生产环境机房出现整体故障时,整个集群环境将会失去三分二的节点,如果从每个数据组来看,相当于每个数据组有两个数据节点出现了故障,存活的节点只剩余一个。当这种情况发生时,如果不采取任何措施,灾备环境中存活的节点,只能为业务提供查询功能。
当这种场景发生时,为了让使灾备环境中的一个副本继续提供读写服务,这时需要使用SequoiaDB的集群Takeover功能,把灾备环境中的集群分裂成单节点集群,这时灾备环境节点均可提供读写服务。分裂集群的耗时相对比较短,一般在十分钟内便能完成。

图7:本地环境故障应对示意

其中分裂集群之后,不可再启动生产集群的两个副本,需要使用SequoiaDB的合并集群功能后才能进行启动,否则将出现脑裂,即生产集群也开始提供数据更新服务。将造成生产集群和灾备集群两个数据版本,很难将两者合并。

3)灾备环境整体故障应对
当灾备环境出现整体故障时,由于每个数据组都有两个副本部署在生产环境中,每个数据组存活节点的数量还大于每个数据组的总节点数,所以每个数据组仍然能够为应用层提供读写服务。针对灾备环境整体故障的场景,无需采取特别的应对措施,只需要及时修复故障节点,并通过自动数据同步或者人工数据同步的方式去恢复故障节点数据即可。

图8:灾备环境故障恢复示意

4)网络故障应对
当同城网络出现故障,导致本地环境与灾备环境无法进行通信时,由于采用了三副本的架构,应用程序可以通过访问本地两副本集群。针对同城网络的故障场景,无需采取特别的应对措施,只需要及时修复网络故障,修复后通过自动数据同步或者人工数据同步的方式去恢复灾备节点的数据即可。

图9:网络故障恢复示意图

该用户的影像平台采用了同城双活架构,每个数据组都有两个节点落在主机房中,另外一个节点落在灾备机房中。在数据同步方面,使用了SequoiaDB提供的节点强一致性的功能,当数据写入主节点时,数据库会确保节点间的数据都同步完成后才返回,这样即使在主机房发生整体灾难时也能有效得保证数据的完整性与安全性。由于当主机房整体出现故障时,可以使用SequoiaDB数据库提供的分裂功能在数分钟内快速地把灾备机房中的单一副本分裂成独立的集群为业务提供服务,因此RTO几乎接近零。由于SequoiaDB开启了节点数据强一致性的功能,因此RPO也几乎接近零。

小结
在金融级强监管的要求之下,无论是“两地三中心”还是数据的容灾备份等等要求,使得金融级的分布式数据库不断的在数据安全方面进行新的创新。
未来,分布式数据库作为数据管理的最核心枢纽,也将不断提高数据安全、数据可用性方面的功能。通过双活、多活以及高可用灾备等机制不断创新,数据库安全将会提升一个新的台阶。

原文地址:http://blog.51cto.com/13722387/2160462

时间: 2024-10-03 01:23:16

巨杉金融级数据库多活架构实践的相关文章

从自主可控金融级数据库看腾讯“智能+”技术中台之路

作为"互联网+"和"智能+"的主要技术供应商,腾讯在2017年11月的全球合作伙伴大会上提出了"云化"已经成为重要的创新模式,各行各业都将进入"互联网+"的下一站--"智能+"阶段.在此过程中,腾讯云将充分发挥"连接器"的作用,用"智能"连接各行各业. 3月12日,腾讯云全新发布自主可控金融业务支撑平台,该平台融合了可支撑数百万虚机的专有云平台TCE.服务过380亿账

亿级数据库分片分库架构设计亿【转】

数据库扩展性架构设计 http://mp.weixin.qq.com/s/gI6j_TyjJ4jEb-i8HstFaw分库分表需要考虑的问题及方案 http://www.jianshu.com/p/32b3e91aa22c无限容量数据库架构设计 https://mp.weixin.qq.com/s/ad4tpM6cdi9r6vgfbaTzxgMQ消息可达性+幂等性+延时性架构设计 http://mp.weixin.qq.com/s/8oX7u8XcLL80_nNdN-UkvQ高可用+高并发+负载

【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库Sysbench测试最佳实践

引言 作为一名DBA,时常需要对某些数据库进行一些基准测试,进而掌握数据库的性能情况.本文就针对sysbench展开介绍,帮助大家了解sysbench的一般使用方法. ? sysbench简介 什么是基准线测试 所谓基准测试,就是通过对数据库的性能指标进行定量的.可重复的和可对比的测试.基准线测试可以理解为一种针对系统的压力测试.但该测试并不关心业务逻辑,因此测试相对简单和直接.通过测试可分析在当前配置下(包括硬件配置,OS,及数据库参数设置等)应用的性能表现,实现不同应用之间的比较. 具体而言

亿级日PV的魅族云同步的核心协议与架构实践(转)

云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天的魅族云同步. 这是云服务对应的网页端,界面非常简洁,可以看到正中间我们有4个模块,提供一些传统数据的讨论,不得不提一下这边的查手机,我们通过它帮一些客户找到了他的手机,它的功能是很强大的,可以定位位置,还可以进行一些拍照. 我们的业务发展了这么多年,一个是手机端,一个是网页端,都说搞技术的是非常寂

大数据时代数据库-云HBase架构&生态&实践

摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了ApsaraDB HBase及生态,最后分享了大数据数据库的实际案例. 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了A

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助你写出能让人收藏点赞的设计文档. 技术架构评审 架构评审或技术方案评审的价值在于集众人的力量大家一起来分析看看方案里是否有坑,方案上线后是否会遇到不可逾越的重大技术问题,提前尽可能把一些事情先考虑到提出质疑其实对项目的健康发展有很大的好处.很多公司都有架构评审委员会都有架构评审的流程,做业务的兄弟要

【巨杉数据库SequoiaDB】企业级和开源领域“两开花”,巨杉引领国产数据库创新

2019年12月15日,OSC 源创会·年终盛典在深圳圆满举行.巨杉数据库作为业界领先的金融级分布式数据库厂商, 获得 "2019年开源数据库先锋企业" 及 "2019 GVP-Gitee最有价值开源项目" 两项殊荣. ? SequoiaDB 巨杉数据库始终坚持自研路线,并于2014年正式开源,是国内最早的开源数据库之一.经过8年的自主研发和技术发展,迭代发展出了技术领先.产品安全稳定.通用性强的金融级产品.今年 SequoiaDB 发布两个主要的版本,近期发布的3

构建高并发高可用的电商平台架构实践

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包

构建高并发高可用的电商平台架构实践(下)

构建高并发高可用的电商平台架构实践(下) 6. 数据存储 数据库存储大体分为以下几类,有关系型(事务型)的数据库,以oracle.mysql为代表,有keyvalue数据库,以redis和memcached db为代表,有文档型数据库如mongodb,有列式分布式数据库以HBase,cassandra,dynamo为代表,还有其他的图形数据库.对象数据 库.xml数据库等.每种类型的数据库应用的业务领域是不一样的,下面从内存型.关系型.分布式三个维度针对相关的产品做性能可用性等方面的考量分析.