iSCSI的服务质量的制作方法

文档序号:7587073阅读:141来源:国知局
专利名称:iSCSI的服务质量的制作方法
技术领域
本发明一般涉及服务质量,尤其涉及网络存储系统中的服务质量。
背景技术
服务质量(QoS)在广义上是指为所选择的网络业务(traffic)提供更佳服务的网络能力。QoS可以由多种基本性能标准来表征,包括可用性,误差性能,响应时间,由于网络拥塞引起的业务丢失或传输质量差,等等。
虽然网络的QoS是一个相当发展的领域,网络存储系统成为尚未由现有技术的QoS协议和技术解决的特殊问题。举例来说,在因特网协议(IP)网络中,大部分的繁忙业务都是从服务器到客户端。典型的,业务可能是从服务器到客户端的下载的形式。因此,现有技术的QoS技术被设计用于解决从服务器到客户端的单向业务。
然而,在网络存储中,繁忙业务可能是双向的,如,或者读活动或者写活动。读活动可能产生从存储服务器到客户端的繁忙业务。相反,写活动可能产生从客户端到存储服务器的繁忙业务。现有技术的QoS技术并不具备解决双向业务的能力。
另一个网络存储问题是非遵从(non-compliant)客户端。在IP网络业务中,来自客户端的大部分业务相比来自服务器的业务是可以忽略的。因此,由与服务水平协定不一致的客户端引起的损害通常是无关紧要的。因此,现有技术的QoS技术并没有解决非遵从客户端的问题。相反,在网络存储系统中,非遵从客户端可能发起大量的繁忙业务活动,如读或写数据。在用于网络存储的QoS中,因此需要跟踪和容纳非遵从客户端的业务。现有技术的QoS技术目前还不能满足这种需要。
以上只是现有技术的QoS技术不能解决网络存储系统的QoS问题的两个实例。因此需要提供能够解决网络存储系统的独特问题的QoS技术。

