从IT应⽤架构⾓度,畅谈双活数据中⼼容灾解决⽅案
本⽂根据朱祥磊⽼师在〖5⽉6⽇DBAplus社济南数据库技术沙龙〗现场演讲内容整理⽽成。
讲师介绍:朱祥磊
运营商系统架构师
负责业务⽀撑系统架构规划和建设。获国家级创新奖1项、通信⾏业级科技进步奖2项、移动集团级业务服务创新奖3项,申请发明专利13项。
为什么要讲双活数据中⼼?从应⽤系统和系统保护来说,分这么⼏个⾓度:
⾸先做容灾,第⼀个要考虑的是主备,上图左侧是最早出现的主备模式,⼀般是在两个中⼼建互备系统,⽐如我在B中⼼,容灾系统在另外⼀个地⽅,这种模式⽐较容易切换。假如A中⼼出问题了,就绑定在B中⼼,或者是把数据复制到B中⼼,容灾资源是闲置着,承担着容灾的任务。另外真的出问题了,我得需要⼀个定位,因为并不能确认它是否确实不能⽤了,所以,要确保这个业务完整,数据也不丢,定的时间加上切换流程,⾄少得0.5⼩时,甚⾄更长,甚⾄⼀两天,这样导致弊端很多。
后来为了节约资源,发展到现在双中⼼互备,A中⼼⼀部分做⽣产,B中⼼也⼀部分做⽣产,在原来的储备⽅式上做了⼀个改进,优点是因为这两个中⼼都有⽣产业务运⾏,可通过资源共享技术节省资源。但仅仅是计算源,对于存储来说,由于这个存储空间必须要保证完整来做,所以没有办法充分利⽤起来,还是闲置状态。针对这种问题,我们现在⼜有了双活并⾏模式,同⼀个系统,两个中⼼都可以承担业务,同时对外服务,坏掉任何⼀⽅不影响。
这是⾮常理想的⼀种状态,今天主要讲的是要实现这种架构或部分实现,需要哪些技术,需要做哪些⼯作,只是简单的讲,不⼀定很深⼊,也希望能够和⼤家⼀起沟通交流,看有没有更好更优的⽅案。
我主要从应⽤到基础设施的⾓度来讲。因为从整个应⽤架构来看,咱们有⼀些业务可能是有接⼊层,下⾯是应⽤逻辑,后⾯包括还有⼀些接⼝,再下⾯是数据层,再下⾯是基础架构,有可能有存储和⽹络,这么⼏层,每⼀层都会有相应的双活实现技术。例如应⽤层可能有各种集,数据层可能有⼀边同时可读写,或⼀边只能读等。再如基础架构层,在⽹络上对稳定性和带宽吞吐性能要求更⾼,甚⾄需要打通跨中⼼的⼤⼆层⽹络,存储⽅⾯则需改变⼀主⼀备的读写机制,实现同时可读写。
下⾯从这五个⽅⾯展开谈,⼀个是数据层,⼆是存储层,三是接⼊/应⽤层,四是虚拟化/云平台;五是技术关键点。
⼀、数据层
⾸先讲数据层(这⾥指传统数据库)中的双活⽅式,⼀种叫Active Standby⽅式,⼀种⽅式为两个都是Active⽅式,此外还有数据逻辑复制软件模式。
Active Standby是基于Oracle ADG技术,这个模式采⽤从主库向备库传输redo⽇志⽅式,备库恢复数据过程可以⽤只读⽅式打开进⾏查询操作,实现了部分双活功能,在主节点故障后可以将备节点切为⽣产。
Active—Active⽅式指的是两点都可以同时读写,例如通过Oracle Extend RAC实现多个集节点同时对外提供业务访问。该⽅式能做到故障⽆缝切换,提升应⽤系统整体性能。这种模式理论上不需进⾏⼈⼯切换操作。
另外在基于逻辑复制的软件,利⽤数据库在线⽇志中的数据变化信息,通过⽹络将变化信息投递到⽬标端,最后将⽬标端还原数据,从⽽实现源⽬标的数据同步。
⽅式⼀:Oracle ADG
⾸先第⼀个模式是Oracle ADG模式。通过⽹络从⽣产向容灾传输归档或redo⽇志,容灾端恢复⽅式同步恢复。这个数据库不断把⽇志写⼊到备库。这种⽅式的优点是存储⽀持异构。
应⽤场景:可以把这个库可以作为应急或容灾⽤,作为数据保护⼿段。
oracle数据库表结构怎么看
⽅式⼆:逻辑复制
通过DSG、GoldenGate等逻辑复制软件技术实现跨中⼼数据库的相互复制,这种逻辑复制⽀持表级的复制,要求两个数据中⼼各建⼀套数据库,物理独⽴,同时能读写。基于数据库⽇志准实时复制数据,⽀持异构数据库,异构OS。可以实现⼀对⼀、⼀对多,多对⼀、双向复制等多种拓扑结构。把⽇志进⾏分析,写到这个库,是以跨中⼼的共享存储基础,通过共享存储资源和Oracle数据库集软件管理,实现各个中⼼节点对数据库并⾏访问。
⽅式三:Oracle 远程RAC
Oracle Extended RAC以跨中⼼共享存储为基础,通过共享存储资源和Oracle Clusterware数据库集管理,实现各个中⼼节点对数据库并⾏访问。
共享存储可以采⽤存储⾃⾝数据复制技术,存储虚拟⽹关或远程卷管理等技术,以Oracle ASM存储卷管理为例,实现数据的双向实时复制。
要点:
两个数据中⼼分别部署⼀套存储,各提供⼀套LUN设备给全部数据库主机。
存储的SAN⽹络和RAC⼼跳⽹络需使⽤低延迟、⾼带宽的DWDM光纤链路。
配置ASM磁盘组。每个磁盘组配置两个失效组,每个失效组对应来⾃⼀套存储的LUN设备。
在第三个站点部署⽤于RAC的第3个投票盘,使⽤NFS的⽅式挂载到所有数据库主机。
与管理普通的RAC系统类似,需要重点加强对站点间光纤链路情况的监控与应急。
内存库双活技术
内存库双活技术,将数据放在内存中直接操作的数据库,相对于磁盘,内存的数据读写速度要⾼出⼏个数量级,将数据保存在内存中相⽐从磁盘上访问能够极⼤地提⾼应⽤的性能。
应⽤场景:⽤于实时计费,读写分离场景,主要有Oracle Times Ten,Altibase商⽤以及华为等相关产品。内存库集部署主要有HA模式,双活模式,线性拆分和分布式集四种模式。
内存库通过复制⼿段,实时地复制到另外⼀个中⼼,它们之间是⼀个跨中⼼的数据,这是HA模式。另外双活模式,和这个模式是HA模式的延伸,可能⼀部分表是⼀个⽅向复制,另外⼀些表反过来。还有⼀种是线性拆分模式,将内存数据放在多个内存库集中,每个内存库存放⼀部分数据,并互为备份,这种模式需要应⽤进⾏针对性改造。分布式集模式,⾃动实现不同数据分⽚和副本机制,是⽬前⽐较流⾏的⼀种结构。
数据层双活技术⽐较
逻辑技术软件容易出现逻辑错误导致数据不⼀致,⽽且很难稽核。ADG模式数据在数据库级是完全⼀致的,当然前提是能正常同步,但是不⽀持两边同时能读写。从数据延迟来看,不管是ADG还是逻辑复制软件,都跟⽇志量有关系,后⾯会讲我们在不同⽇志量情况下做的测试延迟结果。
⼆、存储层
存储层作为双活系统核⼼基础架构平台,其双活技术在整个架构中起到关键作⽤,⽬前基于存储层双活⽅案主要有下⾯三种:基于远程卷管理软件的虚拟化,⽐如Symantec SF、IBM GPFS、Oracle ASM等。
基于存储⽹关虚礼化,如EMC、vplex、IBM、SVC。在传统存储上⾯增加了⼀个虚拟化⽹关,在每个机房⾥⾯,新增存储虚拟化⽹关设备组成跨站点集,并对存储卷进⾏重新封装,对外提供主机访问。
存储卷镜像技术,将两套磁盘阵列组成⼀个集,两台存储上的LUN被虚拟化为⼀个虚拟卷。
流派⼀远程卷管理软件
数据同步:底层数据复制采⽤远程卷管理软件,如赛门铁克的storage Foundation(SF)、IBM的GPFS、Oracle的ASM等,通过逻辑卷镜像技术实现底层数据逻辑同步。上层应⽤采⽤Oracle Extended RAC⽅案实现远程多节点RAC,使⽣产和容灾节点都处于在线状态,应⽤逻辑访问的是同⼀个数据库。
数据读写:⽀持双读写。
数据⼀致性:完全⼀致。
上⾯是不⽤远程卷管理软件的⼀个情况,我只需要认识到⾃⼰机房的存储就可以了。底层存储实现远程复制到容灾存储上,如果改造成远程管理软件,那么服务器既要认到本地存储也要认到对端存储,实现两边都是同时可以对存储读写的,⽽且还可以通过设置策略,写的话向2个存储同时写,读的话可以优先读本地的,从⽽可以加快读的速度。
流派⼆存储⽹关虚拟化
实现原理:将存储虚拟化技术和Oracle的远程RAC技术结合,实现跨中⼼的数据双活访问。平时两边主机分别访问本地存储,故障情况下可垮中⼼访问对⽅存储。对于同⼀个数据块的读写冲突机制,是由Oracle RAC来保证的。存储不能直接给服务器访问,需要先通过中间层虚拟化⽹关设备,再访问存储。为了防⽌出现两个中⼼间⽹络全断情况下,两边互相不知道谁还活着,需要建⼀个仲裁节点(建议在第三个中⼼),实现让谁作为主,让谁作为访问的仲裁机制,从⽽防⽌数据不⼀致这种极端情况。
流派三基于存储⾃⾝卷镜像

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。