CN100556036C - 执行数据传送请求的方法、系统和程序 - Google Patents

执行数据传送请求的方法、系统和程序 Download PDF

Info

Publication number
CN100556036C
CN100556036C CNB200510004586XA CN200510004586A CN100556036C CN 100556036 C CN100556036 C CN 100556036C CN B200510004586X A CNB200510004586X A CN B200510004586XA CN 200510004586 A CN200510004586 A CN 200510004586A CN 100556036 C CN100556036 C CN 100556036C
Authority
CN
China
Prior art keywords
request
transfer protocol
start node
data transfer
address space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB200510004586XA
Other languages
English (en)
Other versions
CN1691669A (zh
Inventor
约翰·李维斯·哈佛德
迈克尔·安东尼·科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1691669A publication Critical patent/CN1691669A/zh
Application granted granted Critical
Publication of CN100556036C publication Critical patent/CN100556036C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Abstract

本发明提供一种用于在起始节点和目标节点之间传送数据的方法、系统和程序。符合第一数据传送协议的数据在起始节点处被接收,以传送到目标节点。存储单元的索引被获得,以用来传送请求到目标节点。在起始节点的用户地址空间中执行的至少一个函数被调用,其中起始节点包括内核地址空间和用户地址空间。在用户地址空间中执行的该至少一个函数连系适配器,以使用第二数据传送协议传送请求和存储单元的索引到目标节点。

Description

执行数据传送请求的方法、系统和程序
技术领域
本发明涉及一种用于执行数据传送请求的方法、系统和程序。
背景技术
在存储环境中,数据存取命令从主系统传送到管理磁盘存取的存储控制器。存储控制器可以是主系统内部的卡或独立设备。因特网小型计算机系统接口(iSCSI)协议用于利用包括以太网开关和路由器的以太网连接的存储网络。这里所使用的术语“iSCSI”指的是由IETF(因特网工程工作小组)标准体定义的iSCSI协议及该协议的任何变体的语法和语义。在利用iSCSI的当前存储网络中,分组结构包括以太网包,其封装有因特网协议(IP)及传输控制协议(TCP)包层,后者又封装有包括一个或多个SCSI命令的iSCSI包。当分组在任何网络段(链路)上从点到点流动时,以太网协议规定链路级错误检测,以确定数据是否已在链路上传送时被破坏。在网络数据传输操作中,起始设备在网络上传送数据或命令到目标设备。TCP/IP包包括执行端到端检测的错误检测码,以在相对端确定所传送分组是否已在传输过程中当分组经过开关和路由器时被改变。检测到错误的接收设备将发送否定应答给发送设备,以请求检测到错误的那些分组的重发。
远程直接存储器存取(RDMA)协议提供一台计算机以对存储器总线带宽和处理器开销的最小需求直接把信息放入另一台计算机的存储器中的能力。TCP/IP上的RDMA(也称作iWARP)定义在标准TCP/IP网络上支持RDMA操作的能共同使用的协议。RDMA网络接口卡(RNIC)网络适配器卡实施RDMA协议并执行传送数据到本地和远程存储器的RDMA操作。RDMA协议的更多细节在下面说明书中描述:RDMA联盟(2003年4月)所公布的名称为“RDMA协议动词说明书(版本1.0)”;RDMA联盟(2002年10月)所公布的“可靠传输上的/直接数据放置(版本1.0)”;以及RDMA联盟(2002年10月)所公布的“TCP的标记PDU对准组帧说明书(版本1.0)”,这些说明书在此整体引入作为参考。
RDMA联盟(2003年7月)所发布的、Michael Ko等人的名称为“RDMA的iSCSI扩展说明书(版本1.0)”的一份说明书,该说明书在此整体引入,定义通过层置iSCSI于RDMA之上而为iSCSI提供RDMA数据传送能力的协议。
包括RDMA和上述其他方面的数据传送系统典型地需要内核模式进程的介入,以处理送往和来自存储设备的读和写操作。
发明内容
本发明提供了一种在起始节点和目标节点之间传送数据的方法、系统和程序。符合第一数据传送协议的请求在起始节点处被接收,以传送到目标节点。存储单元的索引被获得,以用来传送请求到目标节点。在起始节点的用户地址空间中执行的至少一个函数被调用,其中起始节点包括内核地址空间和用户地址空间。在用户地址空间中执行的该至少一个函数连系适配器,以使用第二数据传送协议传送请求及存储单元的索引到目标节点。
附图说明
现在参考附图,其中相似参考数字始终表示相应部件:
图1说明实现实施方案的网络节点的实例;
图2说明根据所述实施方案的计算体系结构的实例;
图3说明以本领域中已知方式的分组格式;以及
图4和5说明根据实施方案的执行以传送数据的操作。
具体实施方式
在下面描述中,参考构成其一部分并说明本发明的几种实施方案的附图。应当明白的是,可以使用其他实施方案,并且可以不背离本发明的范围做结构上和操作上的改变。
图1说明包括在网络4上通信的多个计算节点2a、2b...2n的网络计算环境。网络可以包括局域网(LAN)、广域网(WAN)、存储域网(SAN)。可选地,节点可以在总线,例如SCSI总线等上通信。
图1中的节点2a、2b...2n既可作为起始又可作为目标。图2说明包含于节点,例如节点2a、2b、2c中,以允许在网络4上通信的组件。节点2包括处理器6,例如中央处理单元或联合,以及操作系统8。操作系统8提供用户地址空间10和内核地址空间12,其中用户应用程序在用户地址空间10中执行,而基本操作在内核地址空间12中执行,例如资源分配、低级硬件接口、安全性等。
应用程序14在用户空间10中执行,其中应用程序14包括用户应用程序,例如数据库程序、服务器程序等。为了执行I/O操作,应用程序14将访问SCSI层16,以产生包含I/O请求的协议数据单元(PDU),SCSI层16又访问iSCSI层18,iSCSI层18又调用iSER库20的函数。iSER库20中的某些函数将调用在内核空间12中执行的RNIC驱动程序22,而其他函数将直接从用户空间10调用RNIC。RNIC 24包括RDMA层26和网络层28,例如TCP层、IP层和以太网层,以在传输层中打包分组以在网络4上传送,或者解包从网络4接收到的分组。
在某些实施方案中,为了执行I/O操作,调用以处理I/O请求的iSER函数需要登记存储器30中的存储单元,以用于I/O操作。应用程序14可以登记包括存储区和存储窗的存储单元。RNIC 24可以直接访问以逻辑上连续形式的所登记存储单元(本地或本地及远程地)。所定义存储单元,例如存储区或存储窗,由RNIC 24所创建的并用来索引所登记存储单元的引导标签(“STag”)来标识。在某些实施方案中,存储区或称作存储窗的存储区子集可以被登记,其中各别STag将与各个所登记存储单元(区或窗)相关联。RNIC 24使用STag来存取所索引存储单元。在某些实施方案中,iSER库中的iSER函数将通过调用在内核空间12中执行的RNIC驱动程序22来调用RNIC 22以登记存储区。RNIC驱动程序22包括连系操作系统8与RNIC适配器24的设备驱动程序。响应于iSER库中函数的调用以声明并登记存储单元,例如存储区或窗,RNIC驱动程序22将调用RNIC 24。RNIC驱动程序22(有时也称作“Verb”层)连同RNIC 24中的RDMA层26一起钉住待登记存储单元,例如存储区(MR)32,并产生存储区或窗的STag。
RNIC 24RDMA层26保存存储转换表34,并且当登记存储区/窗时,将向存储转换表34添加标识所登记存储区的条目以及产生以索引该存储区的STag,以使RNIC 24能够将STag与存储区相关联。存储转换表34可以保存于RNIC 24中的缓冲区中或存储器30中。STag将返回给请求登记的iSER函数,以用于I/O操作。
在RNIC 24产生并返回STag给处理I/O操作的iSER函数之后,iSER函数可以进行I/O操作。iSER函数将从iSCSI层18接收的分组与头信息及从RNIC 24接收的STag包装在一起,并传送该分组到RNIC 24以传送。连系RNIC 24以执行RDMA数据传送操作的iSER库20函数在用户地址空间10中执行,从而绕过在内核空间12中执行的RNIC驱动程序22。
为了管理RDMA数据传送,RNIC 24保存发送队列36、接收队列38,以及完成队列40。发送队列36及接收队列38包括RNIC 24用来管理RDMA数据传送请求的工作队列。完成队列40可以包括包含具有完成条目的一个或多个条目的可共享队列,以为多个工作队列提供完成通知的单点。队列36、38和40可以由RNIC 24分配于存储器30中或RNIC 24中的缓冲区中。
图3说明实施方案所使用的传送包的格式。由SCSI层16产生的SCSI命令50(例如,读或写命令)由iSCSI层18封装于iSCSI协议数据单元(PDU)52中,后者进一步由iSER库20中的函数而与iSER头54封装在一起。iSER头54将包括STag和指示接收广告STag的远程节点是读取还是写入STag所索引存储区(窗)的信息及与请求相关的工作队列。iSER封装消息54进一步封装于一个或多个附加网络层56,例如TCP层、IP层、和/或以太网层中,以允许使用这些附加网络协议的传送。在某些实施方案中,RNIC 24中的网络层28将iSER封装消息54组装于附加网络层56,例如TCP、IP、以太网等中。
图4和5说明在用户空间10中执行以实施I/O操作的操作。参考图4,一旦起始iSCSI层18接收到(方框100)SCSI写请求,iSCSI层从iSER库20调用(方框102)一个或多个iSER函数,以执行包括含有写数据的存储单元30的SCSI写命令向可包括存储设备的目标节点的往外传送。所调用iSER函数调用(方框104)内核空间12中的RNIC驱动程序22,以获得包含有包括所接收SCSI命令的iSCSI PDU的存储区的STag。STag也可以从先前通过内核12调用已登记的STag池中取得,从而在单独命令上绕过内核12。所调用iSER函数使用(方框106)iSCSI PDU指针(通过iSER函数调用传递给它),以创建由STag和描述iSCSI头的偏移量以及作为送往RNIC的“发送”请求一部分的任选数据所构成的分散/集中列表(SGL),以便绕过内核地址空间12。iSER函数20从用户空间10调用(方框108)RNIC RDMA层26,以通过包括iSER头的RDMA“发送”来发送复合iSCSI PDU,其中iSER头广告(通过STag)待由远程节点用来提取附加的“SCSI写”数据直到iSCSI PDU中所指示长度的存储单元32。远程节点一旦将iSCSI PDU接收到远程目标节点中的存储区中,然后可以使用可包括存储设备的远程目标节点处的iSCSI 18和SCSI 16层来处理iSCSI写请求。如果不是所有待写入目标节点的数据都作为iSCSI PDU的一部分而发送,那么目标节点将使用包含于iSER头中的STag以从起始节点提取剩余数据。当被iSER函数调用时(在起始节点上),RNIC 24使用(方框110)RDMA 26和网络层28来传送消息负载到远程节点。目标处的iSER层可以使用一个或多个RDMA操作来从STag所指定的广告存储区中提取所请求数据。在起始RNIC从目标节点接收回包含I/O操作状态的iSCSI PDU之后,RNIC将使消息中标识为无效的任何STag无效。RNIC 24然后可以调用(方框112)iSER库20中的函数,以返回包含于iSCSI PDU中的状态,其中所调用iSER函数在用户空间中作为非特权用户来执行(方框114),以通知iSCSI层发送消息的结果并使任何其他相关STag无效。关于用于写数据的iSCSI/iSER协议的更多细节在上面提及的出版物“RDMA的iSCSI扩展说明书”中找到。
目标节点一旦接收到iSER/iSCSI PDU,解包基础的SCSI写入。目标SCSI层16将在存储器中建立供数据由起始节点写入的缓冲区,然后返回请求给iSCSI层,以开始传送数据。目标iSCSI层然后将请求打包成iSCSI头。目标iSER层将从待写入数据的目标截取iSCSI请求,并且通过从iSER头提取STag,将能够发出RDMA读命令,该命令将使得所索引数据从起始存储器中读出。在某些实施方案中,目标节点iSER/RDMA调用可以完整地或部分地包含于内核地址空间中。(本发明的关键是起始节点必须为iSER、iSCSI和SCSI函数使用用户空间。)在从起始节点写入所有数据后,目标上的SCSI/iSCSI过程建立描述SCSI操作的完成状态的状态PDU,并使用iSER来通过RDMA“发送-无效”消息(其包含待失效的STag)发送PDU给起始节点。
图5说明在节点处执行以从远程位置读取数据的操作。一旦起始iSCSI层18接收到(方框150)SCSI读命令,iSCSI层18调用(方框152)iSER函数,以发送包含SCSI读命令的iSCSI PDU到远程节点。所调用iSER函数调用(方框154)内核空间12中的RNIC驱动程序22,以获得待提取iSCSI/iSER PDU头的存储区32的STag,以及来自远程目标节点的“SCSI读”数据待放入的位置。STag也可以从先前通过内核12调用已登记的STag池中取得,从而在单独命令上绕过内核地址空间12。所调用iSER函数通过在具有包含读请求的分组中包含STag作为iSER头52的一部分而在其iSER头中包含广告(方框156)待写入数据的存储区的STag,以使目标节点将打包于iSCSI PDU内的SCSI读请求中所指定的请求数据写入到由广告STag所索引的存储区32上。在用户地址空间中运行的起始RNIC 24发送(方框158)消息到目标节点。目标节点处的iSER层使用(方框160)一个或多个RDMA写入来传送所请求数据到起始节点中STag所索引的广告存储区。目标节点处的iSER/iSCSI/SCSI层可以在用户地址空间10或内核地址空间12中执行。响应于iSER层,目标RNIC RDMA层执行(方框162)RDMA写入以传送所请求数据,同时消息负载指定在请求的iSCSI/iSER PDU中广告的STag。当从在目标处发出的RDMA写入中接收到数据时,起始RNIC 24将所请求数据放入(方框164)STag所索引的存储区中。一旦完成了完成SCSI读请求的RDMA写操作,SCSI/iSCSI/iSER目标调用(方框166)目标RNIC,以通过在RDMA头中包含RDMA写数据中所使用STag的发送-无效消息来发出SCSI完成状态的发送。起始RNIC 24一旦从起始节点接收到(方框168)该发送-无效,使工作队列中的指定STag无效(使不可用),然后在用户地址空间10中调用(方框170)起始iSER库20中的函数,以递交包含I/O状态消息的iSCSI PDU,而后将由iSCSI层18递交给SCSI层16,同时指示读取所请求的返回数据处于存储器30中。关于用于读取数据的iSCSI/iSER协议的更多细节在上面提及的出版物“RDMA的iSCSI扩展说明书”中找到。
图4和5说明iSCSI层如何可以通过用户空间10,作为非特权用户,调用iSER库中的函数,以直接与RNIC 24通信,以执行RDMA相关操作,而不必在内核空间中访问RNIC驱动程序22。在某些实施方案中,在存储区已分配且STag已由iSER函数通过内核空间10获得之后,用来实施iSCSI读和写操作的RDMA读和写操作通过用户空间10来调用,从而避免需要通过内核空间12来调用RNIC驱动程序22。避免内核地址空间用于处理I/O请求减少了节点处理器上的负载,因为通过内核空间12的调用比通过用户空间10的调用对系统施加更大的资源分配负荷。因此,I/O操作通过在用户地址空间中执行的过程而进行,从而避开内核地址空间。
在所述操作中,iSCSI层18调用iSER库20中的函数。在可选实施方案中,其他层,例如SCSI层16或应用程序14,可以建立它们自己的iSCSI PDU并调用iSER层20,以通过经由iSER库20而进行的RDMD调用来实施SCSI读和写请求。同样地,一些应用程序可以在它们自己的代码中包含SCSI层的函数。
此外,iSCSI层18可以通过经由用户空间10而进行的对iSER库20的调用来调用不同于上述那些的另外类型的RDMA操作,而不需要调用在内核空间12中执行的RNIC驱动程序22。更进一步,RNIC可以通过调用在用户空间10中执行的在iSER库20中的函数来返回状态和其他信息,以返还状态和消息给iSCSI层18,而不经过内核空间12。
其他实施方案细节
这里所描述的实施方案可以实施为使用标准编程和/或工程技术以生产软件、固件、硬件,或其任意组合的一种方法、装置或制造产品。这里所使用的术语“制造产品”指的是以硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等),或者计算机可读媒介,例如磁存储媒介(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失性及非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)实施的代码或逻辑。计算机可读媒介中的代码由处理器存取并执行。实现优选实施方案的代码还可以通过传输媒介或从网络上的文件服务器访问。在这些情况下,实现代码的制造产品可以包括传输媒介,例如网络传输线、无线传输媒介、通过空间广播的信号、无线电波、红外信号等。因此,“制造产品”可以包括实现代码的媒介。另外,“制造产品”可以包括实现、处理及执行代码的硬件和软件部分的组合。当然,本领域技术人员应当认识到,可以不背离本发明的范围对该结构做许多修改,以及制造产品可以包括本领域中已知的任何信息承载媒介。
所描述操作可以通过电路来执行,其中“电路”指的是硬件或软件或者其组合。用于执行所述实施方案的操作的电路可以包括硬件设备,例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等。电路也可以包括处理器部件,例如集成电路,以及计算机可读媒介,例如存储器中的代码,其中代码由处理器执行以执行所述实施方案的操作。
在所述实施方案中,iSER层通过用户空间10用来实现RDMA传送能力,以执行iSCSI读和写操作。在另外的实施方案中,iSCSI层可以调用iSER层来执行RDMA传送操作,以执行读和写操作以外的操作,例如提供状态、消息等。
在所述实施中,物理层使用以太网协议。在可选实施中,提供分组的链路到链路检验求和/CRC(或其他数据保护技术)的可选协议可以用来代替以太网,例如串行附加先进技术(SATA)、Infiniband、串行附加SCSI电缆等。
在所述实施中,传输层包括iSCSI协议。在可选实施中,本领域已知的用于以分组传送I/O命令并提供端到端检验求和/CRC(或其他数据保护技术)的其他协议也可以使用。
在所述实施中,打包的I/O命令包括SCSI命令。在可选实施中,命令可以是不同于SCSI的I/O命令格式,例如附加先进技术(ATA)命令。
在所述实施方案中,iSCSI层访问iSER层来通过用户空间访问RDMA数据传送能力。在另外实施方案中,与在用户空间中执行的iSCSI不同的数据传送协议层,例如应用或其他数据传送协议,可以直接调用iSER层来访问RDMA数据传送能力。
图4和5描述以某种顺序发生的特定操作。在可选实施中,某些操作可以以不同顺序来执行、修改或删除。而且,可以向上述逻辑添加步骤,并仍然符合所述实施。此外,这里所描述的操作可以顺序地发生,或者某些操作可以并行处理。更进一步,操作可以通过单个处理单元或通过分布式处理单元来执行。
实施方案的前面描述已为说明和描述的目的而给出。它并不打算穷举或将本发明局限于所公开的精确形式。根据上面的示教,许多修改和变化是可能的。所打算的是,本发明的范围不是由该详细描述,而是由其附加权利要求书来限定。上面的说明书、实例及数据提供本发明组成的制造和使用的完整描述。因为可以不背离本发明的本质和范围而进行本发明的许多实施,本发明属于在下文附加的权利要求书。

