为什么采用两地三中心GDPS 双活解决方案?
澄清一个概念,如果我们仅仅是指两地三中心GDPS灾备解决方案的话,那么早在七-八年前国内很多大行就已经做到了这一点,具体的实现多是通过同城两个中心的GDPS PPRC解决方案联合异城两个中心的GDPS z/OS Global Mirror或者GDPS Global Mirror解决方案.我们这里提到的两地三中心GDPS双活解决方案是近三年来很火的一个专题,而且因为今年在某一大行的成功实施,使得这个主题无数次被提及,那么为什么要采用两地三中心GDPS 双活解决方案呢?哪些场景下可以用到这个解决方案?
想来大家都应该看到过:银行营业网点或者银行官网上会发出因为某系统升级或者故障从凌晨几点到几点无法做交易的消息. 事实上无论是计划内的应用,数据库,中间件,系统和硬件升级维护,或者计划外的系统综合休(SYSPLEX)级的故障,还是突如其来的火灾,地震,水灾,以及最要命的恐怖袭击,都有可能造成银行系统的不可用,进而造成业务的中断.各大行都迫切希望减少计划内和计划外停机的业务不可用时间,最好能够在面对各种极端情况时,依然能够保证业务的持续可用性,让用户感觉不到有任何故障存在,故两地三中心GDPS 双活业务持续可用解决方案应运而生.该解决方案在不同城市的两个数据中心间沿用已经存在的GDPS z/OS Global Mirror灾备解决方案,其核心则在于同城两个数据中心间的GDPS双活方案,从而使得关键应用运行于同城的任一个数据中心,在这两个数据中心之间做到自如地站点级别切换,一个站点的应用故障不会影响到另外一个站点的应用 *** 作.
GDPS双活的英文全称是Geographically Dispersed Parallel Sysplex Active-Active,即地理分散并行系统综合体双活解决方案. 该解决方案由两个分布于不同数据中心的并行系统综合体组成,这两个数据中心的功能分布是1:1模式,同时对外提供服务,数据中心间实现负载均衡,任何一个中心具备100%生产支持能力,具备无缝业务切换能力,减少应用停机时间,从而保证业务的持续可用性.
说到GDPS 双活解决方案的适用场景,我们需要明确GDPS双活解决方案是一个新生的且持续发展的解决方案,总共分成三个阶段,第一阶段为GDPS Active-Standby, 第二阶段为 GDPS Active-Query, 第三阶段为 GDPS Active-Active, 当前处于第二个阶段.
在当前GDPS Active-Query通常的配置中,两个Active 的站点A和B,站点A是生产站点,主要用于运行核心业务,包含OLTP(联机事务处理) 和批量作业, 站点B则只用于运行只读的Query(查询),并且随时准备着运行OLTP和批量作业 如果在站点B上监控到端到端的延时超过预定义的阈值,那么Query能够自动地Switch到站点A去做运行,当然这里我们可以在一分钟内通过SA REXX从监控表里抽几次样,如果几次都超过的话,再做切换,会更为合适.对于站点A而言,如果行里要对站点A的生产系统进行升级和改造,以前在行里通常需要请求三到五个小时的停机时间窗口(遇到问题的话,可能会更久),在这个过程中,站点A是无法对外界提供服务的,但是现在采用了GDPS 双活方案后,因为站点 B可以无缝接管站点A的业务,所以可以通过GDPS A-A作站点级切换,把OLTP Workload 定向到站点B,由B站点对外界提供业务,此时所有的OLTP和Query Workload都运行在了站点B,整个过程对于客户而言,都是透明的.然后对站点A进行升级,可以是升级应用程序,硬件,DB2z版本,甚至z/OS, 到升级完成后,在B站点停OLTP Workload,反向同步站点B改变的数据到站点A, 再把OLTP Workload回切到站点A 整个过程中,站点切换耗时大概2分钟左右,回切基本上是相近时间,在站点B停OLTP Workload并反向同步数据耗时大概是10分钟,加到一起整个升级过程把对外界不能提供业务的时间控制在了十分钟的级别,与原有的三至五个小时相比有了巨大的改进
小心翼翼的“手术”过后,更大的挑战在于如何将数据完整地提取出来。
2月26日,数据恢复工作已经开展了三天三夜。当天中午,第一批次的数据拿到,导入数据验证正常。但他们很快发现,他们扫描出来的最新一份数据是截止到2月17日的数据拷贝,完整性尚不确定。
“也就是说,即便这份数据完整,那17号到23号当天的数据也是缺失的。”徐勇州解释,“这个事情,好的一面是明确地告诉我们数据还在,恢复有希望。但是只找回一部分数据意义不大,我们需要完整的数据。”
扫描仍在继续尝试,工程师们逐步发现了更多数据的踪迹。到了周三深夜,新的问题再次出现:工程师们发现,现有的数据备份中,缺少大文件数据,而这些大文件极有可能是微盟最核心的业务数据。它们没有被扫描出来。
“用绝望来形容当时的心情都不夸张,核心数据如果没有,等于前期的工作都白做了,其他数据恢复了都没意义。”徐勇州说。
事实上,此时扫描出的数据大约是微盟数据整体的30%左右,已经符合甚至超过了此前行业对此类事故恢复程度的预期。“这难道真的是一个完不成的任务?”
徐勇州和技术团队不想放弃:核心数据找不回,影响的不止是微盟,还有那些商家的利益。“有一点希望都得试试看。”
徐勇州彻夜未眠。思量再三,决定两条腿走路:一是尝试对磁盘的每一块(block)进行二次扫描;二是让腾讯云的 *** 作系统团队从OS底层入手,制定数据恢复方案PlanB,这需要极其庞大数量的尝试和数据验证,“方案一能成功是最理想的,方案二就意味着数据恢复的时间不确定,业务停摆,继续失血。”
周四上午,第一台服务器的第一块扫描成功,导回数据库查看是完整的。“方案一可行!大家信心一下子又起来了。”
从可行到成功,中间仍有艰难险阻。数据公司提取出来的单一的块,从体积来看还是达不到微盟核心文件的大小。这意味着,要获得完整数据,需要进行数据“拼接”。
就好像整块拼图被打散扔进了大海里,一块一块打捞上来是第一步,拼接是第二步。不同的是,拼图时还能够根据形状来判断哪些可以放在下一块,而拼接数据块,根本无法通过肉眼识别,只能靠一块块去扫描,寻找相似度高的拼接到一起,再重新扫描看断点是否能重合。
庆幸的是微盟的备份机制较为完备,数据的覆盖度和完整性检查等工作非常细致。徐勇州发现,文件类型只有一种,那么就能很容易判断出哪块是开头,拿着开头去找剩下的块,把工作量从“NN”降低到“1N”。
但“1N”的工作量也不小。最大的一个文件,由7块碎片组成。找到开头以后,工程师开始扫描其他有相似性的块。运气好的时候,相似度可能只有一块,运气不好的时候 ,有二三十块。每进行一次拼接,都需要把数据块从头到尾扫描一遍,验证是否匹配。这需要大量的计算力。为了加快扫描和验证,腾讯云服务器团队还临时从上海机房调拨了100多台服务器进行算力支持。
徐勇州已经不记得这样的“打捞、拼接、扫描、验证,重新打捞、拼接、扫描、验证”进行了多少次,只记得每一次都是四五个小时的煎熬。“大家每隔一会儿就在腾讯会议上吼,好了没,好了没,快看看!”
终于,一块又一块的数据被拼接出来,核心数据逐渐被修复。“太不容易了,心情真的跟过山车一样。”
2月28日,深夜,数据修复胜利在望。
“做到100分,在云上迎接重生的微盟”
虽然最初大家并不敢断言数据能否修复,随着两边团队的共同攻坚,大家关注的焦点逐渐变成数据能不能做到100%的修复。
然而,即便是方法论经过了验证,但就像写程序一样,在一些细微的地方总会有一些意想不到的bug出现。
2月29日凌晨,恢复到最后一台服务器时,徐勇州和技术团队盘查发现,前面找回来的那些数据只有整体数据量的70%-80%。按照前面核心数据恢复的方法推演,如果逻辑成立的话,此时恢复的数据应该是100%。
剩下的数据去哪了?到底是哪个环节出了问题?“我们的目标是要做100分,哪怕失掉5分,对一个商家来说可能就是全部。”徐勇州和团队连夜把所有的数据又重新盘点了一遍,把验证的逻辑再推导了一遍:扫描了多少?提取了多少?哪些校验过?哪些没有?
又是一夜未眠。3月1日凌晨,终于在另一个的区段中,被遗漏的数据被“打捞”了出来。原来有一部分数据在提取时因为环境等各种原因被疏忽了,在把所有的数据都汇总整理和对齐后,很快找到了对应的那段未提取区段,然后又是进行紧张的“打捞、拼接、扫描、验证”,但这时的团队已经是技术娴熟,胸有成竹。
3月1日晚,微盟发布公告称,数据已经全面找回。同时宣布基础设施全力上云。

