数据输入/输出请求处理方法和系统的制作方法

文档序号:86153阅读:281来源:国知局
专利名称:数据输入/输出请求处理方法和系统的制作方法
技术领域
本发明涉及网络数据通信,更具体地说,涉及因特网SCSI(iSCSI)数据传输。
背景技术
在计算机存储器的语境中,因特网小型计算机系统接口(iSCSI)是基于传输控制协议/因特网协议(TCP/IP)的协议,用于建立和管理基于IP的存储设备、主机和客户机之间的连接。iSCSI使IP网络上的任何机器(称为发起者)都能够联系远程专用服务器(称为目标),并且正如发起者对于本地硬盘进行块输入/输出(I/O)那样,对目标进行块I/O。
iSCSI支持物理层的千兆比特以太网接口,所述千兆比特以太网允许支持iSCSI接口的系统与标准千兆比特以太网交换机和/或IP路由器直接连接。当操作系统(OS)收到请求时,OS产生SCSI命令,随后通过以太网连接发送IP分组。在接收端,分离SCSI命令和请求,SCSI命令和数据被发送给SCSI控制器,随后被发送给SCSI存储装置。iSCSI还将利用相同的协议返回对所述请求的响应。
iSCSI协议的一个重大缺陷是由于TCP/IP栈的开销,对基于以太网的存储区域网来说,等待时间较长-接近75微秒。具体地说,TCP/IP栈的TCP/IP协议向客户机和存储器之间的通信加入相当大的开销。从而,例如在主机上单独使用软件处理会造成几乎没有或没有为将在主机上运行的应用留下任何处理资源。在同时访问成千上万文件的那些情况下,这在高端系统中会是一个至关紧要的问题。
用于减少开销的一种技术是TCP卸载引擎(TOE),它是一种通过把TCP/IP处理从主机转移到独立的专用子系统,例如主机总线适配器(HBA),从而提高整个系统TCP/IP性能的TCP/IP加速技术。另一种减少TCP开销的可能技术包括部分用软件、部分用硬件定义TCP/IP功能,从而形成单一的混合软件/硬件通道。但是,TOE方法,纯软件方法,纯硬件方法,以及软件/硬件通道方法都不能为各种应用工作负载提供更佳的性能增强。

