IO从优选控制的IO组(Active/Optimized)下发IO,多路径不会发送该LUN的IO到其他控制器,一般通过将LUN A归属控制器A,将LUNB归属给控制器B实现两边的负载均衡,归属操作可以手动或自动完成。
还有一种是A/P(Active/Passive)机制,一般只用在低端双活存储阵列中。现在这种架构已经很少见了。对于特定的LUN来说,在对应存储的路径中只有一个控制器的目标端口处于主动/优化(Active/Optimized)状态,其他控制器的目标端口处于备用或平时不工作状态,其负载均衡处理方式与ALUA类似(即根据优选控制器来决定),但是由于多路径和存储互不相识(多路径不知道那些路径是优选路径),IO很难选到合适的路径,IO的下发可以说这完全取决于上层多路径的心情,解决方案是提供自研多路径来配合阵列选路,通过私有协议实现IO到优选路径的匹配。
ALUA在双活中如何应用
前面在双活解决方案系列中,不知一次提到基于多路径ALUA实现IO优选路径下发,从而避免IO在主备数据中心来回转发带来的IO时延问题。多路径主要有以下几个功能。
1、通过路径管理把SCSI上报的物理路径管理起来,对主机呈现一个虚拟的路径(SCSI设备),这样可以防止主机在读写设备时带来的数据不一致问题。
2、基于IO策略选择物理路径,实现IO业务负载均衡和业务分担。
3、当主路径发生故障时,可以对IO进行透明的主从切换(FailOver),当路径恢复后自动进行回切(FailBack)。
这些特性主要是针对一个Volume或LUN而言的,那么在一套存储系统中,如何识别多个路径上报的设备是同一个LUN呢?答案其实很简单,只需要LUN在上报时采用同样的WWN或LUN ID多路径就会认为这些不同路径上报的LUN是同一个设备。
在双活的两个存储系统中,通过在阵列侧把不同阵列LUN(双活Pair)的WWN或LUN ID设置成一样,配合可靠的冗余交叉组网上报设备时,在主机上就会把两个存储系统的LUN识别为是同一个LUN,在主机IO下发时,如果多路径支持ALUA模式 ,那就可以把本地存储路径设置成Active/optimized,把对端存储路径设置成Active/unoptimized来实现IO和性能优化。