您的位置:首页 > 其它

如何基于DNS进行二个机房的数据中心切换

2017-05-11 23:57 253 查看
假设有二个区域A和B,其中A为老平台,B为新平台,并且所有的业务都通过后台服务,不会发生直接操作数据的情况,其过程主要四个阶段:

1>全量备份A的数据到B的平台

2>二个数据中心同时进行写,然后比对新环境下和老环境的数据一致性





注意:

1)将从区域A中的数据都通过2-2转发到区域B的负载均衡设备上

2)数据比对服务要长时间跟踪二边数据的不一致,如果发生不一致,手动矫正,如果是程序的bug,进行修订

进行第三步的条件:二边的数据达到一致,并且在新增数据的情况下,仍然保持一致

 

3>更改dns服务到新地址,区域A只负责转发数据,区域B进行实际的业务处理





注意:

a)dns在全局的广播完成,需要一个时间,这个时间客户端有的请求到区域A,有的请求到区域B,要有一段时间才可以将DNS全部更新到各个节点,大概数小时以上

b)需要监控从区域A接入的数据的数量

进行第四步的条件:区域A已经接收不到数据

 

4>将区域A的服务都进行停止,到此,数据中心切换完成

 

从CAP中的P的角度来分析下切换过程:

 





分析:

a)步骤一开始的状态为S,然后区域A和区域B各自进入自己的状态,如果在步骤2中针对分区A的操作有直接数据库的操作,没有转移到区域B中,那么二边的数据会不一致,如果出现这种情况,要自动恢复的话,设计上有一个前提是变化的数据可以很容易的从区域A中抽出来,这样就比较方便的进行手动或者人工的分区合并

b)步骤3主要是为了容忍网络环境下DNS更新到一致性必须需要一个较长的时间

 

总结:切换的过程还是有很多细节上的注意事项,但是大体流程异常。如果有直接操作数据库的业务,那么方案可能更加复杂一些,后续补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: