控制器与磁盘间跨SASexpander下发IO方法及系统技术方案

技术编号:36403922 阅读:15 留言:0更新日期:2023-01-18 10:11
本发明专利技术提供了一种控制器与磁盘间跨sasexpander下发IO方法及系统。该方法包括:ITS模块从IO请求队列中取出IO请求,并封装成SCSI命令,选择目标设备地址,奇数槽位选择本端expander通道地址,偶数槽位选择对端expander通道地址;SAS驱动将SCSI命令通过SAS总线传送至本端expander;本端expander根据SCSI命令封装的SASaddress选择相应的通道传输;当本端expanderIO下发失败,本端expander返回相应的IOerror至ITS模块,ITS模块修改SCSI命令中的SASaddress为对端expander上对应的通道地址,重新下发IO。本发明专利技术提供的控制器与磁盘间跨sasexpander下发IO方法及系统在当前控制器与expander、存储磁盘之见IO下发失败时,可以通过对端控制器所属的expander将IO下发至存储磁盘。下发至存储磁盘。下发至存储磁盘。

【技术实现步骤摘要】
控制器与磁盘间跨SAS expander下发IO方法及系统


[0001]本专利技术涉及存储系统
,特别是涉及一种控制器与磁盘间跨SAS expander下发IO方法及系统。

技术介绍

[0002]自进入21世纪以来,随着物联网和大数据的崛起,当今社会正在迈入信息化大数据时代。处在大时代背景下,为我们带来便捷的同时,也带来了众多挑战,如何保证数据存储的安全性和高效性,是存储业界面临的共同难题。目前常见的底层存储控制系统架构主要由控制器和磁盘框组成,控制器与磁盘之间的数据交互路径在一定程度上决定了存储系统的数据传输能力,一条可靠的IO交互路径,在保证io传输的稳定性的同时,还要最大限度的提升IO传输的速率。
[0003]在多数存储系统中,为了提高可靠性,防止IO数据在传输过程中存储控制器发生故障而导致数据丢失,常利用双控制器来实现,即通过两个控制器间数据的冗余交互完成相应的存储服务。双控制器存储系统的两个控制器共同持有存储控制柜上存储磁盘的使用权,目前常见的存储磁盘大多为SAS或SATA类型磁盘,SAS(Serial Attached SCSI)网络同时支持SAS与SATA两种类型磁盘,所以存储控制器与存储设备之间传输网络通常采取SAS网络实现。为了提升控制器连接的存储设备的容量,通常采用SAS expander(存储扩展柜)扩展存储系统的存储设备数量,形成控制器、expander、存储设备三者之间的传输网络。
[0004]双控存储控制阵列的控制器与磁盘柜之间通过SAS expander(磁盘输出扩展器)连接,每个控制器连着一个输出Expander,控制器与expander,expander与磁盘柜之间通过SAS线缆连接。SAS expander可以看作硬盘交换机,通过expander可以将很多硬盘连接在一起,SAS Expander分为输出扩展器(Fan

out Expander)和边缘扩展器(Edge Expander),其中输出扩展器可以拓扑扩展器连接边缘扩展器。Expander与设备之间通过传输port进行数据交互,传输port分为宽端口和窄端口,单个宽端口包含多个phy实现,窄端口由单个phy组成,phy由一个发送器和一个接收器组成的差分信号对,每个phy都有一个SAS地址和唯一的PHY ID,同一个传输port内的phy的SAS address相同,宽端口的传输速率由端口内每个phy速率叠加得到,Expander与磁盘之间的通道为窄通道,expander之间的连接通道为宽通道,传输通道的带宽和稳定性决定了IO下发的性能。
[0005]参见图1,现有的存储系统,控制器与磁盘之间IO下发通常通过本端expander下的phy通道进行IO交互,或者通过控制器间的通信机制转发至对端控制器下发IO,目前业界对控制器之间的高速通信机制方面专利较多,而控制器之间expander IO传输链路专利不多,值得深入研究。

技术实现思路