根据微盟公告,微盟将采取以下措施提升对数据安全的保障:首先在权限管理方面,使用腾讯云CAM权限系统进行云资源管理,严格执行分级授权和最小集权制度,对高危险动作执行二次授权制度;使用腾讯云堡垒机替换自建堡垒机,进行细粒度许可权分级和授权管理。
其次,在北京、上海、南京等地区建立全备份的冷备系统架构,借助腾讯云IaaS的底层服务能力,建立高可用的同城双活架构;所有非结构化数据使用腾讯COS对象存储系统进行归档保存并启用多异地复制功能。
最后,借助腾讯云数据库MySQL的数据高可用和安全体系,逐步放弃自建数据库服务,迁移到腾讯云数据库(CDB),提升数据库跨可用区和易地灾备的能力,同时,将原来合作的黑石10物理机全面升级黑石20,全面使用云主机。
在徐勇州看来,微盟事故的发生对其他企业的数据安全保护也敲响了警钟,数据安全事件背后折射出的是,仅仅依靠单点防护难以达到真正的安全防护效果,而构建基于全生命周期的安全防护成为必然选择。
微盟公告发出以后,腾讯云技术团队在微信群里收到了微盟团队的集体致谢。那个全程见证事件进展的超长腾讯会议的会议号,被团队提议作为一个永久的番号保留。
同城双活图形描述如下:
图中以圆圈为基本单位,上方为一个大圆圈,代表同城双活;下方分为两个小圆圈,分别表示两个城市,两个城市之间用一条箭头连接,表示两个城市之间的双向交流。此外,在大圆圈的内部,还有许多小圆圈,代表着多种交流形式,如网络交流、人员交流、文化交流等,它们之间用箭头连接,表示这些交流形式之间的相互联系。总之,这个图形可以很好地描述出同城双活的概念,以及同城双活之间多种交流形式的内在联系。
powerstore支持双活
戴尔易安信PowerStoreMetroNode实现了真正的同城双活(主动/主动),允许在两个站点同时写入,并支持恢复点目标(RPO)和恢复时间目标(RTO)同时为零!从而确保在城域地理边界内,用户数据将始终可用且可访问(数据往返时延小于10毫秒)。
异地多活(异地双活)是最近业界讨论比较多的话题,特别是前一阵子支付宝机房光纤故障和携程网数据库丢失之后,更加唤起了技术人员们对异地容灾的考虑。
而异地多活比异地容灾更高一级,因为异地容灾仅仅是一个冷备的概念,而异地多活却是指有两个或者多个可以同时对外服务的节点,任意一个点挂了,也可以迅速切换到其他节点对外服务,节点之间的数据做到准实时同步。
网上看了很多技术分享,总结了以下实践经验:
1 如果业务量不大,没必要做异地多活,因为异地多活需要的运维资源成本、开发成本都非常高;
2 注意机房间的延时问题,延时大的可能达到100ms以上,如果业务需要多次跨机房请求应用的话,延迟的问题会彻底放大;
3 跨机房的专线很大概率会出问题,要做好运维或者程序层面的容错;
4 不能依赖MySQL双写,必须有适应自身业务的跨机房消息同步方案;
5 MySQL或者其他存储的数据同步问题,在高延时和较差的网络质量的情况下,考虑如何保证同步质量;
6 核心业务和次要业务需要分而治之,异地多活的业务形式越简单越好,甚至可以只做核心业务;
7 异地多活的监控、部署、测试等流程也要跟上;
8 在业务允许的情况下,考虑用户分区,特别是游戏、邮箱业务比较容易做到;
9 控制跨机房消息体大小,越小越好;
10 考虑使用docker等容器虚拟化技术,提高动态调度能力
异地容灾,顾名思义就是在不同的地方(异地:可以是同城的两个不同的机房或者是两座不同的城市),构建一套或者多套相同的应用或者数据库,进一步提高了数据抵抗各种可能安全因素的容灾能力,可以对企业应用和数据库起到安全性、连续性等方面的作用。
两大分类
考虑到不同企事业单位对数据安全和业务连续性的要求不尽相同,我们将异地容灾分为两大类:数据级容灾和应用级容灾。
数据级容灾:就是指建立一个异地的数据系统,该系统是本地关键应用数据的一个可用复制。在本地数据及整个应用系统出现灾难时,至少在异地保存有一份可用的关键业务的数据。该数据可以是与本地生产数据的完全实时复制,也可以比本地数据略微落后,但一定是可用的。
应用级容灾:在数据级容灾基础上,在异地建立一套与本地生产系统相当的备份环境,包括主机、网络、应用、IP等资源均有配套,当本地系统发生灾难时,异地系统可以提供完全可用的生产环境。
CDP异地容灾VS传统异地容灾
传统的异地容灾方案大多基于远程复制技术。远程复制是指运用复制技术将数据以同步或者异步的方式存储到异地灾备中心中,其主要实现方式有三种:1利用主机远程复制软件或硬件 。2利用存储自身的复制软件。3利用数据库软件产品。远程复制的方式可以实现数据级的容灾,但是一旦发生灾难,无法保证业务的连续性。此外,一旦出现数据库逻辑错误或人为误删除的情况,远程复制不能修复数据错误,也不能找回误删除的数据,更谈不上100%恢复数据并保障数据的可用性了。
和力记易的异地容灾方案以CDP持续数据保护技术为核心,可以构建异地桌面端或服务器端的文件、数据库和应用的全需求平台,能够防范数据丢失、修复数据错误,还能保障业务连续,全方位满足客户不同的数据安全和业务连续性要求。
以上就是关于为什么采用两地三中心GDPS 双活解决方案全部的内容,包括:为什么采用两地三中心GDPS 双活解决方案、腾讯会议服务器维修多少时间、怎样画图提现同城双活等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)