CN100556036C - 执行数据传送请求的方法、系统和程序 - Google Patents
执行数据传送请求的方法、系统和程序 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 title description 21
- 230000006870 function Effects 0.000 claims abstract description 50
- 238000012546 transfer Methods 0.000 claims abstract description 30
- 238000004519 manufacturing process Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram 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适配器。
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)
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)
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 |
US7779081B2 (en) * | 2004-07-16 | 2010-08-17 | International Business Machines Corporation | Method, system, and program for forwarding messages between nodes |
US7475153B2 (en) * | 2004-07-16 | 2009-01-06 | International Business Machines Corporation | Method for enabling communication between nodes |
US20060168092A1 (en) * | 2005-01-21 | 2006-07-27 | International Business Machines Corporation | Scsi buffer memory management 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 |
US7343527B2 (en) * | 2005-01-21 | 2008-03-11 | International Business Machines Corporation | Recovery from iSCSI corruption with RDMA ATP mechanism |
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 |
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 |
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 |
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 |
US9015643B2 (en) * | 2013-03-15 | 2015-04-21 | Nvidia Corporation | System, method, and computer program product for applying a callback function to data values |
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 |
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 |
EP2840576A4 (en) * | 2013-05-20 | 2015-07-01 | Huawei Tech Co Ltd | HARD DISK AND DATA PROCESSING METHOD |
US10929149B2 (en) * | 2014-11-11 | 2021-02-23 | Red Hat, Inc. | Method and system for updating firmware |
US10877674B2 (en) | 2016-01-29 | 2020-12-29 | Hewlett Packard Enterprise Development Lp | Determining layout templates identifying storage drives |
EP3286631A4 (en) | 2016-01-29 | 2018-05-30 | Hewlett-Packard Enterprise Development LP | Remote direct memory access |
CN107430585B (zh) | 2016-01-29 | 2021-04-02 | 慧与发展有限责任合伙企业 | 用于远程直接存储器访问的系统和方法 |
US11059435B2 (en) * | 2018-09-17 | 2021-07-13 | Drimaes, Inc. | Vehicle software control device |
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)
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)
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 |
WO2001090902A1 (en) | 2000-05-23 | 2001-11-29 | Sangate Systems, Inc. | Method and apparatus for data replication using scsi over tcp/ip |
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 |
AU6778601A (en) | 2000-06-26 | 2002-01-08 | International Business Machines Corporation | Data management application programming interface for a parallel file system |
JP2004526218A (ja) | 2000-08-24 | 2004-08-26 | ボルテール アドバンスト データ セキュリティ リミテッド | 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法 |
US7089293B2 (en) * | 2000-11-02 | 2006-08-08 | Sun Microsystems, Inc. | Switching system method for discovering and accessing SCSI devices in response to query |
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 |
US7487264B2 (en) | 2002-06-11 | 2009-02-03 | Pandya Ashish A | High performance IP processor |
WO2004017173A2 (en) * | 2002-08-14 | 2004-02-26 | Broadcom Corporation | One shot rdma having a 2-bit state |
WO2004017220A1 (en) * | 2002-08-19 | 2004-02-26 | Broadcom Corporation | One-shot rdma |
US8631162B2 (en) * | 2002-08-30 | 2014-01-14 | Broadcom Corporation | System and method for network interfacing in a multiple network environment |
US7937554B2 (en) * | 2002-11-12 | 2011-05-03 | Broadcom Corporation | System and method for managing memory |
US6721806B2 (en) * | 2002-09-05 | 2004-04-13 | International Business Machines Corporation | Remote direct memory access enabled network interface controller switchover and switchback support |
US7299266B2 (en) * | 2002-09-05 | 2007-11-20 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
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 |
-
2004
- 2004-04-21 US US10/829,914 patent/US7577707B2/en not_active Expired - Fee Related
-
2005
- 2005-01-18 CN CNB200510004586XA patent/CN100556036C/zh not_active Expired - Fee Related
- 2005-03-28 JP JP2005090469A patent/JP4347247B2/ja not_active Expired - Fee Related
Patent Citations (2)
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)
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 |
US7577707B2 (en) | 2009-08-18 |
US20050240941A1 (en) | 2005-10-27 |
JP2005310130A (ja) | 2005-11-04 |
CN1691669A (zh) | 2005-11-02 |
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) | 用于实现卸载发起方功能的方法和系统 | |
EP2354874B1 (en) | Control network system, master apparatus, control data processing method and control data processing program | |
EP3446440B1 (en) | Multi-stage network discovery | |
CN103297306B (zh) | 一种农业物联网系统 | |
CN104038401A (zh) | 用于分布式覆盖虚拟环境的互操作性 | |
CN104052789A (zh) | 用于虚拟联网系统的负载平衡 | |
CN109495524A (zh) | 一种物联网资源订阅的方法、设备和系统 | |
CN102014150A (zh) | 一种基于udp分布式小文件存储系统及其数据处理方法 | |
CN103838516B (zh) | 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统 | |
JP2006237668A (ja) | センサネット管理システム | |
CN101194250A (zh) | 用于关闭rdma连接的方法和系统 | |
CN105378694A (zh) | 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统 | |
CN100412847C (zh) | Rdma完成和重传系统以及方法 | |
CN101827019A (zh) | 网络接口设备 | |
CN105678359A (zh) | 一种基于WoT的固定资产管理系统和方法 |
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 |