一种用于存储系统的SCSI指令控制方法和系统技术领域
本发明涉及信息技术领域,特别是涉及一种用于存储系统的SCSI指令控制方法和
系统。
背景技术
随着信息技术的进步,IT产业得到了迅猛发展,计算机朝着大容量和高速度方向
发展,这使得计算机产业对计算机设备和存储设备的要求越来越高,对设备的容量、速度、
可持续性、高可用性等都提出了越来越高的要求。
在不断提高对容量、速度等硬件指标要求的背景下,存储系统内部数据的交互性
能也越来越受到关注。SCSI指令标准诞生于20世纪,在计算机性能高速发展的今天,SCSI指
令所代表的传统的IO处理标准,带来了高IOPS资源占用和高延时的问题,已经不能适用当
前计算机发展的要求。
因此,如何使得存储系统在执行SCSI指令时,可以降低IOPS资源占用以及降低延
时,是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种用于存储系统的SCSI指令控制方法和系统,可以使得存
储系统在执行SCSI指令时,降低IOPS资源占用以及降低延时。
为解决上述技术问题,本发明提供了如下技术方案:
一种用于存储系统的SCSI指令控制方法,包括:
获取外界输入的指令信号;
当所述指令信号为写指令时,在发送对应的SCSI指令CDB的同时,将所述写指令对
应的写数据和所述CDB一并发送至存储系统端;
获取所述存储系统端的反馈信号,根据所述反馈信号判断所述写指令是否完成。
优选地,获取所述存储系统端的反馈信号,所述根据所述反馈信号判断所述写指
令是否完成,包括:
判断在预设超时时间范围内是否接收到所述存储系统端的写入失败反馈信息;
若否,则判定所述写指令执行成功;
若是,则判定在指定时间内未能将所述写数据写入到所述存储系统端。
优选地,还包括:
当所述指令信号为读指令时,发送对应的SCSI指令CDB至所述存储系统端;
获取所述读指令对应的读数据,并提取位于所述读数据预设位置的读操作成功标
识信息。
优选地,在将所述写指令对应的写数据和所述CDB一并发送至存储系统端时,还包
括:
将归属于同一写数据的所有frame进行合并。
优选地,所述获取所述读指令对应的读数据,包括:
获取所述读指令对应的经过frame合并的读数据。
一种用于存储系统的SCSI指令控制系统,包括:
指令信号获取模块,用于获取外界输入的指令信号;
指令信号解析模块,用于对所述指令信号进行解析;
数据处理模块,用于在所述指令信号解析模块判定所述指令信号为写指令时,将
所述写指令对应的写数据和对应的SCSI指令CDB一并发送至存储系统端;
检测模块,用于获取所述存储系统端的反馈信号,根据所述反馈信号判断所述写
指令是否完成。
优选地,所述检测模块包括:
获取单元,用于在所述数据处理模块将所述写指令对应的写数据和对应的SCSI指
令CDB一并发送至存储系统端后,获取所述存储系统端的反馈信息;
判断单元,用于判断在预设超时时间范围内是否接收到所述存储系统端的写入失
败反馈信息,并在预设超时时间范围内接收到该写入失败反馈信息时判定在指定时间内未
能将所述写数据写入到所述存储系统端,在预设超时时间范围内未接收到该写入失败反馈
信息时判定所述写指令执行成功。
优选地,还包括:读操作成功标识信息提取模块,用于在所述指令信号解析模块判
定所述指令信号为读指令时,发送对应的SCSI指令CDB至所述存储系统端,并在获取所述读
指令对应的读数据时提取位于所述读数据预设位置的读操作成功标识信息。
优选地,还包括:写数据frame合并模块,用于在将所述写指令对应的写数据和所
述CDB一并发送至存储系统端时,将归属于同一写数据的所有frame进行合并。
优选地,还包括:读数据frame合并模块,用于在接收到所述读指令对应的SCSI指
令CDB时,将归属于同一读数据的所有frame进行合并。
与现有技术相比,上述技术方案具有以下优点:
本发明所提供的一种用于存储系统的SCSI指令控制方法,包括:获取外界输入的
指令信号;当指令信号为写指令时,在发送对应的SCSI指令CDB的同时,将写指令对应的写
数据和CDB一并发送至存储系统端;获取存储系统端的反馈信号,根据反馈信号判断写指令
是否完成。在进行写操作时,将SCSI指令CDB和要写入的写数据进行合并,在发送SCSI指令
CDB的同时,将写指令对应的写数据和CDB一并发送至存储系统端,从而避免了传统的SCSI
指令控制中在发出指令CDB后需要等待存储系统端发送来的RDY_XFER确认后才进行数据传
输造成的IOPS资源的占用,从而节省了两次IOPS资源的占用,还降低了指令延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
图1为本发明一种具体实施方式所提供的用于存储系统的SCSI指令控制方法流程
图;
图2为本发明一种具体实施方式所提供的用于存储系统的SCSI指令控制系统结构
示意图。
具体实施方式
本发明的核心是提供一种用于存储系统的SCSI指令控制方法和系统,可以使得存
储系统在执行SCSI指令时,降低IOPS资源占用以及降低延时。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发
明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不
同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类
似推广。因此本发明不受下面公开的具体实施的限制。
请参考图1,图1为本发明一种具体实施方式所提供的用于存储系统的SCSI指令控
制方法流程图。
本发明的一种具体实施方式提供了一种用于存储系统的SCSI指令控制方法,包
括:
S11:获取外界输入的指令信号。
S12:当指令信号为写指令时,在发送对应的SCSI指令CDB的同时,将写指令对应的
写数据和CDB一并发送至存储系统端。
S13:获取存储系统端的反馈信号,根据反馈信号判断写指令是否完成。
发明人研究发现,在传统的SCSI模式中,在客户端发出SCSI指令CDB之后,需要等
待收到存储系统端发来的RDY_XFER确认之后,才会进行数据传输,在这一交互过程中,既带
来了IOPS资源的额外占用,同时又增加了指令延时。
在本实施方式中,在客户端要对存储系统端进行写操作时,将SCSI指令CDB和要写
入的写数据进行合并,在发送CDB的同时,将要写入的写数据一并发送给存储系统端,这样
一是省却了存储系统端发送RDY_XFER带来的IOPS资源的额外占用,二是将指令CDB和写数
据一同发送,省却了一次数据传输过程,省却了该次数据传输过程带来的IOPS资源的额外
占用。因此,可以节省两次IOPS资源的占用,同时,降低了指令延时。
进一步地,获取存储系统端的反馈信号,根据反馈信号判断写指令是否完成,包
括:判断在预设超时时间范围内是否接收到存储系统端的写入失败反馈信息;若否,则判定
写指令执行成功;若是,则判定在指定时间内未能将写数据写入到存储系统端。
发明人还研究发现,在传统的SCSI指令交互过程中,对于每一个指令,在成功完成
之后,都需要一个单独的确认成功信息,而这个确认成功信息会占用额外的IOPS资源。
在本实施方式中,对SCSI指令交互协议进行重新定义,在写操作时,超时时间内若
存储系统端不返回结果则视为写操作成功,同时,为了避免存储系统端处理指令超时的问
题,若在指定时间内,即在预设的超时时间范围内,存储系统端无法完成写数据的写入,则
必须返回写入失败反馈信息。
其中,当指令信号为读指令时,发送对应的SCSI指令CDB至存储系统端;获取读指
令对应的读数据,并提取位于读数据预设位置的读操作成功标识信息。将成功确认信息附
加在读取的读数据中,可以是在读数据的最后,将该成功确认信息设置为一个读操作成功
标志信息,当客户端提取到该读操作成功标志信息时,即表示读操作成功确认。
在本发明的一种实施方式中,在将写指令对应的写数据和CDB一并发送至存储系
统端时,还包括:将归属于同一写数据的所有frame进行合并。
获取读指令对应的读数据,包括:获取读指令对应的经过frame合并的读数据。
在SCSI指令应用的不同底层协议中,会对读写数据按一定的大小进行拆分,为了
进一步节省IOPS资源,在本实施方式中,对于同一数据部分的多个frame进行合并,这样可
以采用一次发送的方式来完成读写数据的发送,以防止占用过多的IOPS资源。
请参考图2,图2为本发明一种具体实施方式所提供的用于存储系统的SCSI指令控
制系统结构示意图。
相应地,本发明还提供了一种用于存储系统的SCSI指令控制系统,包括:指令信号
获取模块1,用于获取外界输入的指令信号;指令信号解析模块2,用于对指令信号进行解
析;数据处理模块3,用于在指令信号解析模块2判定指令信号为写指令时,将写指令对应的
写数据和对应的SCSI指令CDB一并发送至存储系统端;检测模块4,用于获取存储系统端的
反馈信号,根据反馈信号判断写指令是否完成。
在本实施方式中,在客户端要对存储系统端进行写操作时,将SCSI指令CDB和要写
入的写数据进行合并,在发送CDB的同时,将要写入的写数据一并发送给存储系统端,可以
节省两次IOPS资源的占用,同时,降低了指令延时。
进一步地,检测模块包括:获取单元,用于在数据处理模块将写指令对应的写数据
和对应的SCSI指令CDB一并发送至存储系统端后,获取存储系统端的反馈信息;判断单元,
用于判断在预设超时时间范围内是否接收到存储系统端的写入失败反馈信息,并在预设超
时时间范围内接收到该写入失败反馈信息时判定在指定时间内未能将写数据写入到存储
系统端,在预设超时时间范围内未接收到该写入失败反馈信息时判定写指令执行成功。
更进一步地,还包括:读操作成功标识信息提取模块,用于在指令信号解析模块判
定指令信号为读指令时,发送对应的SCSI指令CDB至存储系统端,并在获取读指令对应的读
数据时提取位于读数据预设位置的读操作成功标识信息。
在本实施方式中,在写操作时,超时时间内若存储系统端不返回结果则视为写操
作成功,同时,为了避免存储系统端处理指令超时的问题,若在指定时间内,即在预设的超
时时间范围内,存储系统端无法完成写数据的写入,则必须返回写入失败反馈信息。
其中,在读操作时,将成功确认信息附加在读取的读数据中,可以是在读数据的最
后,将该成功确认信息设置为一个读操作成功标志信息,当客户端提取到该读操作成功标
志信息时,即表示读操作成功确认。
在本发明的一种实施方式中,还系统还包括:写数据frame合并模块,用于在将写
指令对应的写数据和CDB一并发送至存储系统端时,将归属于同一写数据的所有frame进行
合并。读数据frame合并模块,用于在接收到读指令对应的SCSI指令CDB时,将归属于同一读
数据的所有frame进行合并。
在SCSI指令应用的不同底层协议中,会对读写数据按一定的大小进行拆分,为了
进一步节省IOPS资源,在本实施方式中,对于同一数据部分的多个frame进行合并,这样可
以采用一次发送的方式来完成读写数据的发送,以防止占用过多的IOPS资源。
综上所述,本发明所提供的用于存储系统的SCSI指令控制方法和系统,通过上述
各实施方式所提供的技术方案对传统的SCSI指令交互方式进行优化,大大降低了对IOPS资
源的占用,有效降低了SCSI指令的延时。
以上对本发明所提供的一种用于存储系统的SCSI指令控制方法和系统进行了详
细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说
明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术
人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进
和修饰也落入本发明权利要求的保护范围内。