|
第12期 - 2015年7月
什么是孤岛状态 ( Site
Isolation ) ?
在一个异地双活 ( dual-site active-active ) 的 HA 配置架构下,当发生两地引擎集群 ( clustered engines ) 之间的光纤通道 ( Fibre Channel,FC ) 因故断链,而每一引擎各自仅能看到其本地的 FC 节点 ( 即服务器和存储 ),但无从得知异地节点之情况时,我们将此状态称为“FC孤岛” ( FC Isolation )。 Loxoll 的 HA-AP 存储高可用引擎,在设计时内建侦知异地站点 ( remote site ) 故障,并进而接管引擎集群的功能。在上述的 FC 孤岛状态下,虽然仅仅是两站点间光纤断链,但是两地的引擎都会认为是异地站点发生故障,因而决定接管并与其本地节点继续运营,这就是所谓的“脑裂现象”。 一旦发生脑裂现象,每一个引擎会视其本地镜像组员 ( mirror member ) 为活跃 ( active ) ,而视异地镜像组员为失联 ( missing ) 。既然双方均假设对方故障而导致各自为政,两地的镜像组员就会因为后续的本地 I/O ,而出现数据分歧,这绝对不是个好现象。更糟糕的是,这个现象所造成的麻烦,可能不会立马浮现;所以虽是两地各自为政,却又都自以为是,对于逐渐增长的数据分歧浑然不觉。 Loxoll HA-AP 如何处理孤岛状态?
在引擎间利用管理端口 ( E1 ) 实施以太心跳 ( Ethernet Heartbeat ) ,用以协助识别 FC 孤岛 ( FC Isolation ) 和异地站点故障 ( remote-site-down ) 。一旦引擎无法经由 FC 正常沟通,即可借助以太心跳来判断是异地站点故障 ( 无以太心跳 ) ,还是仅仅因为 FC 断链 ( 有以太心跳 ) ,然后采取适当应对措施,避免脑裂现象。 如何处理 FC 孤岛 ( FC Isolation Protection ) 。通常同一集群中的引擎在察觉到 FC 节点拓扑发生变化时,会彼此进行 re-sync 动作;而每次引擎 re-sync 时,就会执行以下的 FC 孤岛状态评估步骤: 1. 如果一个引擎无法访问任何存储,它会无条件自行停止运营。这样做的目的,是协助提供其他仍可访问存储的引擎做出适当决定的有利条件。
2.
如果一个引擎能够经由 FC 连接集群中至少一个异地引擎,它会继续正常运营。
3. 如果一个引擎无法经由 FC 连接集群中任何一个异地引擎,它会检视以太心跳数据,用以判断自己是处于绝对孤岛状态,收不到任何异地引擎的心跳;或仅是处于 FC 孤岛状态,至少能够收到一个异地引擎的心跳。
4. 如果判断处于FC孤岛状态,配置定义属于系统设定之主要站点 ( primary site ) 的引擎会继续运营,而配置定义属于系统设定之次要站点 ( secondary site ) 的引擎会停止运营,以避免发生脑裂现象。
绝对孤岛
那么是否有可能FC和以太心跳同时断链呢?机会很小,但是并非绝无可能,我们称这种状态为“绝对孤岛” ( Total
Isolation ) ,同样是会导致脑裂现象。 未完待续。。。 |
存储厂商 如何让标准的 SAN 存储蜕变为企业级的 HA 解决方案? 企业 IT 专业 如何完善您的 IT 基础设施以实现无间断业务连续性? HA-AP 欢迎注册!您只需提供简单的联系信息,即可下载。 联系我们:
|