所谓双活,是相较传统主备模式Active-Standby而言的。双活指两个数据中心可同时对外提供服务,在保障容灾的同时,起到来访用户流量负载均衡的作用。相比灾备模式,双活数据中心在资源利用率方面有明显提升,同时由于双中心实时在线提供服务,无时无刻不在检验各业务系统在双活架构下的可用性。当某个数据中心真正发生灾难事件时,无须再耽误宝贵的时间做灾备的可用性验证及各项服务的启动工作,另一个数据中心天然对外提供服务。
建设双活数据中心并不是简单地把单数据中心的基础设施及应用系统镜像复制到新的数据中心,而是会涉及相当多的架构优化和系统改造,包括网络、主机、存储、中间件、应用系统的架构都需要全面规划设计,涉及全局负载均衡、存储复制、各类中间件集群HA、应用双活支持等方方面面的技术。
关于双活数据中心的建设,目前还没有明确的行业标准,根据业内的实施经验,抽象归纳下来有存储级双活、应用级双活、业务级双活这几种常见方案。不同的双活建设方案,在基础架构上会有明显的差异,我们需要清楚知道每种方案的实现原理及优缺点后再做选择。
1、存储级双活
存储级双活是一种以存储设备跨中心双活集群能力为基础的解决方案,在存储级双活建设方案下,应用、中间件、数据库等部署方式与单中心较为相似,除少数中间件以外,大部分可参考单中心部署方式,因此部署架构较简单。存储级双活的主要建设难点在于存储设备双中心的集群部署和数据同步,不过这一点主要是通过存储设备厂商提供技术支持。其缺点是为满足存储双活设备跨中心数据同步的实时性和时效性要求,两个数据中心的距离不能太远,因此存储级双活方案一般用于为两栋楼宇间或者距离在100公里以内的两个数据中心做双活。
2、应用级双活
应用级双活是指应用系统在双中心为双活部署,而数据库在双中心为主备部署,在正常情况下,双中心应用程序均连接主数据中心的数据库,只有在主库发生故障时,应用程序才会连接备数据中心的数据库。在应用级双活建设方案下,根据跨中心数据同步及业务使用场景的要求,中间件部署可分为独立部署集群再做集群间数据同步和跨中心部署集群再通过集群自身机制做数据同步两种方式;而数据库在双中心部署为主备模式,一般通过数据库自身同步机制即可保障数据一致性。应用级双活建设门槛相对较低,它不依赖存储设备厂商,在数据库层面通过主备模式降低了双中心部署难度,建设难点主要体现在中间件集群的双中心部署和数据同步上。其缺点就是当单中心发生故障时,数据库的切换相对更耗费时间。
3、业务级双活
业务级双活是指应用系统、中间件、数据库在双中心均为双活部署,在互联网接入层可以按业务级粒度进行流量调度,可达到业务级容灾,当有业务故障时,可以将互联网接入层流量直接调度到另一数据中心处理。在业务级双活架构下,应用系统间、应用访问中间件和数据库在正常情况下均在本中心内进行,这也意味着在互联网入口流量调度时,会将同一用户请求始终调度到相同的数据中心处理,同时中间件、数据库也需要做实时的数据同步,以保障数据的一致性及故障切换后数据的可用性。业务级双活架构方案能实现秒级RTO/RPO,但其建设难度也最大。