SandStone USP是杉岩数据推出的统一存储平台,提供块、文件和对象存储服务。可以同时支持各种数据库负载、虚拟化应用和云原生应用,满足关键业务和形态各异的众多应用的不同存储需求。近日,SandStone USP发布V 5.2.1版本,新版本在行业中率先支持了ALUA机制,极大增强产品块存储服务的适配能力,满足用户在传统应用场景下对存储产品性能和可用性的要求。
ALUA是英文Asymmetric Logical Unit Access的缩写,即非对称逻辑单元访问。ALUA是SCSI协议定义的标准多路径接口,使得存储设备在无需自研多路径加持的情况下,配合支持标准ALUA的第三方多路径软件即可实现I/O路径的优化。
在ALUA工作时,主机多路径软件会将访问存储设备的物理路径分类并赋予不同的访问优先级,一般来说分为AO(Active Optimized)及AN(Active Non-optimized)两类路径。从路径分类名称可以看出,主机优先选择从AO路径下发业务到存储设备,达到优化I/O路径的目的。主要工作过程为:
1.主机优先从AO路径下发I/O;
2.在当前AO路径无法提供访问时,主机可以从存储设备查询新的AO路径,并从新的AO路径下发I/O;
3.当存储设备的所有AO路径都无法提供访问时,主机I/O将从AN路径下发。
图 1 :AO与AN路径工作过程示意图
上述过程,需要在主机多路径软件和存储设备同时支持ALUA的情况下,相互配合达到优化I/O路径的效果。
图 2 :AO与AN的差异示意图
对存储多路径机制稍有了解的朋友都知道,主机连接存储设备的物理链路虽然有多条(例如图中典型的AO/AN2条路径),但是每条路径上处理I/O的能力不一定相同。例如传统存储阵列的LUN在阵列内部归属于某一控制器,当从非归属控制器上的链路接收到主机I/O后,必须要转发到归属控制器进行处理,这不仅增加了阵列内部负载,而且整个I/O处理路径也比归属控制器上的链路长。
即使是分布式存储中理论上LUN无归属,但是不同LUN来自不同主机的I/O压力不同,那对应不同存储节点的I/O处理压力不同,甚至同一节点不同时段的I/O处理压力也不同,显然通过低负载节点的链路下发I/O必然是一个优先选择。
此外,当分别从不同路径访问同一片存储资源时(例如LUN的同一个LBA),为了避免访问冲突,需要对I/O处理相关的资源进行加锁操作,实现I/O处理过程中对资源的独占操作。
加锁/解锁操作本身消耗资源,而且加锁颗粒度如果较大(例如极端场景下对整个LUN加锁),会造成该LUN其他与I/O无关的地址范围访问受到影响,极大降低I/O处理并发能力。如果主机持续从AO路径下发I/O则不会涉及到频繁的加/解锁操作,从而释放存储设备的处理能力。
SandStone USP此次版本升级在支持ALUA特性上有如下亮点:
自动优选路径
SandStone USP提供了独特的AO路径优选算法,根据用户配置的主机访问路径,结合存储设备内部的运行状态,自动从多条备选路径中选择LUN的AO路径上报主机。
故障快速切换
SandStone USP具备SCSI目标器及其主机路径故障的快速检测能力,当检测到相关故障发生时,存储系统快速计算最新AO路径上报主机,配合存储系统内部的AO路径快速切换机制,提供故障场景下的秒级切换能力。
动态负载均衡
存储系统实时统计LUN负载信息,并通过负载情况计算对应的AO路径,配合AO路径快速切换机制,实现灵活动态的LUN级别负载均衡。
SandStone USP产品在一套存储平台上同时提供块、文件、对象服务能力,满足业务系统对结构化、半结构化和非结构化数据的存储需求。通过对产品的持续打磨和优化,SandStone USP块服务不仅实现了PR/RR、VAAI等高级协议特性,加之近期完善了的ALUA等特性,更完整地兼容SPC-2、SPC-3和SPC-4规范,为客户传统应用使用SDS存储提供了更完整的兼容性和丰富的高级功能。