Claims (18)

1.一种用于在起始节点和目标节点之间传送数据的制造产品,其中起始节点包括适配器、内核地址空间和用户地址空间,其中所述制造产品包括:
用于在起始节点处接收符合第一数据传送协议的请求,以传送到目标节点的装置;
用于获得起始节点中的存储单元的索引,以用来传送请求到目标节点的装置;
用于调用在起始节点的用户地址空间中执行的至少一个函数的装置,以及
用于通过在用户地址空间中执行的该至少一个函数连系适配器,以使用第二数据传送协议来传送请求和存储单元的索引到目标节点的装置。
2.根据权利要求1的制造产品,其中存储单元的索引通过调用内核地址空间中的适配器驱动程序来获得。
3.根据权利要求1的制造产品,其中适配器将存储单元的索引初始化,以用于数据传送。
4.根据权利要求1的制造产品,其中该至少一个函数是用来调用使用第二数据传送协议的操作的函数库的一部分,其中所述操作还包括:
通过适配器调用在用户地址空间中执行的库中的至少一个函数,以传送状态给调用对该至少一个函数的调用的第一数据传送协议层。
5.根据权利要求1的制造产品,其中请求包括输入/输出请求并且其中存储单元用来实现该输入/输出请求。
6.根据权利要求5的制造产品,其中写入存储单元的协议符合第一数据传送协议,并由在起始节点的用户地址空间中执行的第一数据传送协议层来处理。
7.根据权利要求5的制造产品,其中输入/输出请求包括写入包含于请求中的数据的写请求,其中所述操作还包括:
将写请求与包括待写数据的起始节点中的存储单元的索引封装于分组中,其中目标节点使用通过起始节点处的适配器传送到目标节点的起始节点中的存储单元的索引,以使用第二数据传送协议从起始节点中的存储单元读取待写数据。
8.根据权利要求5的制造产品,其中输入/输出请求包括从目标节点读取数据的读请求,并且其中目标节点将所请求数据写入到起始节点中的存储单元。
9.根据权利要求1的制造产品,其中第一数据传送协议包括iSCSI协议并且其中请求由在起始节点中的用户地址空间中执行的iSCSI层来产生,其中第二数据传送协议包括RDMA数据传送协议,其中连系适配器的该至少一个函数包括iSER函数,并且其中适配器包括RNIC适配器。
10.一种用于在起始节点和目标节点之间传送数据的方法,包括:
在起始节点处接收符合第一数据传送协议的请求,以传送到目标节点;
获得起始节点中的存储单元的索引,以用来传送请求到目标节点;
调用在起始节点的用户地址空间中执行的至少一个函数,其中起始节点包括内核地址空间和用户地址空间;以及
通过在用户地址空间中执行的该至少一个函数连系适配器,以使用第二数据传送协议来传送请求和存储单元的索引到目标节点。
11.根据权利要求10的方法,其中存储单元的索引通过调用内核地址空间中的适配器驱动程序来获得。
12.根据权利要求10的方法,其中适配器将存储单元的索引初始化,以用于数据传送。
13.根据权利要求10的方法,其中该至少一个函数是用来调用使用第二数据传送协议的操作的函数库的一部分,所述方法还包括:
通过适配器调用在用户地址空间中执行的库中的至少一个函数,以传送状态给调用该至少一个函数的调用的第一数据传送协议层。
14.根据权利要求10的方法,其中请求包括输入/输出请求并且其中存储单元用来实现该输入/输出请求。
15.根据权利要求14的方法,其中写入存储单元的协议符合第一数据传送协议并由在起始节点的用户地址空间中执行的第一数据传送协议层来处理。
16.根据权利要求14的方法,其中输入/输出请求包括写入包含于请求中的数据的写请求,所述方法还包括:
将写请求与包括待写数据的起始节点中的存储单元的索引封装于分组中,其中目标节点使用通过起始节点处的适配器传送到目标节点的起始节点中的存储单元的索引,以使用第二数据传送协议从起始节点中的存储单元读取待写数据。
17.根据权利要求14的方法,其中输入/输出请求包括从目标节点读取数据的读请求,并且其中目标节点将所请求数据写入到起始节点中的存储单元。
18.根据权利要求10的方法,其中第一数据传送协议包括iSCSI协议并且其中请求由在起始节点中的用户地址空间中执行的iSCSI层来产生,其中第二数据传送协议包括RDMA数据传送协议,其中连系适配器的该至少一个函数包括iSER函数,并且其中适配器包括RNIC适配器。
CNB200510004586XA 2004-04-21 2005-01-18 执行数据传送请求的方法、系统和程序 Expired - Fee Related CN100556036C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/829,914 US7577707B2 (en) 2004-04-21 2004-04-21 Method, system, and program for executing data transfer requests
US10/829,914 2004-04-21

