从IT应用架构角度,畅谈双活数据中心容灾解决方案
《从IT应用架构角度,畅谈双活数据中心容灾解决方案》要点: 本文根据朱祥磊老师在〖5月6日DBAplus社群济南数据库技术沙龙〗现场演讲内容整理而成. 讲师介绍:朱祥磊 运营商系统架构师
为什么要讲双活数据中心?从应用系统和系统保护来说,分这么几个角度: 首先做容灾,第一个要考虑的是主备,上图左侧是最早出现的主备模式,一般是在两个中心建互备系统,比如我在B中心,容灾系统在另外一个地方,这种模式比较容易切换.假如A中心出问题了,就绑定在B中心,或者是把数据复制到B中心,容灾资源是闲置着,承担着容灾的任务.另外真的出问题了,我得需要一个定位,因为并不能确认它是否确实不能用了,所以,要确保这个业务完整,数据也不丢,定的时间加上切换流程,至少得0.5小时,甚至更长,甚至一两天,这样导致弊端很多. 后来为了节约资源,发展到现在双中心互备,A中心一部分做生产,B中心也一部分做生产,在原来的储备方式上做了一个改进,优点是因为这两个中心都有生产业务运行,可通过资源共享技术节省资源.但仅仅是计算源,对于存储来说,由于这个存储空间必须要保证完整来做,所以没有办法充分利用起来,还是闲置状态.针对这种问题,我们现在又有了双活并行模式,同一个系统,两个中心都可以承担业务,同时对外服务,坏掉任何一方不影响. 这是非常理想的一种状态,今天主要讲的是要实现这种架构或部分实现,需要哪些技术,需要做哪些工作,只是简单的讲,不一定很深入,也希望能够和大家一起沟通交流,看有没有更好更优的方案. 我主要从应用到基础设施的角度来讲.因为从整个应用架构来看,咱们有一些业务可能是有接入层,下面是应用逻辑,后面包括还有一些接口,再下面是数据层,再下面是基础架构,有可能有存储和网络,这么几层,每一层都会有相应的双活实现技术.例如应用层可能有各种集群,数据层可能有一边同时可读写,或一边只能读等.再如基础架构层,在网络上对稳定性和带宽吞吐性能要求更高,甚至需要打通跨中心的大二层网络,存储方面则需改变一主一备的读写机制,实现同时可读写. 下面从这五个方面展开谈,一个是数据层,二是存储层,三是接入/应用层,四是虚拟化/云平台;五是技术关键点. 一、数据层Active Standby是基于Oracle ADG技术,这个模式采用从主库向备库传输redo日志方式,备库恢复数据过程可以用只读方式打开进行查询操作,实现了部分双活功能,在主节点故障后可以将备节点切为生产. Active—Active方式指的是两点都可以同时读写,例如通过Oracle Extend RAC实现多个集群节点同时对外提供业务访问.该方式能做到故障无缝切换,提升应用系统整体性能.这种模式理论上不需进行人工切换操作. 另外在基于逻辑复制的软件,利用数据库在线日志中的数据变化信息,通过网络将变化信息投递到目标端,最后将目标端还原数据,从而实现源目标的数据同步. 方式一:Oracle ADG首先第一个模式是Oracle ADG模式.通过网络从生产向容灾传输归档或redo日志,容灾端恢复方式同步恢复.这个数据库不断把日志写入到备库.这种方式的优点是存储支持异构. 应用场景:可以把这个库可以作为应急或容灾用,作为数据保护手段. 方式二:逻辑复制通过DSG、GoldenGate等逻辑复制软件技术实现跨中心数据库的相互复制,这种逻辑复制支持表级的复制,要求两个数据中心各建一套数据库,物理独立,同时能读写.基于数据库日志准实时复制数据,支持异构数据库,异构OS.可以实现一对一、一对多,多对一、双向复制等多种拓扑结构.把日志进行分析,写到这个库,是以跨中心的共享存储基础,通过共享存储资源和Oracle数据库集群软件管理,实现各个中心节点对数据库并行访问. 方式三:Oracle 远程RAC??Oracle Extended RAC以跨中心共享存储为基础,通过共享存储资源和Oracle Clusterware数据库集群管理,实现各个中心节点对数据库并行访问. 共享存储可以采用存储自身数据复制技术,存储虚拟网关或远程卷管理等技术,以Oracle ASM存储卷管理为例,实现数据的双向实时复制. (编辑:ASP站长网) |