存储双活模式下的两种故障仲裁机制.docx
存储双活解决方案必须要具备足够充分的高可用特性和合理的容灾保护与仲裁机制,以应对各种各样复杂的的灾难故障场景,以极短的故障恢复时间和几乎为零的故障恢复目标,解决可能遇到的故障灾难。存储双活模式下,通常而言具有以下两种故障仲裁机制:
1.静态优先级模式:主要应用在无第三方仲裁服务器的场景,在发生链路中断脑裂现象时,强制使优先的存储节点继续提供服务。
2.仲裁服务器模式:应用在有第三方仲裁服务器的场景,将仲裁服务器部署于第三方站点,在这种模式下,可同时设置静态优先模式,实现双仲裁保护能力。
静态优先级模式:
如图1所示为静态优先模式仲裁示意图,列举了三个故障场景和对应的仲裁处理结果:
图1?静态优先模式仲裁示意图
1)当两个站点间链路出现故障时,静态优先模式设置H1站点为静态优先站点,此时H1站点将继续对外提供读写服务,H2站点将停止读写服务,在主机端I/O访问策略设置为优选阵列模式时,H1站点的主机将继续本地读写H1站点存储,H2站点主机既无法读写H2站点存储也无法通过切换跨站点链路访问H1站点存储;
2)当非静态优先的站点H2存储出现故障时,H1站点存储同样继续提供读写服务,但H2站点主机可通过配置的多路径I/O策略,通过跨站点链路继续读写H1站点存储;
3)当静态优先的站点H1存储出现故障时,H1和H2站点均不再对外提供读写服务,两个站点主机的读写将完全中断,此时,只能通过人工的方式,将H2站点的存储激活,继续提供读写服务。
仲裁服务器模式(单故障场景):
如图2所示,QS为仲裁服务器,S1为静态优先仲裁方。有以下几种故障场景:
图2单故障场景处理示意图
1)当仲裁服务器本身出现故障时,S1和S2存储能够持续对外提供读写服务,主机业务无任何影响,此时由于缺少了仲裁服务器,将自动进入静态优先模式;
2)当S1或S2存储出现故障时,仲裁服务器能够及时探测到故障存储,停止故障存储的读写,全部读写均由存活存储提供,在主机端I/O访问策略设置为优选阵列模式时,存活存储所在站点的主机可以继续本地读写存活存储,而远端主机则将自动切换至跨站点I/O路径继续读写存活存储;
3)当S1和S2存储间的链路出现故障时,等同于单站点存储故障场景,均需要仲裁服务器进行仲裁,判定某个站点存储失效,全部读写服务由一个存储提供,只有存活的存储所在站点的主机能够读写存活存储,而远端站点主机由于链路故障,无法通过跨站点I/O路径继续读写存活存储。在该场景下,存活的存储将通过划分的额外空间来记录链路故障期间,存储间的数据差异,待链路恢复后,通过差异数据增量同步配置和数据;
4)当S1或S2存储与仲裁服务器间的链路中断时,双活存储间链路正常,不做任何仲裁判断,两端主机正常读写双活存储。
仲裁服务器模式(双故障场景):
如图3所示,QS为仲裁服务器,S1为静态优先仲裁方。有以下几种故障场景:
图3双故障场景处理示意图
1)当S1存储与仲裁服务器,S2存储与仲裁服务器间的链路同时或者先后中断时,由于S1和S2间的链路完全正常,主机正常读写双活存储,并且由于缺失了仲裁服务器响应,双活存储将自动进入静态优先模式;
2)当S1和S2存储,其中单个存储与仲裁服务器间的链路同时或者先后中断时,此时仲裁服务器将介入仲裁,判定与仲裁服务器通信正常的存储存活,并对外提供读写服务,且只有存活存储所在站点的主机才能继续访问存活存储;
3)当单个存储出现故障,另一个存储仲裁胜利后,存活存储与仲裁服务器间的链路再出现故障时,由于已经仲裁完成,选举了获胜存储,只要不是该存活存储故障,其他仲裁服务器故障和链路故障都不再影响获胜站点主机的读写访问;
4)当仲裁服务器出现故障后,单个存储也随后出现故障。该场景下,仲裁服务器故障将使得仲裁模式进入静态优先模式,由S1存储继续提供服务,当故障的存储为非静态优先存储时,即S2存储故障,此时S1存储可继续对外读写,S1和S2站点的主机均可通过多路径访问S1存储。当故障的存储为静态优先存储时,即S1存储故障,此时无法继续仲裁,所有存储读写访问中断;
5)当仲裁服务器出现故障,存储间的链路也也随后中断,此时由于仲裁服务器故障将进入静态优先模式,存储间链路中断不会影响优先站点存储继续提供读写服务,但只有优先站点的主机才能读写该存活存储。