发明内容本发明的实施例解决现有技术的就应用性能而论的缺陷,提供一种新颖并且非显而易见的数据处理方法、系统和计算机程序产品,用于在独立的(separate)硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便在数据通信环境中处理输入/输出请求。在一个实施例中,在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的方法包括传送访问IP存储系统中的至少一个存储装置中的至少一个逻辑块地址的请求流。配置成传送请求流的主机中的第一处理器的利用率随同与存储装置耦接的适配器中的第二处理器的利用率一起可被监视,所述主机提供第一iSCSI实现,所述适配器提供第二iSCSI实现。另外,根据主机中的第一处理器的利用率值和适配器中的第二处理器的利用率值,请求流中的请求可被路由给主机中的第一iSCSI实现和适配器中的第二iSCSI实现。第一iSCSI实现可以是软件iSCSI,第二iSCSI实现可以是硬件iSCSI。
数据输入/输出请求处理方法还可包括确定主机中的第一处理器是否被充分利用,如果是,那么确定适配器中的第二处理器是否被充分利用。如果第二处理器未被充分利用,那么请求可被路由给适配器,以便被第二iSCSI实现服务(service)。另一方面,即使主机中的第一处理器未被充分利用,仍然可确定适配器中的第二处理器是否被充分利用,如果第二处理器未被充分利用,那么请求可被路由到适配器,以便被第二iSCSI实现服务。在该实施例中,当主机中的第一处理器未被充分利用,但是适配器中的第二处理器被充分利用时,请求可被路由到主机,从而被第一iSCSI实现服务。最后,主机中的第一处理器的利用率值可基于以太网网络接口卡中的处理器的利用率值。
在另一实施例中,在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的数据输入/输出请求处理系统包括一个主机;与主机耦接的iSCSI监视控制逻辑,其中所述iSCSI监视控制逻辑包括使得能够在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的程序代码。所述系统还可包括与主机耦接,从而提供硬件iSCSI路径的适配器。
本发明的其它方面部分将在下面的说明中陈述,部分根据所述说明将是明显的,或者可通过实践本发明来了解。本发明的各个方面将借助在附加的权利要求
中特别指出的要素和组合来实现和获得。要明白上面的概述和下面的详细说明都只是例证性和解释性的,并不是对要求保护的本发明的限制。
包含在本说明书中并构成说明书的一部分的附图图解说明本发明的实施例,并且和下面的说明一起用于解释本发明的原理。这里图解说明的实施例是目前优选的实施例,但是本发明显然并不局限于所示的具体安排和手段,其中图1是在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的数据处理网络的示意图;图2是包括应用层和iSCSI监视层的iSCSI协议层的方框图;图3是图解说明图1的在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的过程的流程图。
具体实施方式本发明的实施例提供一种在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便在数据通信环境中处理输入/输出请求的方法、系统和计算机程序产品。根据本发明的一个实施例,配置成传送请求流的主机中的第一处理器可被监视;与存储装置耦接的适配器中的第二处理器可被监视。通过所述监视,能够确定每个处理器的利用率(utilization)。从而,根据这两个处理器利用率的值,可通过软件iSCSI路径或者通过硬件iSCSI路径路由请求流中的请求。
作为进一步的例证,图1是在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的数据处理网络的示意图。数据处理网络可包括通过在网络150中利用iSCSI协议,与一个或多个数据存储装置170通信耦接的一个或多个主机100,比如客户机工作站。各种应用105可在主机计算机100上运行,但是这些应用可以是CPU约束的(CPU-bound)(CPU限制的(CPU-limited))或者是I/O约束的(吞吐量限制的)。例如,文件服务器的性能(工作负载)一般由I/O带宽驱动,而web服务器的工作负载一般由CPU带宽驱动。对于应用受I/O约束的那些情况,软件(SW)iSCSI实现(120、125、130和135)证明更有益。相反,对于应用受CPU约束的那些情况,硬件(HW)iSCSI实现(140和145)证明更有益。在本实施例中,软件iSCSI指的是几乎完全在主机处理器101中执行的iSCSI的软件实现,除了一般包括在网络接口控制器(NIC)135中的那些功能之外(比如循环冗余校验(CRC)的计算和中断聚结(interruptcoalescence))之外。硬件(HW)iSCSI或者(iSCSI/TOE)指的是在主机总线适配器(HBA)145中的iSCSI/TOE中执行的固件的iSCSI实现。HBA 145的处理功能可由各种电子装置,包括专用集成芯片(ASIC),现场可编程门阵列(FPGA)和分组处理器芯片提供。
iSCSI监视控制逻辑115可以是监视主机处理器101和HBAiSCSI处理器145的某些性能参数,并把I/O请求路由到“优选的”路径(例如HW iSCSI或者SW iSCSI),从而增强整个系统性能的自适应算法。iSCSI监视控制逻辑115可被置于如图1中所示的主机软件内或者与之关联,或者与HBA适配器145或者Gb以太网网络接口卡(NIC)135关联。对于通过同时使用HW iSCSI路径和SW iSCSI路径来增强性能的那些情况,引入“镜像”会话的概念。在镜像会话期间,在iSCSI层次保持单一的会话,但是在会话建立阶段创建独立的TCP连接,一个TCP连接通过SW iSCSI路径,另一TCP连接通过HWiSCSI路径。
为了简化iSCSI监视控制逻辑115选择功能的应用,操作系统,或者Gb以太网NIC卡135和HBA iSCSI/TOE 145的处理逻辑可与iSCSI监视控制逻辑115耦接。这些操作系统一般能够提供转达主机CPU 101和HBA处理器145的利用率的计数器。
现在参见图2的方框图,图2图解说明包括应用层和iSCSI监视控制逻辑层的iSCSI协议层。操作上,应用105能够向SCSI栈层110发出文件系统或磁盘命令,SCSI栈层110随后把命令封装到命令描述符块(CDB)中。iSCSI监视控制逻辑115能够监视各种系统参数(例如各个处理器的计数器),并确定是把封装的CDB路由到SW iSCSI路径(它可包括SW iSCSI始发者120,TCP/IP 125,NIC驱动器140和Gb以太网NIC卡135)还是路由到HW iSCSI路径(它可包括HBA驱动器130和HBA iSCSI/TOE 145),如图1中所示。
在任意一种情况下,封装的CDB可由层205的iSCSI命令串行化,这会导致一个协议数据单元(PDU)。TCP协议在层210提供,这会导致一个TCP片段,所述TCP片段可在IP层215被转换成数据报。最后,应用以太网(链路)层135,从而产生通过网络150传输的帧。当选择SW iSCSI路径时,主机CPU 101能够处理1-6层,而Gb以太网NIC 135能够处理7层。但是在选择HW iSCSI路径的情况下,主机CPU 101能够处理1-3层,而HBA适配器145能够处理4-7层。因此,HW iSCSI路径的选择能够释放主机CPU 101上的有价值的处理带宽。
作为进一步的例证,图3是图解说明图1的在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的过程的流程图。始于判定框305,确定主机CPU 101的百分比(%)利用率(例如用于处理指令的处理器周期的百分率),以了解Rh是否为100%(即,完全利用)。如果是,那么在方框310,确定适配器处理器145的百分比(%)利用率(例如,用于处理指令的处理器周期的百分率),以了解Ro是否为100%(即,完全利用)。如果卸载处理器145的利用率(Ro)为100%,那么在方框340中,系统可等待,直到Rh或者Ro不再为100%利用率为止,从而处理未决的请求。如果卸载处理器145的利用率(Ro)小于100%,那么在方框315中,在请求被处理之后,卸载处理器145的利用率(Ro)可被增加因子δ(它是确定多快地升高或降低Rh、Ro和Rs的可调参数)。在判定框320,如果SW始发者(Gb以太网NIC卡135)的利用率(Rs)不为0%,那么SW始发者(Gb以太网NIC卡135)的利用率(Rs)可被减小因子δ。在本实施例中,Gb以太网NIC卡135的利用率(Rs)直接与主机CPU 101相关联。
参见判定框305,如果主机CPU 101的百分比(%)利用率Rh被确定不为100%(即,完全利用),那么在方框310中,确定适配器处理器145的百分比(%)利用率,以了解Ro是否为100%(即,完全利用)。如果卸载处理器145的利用率(Ro)不为100%,那么在方框315中,在请求被处理之后,卸载处理器145的利用率(Ro)可被增大因子δ。否则,在判定框320,如果SW始发者(Gb以太网NIC卡135)的利用率(Rs)不为100%,那么SW始发者(Gb以太网NIC卡135)的利用率(Rs)可被增加因子δ。虽然在前述实施例中举例说明HW iSCSI实现将在Ro利用率方面被最大化,不过本发明并不局限于该实施例。在其它备选实施例中,利用率优先选择可被设置成所需的任何负载周期(duty cycle)。事实上,根据主机中的第一处理器的利用率值和适配器中的第二处理器的利用率值,单个请求可由主机中的第一iSCSI实现部分处理,并由适配器中的第二iSCSI实现部分处理。
本发明的实施例可以采取纯硬件实施例,纯软件实施例或者包含硬件组件和软件组件的实施例的形式。在一个优选实施例中,本发明用软件来实现,所述软件包括(但不限于)固件、驻留软件、微代码等。此外,本发明可以采取可从计算机可用或者计算机可读介质访问的计算机程序产品的形式,所述计算机可用或者计算机可读介质提供供计算机或者任何指令执行系统使用或者与之结合的程序代码。
对于本说明来说,计算机可用或计算机可读介质可以是能够包含、保存、交流、传播或传送供指令执行系统、设备或装置使用或者与之结合的程序的任意设备。所述介质可以是电、磁、光、电磁、红外或半导体系统(或设备或装置)或者传播介质。计算机可读介质的例子包括半导体或固态存储器,磁带,可拆卸的计算机磁盘,随机存取存储器(RAM),只读存储器(ROM),硬盘和光盘。光盘的当前例子包括光盘-只读存储器(CD-ROM),光盘-读/写(CD-R/W)和DVD。
适合于保存和/或执行程序代码的数据处理系统将包括通过系统总线与存储元件直接或间接耦接的至少一个处理器。存储元件可包括在程序代码的实际执行期间采用的本地存储器,大容量存储器和提供至少一些程序代码的临时存储,以便减少在执行期间,从大容量存储器取回代码的次数的高速缓冲存储器。输入/输出或者说I/O装置(包括(但不限于)键盘、显示器、指示装置等)可直接地或者通过插入的I/O控制器与系统耦接。网络适配器也可与系统耦接,从而使数据处理系统能够变成通过居间专用或公共网络,与其它数据处理系统或远程打印机或存储装置耦接。调制解调器、电缆调制解调器和以太网卡只是一些目前可用的网络适配器类型。
权利要求
1.一种数据输入/输出请求处理方法,包括在独立的硬件实现的和软件实现的因特网小型计算机系统接口(iSCSI)路径之间进行选择,以便处理输入/输出请求。
2.按照权利要求
1所述的方法,其中在独立的硬件实现的和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求包括传送访问IP存储系统中的至少一个存储装置中的至少一个逻辑块地址的请求流;监视配置成传送请求流的主机中的第一处理器的利用率,其中所述主机包含第一iSCSI实现;监视与存储装置耦接的适配器中的第二处理器的利用率,其中所述适配器包含第二iSCSI实现;和根据主机中的第一处理器的利用率值和适配器中的第二处理器的利用率值,把请求流中的请求路由给主机中的第一iSCSI实现和适配器中的第二iSCSI实现;其中第一iSCSI实现是软件iSCSI,第二iSCSI实现是硬件iSCSI。
3.按照权利要求
2所述的方法,还包括确定主机中的第一处理器是否被充分利用。
4.按照权利要求
3所述的方法,还包括响应确定第一处理器被充分利用,确定适配器中的第二处理器是否被充分利用。
5.按照权利要求
4所述的方法,还包括响应确定第二处理器未被充分利用,把请求路由给适配器,以便被第二iSCSI实现服务。
6.按照权利要求
3所述的方法,还包括响应确定第一处理器未被充分利用,确定适配器中的第二处理器是否被充分利用。
7.按照权利要求
6所述的方法,还包括响应确定第二处理器未被充分利用,把请求路由到适配器,以便被第二iSCSI实现服务。
8.按照权利要求
7所述的方法,还包括响应确定第二处理器被充分利用,把请求路由到主机,从而被第一iSCSI实现服务。
9.按照权利要求
2所述的方法,其中主机中的第一处理器的利用率值基于以太网网络接口卡中的处理器的利用率值。
10.一种在独立的硬件实现的和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的数据输入/输出请求处理系统,该系统包括主机;和与主机耦接的iSCSI监视控制逻辑,其中所述iSCSI监视控制逻辑包括使得能够在独立的硬件实现的和软件实现的iSCSI路径之间进行选择,以便处理输入/输出请求的程序代码。
11.按照权利要求
10所述的数据处理系统,还包括与主机耦接以提供硬件iSCSI路径的适配器。
专利摘要
本发明解决现有技术的就应用性能而论的缺陷,提供数据处理方法、系统和计算机程序产品,用于在独立的硬件实现的iSCSI路径和软件实现的iSCSI路径之间进行选择,以便在数据通信环境中处理输入/输出请求,包括传送访问IP存储系统中的至少一个存储装置中的至少一个逻辑块地址的请求流。配置成传送请求流的主机中的第一处理器的利用率随同与存储装置耦接的适配器中的第二处理器的利用率一起可被监视,所述主机提供第一iSCSI实现,所述适配器提供第二iSCSI实现。另外,根据主机中的第一处理器的利用率值和适配器中的第二处理器的利用率值,请求流中的请求可被路由给主机中的第一iSCSI实现和适配器中的第二iSCSI实现。第一iSCSI实现可以是软件iSCSI,第二iSCSI实现可以是硬件iSCSI。
文档编号H04L29/06GK1992662SQ200610142364
公开日2007年7月4日 申请日期2006年10月11日
发明者甘内施·巴拉克利什宁, 乔治·R.·罗德里格斯 申请人:国际商业机器公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1