存储互联
存储互联

大家知道专业存储产品都是双控制器架构,双控制器架构意味着两个控制器之间可以互为备份,当控制器A发生故障的时候,另一个控制器B会来接管控制器A上的业务,保证前端的业务连续性。这个切换过程会涉及到两个控制器之间对后端资源的控制权的问题。


众所周知:每一个LUN(后端资源)的控制权都是唯一的,即它只能被一个用户去写,这样它只能被一个控制器锁定,另一个控制器只能在旁边监控,只有控制器发生故障或强制执行释放这个LUN的控制权,另一个控制器才会对这个LUN有控制权。


理解了这些我们看看早期存储是如何处理异常的,早期的存储采用主动/被动(Active/Passive)的方式来实现控制器的故障切换:对于后端的资源LUN来说,在它的路径中,一个控制器的目标端口处于主动(Active)状态,另一个控制器的目标端口处于备用(Standby)状态。当Active的控制器发生故障时,Standby的控制器会来接管。

simditor-img

但是这种实现方式在实际应用中会出现许多不便:

1、控制器切换时前端应用等待时间过长,如果切换时间大于前端业务的容忍时间就会发生业务中端;

2、如果只是链路损坏或者是微小故障,都会发生整个控制器的切换;

3、控制器切换后所有业务在一个控制器上,业务压力增大;


这时就有了一种更优化的双机实现方式:异步逻辑单元访问(ALUA:Asymmetric Logical Unit Access)的实现方式Asymmetric Active/Active,对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动优化状态(Active/optimized),另一个控制器的目标端口也处于主动,但是是非优化状态(Active/unoptimized)。在某一个时刻,这个LUN只是属于一个控制器,当这个控制器一端I/O路径发生故障时,不会直接触发控制器的切换(避免闪断和时长),IO通过控制器通道发送到SPA处理,如果重定向的I/O数量达到一定的阈值后,存储会认为原来的路径已经“完全死亡”,不在期望其恢复,所以会触发trespass把LUN切换到另一个控制器。

simditor-img

最后到了重点:

联想的S2200/S3200和V3500/V3700都是使用的ALUAActive/Active的方式来实现切换,高大上的技术吧。

吕老师第一场培训:点击我

吕老师第二场培训点击我


吕磊老师的华丽简介:

混迹中国IT圈14年,从港湾到华三存储线,每个岗位都待到公司解散,最终被联想收留。

中国最早一批专业存储底层设计开发团队核心成员之一,结果团队解散为人做了嫁衣,骨干员工成就了华赛(华为)、UIT、宏杉、宇视。

工作经历复杂,革命的砖头随处垫:玩过示波器、测过频谱仪、画过PCB单板、写过shell测试脚本,测试过1000块硬盘的存储满配性能,也规划过存储产品的roadmap。

十多年的存储行业从业经验的老家伙。有两个存储相关的发明专利。

simditor-img

simditor-img

评论 写短评
这篇文章还没有评论