从IT应用架构角度,畅谈双活数据中心容灾解决方案(2)
要点:
内存库双活技术 内存库双活技术,将数据放在内存中直接操作的数据库,相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能. 应用场景:用于实时计费,读写分离场景,主要有Oracle Times Ten,Altibase商用以及华为等相关产品.内存库集群部署主要有HA模式,双活模式,线性拆分和分布式集群四种模式. 内存库通过复制手段,实时地复制到另外一个中心,它们之间是一个跨中心的数据,这是HA模式.另外双活模式,和这个模式是HA模式的延伸,可能一部分表是一个方向复制,另外一些表反过来.还有一种是线性拆分模式,将内存数据放在多个内存库集群中,每个内存库存放一部分数据,并互为备份,这种模式需要应用进行针对性改造.分布式集群模式,自动实现不同数据分片和副本机制,是目前比较流行的一种结构. 数据层双活技术比较 逻辑技术软件容易出现逻辑错误导致数据不一致,而且很难稽核.ADG模式数据在数据库级是完全一致的,当然前提是能正常同步,但是不支持两边同时能读写.从数据延迟来看,不管是ADG还是逻辑复制软件,都跟日志量有关系,后面会讲我们在不同日志量情况下做的测试延迟结果. 二、存储层存储层作为双活系统核心基础架构平台,其双活技术在整个架构中起到关键作用,目前基于存储层双活方案主要有下面三种:
流派一 远程卷管理软件
上面是不用远程卷管理软件的一个情况,我只需要认识到自己机房的存储就可以了.底层存储实现远程复制到容灾存储上,如果改造成远程管理软件,那么服务器既要认到本地存储也要认到对端存储,实现两边都是同时可以对存储读写的,而且还可以通过设置策略,写的话向2个存储同时写,读的话可以优先读本地的,从而可以加快读的速度. 流派二 存储网关虚拟化实现原理:将存储虚拟化技术和Oracle的远程RAC技术结合,实现跨中心的数据双活访问.平时两边主机分别访问本地存储,故障情况下可垮中心访问对方存储.对于同一个数据块的读写冲突机制,是由Oracle RAC来保证的.存储不能直接给服务器访问,需要先通过中间层虚拟化网关设备,再访问存储.为了防止出现两个中心间网络全断情况下,两边互相不知道谁还活着,需要建一个仲裁节点(建议在第三个中心),实现让谁作为主,让谁作为访问的仲裁机制,从而防止数据不一致这种极端情况. 流派三 基于存储自身卷镜像这是一个存储自身卷的镜像,这是一些新的设备情况,它的优点,整个网络架构没有改变,从主机到交换机到存储,也没有增加任何的设备,这种是相对来说比较易于实行(也需要一个仲裁站点). 存储层双活技术对比 这是一个存储层的双活技术比较,容灾技术有2个重要参数,RPO(故障恢复点)和RTO(故障恢复时间).这几种理论上都能实现RPO等于0,也能支持双活读写.从可靠性来看,这个数据不是完全决定的,需要根据实际情况定.从异构性来说,除了存储自身虚拟化和存储HA机制不支持外,其余都支持.但不管存储双活有哪几种,双活都需要用到远程Extend RAC. 三、接入/应用层下图是一个例子,一个比较前端的系统,分为接入/接口层、应用层、主机/数据库层、存储层等,各个层面统筹考虑双活机制,才能实现零切换.首先不能像原来烟筒式的数据库连接,应考虑统一数据库访问接口,并实现应用自动重联机制,确保自动切换,减少人工切换.在应用层,则考虑双中心部署相同的应用集群方式,或跨中心的集群方式. (编辑:ASP站长网) |