一种应用于SCSI目标器的QoS调度器及调度方法

文档序号:9648966阅读:255来源:国知局
一种应用于SCSI目标器的QoS调度器及调度方法
【技术领域】
[0001]本发明涉及存储技术领域,特别涉及一种应用于SCSI目标器的QoS调度器及调度方法。
【背景技术】
[0002]目前,SAN(SAN,即Storage Area Network,存储区域网络)是一种高速存储网络,通常以SCSI协议(SCSI,即Small Computer System Interface,小型计算机系统接口)作为存储访问协议,支持服务器与存储设备之间的直接高速数据传输。然而,目前的SCSI目标器只支持采用“先来先服务”的方式,对服务器发送的10(10,即Input/Output,输入输出)请求进行处理。这样,如果存在两个或两个以上的服务器在同一时段内,向SCSI目标器发起10请求,则会导致服务器之间发生对系统处理能力资源的自然争抢,导致了 10请求处理进程的混乱。
[0003]综上所述可以看出,如何避免服务器之间发生对系统处理能力资源的自然争抢是目前亟待解决的问题。

【发明内容】

[0004]有鉴于此,本发明的目的在于提供一种应用于SCSI目标器的QoS调度器及调度方法,避免了服务器之间发生对系统处理能力资源的自然争抢。其具体方案如下:
[0005]—种应用于SCSI目标器的QoS调度器,所述SCSI目标器包括接口模块、SCSI指令处理模块和存储模块;所述QoS调度器包括:
[0006]10存储队列集,用于与所述接口模块连接,包括N个10存储队列,N为正整数,当所述接口模块接收到服务器发送的10数据时,将该10数据保存至相应的10存储队列,其中,服务器与10存储队列之间呈一一对应关系;
[0007]监视单元,用于对当前所述10存储队列集和存储系统的运行状态进行实时监视,根据实时监视结果,对所述10存储队列集中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略;
[0008]QoS调度单元,用于根据所述QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从所述10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至所述SCSI指令处理模块,以使所述SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至所述存储模块。
[0009]优选的,所述SCSI目标器为L10、SCST或TGT。
[0010]优选的,所述接口模块为ISCSI接口或FC接口。
[0011]优选的,所述QoS调度器还包括:
[0012]控制器,用于为用户提供QoS管理接口,通过所述QoS管理接口获取用户根据自身需要发送的QoS调整命令,并利用所述QoS调整命令,对所述10存储队列集中每一个10存储队列的调度优先级进行相应的调整,相应地得到符合用户需求的QoS调度策略。
[0013]优选的,所述QoS调度单元,还用于根据所述符合用户需求的QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从所述10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至所述SCSI指令处理模块,以使所述SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至所述存储模块。
[0014]本发明还公开了一种应用于SCSI目标器的QoS调度方法,所述SCSI目标器包括接口模块、SCSI指令处理模块和存储模块;所述QoS调度方法包括:
[0015]当所述接口模块接收到服务器发送的10数据时,将该10数据保存至10存储队列集中相应的10存储队列,所述10存储队列集包括N个10存储队列,N为正整数;其中,月艮务器与10存储队列之间呈一一对应关系;
[0016]对当前所述10存储队列集和存储系统的运行状态进行实时监视,根据实时监视结果,对所述10存储队列集中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略;
[0017]根据所述QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从所述10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至所述SCSI指令处理模块,以使所述SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至所述存储模块。
[0018]优选的,所述SCSI目标器为L10、SCST或TGT。
[0019]优选的,所述接口模块为ISCSI接口或FC接口。
[0020]优选的,所述QoS调度方法还包括:
[0021 ] 为用户提供QoS管理接口,通过所述QoS管理接口获取用户根据自身需要发送的QoS调整命令,并利用所述QoS调整命令,对所述10存储队列集中每一个10存储队列的调度优先级进行相应的调整,相应地得到符合用户需求的QoS调度策略。
[0022]优选的,所述QoS调度方法还包括:
[0023]根据所述符合用户需求的QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从所述10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至所述SCSI指令处理模块,以使所述SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至所述存储模块。
[0024]本发明中,QoS调度器包括10存储队列集、监视单元和QoS调度单元;其中,10存储队列集用于与接口模块连接,包括N个10存储队列,当接口模块接收到服务器发送的10数据时,将该10数据保存至相应的10存储队列,其中,服务器与10存储队列之间呈一一对应关系;监视单元用于对当前10存储队列集和存储系统的运行状态进行实时监视,根据实时监视结果,对10存储队列集中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略;QoS调度单元用于根据QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至SCSI指令处理模块,以使SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至存储模块。可见,本发明中,QoS调度器中的10存储队列集包括N个10存储队列,并且每一个10存储队列与每台服务器之间一一对应,每一个10存储队列存储与其对应的服务器发送过来的10数据,而监视单元则可以对10存储队列集中每一个10存储队列的调度优先级进行调整,得到相应的QoS调度策略,后续便可根据上述QoS调度策略,依次对各个10存储队列中存储的10数据进行处理,从而避免了服务器之间发生对系统处理能力资源的自然争抢,消除了原先10请求处理进程的混乱局面。
【附图说明】
[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0026]图1为本发明实施例公开的一种QoS调度器的应用结构示意图;
[0027]图2为本发明实施例公开的一种具体的QoS调度器的应用结构示意图;
[0028]图3为本发明实施例公开的一种应用于SCSI目标器的QoS调度方法流程图。
【具体实施方式】
[0029]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030]本发明实施例公开了一种应用于SCSI目标器的QoS调度器,SCSI目标器包括接口模块、SCSI指令处理模块和存储模块;具体的,上述SCSI目标器为L10(即Linux-10Target)、SCST (即 Generic SCSI Target Subsystem For Linux)或 TGT (即 Linux SCSITarget Framework)。另外,上述接口模块具体可以是 ISCSI 接口(ISCSI,即 Internet SmallComputer System Interface)或 FC 接口(FC,即 Fibre Channel)。需要说明的是,上述 QoS指的是Quality of Service,即服务质量。
[0031]参见图1所示,本实施例中公开的QoS调度器包括:
[0032]10存储队列集11,用于与接口模块连接,包括N个10存储队列,N为正整数,当接口模块接收到服务器发送的10数据时,将该10数据保存至相应的10存储队列;
[0033]其中,服务器与10存储队列之间呈一一对应关系,本实施例中,服务器的个数小于或等于N,并且每一台服务器均有一个10存储队列与其对应;
[0034]监视单元12,用于对当前10存储队列集11和存储系统的运行状态进行实时监视,根据实时监视结果,对10存储队列集11中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略。
[0035]例如,可以根据上述实时监视结果,并结合10请求的紧急程度或终端用户的重要性等因素,对10存储队列集11中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略。
[0036]QoS调度单元13,用于根据QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从10存储队列集11的各个10存储队列中取出相应的10数据,并将该10数据下发至SCSI指令处理模块,以使SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至存储模块。
[0037]本发明实施例中,QoS调度器包括10存储队列集、监视单元和QoS调度单元;其中,10存储队列集用于与接口模块连接,包括N个10存储队列,当接口模块接收到服务器发送的10数据时,将该10数据保存至相应的10存储队列,其中,服务器与10存储队列之间呈一一对应关系;监视单元用于对当前10存储队列集和存储系统的运行状态进行实时监视,根据实时监视结果,对10存储队列集中每一个10存储队列的调度优先级进行相应的调整,得到相应的QoS调度策略;QoS调度单元用于根据QoS调度策略中记录的每一个10存储队列的调度优先级的高低顺序,依次从10存储队列集的各个10存储队列中取出相应的10数据,并将该10数据下发至SCSI指令处理模块,以使SCSI指令处理模块对该10数据进行相应的处理并将处理结果发送至存储模块。
[0038]可见,本发明实施例中,QoS调度器中的10存储队列集包括N个10存储
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1