[0006]本专利技术要解决的技术问题是提供一种控制器与磁盘间跨SAS expander下发IO方法及系统,在当前控制器与expander、存储磁盘之之间IO下发失败时,可以通过对端控制器
所属的expander将IO下发至存储磁盘。
[0007]为解决上述技术问题,本专利技术提供了一种控制器与磁盘间跨SAS expander下发IO方法,所述方法包括:业务下发IO操作;SCHED模块将IO操作封装成IO请求帧并插入IO请求队列中;ITS模块从IO请求队列中取出IO请求,并封装成SCSI命令,选择目标设备地址,奇数槽位选择本端expander通道地址,偶数槽位选择对端expander通道地址;SAS驱动将SCSI命令通过SAS总线传送至本端expander;本端expander根据SCSI命令封装的SAS address选择相应的通道传输;当本端expander IO下发失败,原因为phy link繁忙或者连接异常时,返回相应的IO error至ITS模块,ITS模块修改SCSI命令中的SAS address为对端expander上对应的通道地址,重新下发IO。
[0008]在一些实施方式中,SCHED模块将IO操作封装成IO请求帧并插入IO请求队列中,包括:由SCHED模块将IO操作封装成一个IO请求帧并转发至ITS模块,ITS模块将IO请求放入IO请求队列中并返回,等待ITS模块处理。
[0009]在一些实施方式中,ITS模块从IO请求队列中取出IO请求,并封装成SCSI命令,选择目标设备地址,包括:ITS模块通过创建全局线程完成初始化。
[0010]在一些实施方式中,全局线程负责将IO请求从IO请求队列中逐个取出,检查IO请求是否合法,不合法的IO请求返回IO错误,合法的IO请求会被初始化为SCSI命令格式。
[0011]在一些实施方式中,SCSI命令帧的目标SAS地址根据磁盘slot id初始化。
[0012]在一些实施方式中,SCSI命令帧的目标SAS地址根据磁盘slot id初始化,包括:奇数盘IO请求目标SAS地址初始化为本端expander上phy通道的SAS地址,偶数盘的IO请求目标SAS地址初始化为对端expander上phy通道地址。
[0013]在一些实施方式中,本端expander根据SCSI命令封装的SAS address选择相应的通道传输,包括:底层驱动通过SAS总线将SCSI命令传送至本端SAS expander,expander路由机制根据target SAS地址判断是从本端phy通道还是对端expander磁盘的phy通道,若target SAS address是对端的,则通过两端控制器expander之间的宽端口将IO SCSI帧转发至对端expander,通过phy通道发送至磁盘,将IO下发至对应的磁盘设备中。
[0014]此外,本专利技术还提供了一种控制器与磁盘间跨SAS expander下发IO系统,包括:控制器、磁盘柜及expander,控制器与磁盘柜之间通过输出expander连接,每个控制器连着一个输出expander,控制器与expander,expander与磁盘柜之间通过SAS线缆连接,expander包括:本端expander及对端expander,控制器、磁盘柜及expander实现根据前文所述的控制器与磁盘间跨SAS expander下发IO方法。
[0015]采用这样的设计后,本专利技术至少具有以下优点:
[0016]引入通过expander间链路关系实现IO多路径下发机制,提升存储系统的容错性,减轻了控制器expander的传输压力,实现负载均衡的效果,提高了产品竞争力。
附图说明
[0017]上述仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,以下结合附图与具体实施方式对本专利技术作进一步的详细说明。
[0018]图1是现有存储系统的系统架构图;
[0019]图2是本专利技术实施例提供的控制器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种控制器与磁盘间跨SAS expander下发IO方法,其特征在于,包括:业务下发IO操作;SCHED模块将IO操作封装成IO请求帧并插入IO请求队列中;ITS模块从IO请求队列中取出IO请求,并封装成SCSI命令,选择目标设备地址,奇数槽位选择本端expander通道地址,偶数槽位选择对端expander通道地址;SAS驱动将SCSI命令通过SAS总线传送至本端expander;本端expander根据SCSI命令封装的SAS address选择相应的通道传输;当本端expander IO下发失败,原因为phy link繁忙或者连接异常时,本端expander返回相应的IO error至ITS模块,ITS模块修改SCSI命令中的SAS address为对端expander上对应的通道地址,重新下发IO。2.根据权利要求1所述的控制器与磁盘间跨SAS expander下发IO方法,其特征在于,SCHED模块将IO操作封装成IO请求帧并插入IO请求队列中,包括:由SCHED模块将IO操作封装成一个IO请求帧并转发至ITS模块,ITS模块将IO请求放入IO请求队列中并返回,等待ITS模块处理。3.根据权利要求1所述的控制器与磁盘间跨SAS expander下发IO方法,其特征在于,ITS模块从IO请求队列中取出IO请求,并封装成SCSI命令,选择目标设备地址,包括:ITS模块通过创建全局线程完成初始化。4.根据权利要求3所述的控制器与磁盘间跨SAS expander下发IO方法,其特征在于,全局线程负责将IO请求从IO请求队列中逐个取出,检查IO请求是否合法,不合法的IO请求返回IO错误,合法的IO请求会被初始化为SCSI命令格式。5.根据权利要求4所述...

【专利技术属性】
技术研发人员:朱永兵周泽湘文中领
申请(专利权)人:北京同有飞骥科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1