详解容灾架构中的脑裂问题.docx
《详解容灾架构中的脑裂问题.docx》由会员分享,可在线阅读,更多相关《详解容灾架构中的脑裂问题.docx(8页珍藏版)》请在优知文库上搜索。
1、InstancelOKNGNGInstance2NGOKOKInStanCe3NGOKOKInstancelInstance2InstanceS以上是一个三节点的ORAC1.ERAC集群的VoteFile的一个示意矩阵,每一行是一个节点的写入的信息,例如第一行,Instancel分别把其对集群中的三个成员(1、2、3)进行私网检测的结果写入到仲裁文件当中,InStanCe2、InStanCe3同样把其检测结果写入仲裁文件,最终组成了三个节点的仲裁走阵.当私网发生故障而从网络上导致集群分割为几个孤岛子集的时候,网络心跳同票数情况下,仲裁算法有两个非常里要的规则:保障隔需后的集群子集中节点数目最多
2、的子集存活.当隔离后的集群子集获得的仲裁票数相等时,保障实例号小者存活.当两个节点的OradeRAC集群面临私网故障的时候,必然会遵循以上规则,从规则内容上可以看出,第一条规则基本没有什么意义,双方的资源是对等的;但是第二条规则亘接决定了集群的最终状态,那就是实例号小的节点成为新的集群.这就避免了脑裂的存在.1.2 资源失衡配置解决方案所谓资源失衡配背解决方案,就是要在容灾设计之初就保障主数据中心的资源配置要多于灾备中心,使得两个数据中心节点可以获取到的仲裁资源处于不平衡状态.如上两图所示,容灾设计的时候可以将主密数据中心的节点分布数量或者仲裁文件分布数量按照2:1的非平衡策略设置.那么按照集
3、群仲裁的一股规则:发生集群分裂故障的时候,可以获得更多仲裁资源的子集将成为新的集群.当发生数据中心之间的网络故障的时候:第一种架构,主数据中心内部两个节点可以获取到更多的网络心跳,自然会接管集群.第二种架构,主数据中心的节点可以获取到更多的磁盘心跳,同样会接管集群.这也符合我们设计之初衷.但是,这种方法只适合于AA模式的多节点集群,不适合HA模式的架构.1.3 自定义优先级解决方案自定义优先级的解决方案,其实本质上与OradeRAC的仲裁箕法第二条“当隔离后的集群子集获得的仲裁票数相等时,保障实例号小者存活.”是一样的.只不过对于OraCIeRAC,当通过第一条规则无法判断的时候(节点获取的仲
4、裁资源矩阵是平衡的),它默认采用了实例号定义具优先级.而其他的一些容灾方案,这个优先级定义的灵活性留给了客户。例如图当中的VP1.EX产品,尤其是在双活架构的设计当中,有可能因为地域、设备新旧、运营管理等方面的差异,往往灾备中心的运行能力会稍差,那么发生数据中心之间隔离的这种故障时,大家往往希望保留主数据中心的运行.那么这个时候客户就可以根据主数据中心的节点标识来固定其仲裁优先级.3 .仲裁解决方案3.1 网络仲裁网络资源是集群仲裁当中非常更要的一种心跳资源,因此通过第三方网络资源的可达性心跳信息来判断对称集群分裂后的新秩序也是一种非常有效的方法.一般在以存储网关实现数据双写的容灾架构当中比较
5、常见,比如VP1.EX、SVC.MCC等.具体原理如下图所示:第三方仲裁点需要满足的条件:与主备两个数据中心1.3可达,并且网络质最稳定.仲裁点一般需要安装具备网络探测功能的虚拟服务器或者物理服务器,具备运行条件.如图所示,仲裁点服务器上的软件会与组成集舞的存储器网关两个节点分别发送P1NG/ACK来确认双方的健康情况,集群会把两个节点与第三方仲裁点的网络仲裁心跳看做是最终的裁判.VplexWitness通过管理IP网络连接至两个集群节点,通过将其自身的观察与集群定期报告的信息进行协调,让集群可区分是集群内故障还是集群间链路故障,并在这些情况下自动继续相应站点上的I/O服务.VplexWitn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 详解 架构 中的 问题