在分享数据中心存储双活系列文章中,参考文章“双活架构设计必读的10篇深度文章”,不止一次提到多路径ALUA模式,也有很多小伙伴要求我简单讲讲ALUA相关知识,虽然随着专业存储的市场下滑,专业存储市场份额也会渐渐缩小,但是专业存储的应用场景还在并没有消失。存储专业厂商不断整合和并购主要是要保住销售增长和孵化技术,为新一轮技变革变铺平道路,当机遇出现时,具备抓住机遇的软硬实力。
今天简单给小伙伴普及下ALUA相关知识和技术。
什么是ALUA多路径机制
ALUA是异步逻辑单元访问(Asymmetric Logical Unit Access)的缩写,ALUA是SPC3 (SCSI Primary commands-3)协议中规定的目标器端口组TPGS (Target Port Group Support)访问模型中的一类子集,可用于处理A/A-A (Active/ Active-Asymmetric) 和 A/P(Active /Passive)阵列的多端口访问管理。所以通常情况下,ALUA被认为是一种多路径访问模型。但实际上ALUA需要多路径和存储阵列同时支持才能实现路径优化访问,它更是前端控制器多路径机制。
存储前端控制器多路径机制在一定程度上决定存储的读写性能和可靠性,现有的前端控制器多路径机制大致可分为A/A-S(Active/Acivie-Symmetric)、ALUA和A/P(Active/Passive)三大类。
先说说A/A-S(Active/Acivie-Symmetric)机制,对于特定的LUN来说,在它的路径中,多个存储控制器的目标端口均处于主动/优化(Active/optimized)状态。多个控制器之间通过PCIe或Infiniband等实现高速互联的通讯,从主机侧发送一个IO到控制器端后,多个控制器可同时参与IO处理;存储系统会自动负载均衡,当一个控制器繁忙或业务压力较大时,存储系统不需要主机端多路径负载均衡软件参与就可以自动实现负载均衡。
对于ALUA(Active/Active-Asymmetric)机制来说,特定的LUN在控制器的路径组中,只有一个控制器的目标端口组处于主动/优化(Active/Optimized)状态,其他控制器的目标端口组处于主动/非优化(Active/Unoptimized)状态。某个时刻一个特定LUN只属于某一个优选控制器,在多路径的配合下,IO从优选控制的IO组(Active/Optimized)下发IO,多路径不会发送该LUN的IO到其他控制器,一般通过将LUN A归属控制器A,将LUNB归属给控制器B实现两边的负载均衡,归属操作可以手动或自动完成。
还有一种是A/P(Active/Passive)机制,一般只用在低端双活存储阵列中。现在这种架构已经很少见了。对于特定的LUN来说,在对应存储的路径中只有一个控制器的目标端口处于主动/优化(Active/Optimized)状态,其他控制器的目标端口处于备用或平时不工作状态,其负载均衡处理方式与ALUA类似(即根据优选控制器来决定),但是由于多路径和存储互不相识(多路径不知道那些路径是优选路径),IO很难选到合适的路径,IO的下发可以说这完全取决于上层多路径的心情,解决方案是提供自研多路径来配合阵列选路,通过私有协议实现IO到优选路径的匹配。
</