Publications (2)

Publication Number Publication Date
CN1691669A CN1691669A (zh) 2005-11-02
CN100556036C true CN100556036C (zh) 2009-10-28

Family

ID=35137953

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510004586XA Expired - Fee Related CN100556036C (zh) 2004-04-21 2005-01-18 执行数据传送请求的方法、系统和程序

Country Status (3)

Country Link
US (1) US7577707B2 (zh)
JP (1) JP4347247B2 (zh)
CN (1) CN100556036C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509764B1 (en) * 2015-06-19 2019-12-17 Amazon Technologies, Inc. Flexible remote direct memory access

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526574B2 (en) * 2004-04-21 2009-04-28 International Business Machines Corporation Method for communicating data transfer requests between data transfer protocols
US7475153B2 (en) * 2004-07-16 2009-01-06 International Business Machines Corporation Method for enabling communication between nodes
US7779081B2 (en) * 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
US20060168092A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation Scsi buffer memory management with rdma atp mechanism
US7343527B2 (en) * 2005-01-21 2008-03-11 International Business Machines Corporation Recovery from iSCSI corruption with RDMA ATP mechanism
US20060168094A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation DIRECT ACCESS OF SCSI BUFFER WITH RDMA ATP MECHANISM BY iSCSI TARGET AND/OR INITIATOR
JP2008020977A (ja) * 2006-07-11 2008-01-31 Sony Computer Entertainment Inc ネットワークプロセッサシステムおよびネットワークプロトコル処理方法
US20080155571A1 (en) * 2006-12-21 2008-06-26 Yuval Kenan Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
GB2446172B (en) * 2007-01-30 2009-01-21 Hewlett Packard Development Co Control of data transfer
US8078674B2 (en) * 2007-05-10 2011-12-13 International Business Machines Corporation Server device operating in response to received request
US8271669B2 (en) * 2007-05-30 2012-09-18 Broadcom Corporation Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers
US8090790B2 (en) * 2007-05-30 2012-01-03 Broadcom Corporation Method and system for splicing remote direct memory access (RDMA) transactions in an RDMA-aware system
US8245022B2 (en) * 2007-06-01 2012-08-14 Dell Products L.P. Method and system to support ISCSI boot through management controllers
JP5280135B2 (ja) * 2008-09-01 2013-09-04 株式会社日立製作所 データ転送装置
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
EP2710476A1 (en) 2011-05-16 2014-03-26 Oracle International Corporation System and method for providing a messaging application program interface
US8510759B1 (en) * 2012-06-29 2013-08-13 Intel Corporation Scatter gather emulation
CN102843435A (zh) * 2012-09-10 2012-12-26 浪潮(北京)电子信息产业有限公司 一种在集群系统中存储介质的访问、响应方法和系统
US9176911B2 (en) * 2012-12-11 2015-11-03 Intel Corporation Explicit flow control for implicit memory registration
US20140278328A1 (en) 2013-03-15 2014-09-18 Nvidia Corporation System, method, and computer program product for constructing a data flow and identifying a construct
US9015643B2 (en) * 2013-03-15 2015-04-21 Nvidia Corporation System, method, and computer program product for applying a callback function to data values
US9323502B2 (en) 2013-03-15 2016-04-26 Nvidia Corporation System, method, and computer program product for altering a line of code
US9015646B2 (en) 2013-04-10 2015-04-21 Nvidia Corporation System, method, and computer program product for translating a hardware language into a source database
US9021408B2 (en) 2013-04-10 2015-04-28 Nvidia Corporation System, method, and computer program product for translating a source database into a common hardware database
US9171115B2 (en) 2013-04-10 2015-10-27 Nvidia Corporation System, method, and computer program product for translating a common hardware database into a logic code model
CN103703441B (zh) * 2013-05-20 2015-04-08 华为技术有限公司 一种硬盘和数据处理方法
US10929149B2 (en) * 2014-11-11 2021-02-23 Red Hat, Inc. Method and system for updating firmware
US10831386B2 (en) 2016-01-29 2020-11-10 Hewlett Packard Enterprise Development Lp Remote direct memory access
WO2017131751A1 (en) 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Remote direct memory access
US10877674B2 (en) 2016-01-29 2020-12-29 Hewlett Packard Enterprise Development Lp Determining layout templates identifying storage drives
EP3855310A4 (en) * 2018-09-17 2022-05-18 Drimaes, Inc. SOFTWARE CONTROL DEVICE FOR A VEHICLE
US10725942B2 (en) * 2018-11-09 2020-07-28 Xilinx, Inc. Streaming platform architecture for inter-kernel circuit communication for an integrated circuit
US10924430B2 (en) 2018-11-09 2021-02-16 Xilinx, Inc. Streaming platform flow and architecture for an integrated circuit
US10990547B2 (en) 2019-08-11 2021-04-27 Xilinx, Inc. Dynamically reconfigurable networking using a programmable integrated circuit
US11232053B1 (en) 2020-06-09 2022-01-25 Xilinx, Inc. Multi-host direct memory access system for integrated circuits
US11539770B1 (en) 2021-03-15 2022-12-27 Xilinx, Inc. Host-to-kernel streaming support for disparate platforms
US11456951B1 (en) 2021-04-08 2022-09-27 Xilinx, Inc. Flow table modification for network accelerators
US11606317B1 (en) 2021-04-14 2023-03-14 Xilinx, Inc. Table based multi-function virtualization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323479A (zh) * 1998-08-12 2001-11-21 艾姆迪沃西蒂公司 通信网络中的网络控制方法和设备
CN1447254A (zh) * 2003-04-04 2003-10-08 清华大学 海量网络存储器设备及其实现方法

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
JP3558816B2 (ja) 1997-03-17 2004-08-25 株式会社リコー 通信装置
US6360282B1 (en) * 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards
US7350028B2 (en) * 1999-05-21 2008-03-25 Intel Corporation Use of a translation cacheable flag for physical address translation and memory protection in a host
US6374248B1 (en) * 1999-12-02 2002-04-16 Sun Microsystems, Inc. Method and apparatus for providing local path I/O in a distributed file system
US20030099254A1 (en) * 2000-03-03 2003-05-29 Richter Roger K. Systems and methods for interfacing asynchronous and non-asynchronous data media
US20030046396A1 (en) 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US6865617B2 (en) * 2000-05-23 2005-03-08 Sepaton, Inc. System maps SCSI device with virtual logical unit number and multicast address for efficient data replication over TCP/IP network
US7103626B1 (en) * 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
US7171484B1 (en) * 2000-05-24 2007-01-30 Krause Michael R Reliable datagram transport service
IL153454A0 (en) * 2000-06-26 2003-07-06 Ibm Data management application programming interface for a parallel file system
AU2001282477A1 (en) * 2000-08-24 2002-03-04 Voltaire Advanced Data Security Ltd. System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
WO2002061525A2 (en) * 2000-11-02 2002-08-08 Pirus Networks Tcp/udp acceleration
US6947970B2 (en) * 2000-12-19 2005-09-20 Intel Corporation Method and apparatus for multilevel translation and protection table
US6748502B2 (en) 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
JP2002237766A (ja) * 2001-02-08 2002-08-23 Nec Corp 適応アンテナ受信装置
US7149817B2 (en) * 2001-02-15 2006-12-12 Neteffect, Inc. Infiniband TM work queue to TCP/IP translation
US6795895B2 (en) 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US7231430B2 (en) * 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
KR100439950B1 (ko) * 2001-05-22 2004-07-12 (주)인젠 네트워크 침입탐지 시스템
US6687645B2 (en) * 2001-06-28 2004-02-03 Northrop Grumman Corporation Motion and trajectory data generator for a multi-gimbaled rotating platform
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7620692B2 (en) * 2001-09-06 2009-11-17 Broadcom Corporation iSCSI receiver implementation
US6895590B2 (en) * 2001-09-26 2005-05-17 Intel Corporation Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US6845403B2 (en) * 2001-10-31 2005-01-18 Hewlett-Packard Development Company, L.P. System and method for storage virtualization
JP2003140840A (ja) 2001-10-31 2003-05-16 Toshiba Corp ネットワーク接続されたディスクアレイのアクセス方法及び記憶装置
US7366784B2 (en) * 2001-11-27 2008-04-29 Hitachi, Ltd. System and method for providing and using a VLAN-aware storage device
US7246245B2 (en) * 2002-01-10 2007-07-17 Broadcom Corporation System on a chip for network storage devices
US6851023B2 (en) * 2002-01-14 2005-02-01 Raidcore, Inc. Method and system for configuring RAID subsystems with block I/O commands and block I/O path
US7003586B1 (en) * 2002-02-27 2006-02-21 Advanced Micro Devices, Inc. Arrangement for implementing kernel bypass for access by user mode consumer processes to a channel adapter based on virtual address mapping
US20030169690A1 (en) 2002-03-05 2003-09-11 James A. Mott System and method for separating communication traffic
US7237031B2 (en) * 2002-03-07 2007-06-26 Sun Microsystems, Inc. Method and apparatus for caching protocol processing data
US7245627B2 (en) * 2002-04-23 2007-07-17 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
US7944920B2 (en) 2002-06-11 2011-05-17 Pandya Ashish A Data processing system using internet protocols and RDMA
WO2004017173A2 (en) * 2002-08-14 2004-02-26 Broadcom Corporation One shot rdma having a 2-bit state
EP1552409B1 (en) * 2002-08-19 2013-07-24 Broadcom Corporation One-shot rdma
US7937554B2 (en) * 2002-11-12 2011-05-03 Broadcom Corporation System and method for managing memory
US8631162B2 (en) * 2002-08-30 2014-01-14 Broadcom Corporation System and method for network interfacing in a multiple network environment
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
US6721806B2 (en) * 2002-09-05 2004-04-13 International Business Machines Corporation Remote direct memory access enabled network interface controller switchover and switchback support
US7043578B2 (en) * 2003-01-09 2006-05-09 International Business Machines Corporation Method, system, and program for processing a packet including I/O commands and data
US20040158651A1 (en) * 2003-02-10 2004-08-12 Fan Kan Frankie System and method for teaming
US7111147B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Location-independent RAID group virtual block management
US7103744B2 (en) * 2003-03-27 2006-09-05 Hewlett-Packard Development Company, L.P. Binding a memory window to a queue pair
US20040193833A1 (en) * 2003-03-27 2004-09-30 Kathryn Hampton Physical mode addressing
US7519988B2 (en) * 2003-07-31 2009-04-14 International Business Machines Corporation Method and apparatus for authenticated network address allocation
US8959171B2 (en) * 2003-09-18 2015-02-17 Hewlett-Packard Development Company, L.P. Method and apparatus for acknowledging a request for data transfer
US7716290B2 (en) * 2003-11-20 2010-05-11 Microsoft Corporation Send by reference in a customizable, tag-based protocol
US7428730B2 (en) * 2003-12-15 2008-09-23 Intel Corporation Software development environment
US7263568B2 (en) * 2004-03-31 2007-08-28 Intel Corporation Interrupt system using event data structures
US7197588B2 (en) * 2004-03-31 2007-03-27 Intel Corporation Interrupt scheme for an Input/Output device
US8078705B2 (en) * 2004-04-05 2011-12-13 Hewlett-Packard Development Company, L.P. Key-configured topology with connection management
US7526574B2 (en) * 2004-04-21 2009-04-28 International Business Machines Corporation Method for communicating data transfer requests between data transfer protocols

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323479A (zh) * 1998-08-12 2001-11-21 艾姆迪沃西蒂公司 通信网络中的网络控制方法和设备
CN1447254A (zh) * 2003-04-04 2003-10-08 清华大学 海量网络存储器设备及其实现方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509764B1 (en) * 2015-06-19 2019-12-17 Amazon Technologies, Inc. Flexible remote direct memory access
US10884974B2 (en) 2015-06-19 2021-01-05 Amazon Technologies, Inc. Flexible remote direct memory access
US11436183B2 (en) 2015-06-19 2022-09-06 Amazon Technologies, Inc. Flexible remote direct memory access

