暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于双活容灾,你必须知道的几件事

连通梦想 2021-07-20
4421
最近某厅局为保障核心业务系统的稳定性,准备在省政务云上部署应用容灾,按“业务双活,数据备份”的总体架构考虑。结合本人之前的IT工作经历,也简单聊几句。

一、先澄清几个概念

1、什么是容灾:容灾一般指的是建立两套(或以上)相同的系统,其中一个系统宕机,另一个系统能实时接管或几分钟之内接管。

2、容灾和备份的区别:备份,往往指的是数据备份,备份一般指在主、备系统都损毁的极端情况下,能够保留一份救命的备份数据。所以,备份数据往往放在异地。备份数据恢复的时候,需要先重应用系统,再将备份的数据备份导入应用系统,整个历时会比较长。

 

二、业界常见的容灾模式

1、从容灾系统的对灾难的抵抗程度来看,可分为数据容灾应用容灾

数据容灾,只有一套应用系统,对应两套数据存储系统,数据实时复制。

应用容灾,比数据容灾的层次要高,即建立一套完整的、与本地系统相当的备用业务系统。在灾难出现后,可迅速接管或承担本地系统的业务。

 

2、从两套业务系统的相互关系来看,可分为主备容灾、双活容灾

主备容灾:两套业务系统,一套为主用生产系统,另一个备用生产系统。平常由主用生产系统提供服务,另一个系统不承担任何流量,数据在主备之间同步复制。只有在主用生产系统瘫痪,备用系统才启用。

双活容灾:两套业务系统,同时处于运行当中,类似于负载均衡,所以也就无所谓谁是主、谁是备了。

容灾模式下,特别是双活架构下,对两套系统之间通信线路质量、时延要求最高。至于高到什么程度,好像也没有国际标准,业内主流IT厂家比较认可的是单向时延3ms以内。关于两套系统之间的距离,普遍认可的是至少要求200公里以内。当然也有厂家提出80公里、60公里、甚至40公里的要求,个人认为那些主要是考虑裸光纤直接连接,其实质最终追求的还是链路的高可靠性、低时延,以当前的运营商新建的OTN网的品质来说,目前珠三角地市之间都还好。

 

3、根据不同系统部署的物理位置的不同,可分为本地容灾同城容灾和异地容灾

实际上,在同一机房建两套系统也是可以的,那就是本地容灾放在两个不同机房,主要是为了防范火灾、建筑物破坏、供电故障、计算机系统及人为破坏引起的灾难,所以常常会将两套系统放在同城的不同机房。两个机房在同一城市,即为同城容灾,在不同城市即为异地容灾。异地肯定不能太远,据了解,淘宝、天猫最多也就杭州、上海之间做双活容灾。

 

三、关于双活容灾要注意的事项

双活的两套业务系统都承担流量,其实也要看承担到哪层。如果只是应用层双活,但是数据访问、异步消息等还得回到主站调用,那也不是真正的双活。

所以,双活必须保证每个业务系统都是独立运行的,所有的调用都是本机房调用且闭环,且底层数据同步。

一句话:首先要,一定要,考虑业务系统的自身架构

当然,双活要考虑的事情还很多:链路时延,成本,维护力量 ……

 

四、典型的容灾备份架构--- “两地三中心”双活架构

两地:同城及异地。同城做双活,异地做备份。

三中心:生产中心1、生产中心2,异地灾备中心。

在同城两个生产中心建设两套相同的业务系统同时对外提供服务;同时,在异地灾备中心建设备份系统用于数据的备份。当同城的双中心都发生故障,异地灾备中心可以用备份数据进行业务的恢复。总体架构一般如下:

  


异地灾备,更多是考虑防范战争、地震、水灾等极端情况下的风险。所以,异地的距离一般要求大于200KM,异地数据一般采用异步复制模式。

  

说在最后的话:

在设计容灾和备份方案的时候,一定要考虑自己想要的是什么,并不是越高大上越好。我刚工作那会曾做过某银行系统的灾备系统实施,当时的实施方案比较简单:核心业务系统做互为主备(记得两台UNIX服务器都安装sentinel软件),通过心跳线监测。一套磁盘阵列做存储,另有一套异步备份。虽然架构简单,回头想想,其实挺实用的。

双活与灾备的目标,有时是背离的,从另一个角度来看,它又将“备份”的保险系数拉低了。

 


文章转载自连通梦想,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论