发明内容
因特网小型计算机系统接口(iSCSI)协议能够通过传输控制协议(TCP)传输小型计算机系统接口(SCSI)协议。iSCSI业务通常是驻留于分离的网络节点上的发起者和目标之间的双向业务(traffic)。iSCSI业务利用共享网络和输入/输出(I/O)资源,因此很容易拥塞。
本发明的一个目的是提供用于从其它网络业务中区分iSCSI业务的QoS技术和协议。类似地,本发明的另一目的是提供对iSCSI业务的不同实例(例如,来自不同发起者的业务和通往不同逻辑单元(LU)的业务)进行区分并划分优先等级的QoS技术和协议。
本发明的一个优选实施例可以为iSCSI提供端对端QoS。本发明的QoS技术和协议可以沿从发起者到目标以及从目标到发起者的流路径对多种资源提供控制和管理。
本发明的一些实施例可将iSCSI业务局限于网络带宽的某个部分,由此允许其它业务有充分的服务质量。
根据本发明的一个方面,提供一种适合于为iSCSI环境提供服务质量的发起者。该发起者包括iSCSI发起者和TCP层。iSCSI发起者包括用于根据QoS策略为一个或多个PDU进行整形的QoS整形器。TCP层从iSCSI发起者接收PDU,并包括用于根据QoS策略对PDU进行标记的QoS标记器。
优选QoS策略包括用于网络资源的策略和用于I/O资源的策略。
在可选实施例中,PDU为命令PDU。在此情况下,整形器在接收命令序号(sequence number)之前对命令PDU进行整形。
在其它可选实施例中,PDU是数据PDU和命令PDU。数据PDU和命令PDU于在TCP层中被接收之前被整形。
本实施例也可在TCP层中包含第二整形器。第二整形器对除iSCSI之外的应用的网络业务进行整形。
根据本发明的另一方面,提供一种适合于为iSCSI环境提供服务质量的目标。该目标包括第一和第二QoS组件(component)。
第一QoS组件在iSCSI目标中并且处理I/O资源。第一QoS组件根据QoS策略对读命令和写命令进行整形。因此,第一QoS组件为来自非遵从发起者的业务提供QoS。
第二QoS组件在TCP层中并且处理网络资源。iSCSI PDU根据iSCSI的QoS策略被整形和标记。
作为选择,目标提供对多个逻辑单元(LU)的接入。每一个LU都具有多个任务集,而且每一个任务集都具有一个相关的服务等级。在一些实施例中,有两个或更多的相关服务等级是相同的。在可选实施例中,有两个或更多的相关服务等级彼此不同。
根据本发明的另一方面,由此提供一种适合于为iSCSI环境提供服务质量(QoS)的系统。该系统包括一个或多个发起者以及一个或多个目标。在一些实施例中,该系统还包括服务水平协定(SLA)代理。代理与发起者和目标通信,并为发起者和目标提供QoS策略。
在可选实施例中,发起者所使用的QoS策略不同于目标中所使用的QoS策略。另外,发起者和目标对于每个iSCSI会话的多种服务等级可以支持多种独立的连接。
根据本发明的另一方面,提供一种适合于iSCSI环境的QoS系统。该QoS系统包括多个过滤器规范(specification)属性。这些过滤器规范属性中的一个或多个适合于反映iSCSI业务类型。
在一些实施例中,过滤器规范属性包括TCP四元组(four-tuple),iSCSI会话ID,LUN,发起者用户id和/或应用识别属性。作为选择,过滤器规范属性适合于为网络资源和I/O资源提供QoS。
通常,过滤器规范属性被一个或多个发起者以及一个或多个目标使用。在一些情况下,发起者所使用的过滤器规范属性不同于目标所使用的过滤器规范属性。
根据本发明的另一方面,提供适合于iSCSI环境的另一种QoS系统。该QoS系统包括多个流规范参数。这些流规范参数中的一个或多个适合于iSCSI业务类型。
在一些实施例中,流规范参数包括I/O率(I/O rate),字节率和/或I/O流超过量。作为选择,流规范参数适合于为网络资源和I/O资源提供QoS。
通常,流规范参数被一个或多个发起者以及一个或多个目标使用。在一些情况下,发起者所使用的流规范参数不同于目标所使用的流规范参数。
根据本发明的另一方面,提供适合于iSCSI环境的另一种QoS系统。该QoS系统包括整形器,标记器以及第一目标QoS组件。
整形器在iSCSI发起者中并根据QoS策略对一个或多个PDU进行整形。标记器在发起者的TCP层中并从iSCSI发起者接收PDU。标记器还根据QoS策略对PDU进行标记。第一目标QoS组件在iSCSI目标中。第一目标QoS组件接收从PDU中提取出的一个或多个命令,并根据QoS策略对命令进行整形。
在一些实施例中,第一目标QoS组件处理I/O资源。作为选择,该系统还在TCP层包括第二目标QoS组件。第二目标QoS组件处理网络资源。iSCSI PDU根据用于iSCSI的QoS策略来整形和标记。
根据本发明的另一方面,提供一种用于为iSCSI环境提供QoS的方法。该方法包括根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形。该方法还包括根据QoS策略对发起者的TCP层中的PDU进行标记。当PDU为命令PDU时,该方法包括在为命令PDU分配命令序号之前对命令PDU进行整形。命令PDU的整形通常根据用于I/O资源的QoS策略进行。
在一些实施例中,命令PDU是包含立即数据(immediate data)的写命令PDU。写命令PDU是根据用于网络资源的QoS策略以及根据用于I/O资源的QoS策略进行整形的。
在可选实施例中,PDU是数据PDU和命令PDU。iSCSI发起者中的数据PDU和命令PDU的整形发生在将数据PDU和命令PDU发送给TCP层之前。当PDU是数据PDU时,根据用于网络资源的QoS策略对数据PDU进行整形。
作为选择,该方法包括通过IP网络向目标发送PDU。读命令和写命令从PDU中被提取,并在iSCSI目标中,根据用于I/O资源的QoS策略被整形,从而为非遵从业务提供QoS。
根据本发明的另一方面,提供一种为iSCSI环境提供QoS的附加方法。该方法包括在iSCSI目标处接收来自一个或多个LU的数据并根据用于iSCSI的QoS策略对QoS组件中的数据进行整形和标记。该QoS策略为用于网络资源的策略。
根据本发明的另一方面,提供一种为iSCSI环境提供服务质量的系统。该系统包括用于根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形的装置。该系统还包括用于根据QoS策略在发起者的TCP层对整形的PDU进行标记的装置。
根据本发明的另一方面,提供一种包含在计算机可读介质软件中的计算机程序。该计算机程序包括用于根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形的第一程序段。用于根据QoS策略在发起者的TCP层中对整形的PDU进行标记的第二程序段。
在可选实施例中,该程序包括用于通过IP网络在目标处接收PDU的第三程序段。第四程序段用于根据QoS策略在iSCSI目标对读命令和写命令进行整形,从而为非遵从业务提供QoS。