Also Published As

Publication number Publication date
JP4347247B2 (ja) 2009-10-21
JP2005310130A (ja) 2005-11-04
CN1691669A (zh) 2005-11-02
US20050240941A1 (en) 2005-10-27
US7577707B2 (en) 2009-08-18

Similar Documents

Publication Publication Date Title
CN100556036C (zh) 执行数据传送请求的方法、系统和程序
CN1722732B (zh) 节点之间进行通信的方法及系统
US10193978B2 (en) Distributed network node operation system based on operation control unit
CN1902585B (zh) 用于与支持多个设备的网络适配器接口的方法、系统和程序
CN1647054B (zh) 双模网络设备驱动设备、系统和方法
CN100520758C (zh) 提高tcp重发处理速度
CN100438403C (zh) 用于管理通过网络的数据传输的方法和系统
CN100361100C (zh) 对用于单通道适配器的多个资源进行逻辑分区的方法和系统
CN100399305C (zh) 计算机网络内的数据块存储
CN100476769C (zh) 降低写操作的数量的方法和系统
CN100462947C (zh) 用于实现卸载发起方功能的方法和系统
EP3446440B1 (en) Multi-stage network discovery
EP2354874B1 (en) Control network system, master apparatus, control data processing method and control data processing program
CN104038401A (zh) 用于分布式覆盖虚拟环境的互操作性
CN104052789A (zh) 用于虚拟联网系统的负载平衡
CN102014150A (zh) 一种基于udp分布式小文件存储系统及其数据处理方法
CN103838516B (zh) 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统
JP2006237668A (ja) センサネット管理システム
CN101194250A (zh) 用于关闭rdma连接的方法和系统
CN105378694A (zh) 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统
CN100412847C (zh) Rdma完成和重传系统以及方法
CN101827019A (zh) 网络接口设备
CN105678359A (zh) 一种基于WoT的固定资产管理系统和方法
CN101202689A (zh) 网络机器人系统以及其中的通信方法
CN114035987A (zh) 基于消息队列的数据传输方法、装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028