存储双活架构设计规范.docx
《存储双活架构设计规范.docx》由会员分享,可在线阅读,更多相关《存储双活架构设计规范.docx(25页珍藏版)》请在第一文库网上搜索。
1、存储双活架构设计规范我们知道,对于容灾架构来讲,脑裂是灾难性的事件。如果从一个统一集群的调度变成两个相互独立的集群调度,意味着双方的写操作相互也是独立的,但是他们的存储空间是共享的,AA模式下通过锁机制控制并发,HA模式下通过存储卷的OWner控制写的权限。但是独立之后意味着两个集群可以随时写入同样的存储地址,必然会造成脏写脏读等一系列数据不一致事件,这对业务来讲是灾难性的。那么存储双活架构的设计当中,应该采用什么样的设计思路或者是方法才能避免这种情况的发生?四:为避免脑裂,存储双活架构设计应遵循哪些思想和方法?本次议题将由本人以及江西农信运维技术经理邓毓、哈尔滨银行系统专家团队存储管理员张鹏
2、分别主张议题下的相关关键点,几位专家的主张在某农信资深技术经理雷智、宁夏银行技术经理陈明福的复议后,最终形成一定的共识供同行参考。社区专家主张赵海某金融系统高级主管:每一种集群都会有相应的解决方法,通常可以通过节点优先级及仲裁的方式来解决,但是我们在利用这些策略进行架构设计的时候必须知道其原理以及最佳实践的方法。容灾设计过程中避免脑裂问题的思路-默认优先级解决方案以两个节点的OraC1eRAC为例来讲,Orac1eRACASM管理模式下,磁盘组通常有三个(+DATA,+FR,+OCR),在OCR磁盘组当中所有的磁盘中存储的数据包括两部分,一部分是VOteFi1e,另夕I部分就是OCR(Orac
3、1eC1usterRegistry)oVoteFi1e是用来记录集群节点的磁盘心跳信息,而OCR是保存集群配置信息的数据。VoteFi1e,以整个文件的方式存储在OCR磁盘上,不做任何条带。表1是其信息记录的一个说明。表1Orac1e仲裁逻辑信息表1是一个三节点的OraC1eRAC集群的VOteFiIe的一个示意矩阵,每一行是一个节点的写入的信息,例如第一行,InStanCe1分别把其对集群中的三个成员(1、2、3)进行私网检测的结果写入到仲裁文件当中,InStanCe2、Instance3同样把其检测结果写入仲裁文件,最终组成了三个节点的仲裁矩阵。当私网发生故障导致网络上导致集群分割为几个孤
4、岛子集的时候,在网络心跳同票数情况下,仲裁算法有两个非常重要的规则:一、保障隔离后的集群子集中节点数目最多的子集存活。二、当隔离后的集群子集获得的仲裁票数相等时,保障实例号小者存活。当两个节点的OraC1eRAC集群面临私网故障的时候,必然会遵循以上规则,从规则内容上可以看出,第一条规则基本没有什么意义,双方的资源是对等的;但是第二条规则直接决定了集群的最终状态,那就是实例号小的节点成为新的集群,这就避免了脑裂的存在。所谓资源失衡配置解决方案,就是要在容灾设计之初就保障主数据中心的资源配置要多于灾备中心,从而使得两个数据中心节点可以获取到的仲裁资源处于不平衡状态。图1资源失衡架构如图1所示,容
5、灾设计的时候可以将主备数据中心的节点分布数量或者仲裁文件分布数量按照2:1的非平衡策略设置。那么按照集群仲裁的一般规则:发生集群分裂故障的时候,可以获得更多仲裁资源的子集将成为新的集群。当发生数据中心之间的网络故障的时候:1)主数据中心内部两个节点可以获取到更多的网络心跳,自然会接管集群。2)主数据中心的节点可以获取到更多的磁盘心跳,同样会接管集群。这也符合我们设计之初衷。但是,这种方法只适合于AA模式的多节点集群,不适合HA模式的架构。自定义优先级的解决方案,其实本质上与OraCIeRAC的仲裁算法第二条“当隔离后的集群子集获得的仲裁票数相等时,保障实例号小者存活。”是一样的。只不过对于Or
6、aC1eRAC,当通过第一条规则无法判断的时候(节点获取的仲裁资源矩阵是平衡的),它默认采用了实例号定义其优先级。图2自定义优先级架构而其他的一些容灾方案,这个优先级定义的灵活性留给了客户。例如图2当中的VP1EX产品,尤其是在双活架构的设计当中,有可能因为地域、设备新旧、运营管理等方面的差异,导致灾备中心的运行能力会稍差,那么发生数据中心之间隔离的这种故障时,大家往往希望保留主数据中心的运行。这个时候客户就可以根据主数据中心的节点标识来固定其仲裁优先级。仲裁解决方案O网络仲裁网络资源是集群仲裁当中非常重要的一种心跳资源,因此通过第三方网络资源的可达性心跳信息来判断对称集群分裂后的新秩序也是一
7、种非常有效的方法。一般在以存储网关实现数据双写的容灾架构当中比较常见,比如VP1EX、SVC.MCC等。具体原理如图3所示:图3三方网络仲裁架构第三方仲裁点需要满足的条件:与主备两个数据中心13可达,并且网络质量稳定。仲裁点一般需要安装具备网络探测功能的虚拟服务器或者物理服务器,具备运行条件。如图3所示,仲裁点服务器上的软件会与组成集群的存储器网关两个节点分别发送PING/ACK来确认双方的健康情况,集群会把两个节点与第三方仲裁点的网络仲裁心跳看做是最终的裁判。Vp1exWitness通过管理IP网络连接至两个集群节点,通过将其自身的观察与集群定期报告的信息进行协调,让集群可区分是集群内故障还
8、是集群间链路故障,并在这些情况下自动继续相应站点上的I/O服务。Vp1exWitness仅当分离规则没有定义时才会生效。当然细心的读者可能产生了一个新的问题:如果数据中心与第三仲裁站点的网络发生故障,那会不会影响集群本身的运行?什么是仲裁?仲裁是只有发生集群隔离故障的时候才会起作用,如果没有发生数据中心之间的隔离故障的时候,即使他们的一方或者双方于第三方仲裁站点发生网络暂时中断的事件,也不会对既有集群造成任何健康影响。我们需要做的是保障第三方仲裁资源在发生故障的时候有效就可以了(监控&及时修复)。O存储仲裁存储一般是数据库集群当中非常关键的仲裁资源,数据库集群的节点负载比较重,不像存储网关模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 架构 设计规范