下面参考附图,通过举例描述本发明的实施例,其中图1是根据本发明的一个实施例构成和操作的,用于网络存储系统的服务质量(QoS)体系结构和系统的方框图;图2A是根据本发明的一个实施例构成和操作的,发起者和目标之间的会话的框图,以及示意从发起者到目标的命令协议数据单元(PDU)的业务流的框图;
图2B是根据本发明的一个实施例构成和操作的,发起者和目标之间的会话框图,以及示意从发起者到目标的数据PDU的业务流的框图;图3是根据本发明的一个实施例构成和操作的,发起者和目标之间的会话框图,以及示意从目标到发起者的数据PDU的业务流的框图。
具体实施例方式
术语汇编●服务等级(CoS)通过在具有给定级别的服务优选级的等级中组合相似类型的业务,在诸如网络中管理业务的方法。等级是通过一组与业务域有关的属性确定的(参见过滤器规范)。该术语还用于指一种特定的服务等级。
●命令描述符块(CDB)包含SCSI命令和其属性的数据结构。CDB在命令PDU中从iSCSI发起者被发送到iSCSI目标。CDB是在SCSI体系结构中定义的。
●命令PDU包含SCSI命令的细节(特别是CDB)的iSCSI协议中的PDU。命令PDU还可包含立即数据输出。
●命令序号通过iSCSI协议与SCSI命令相关的数值。序号由iSCSI发起者分配并在命令PDU的字段中传送。命令序号是整个会话范围内的,并用于穿越会话的所有连接,连续地按次序地传送目标处的命令。需要iSCSI目标,以便以命令序号的连续顺序向SCSI执行引擎传送命令。
●连接发起者节点和目标节点之间的TCP连接。每个连接都属于一个会话。在一个会话中可以有多个连接。在iSCSI协议中每个连接具有唯一的id。一个连接也可以通过本地TCP端口号在每一端识别。每个连接与单个服务等级相关联。可以使用多个连接来支持一个会话中的多个服务等级。
●连接结合(allegiance)在双方向上,通过同一连接发送单个SCSI命令的所有PDU的iSCSI需求。这包括命令PDU,数据PDU,响应及控制PDU。
●数据输入从目标向发起者发送的作为SCSI读命令的协议的一部分的数据。
●数据输出从发起者向目标发送的作为SCSI写命令的协议的一部分的数据。数据输出可以由目标请求,或者不经请求,主动提供。
●数据PDU在iSCSI协议中包含数据输入或数据输出的PDU。
●区别业务(DiffServ)根据业务分类,用于在因特网中实现可缩放的业务区别的标准(RFC 2474)。DiffServ是由因特网工程任务组(IETF)的网络工作组定义的。
●过滤器规范在确定业务的服务等级时使用的一组属性。过滤器规范属性的例子可包括TCP四元组,LUN,会话id,等等。
●流(flow)可由DiffServ体系结构区分的业务流的最细粒度。
●流规范在描述流时使用的一组参数。流规范参数的例子可包括带宽需求,可接受的最大延迟,损失率,等等。每种服务等级都有其自己的流规范。
●一般SCSI执行引擎与确定的I/O资源无关的SCSI执行引擎。执行引擎可以访问本地SCSI LU,或者充当另一网络的网关,如存储区网络(SAN)。
●立即数据作为iSCSI写命令PDU的一部分发送的数据输出。其构成不经请求主动提供的数据的第一(或唯一)部分。立即数据具有在发起者和目标之间可协商的最大尺寸。
●发起者*iSCSI协议中的客户端。其向称为目标的服务器发送请求,以访问逻辑单元中存储的数据。该术语还可用于识别实现发起者功能的系统组件(驱动器)。该术语还指SCSI协议中的客户端,以及实现该功能的系统组件(驱动器)。
●发起者节点*包含SCSI和/或iSCSI发起者的功能的网络节点。
*在此应指出,根据上下文,术语“发起者”一般是指iSCSI发起者,SCSI发起者或发起者节点。
●iSCSI因特网SCSI——SCSI协议在TCP传输上的映射。在iSCSI中,发起者和目标驻留在独立的网络节点,并经由通过TCP传输的PDU通信。iSCSI是由因特网工程任务组(IETF)的因特网协议存储(IPS)工作组定义的标准。
●I-T-L联系(Nexus)特定发起者,特定目标以及特定逻辑单元之间的关系,定义SCSI命令传送的环境。该术语与任务集松散相关。
●逻辑单元(LU)在目标可访问的数据装置,在该数据装置上执行iSCSI命令。每个目标可以提供对多个逻辑单元的接入。每个逻辑单元可唯一识别。
●逻辑单元号(LUN)识别目标处的每个逻辑单元的唯一号码。该术语还用于指一个特定的逻辑单元。
●标记根据定义的策略,在分组的IP头部中设置TOS字节的过程。
●非遵从发起者生成非遵从业务的iSCSI发起者。
●非遵从业务不符合特定服务等级的流规范的业务。
●策略定义例如在网络中,如何在用户之间共享资源的形式语句集。
●协议数据单元(PDU)从发起者向目标或者从目标向发起者发送的消息,作为iSCSI协议的一部分。PDU包含命令、响应、控制信息以及数据。
●SCSI小型计算机系统接口——用于与I/O装置,特别是存储装置通信的协议族。SCSI是由国家信息技术标准委员会(NCITS)的T10技术委员会定义的标准。其提供了客户端/服务器体系结构,其中客户端(称为发起者)向服务器(称为目标)发送命令以执行I/O业务,如读和写数据。
●SCSI执行引擎在目标节点处的组件。SCSI执行引擎负责从iSCSI目标接收从命令PDU中提取的SCSI命令,并提交该命令用于执行。
●服务水平协定(SLA)业务提供者和用户之间的合约,通常以可测量条款,指定由业务提供者向用户提供什么业务。
●服务水平协定(SLA)服务器在网络上维护SLA并能够将它们转换为策略的节点。SLA服务器负责向其它网络节点散布策略。
●会话在iSCSI协议中特定发起者和特定目标之间的关联。会话由一个或多个连接组成。会话向发起者提供在目标可访问的LU的集合的一致视图。SCSI命令以在整个会话内的序列顺序,在目标处传送。每个会话具有一组属性,这组属性控制协议并且可以在发起者和目标之间协商。每个会话由该会话的每一侧的一个唯一标识符识别。在每个发起者和目标之间可有多个会话。
●整形在一个服务等级内延迟业务,以使其符合一个确定的流规范的过程。
●请求的数据(solicited data)响应来自目标的请求发送的数据输出。请求是以从目标发送(R2T)PDU的请求的形式。对于给定的写命令可以有多个R2T,每个R2T请求数据的一个不同部分。R2T的数量和每个数据部分的尺寸由目标确定。
●目标**iSCSI协议中的服务器。其可以访问LU的集合。目标从客户端(称为发起者)接收请求。该术语还用于识别实现目标功能的系统组件(驱动器)。该术语还指SCSI协议中的服务器以及实现该功能的系统组件(驱动器)。
●目标节点**包含SCSI和/或iSCSI目标的功能的网络节点。
**在此应指出,根据上下文,术语“目标”通常是指iSCSI目标,SCSI目标或目标节点。
●任务从发起者发出的iSCSI请求,来自目标的针对该请求的响应待定。该术语还指在进行中的SCSI命令或SCSI命令的链接列表,如SCSI体系结构中所定义的那样。
●任务集访问同一个逻辑单元的任务的集合。根据在目标的配置,对于每一个LU,存在包含来自所有发起者的任务的单个任务集,或者每个发起者的独立任务集,后者对应于I-T-L联系。
●服务类型(TOS)字节当按照DiffServ解释时,IPv4头部的“服务类型”八位字节字段,或IPv6的“业务等级”八位字节字段。
●不经请求主动提供的数据(unsolicited data)不等待来自目标的请求发送的数据输出。不经请求主动提供的数据具有可协商的最大尺寸,并且在一个或多个PDU中发送。不经请求主动提供的数据的第一部分可以是立即数据。
现在参照图1,用于网络存储环境,如iSCSI环境的服务质量(QoS)体系结构和系统。QoS10可以提供用于iSCSI业务的端对端服务质量的技术和协议。
为说明起见,应指出,iSCSI能够通过TCP传输SCSI协议。虽然本发明是在iSCSI环境中描述的,显然本领域的技术人员知道,本发明可应用于提供网络存储能力的其它技术或协议。
本发明的一个优选实施例修改现有的网络QoS技术以适用于iSCSI环境,然而,存在较大的方法差别。以下一些主要问题在现有技术的QoS系统中没有得到解决,但是被QoS系统10解决1)用于iSCSI的端对端QoS涉及多种类型的资源,包括网络资源和I/O资源。I/O资源可以是逻辑单元。现有技术的QoS技术只解决了一种类型的资源,通常为网络资源。
2)通过IP网络传输SCSI业务对用于网络的QoS造成了独特的挑战,如a)严格的时间敏感性——由于SCSI性能需求,iSCSI业务通常比其它IP网络业务对响应时间更为敏感。通过网络传输存储业务可能引入额外的延迟,以及潜在的数据丢失,这些都会影响响应时间;以及b)长时间的通信会话——网络连接的典型使用都是短时间的。相反,iSCSI会话的连接意在时间更长;c)iSCSI业务是双向的。在IP网络中,通常大部分的繁忙业务是单向的,从服务器到客户端。举例来说,以从服务器到客户端的下载形式。
现有技术的QoS技术没有解决在2a),b)和c中列举的独特问题。
3)依赖于iSCSI协议的需求。在现有技术中,网络QoS技术和协议是在TCP层中实现的。由于以下将要详细说明的理由,由于有iSCSI需求,不可能在TCP层对iSCSI实现所有的QoS技术和协议。
4)iSCSI发起者可能与业务水平协定不一致。在iSCSI的分布式环境中,一些发起者可能与QoS策略不一致,或者甚至根本就没有可实现的QoS。这些发起者可能使得目标充满命令PDU,引起目标处的I/O拥塞。目标应具备QoS方法来防止这种情况的发生。在现有技术中,目的地并不跟踪不一致源。
本发明的一个优选实施例使DiffServ技术和协议适用于过滤器和流规范。本发明还另外识别新的过滤器规范属性和新的流规范参数。
在一个优选实施例中,多个QoS组件均处理一部分iSCSI业务。因此,每个QoS组件都可以沿着iSCSI业务的端对端路径定位在一个不同资源,而且可以处理特定类型的业务,如命令、数据输入和数据输出。
下面将详细描述,QoS组件的布局可能受对于iSCSI的依赖性的影响。一些QoS活动可能发生在TCP层,而其它QoS活动可能发生在iSCSI组件中。
本领域的技术人员知道,本发明的QoS技术不同于所有业务都在TCP层中处理的现有技术的网络QoS技术。
重新参考图1,QoS系统10包括发起者节点20,目标节点30和SLA服务器40。QoS10中的单元通过IP网络46通信。尽管为了清晰起见,图1只示意了一个发起者节点20和一个目标节点30,但本领域的技术人员显然知道,QoS10可以包括许多发起者节点20和许多目标节点30,而且仍然落在本发明的原理之内。SLA服务器40可以是与一个或多个发起者20以及一个或多个目标30通信的分离的服务器。应指出,SLA服务器在本领域中是已知的,因此在此不作进一步说明。
发起者节点20可包括SCSI发起者组件22,iSCSI发起者组件24,QoS整形组件26,QoS标记组件28以及TCP层32。目标节点30可包括SCSI执行引擎组件42,iSCSI目标组件44,TCP层34以及QoS组件36和38。
会话可以在发起者节点20和目标节点30之间建立。本领域的技术人员显然知道,尽管在图1中只示意了一个会话,但在每个发起者节点20和每个目标节点30之间可以有多个会话,而且仍然落在本发明的真正的宗旨和原理之内。
QoS10对两种类型的资源使用QoS策略网络和I/O。应指出,发起者20处的整形组件26可以处理这两种类型的资源。另外指出,QoS组件36和38均可处理一种类型的资源。QoS36处理网络资源而QoS 38处理I/O资源。还应指出,在发起者使用的QoS策略可以与在目标使用的QoS策略系统相同或不同。
在一些优选实施例中,SCSI执行引擎42可以是一般性的。当SCSI执行引擎42是另一网络的网关时,如存储区网络(SAN),SCSI网络引擎42可以负责继续执行其它网络中的QoS。
应指出,在现有技术的实施例中,QoS整形和标记都发生在TCP层。在本发明的优选实施例中,在发起者节点处的整形可以从TCP移动到iSCSI发起者。在TCP之前执行整形的目的是解决QoS策略和iSCSI协议需求之间的潜在的竞态(race condition)条件,这将在之后进行说明。然后在TCP中进行标记。
应指出,在目标节点没有这种潜在的竞态条件。因此,可以在TCP中同时进行整形和标记。
以下列出的附图示意了SCSI业务流1)图2A示意了发起者20和目标30之间的会话。图2A还示意了从发起者20到目标30的SCSI读/写命令流。
2)图2B示意了发起者20和目标30之间的会话。图2B还示意了从发起者20到目标30的数据输出PDU流。
3)图3示意了发起者20和目标30之间的会话。图3还示意了从目标30到发起者20的数据输入PDU流。
从发起者20到目标30的命令PDU的业务流现在参照图2A,图2A示意了发起者20和目标30之间的会话,其上覆盖了SCSI读和写命令的示例性业务流。
SCSI命令在SCSI发起者22中发起。这些命令然后可传送(箭头50)给iSCSI发起者24。iSCSI发起者24可将每个命令打包在PDU中,然后将命令PDU提交给QoS整形组件26用于整形。
应指出,在本领域中已知的是,整形组件26在iSCSI,不在TCP。在TCP前在iSCSI中进行整形的当前目的是解决QoS策略和iSCSI协议需求之间的潜在竞态条件,这将在以下进行说明。
由iSCSI发起者24向TCP发送的命令PDU携带命令序号。命令序号用于通过同一会话的多个连接,连续地按次序传送目标30的命令。如果发起者处的整形将在TCP进行,具有较低命令序号的命令PDU,在与低服务等级相关的连接上,将在TCP中被阻止。期间,具有较高序号的另一命令PDU可以通过具有快速服务等级的连接到达iSCSI目标44。由于序号的顺序,具有快速网络服务等级的后一命令将在iSCSI目标44被延迟,等待具有低网络服务等级的前一命令。这种行为可能引起性能降级和使QoS的目的失效。
为了解决该潜在的竞态条件,在发起者20的整形在分配命令序号之前进行。在本发明的优选实施例中,整形组件26被置于iSCSI发起者24内。
在本发明中,根据用于I/O资源的QoS策略整形命令PDU。如果命令PDU也包含立即数据,则根据用于网络资源的QoS策略另外整形PDU。
iSCSI发起者24然后可发送(箭头52)命令PDU给TCP层32。TCP层32然后可将业务发送(箭头54)给QoS标记组件28。
被标记的业务可返回(箭头56)给TCP层32。作为一种在本领域已知的处理,TCP层32可经由IP网络46将命令PDU发送(箭头58)给目标30。
目标30的TCP层34然后可接收(箭头60)目标PDU。TCP层34可将命令PDU传送(箭头62)给iSCSI目标44。iSCSI目标44可提取出SCSI命令并将它们提交给QoS组件38用于整形。QoS组件38可在将命令传送给SCSI执行引擎之前对这些命令进行整形。应指出,尽管这些命令已经通过QoS整形组件26被整形,它们仍可提交给QoS组件38用于整形。这是因为潜在地存在非遵从发起者,正如上面在本发明解决的第4条问题中解释的那样。iSCSI目标44无法区分一致和非遵从业务,因此必须提交所有到达的命令PDU用于整形。
应指出,已经通过QoS整形组件26被整形的来自一致发起者20的命令可能不受在QoS组件38的附加整形的影响。
iSCSI目标44然后可将这些命令以适当的顺序传送(箭头64)给SCSI执行引擎42。
应指出,本示意描绘了与TCP层32分离的QoS标记组件28。然而,在可选实施例中,QoS标记组件28可以在TCP层32之内,而且仍然落在本实施例的原理之内。
另外指出,标记组件28可负责标记从发起者节点20输出的所有网络业务,包括来自iSCSI以外的应用的业务。另外,发起者节点20可在TCP层中包含第二整形组件(未示出)。第二整形组件可负责整形iSCSI以外的应用的网络业务。应理解,上述替换包含在本发明的真正的宗旨和范围之内。
从发起者20到目标30的数据输出PDU的业务流现在参照图2B,图2B示意了发起者20和目标30之间的会话,其上覆盖了数据输出PDU的示例性业务流。
数据输出在SCSI发起者22中发出,发起者22可将其传送(箭头70)给iSCSI发起者24。iSCSI发起者24可创建数据输出PDU,而且数据输出PDU然后可被提交给QoS整形组件26用于整形。
QoS整形组件26可将数据输出PDU发送(箭头72)给TCP层32。TCP层32可提交(箭头74)业务给QoS标记组件28用于标记。QoS标记组件28然后可返回(箭头76)标记的业务给TCP 32,TCP32可通过IP网络46将数据输出PDU发送(箭头78)给目标30。
TCP层34可接收(箭头80)数据输出PDU并将它们传送(箭头82)给iSCSI目标44。iSCSI目标44可从PDU中提取出数据,而且该数据然后可被传送(箭头84)给SCSI执行引擎42。
从目标30到发起者20的数据输入PDU的业务流现在参照图3,图3示意了发起者20和目标30之间的会话,其上覆盖了数据输入PDU的示例性业务流。
数据输入在SCSI LU(未示出)中发出。在本实施例中,SCSI执行引擎可传送(箭头90)数据输入给iSCSI目标44。ISCSI目标44可创建数据输入PDU并将数据输入PDU输送(箭头92)给TCP层34。
在现有技术的网络QoS环境中已知的是,TCP层34然后可整形和标记在目标处的网络业务。因此,TCP层34将数据输入PDU提交(箭头94)给QoS组件36用于整形和标记。
应指出,在目标节点30的网络过滤器规范可能比在发起者节点20的简单。这是由于iSCSI连接结合需求,而且因为每个连接在每个方向只能有一个服务等级。发起者负责选择用于每个命令的连接,而且该目标必须使用这个连接用于该命令的所有业务。因此,在目标的服务等级可以根据连接的身份或发起者的身份来简单地确定。
QoS组件36然后可返回(箭头96)整形/标记的业务给TCP层34。TCP层34可经由IP网络46将数据输入PDU发送(箭头98)给发起者20。
TCP层32可接收(箭头100)数据输入PDU并将它们传送(箭头102)给iSCSI发起者24。iSCSI发起者24可从PDU中提取出该数据并将数据输入传送(箭头104)给SCSI发起者22。
应指出,本示意描绘了QoS组件36与TCP层34分离。然而,在可选实施例中,QoS标记组件36可以在TCP层34之内,并且仍落在本实施例的原理之内。
另外指出,在一些实施例中,QoS组件36可负责整形和标记从目标节点30输出的所有网络业务,包括来自iSCSI以外的应用的业务。
多个网络服务等级每个TCP连接可以只与每个方向上的一个服务等级相关。为了提供会话中的多个服务等级,可以使用多个连接。
在一些实施例中,iSCSI发起者24或iSCSI目标44可能无法支持每个会话的多个连接。作为选择,可以使用用于每个服务等级的独立的会话。
应指出,在发起者20中使用的操作系统环境或文件系统可能成为限制,需要多个会话接入不相交LU。在此情况下,可能无法使用多个网络服务等级来从同一发起者接入同一LU。
用于同一逻辑单元的多个I/O服务等级SCSI体系结构提供了配置逻辑单元对每个I-T-L联系使用独立的任务集的能力。本发明的优选实施例因此定义了对于同一LU的多个I/O服务等级。每个I-T-L联系的任务集,连同其读命令和写命令,可以被分配一个不同的I/O服务等级。作为选择,可以在同一LU的多个任务集之间共享I/O服务等级,由此为来自多个不同发起者的业务在目标给予相同的I/O级别。
I/O流超过量(I/O flow excess)由于系统10的突发特性,可能存在,在发起者符合I/O流规范的命令PDU在到达目标时变得不符合的情形。为了消除突发行为,本发明的一些实施例可能允许在所选择的I/O服务等级中的I/O流超过量。在目标30由QoS组件38使用的I/O流规范可包括用于过量字节率和过量I/O率的参数。
应指出,在目标的非遵从命令可能被QoS组件38用“任务集满”或“忙”错误来拒绝。这些错误应尽可能避免。I/O流超过量参数可以补偿由系统和网络起伏引起的瞬间不一致。I/O流超过量将不会补偿根本不使用QoS的发起者。
过滤器规范和流规范可以选择在存在QoS时,影响iSCSI流的区别的过滤器规范属性。这些过滤器属性的例子包括TCP四元组(发起者和目标IP地址和端口),LUN,发起者用户ID,会话ID,应用识别属性,活动时间,等等。上面的列举只是借助举例,并不是想限制;应理解,没有列举但可能影响iSCSI流的性能的其它过滤器属性,也包含在本发明的范围之内。
应指出,在一些实施例中,在过滤器属性中有冗余。举例来说,当指定四元组时,会话id可能冗余。然而,冗余可用于在分配服务等级时支持模式。举例来说,服务等级可设计为会话内的所有连接。该分类方法允许使用属性的子集或对于每个属性的值的范围。
QoS10可使用独立的流规范用于网络资源和I/O资源。
对于网络,可以使用标准的流规范参数,如为DiffServ定义的流规范参数。网络流参数的例子包括平均字节率,峰值字节率,突发大小。
对于I/O,没有现行的标准。QoS10的优选实施例可以选择影响SCSI执行引擎42的I/O资源共享的流规范参数。流参数的例子可包括字节率,I/O率,I/O流超过量,等等。上面的列举仅仅是借助举例,并不想限制;应理解,没有列举但可能影响SCSI执行引擎42的共享的其它流规范参数,也包含在本发明的范围之内。
应指出,在发起者使用的过滤器规范属性和/或流规范参数可能与在目标使用的不同。
应指出,I/O率和字节率可以在随机和顺序存取之间提供折中。随机存取通常的特征是数据长度小,并主要受I/O率的限制。另一方面,顺序存取通常的特征是数据长度大,并主要受字节率的限制。
在此描述的实施例适用于iSCSI和/或TCP/IP的软件和硬件实现,以及软件和硬件实现的任何组合。另外,一个节点可以具有一个以上网络接口卡或一个以上网络链路。而且,在同一会话中的发起者和目标之间的多个连接可以使用不同的IP地址。所有这些变化都包含在本发明的真正宗旨和范围之内。
虽然在此公开的方法、设备和系统可能或可能没有参照特定计算机硬件或软件描述,但显然,在此描述的方法、设备和系统可以很容易在使用常规技术的计算机硬件或软件中实现。
虽然本发明是参照一个或多个特定实施例描述的,但本说明书意在从整体上示意本发明,并不认为是将本发明局限为所示的实施例。显然,本领域的技术人员知道,在此没有特别示出的各种修改也在本发明的真正宗旨和范围之内。
权利要求
1.一种适合于为iSCSI环境提供服务质量(QoS)的发起者,该发起者包括iSCSI发起者,所述iSCSI发起者包括QoS整形器,所述QoS整形器用于根据QoS策略为一个或多个PDU进行整形;以及TCP层,所述TCP层用于从所述iSCSI发起者接收所述PDU,并包括用于根据所述QoS策略对所述PDU进行标记的QoS标记器。
2.根据权利要求1的发起者,其中所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
3.根据权利要求1的发起者,其中所述PDU为命令PDU,并且其中所述整形器在所述命令PDU接收命令序号之前,对所述命令PDU进行整形。
4.根据权利要求1的发起者,其中所述PDU是数据PDU和命令PDU,其中所述数据PDU和命令PDU于在所述TCP层中被接收之前被整形。
5.根据权利要求1的发起者,进一步包括在TCP层中的第二整形器,用于对除iSCSI之外的应用的网络业务进行整形。
6.一种适合于为iSCSI环境提供服务质量的目标,该目标包括在iSCSI目标中的第一QoS组件,所述第一QoS组件用于处理I/O资源,并用于根据QoS策略对一个或多个读命令和一个或多个写命令进行整形,从而为来自非遵从发起者的业务提供QoS;以及TCP层中的第二QoS组件,用于处理网络资源,其中iSCSI PDU根据iSCSI的QoS策略被整形和标记。
7.根据权利要求6的目标,其中所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
8.根据权利要求6的目标,其中所述目标提供对多个逻辑单元(LU)的接入,每一个所述LU都具有多个任务集,每一个所述任务集都具有相关的服务等级,其中两个或更多的所述相关服务等级是相同的。
9.根据权利要求8的目标,其中两个或更多的所述相关服务等级彼此不同。
10.一种适合于为iSCSI环境提供服务质量(QoS)的系统,该系统包括一个或多个发起者,每个所述发起者包括iSCSI发起者,所述iSCSI发起者包括发起者QoS整形器,所述发起者QoS整形器用于利用QoS策略对一个或多个PDU进行整形;以及TCP层,所述TCP层用于从所述iSCSI发起者接收所述PDU,并包括用于利用所述QoS策略对所述PDU进行标记的QoS标记器;以及一个或多个目标,用于通过IP网络从所述发起者接收所述PDU,每一个所述目标包括在iSCSI目标中的第一QoS组件,用于处理I/O资源,所述第一QoS组件用于利用QoS策略对从所述PDU提取的一个或多个读命令和一个或多个写命令进行整形;以及TCP层中的第二QoS组件,用于处理网络资源,其中iSCSI PDU利用iSCSI的QoS策略被整形和标记。
11.根据权利要求10的系统,其中,所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
12.根据权利要求10的系统,其中,所述发起者QoS整形器所使用的所述QoS策略不同于在所述目标中的所述第一和第二QoS组件所使用的所述QoS策略。
13.根据权利要求10的系统,进一步包括与所述发起者和目标通信的服务水平协定(SLA)代理,其中所述SLA代理为所述发起者和所述目标提供所述QoS策略。
14.根据权利要求10的系统,其中,所述发起者和所述目标对于每个iSCSI会话的多种服务等级支持多种独立的连接。
15.一种适合于iSCSI环境的QoS系统,该QoS系统包括多个过滤器规范属性,其中所述过滤器规范属性中的一个或多个适合于反映iSCSI业务类型。
16.根据权利要求15的QoS系统,其中所述过滤器规范属性包括以下的一个或多个TCP四元组,iSCSI会话id,LUN,发起者用户id和应用识别属性。
17.根据权利要求15的QoS系统,其中所述过滤器规范属性适合于为网络资源和I/O资源提供QoS。
18.根据权利要求15的QoS系统,其中所述过滤器规范属性被一个或多个发起者以及一个或多个目标使用,并且其中所述发起者所使用的所述过滤器规范属性不同于所述目标所使用的所述过滤器规范属性。
19.一种适合于iSCSI环境的QoS系统,该QoS系统包括多个流规范参数,其中所述流规范参数中的一个或多个适合于iSCSI业务类型。
20.根据权利要求19的QoS系统,其中所述流规范参数包括以下的一个或多个I/O率,字节率和I/O流超过量。
21.根据权利要求19的QoS系统,其中所述流规范参数适合于为网络资源和I/O资源提供QoS。
22.根据权利要求19的QoS系统,其中所述流规范参数被一个或多个发起者以及一个或多个目标使用,并且其中所述发起者所使用的所述流规范参数不同于所述目标所使用的所述流规范参数。
23.一种适合于iSCSI环境的QoS系统,该QoS系统包括在iSCSI发起者中的整形器,用于根据QoS策略对一个或多个PDU进行整形;在发起者的TCP层中的标记器,用于从所述iSCSI发起者接收所述PDU,以及用于根据所述QoS策略对所述PDU进行标记;以及在iSCSI目标中的第一目标QoS组件,用于接收从所述PDU中提取出的一个或多个命令,并根据QoS策略对所述命令进行整形。
24.根据权利要求23的QoS系统,其中所述第一目标QoS组件处理I/O资源,并且进一步包括在TCP层中的第二目标QoS组件,用于处理网络资源,其中iSCSI PDU根据用于iSCSI的QoS策略被整形和标记。
25.一种用于为iSCSI环境提供QoS的方法,该方法包括步骤根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形;以及根据所述QoS策略在发起者的TCP层中对所述整形的PDU进行标记。
26.根据权利要求25的方法,其中所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
27.根据权利要求25的方法,其中所述PDU为命令PDU,并且其中所述命令PDU的所述整形发生在为所述命令PDU分配命令序号之前。
28.根据权利要求27的方法,其中所述命令PDU的所述整形依据用于I/O资源的QoS策略。
29.根据权利要求28的方法,其中所述命令PDU是包含立即数据的写命令PDU,其中所述写命令PDU的整形也依据用于网络资源的QoS策略。
30.根据权利要求25的方法,其中所述PDU是数据PDU和命令PDU,其中在所述iSCSI发起者中的所述数据PDU和命令PDU的所述整形发生在将所述数据PDU和所述命令PDU发送给所述TCP层之前。
31.根据权利要求25的方法,其中所述PDU是数据PDU,其中所述数据PDU的所述整形依据用于网络资源的QoS策略。
32.根据权利要求25的方法,进一步包括步骤通过IP网络在目标接收所述PDU;以及在iSCSI目标中,根据用于I/O资源的QoS策略,对从所述PDU中提取的一个或多个读命令和一个或多个写命令进行整形,从而为非遵从业务提供QoS。
33.一种为iSCSI环境提供QoS的方法,该方法包括步骤在iSCSI目标处从一个或多个LU接收数据;以及根据用于iSCSI的QoS策略对QoS组件中的所述数据进行整形和标记,其中所述QoS策略为用于网络资源的策略。
34.一种为iSCSI环境提供服务质量的系统,该系统包括用于根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形的装置;以及用于根据所述QoS策略在发起者的TCP层中对所述整形的PDU进行标记的装置。
35.根据权利要求34的系统,其中所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
36.根据权利要求34的系统,其中所述PDU为命令PDU,并且其中所述命令PDU的整形发生在为所述命令PDU分配命令序号之前。
37.根据权利要求34的系统,其中所述PDU是数据PDU和命令PDU,其中在向所述TCP层发送所述数据PDU和所述命令PDU之前,对所述iSCSI发起者中的所述数据PDU和所述命令PDU整形。
38.根据权利要求34的系统,进一步包括用于通过IP网络在目标接收所述PDU的装置;以及用于根据QoS策略在iSCSI目标对从所述PDU中提取的一个或多个读命令和一个或多个写命令进行整形,从而为非遵从业务提供QoS的装置。
39.一种包含在计算机可读介质软件中的计算机程序,该计算机程序包括用于根据QoS策略对iSCSI发起者中的一个或多个PDU进行整形的第一程序段;以及用于根据QoS策略在发起者的TCP层中对所述整形的PDU进行标记的第二程序段。
40.根据权利要求39的计算机程序,其中所述QoS策略包括以下的一个或多个用于网络资源的策略和用于I/O资源的策略。
41.根据权利要求39的计算机程序,进一步包括用于通过IP网络在目标接收所述PDU的第三程序段;以及用于根据QoS策略在iSCSI目标对从所述PDU提取的一个或多个读命令和一个或多个写命令进行整形,从而为非遵从业务提供QoS的第四程序段。
全文摘要
一种适合于为iSCSI环境提供服务质量(QoS)的系统,该系统包括一个或多个发起者以及一个或多个目标。每个发起者包括iSCSI发起者和TCP层。iSCSI发起者包括用于根据QoS策略为一个或多个iSCSI PDU进行整形的QoS整形器。TCP层包括用于根据QoS策略对PDU进行标记的QoS标记器。该目标包括第一和第二QoS组件。第一QoS组件处于iSCSI目标中并处理I/O资源。第一QoS组件根据QoS策略对读命令和写命令进行整形。第二QoS组件在TCP层中并且处理网络资源。iSCSI PDU根据iSCSI的QoS策略被整形和标记。发起者和目标所使用的QoS包括用于网络资源的策略和用于I/O资源的策略。
文档编号H04L12/00GK1732664SQ200380107949
公开日2006年2月8日 申请日期2003年12月12日 优先权日2002年12月31日
发明者特斯博拉·巴泽莱, 约翰·玛伯格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1