一文搞懂IDC灾备方案
很多企业都会面高并发业务和临海量数据的挑战,当机房发生断电、火灾、地震等情况,所有服务器面临业务整体瘫痪的风险。
银行、金融企业,为了避免用户损失,需要一种可以基于同城或异地的多个不同机房之间的多活机制,最大程度降低由于机房的仅单点可用所导致的潜在风险。
这里的“活”是指实时的业务服务,多活的组网方式使得不同地理位置上的系统都能够提供业务服务。常见的多活方案有同城双活、异地多活和两地三中心等。
同城双活
同城双活是指在同一座城市内建立两个机房,双机房由于通讯距离比较近,比较容易实现数据的同步复制,保证高度的数据完整性和防止数据失真。同城两个机房各承担一部分流量,相当于两个机房部署了两个独立集群。
这里需要注意的是:在同城双活的两个资源池中,一般会单点写到主机房数据库,然后将单点信息实时同步到另外一个机房。确保用户用A机房登录后,可以无需登录的情况下直接访问B机房的业务应用。
优点
① 服务同城双活,数据同城灾备。
② 不丢失数据情况下跨机房级别容灾。
③ 相比异地多活的方案,同城双活的组网架构简单。
④ 由于双机房距离近,通信质量好,底层储存例如mysql可以采用同步复制,有效保证双机房数据一致性。
缺点
① 在复杂业务以及链路下频繁跨机房调用api进行数据的同步,会增加响应时间,影响系统性能和用户体验。
② 保证同城市地区容灾,当服务所在的城市或者地区网络整体故障、发生不可抗拒的自然灾害时候有服务故障以及丢失数据风险。
③ 如果服务规模非常庞大,(比如:单体应用超过万台服务器),所有机器连接一个主数据库实例会引起连接不足的问题。
异地多活
异地多活是指在多个地市分布不同的站点,同时提供业务服务。异地多活不仅是灾备的一种方案,也是高可用的架构方案。
异地多活承担了更多的分布式计算的功能,多个地区部署服务站点,通过DNS服务器进行任务的下发、负载均衡等。单点信息共享,重要的存储信息共享。当一个集群出现故障,另外站点会及时接替它提供数据和服务。
优点
① 一般部署在远距离的两个城市,可以支持区域级别故障处理
② 支持就可以异地多活,不支持就单点部署
缺点
① 配套服务复杂,包括流量调度、容灾切换、建站平台、配置管理等
② 机房距离较远的时候,网络重传RTO 比较大
两地三中心
“两地”是指同城、异地,“三中心”是指一个地区的生产中心、同城容灾中心和异地容灾中心
两座城市的三个数据中心互联互通,一个数据中心发生故障或灾难,其他数据中心可以正常运行并对关键业务或全部业务实现接管。
我们以建设银行的北京主中心、上海一期和二期数据中心的灾备架构模式为例。上海有两个IDC,分别为IDC1和IDC2,异地在北京为IDC3。需要注意的话,为了建设两地之间的传输时延,尤其是重要的行业,会在两地之间拉ISP专线。
优点
① 同城的两个IDC传输时延低,数据写入速度更优。
② 两中心可同时对外提供服务,资源利用率更高。
③ 可保证任一数据中心失效后,服务可用并且不发生数据丢失。
缺点
① 两地之间若使用到了ISP网络专线,会导致整个组网从成本上来看,非常昂贵。
② 两地三中心需设置 5 副本,数据冗余度增加,增加空间成本。
总结
以上是关于同城双活、异地多活和两地三中心组网方案在容灾方面的应用。其实异地多活也分为多种类型,篇幅有限,只做简要介绍。