Rdma网络上的子网管理数据的高效分配的制作方法

文档序号:6498478阅读:234来源:国知局
Rdma网络上的子网管理数据的高效分配的制作方法
【专利摘要】一个实施例提供了用于使用远程直接存储器访问(RDMA)传送接收子网管理(SA)数据的方法。该方法包括:由网络节点元件通过RDMA启用标志将SA数据查询格式化;由该网络节点元件配置可靠连接队列对(RCQP)以便从在启用RDMA的网络上与该网络节点元件通信的子网管理器接收RDMA传送;以及由该网络节点元件分配RDMA写目标缓冲器以便响应于该SA数据查询使用RDMA传送从该子网管理器接收该SA数据。
【专利说明】RDMA网络上的子网管理数据的高效分配
[0001]领域
[0002]本公开涉及RDMA网络上的子网管理数据的高效分配。
[0003]背景
[0004]启用RDMA的网络(如Infinband?网络)由子网管理器(SM)管理。SM负责发现和配置连接到网络的设备。应请求,SM可向应用分配这种配置数据,这些应用使用配置数据来在网络上的节点之间建立通信。Infiniband?协议定义了不可靠数据报(datagram)通信协议以便使SM能向网络上的一个或多个节点发送配置数据。然而,不可靠数据报通信协议要求会极大地影响吞吐量的软件差错校验过程,并且因此,不可靠数据报通信协议不适合提供启用RDMA的网络(如Infiniband?网络)的高速可扩展性、性能以及容错。
[0005]附图简要说明
[0006]所要求保护的主题的特征和优点将从与其一致的实施例的以下详细说明中变得明显,应当参照附图来考虑该说明书,在附图中:
[0007]图1示出与本公开的各实施例一致的网络系统;
[0008]图2更详细地示出图1的节点和子网管理器之间的通信;
[0009]图3示出根据本公开的一个实施例的SA数据查询、SA响应以及SA数据的示例性Infiniband?消息结构;
[0010]图4是根据本公开的一个实施例的操作的流程图;以及
[0011]图5是根据本公开的另一个实施例的操作的流程图。
[0012]尽管将参考说明性实施例进行以下详细说明,其许多替代、修改和变化将对本领域普通技术人员明显。
[0013]详细描述
[0014]总体上,本公开涉及启用RDMA的网络(如Infiniband?网络)上的子网管理数据的高效、可扩展分配。子网管理器(通常被配置成网络设备发现以及生成子网管理(SA)数据)向至少一个网络节点元件公开可靠连接队列对。可靠连接队列对尤其实现子网管理器和网络节点元件之间的RDMA传送,而代替使用常规地由启用RDMA的网络通信协议定义的不可靠数据报队列对。在网络节点元件上执行的应用可要求SA数据以便与例如其他网络节点元件通信。网络节点元件可配置可靠连接队列对以及RDMA写目标缓冲器、将SA数据查询发送到子网管理器以及通过RDMA传送在可靠连接队列对上接收SA数据。SA数据的大小通常足够大,从而使得不可靠数据报传输可能显著地影响总体系统吞吐量和性能。对比之下,根据在此展现的教导的RDMA传送可提供显著优于常规方法的速度优势,并且还可有利地使用更稳健的差错校验技术(例如,基于硬件的差错校验协议),以便提供进一步提高的效率和吞吐量。
[0015]图1示出与本公开的各实施例一致的网络系统100。网络系统100总体上包括多个网络节点元件102A、102B、102C、...、102N以及子网管理器(SM) 116,其各自被配置成通过网络结构126彼此通信。每个网络节点元件102A、102B、102C、...、102N以及SM 116可使用远程直接存储器访问启用(启用RDMA的)通信协议通过网络126彼此通信。如在此所使用的,启用RDMA的通信协议是使能网络节点元件之间的和/或网络节点元件与SM 116之间的RDMA数据传输的通信协议。在一个示例性实施例中,启用RDMA的通信协议是Infiniband?通信协议。每个节点元件102A、102B、102C、…、102N可表示计算机节点元件(例如,主机服务器系统)、交换机、和/或网络存储设备。将节点102A作为主机或服务器节点的示例,节点102A总体上包括主处理器、主CPU 104、系统存储器106、桥芯片组108、以及网络控制器110。主CPU104耦合到系统存储器106和桥芯片组108。网络控制器110被配置成使用启用RDMA的通信协议与其他网络节点元件和SM 116通信。网络控制器110被配置成生成并使用队列对(例如,传输/接收队列对)以便使能与网络系统100内的其他节点的消息传送和I/O事务,如可由启用RDMA的通信协议定义的那样。
[0016]在至少一个示例性系统中,网络控制器110被配置成定义至少一个不可靠数据报队列对112(UDQP 112)以及至少一个可靠连接队列对(RCQP) 114。如在此所使用的,RCQP可以是能够使用RDMA传送发送或接收数据分组的启用RDMA的队列对。进一步地,网络控制器110可包括RDMA卸载引擎电路115,该电路被配置成提供例如分组传输、分组分段、分组重组、差错校验、传输确认、传输重试等等,而不需要主CPU 104和/或软件介入。因此,在RCQP 114接收的分组可使用RDMA卸载引擎电路115以便提供RDMA传送,而无需主CPU104和/或软件介入。RCQP可以是面向连接的并且可在兆比特的数量级上提供非常大的数据传送。RCQP可根据在此的教导用于传送大部分应用数据,其中,希望正确地交付数据(例如,模拟结果、图像、文件传送等等)。如在此所使用的,UDQP总体上被定义为支持使用不可靠数据报消息传送的数据分组传送的队列对,如可由Infiniband?通信协议定义的那样。这种不可靠数据报消息传送总体上不使用RDMA卸载引擎电路115,而是使用主CPU 104和软件(未示出)执行分组传输、分组分段、分组重组、差错校验、传输确认、传输重试等等。UDQP总体上被提供以便在节点之间传输小分组。数据报的大小总体上被限制为网络链路层(未示出)的最大传送单元,通常在Infiniband?网络上是4 KB或更小。附加地,数据报可包括目的地的完全地址信息并且可通常不被硬件确认。因此,对于在UDQP上发送和接收的消息而言,软件必须处理大量的消息分段和重组、分组丢失、差错、超时、数据乱序、以及重传。单个UDQP可向多个远程节点发送并从其接收数据。当与多个节点通信少量数据时或者如果无需接收数据(例如,语音数据、位置信息、某些类型的视频),UDQP可以是有用的。当然,节点102A还可包括存储控制器电路(未示出),其可耦合到形成Infiniband?网络结构的部分的一个或多个存储设备(未示出)。可类似于节点102A,对其他网络节点元件102B、102C、...、102N进行配置,配置的程度是这种配置使其他网络节点元件102B、102C、…、102N能够通过该网络结构使用启用RDMA的通信协议进行通信。
[0017]系统存储器106被配置成存储至少一个应用107和子网管理(SA)数据109。附加地,系统存储器106可被控制以便提供RDMA目标写缓冲器105,从而使能从SM 116到节点的RDMA传送,如以下将更详细地讨论的。在一个示例中,应用107可被存储在系统存储器106 (其可包括例如系统RAM和/或高速缓存存储器)中并至少部分地由主CPU 104执行。应用107可包括通过网络控制器110发起与一个或多个节点102B、...、102N和/或与SM 116的通信的指令。可与本公开一起使用的样本应用包括例如使用MPI (消息传送接口)的那些:例如化学建模、碰撞模拟、石油和能源勘探、库存建模、空气动力学等等。为了使能网络系统100中的节点之间的通信,应用107可使用系统管理数据109 (SA数据)。SA数据109可包括例如用于网络结构的成员的地址和路径信息。SA数据109可由SM 116生成,并且当应用107被执行时,节点102A可向SM 116查询SA数据109。通常,节点102A-N上的SA数据109是“短命的”,是指一旦SA数据109由给定应用107用于在网络结构中的节点之间通信,后续应用执行包括向SM116查询以便刷新来自SM 116的SA数据109。
[0018]SM 116可总体上被以与网络节点元件102A类似的方式配置,但是SM116总体上被指定为管理网络系统100的通信规则和策略的“主节点”。SMl 16包括网络控制器118,该网络控制器类似于网络控制器110并且被配置成使用启用RDMA的通信协议与网络节点元件和SM 116通信。在至少一个示例性系统中,网络控制器118被配置成定义至少一个不可靠数据报队列对112(UDQP 120)以及至少一个可靠连接队列对(RCQP) 122。网络控制器还可包括被类似于上述RDMA卸载引擎115配置的RDM卸载电路119。SM 116还包括子网管理模块124,该子网管理模块总体上可操作用于配置网络结构(其可包括例如设备/节点元件发现、确定设备/节点元件能力和配置等等)、向节点和/或节点和网络控制器分配地址、对节点开关元件进行编程以便在节点元件之间提供路径。子网管理模块124还被配置成生成SA数据109,并且SA数据109总体上包括用于网络系统100中的网络节点元件102A、102B、102C、...、102N的地址和路径信息。
[0019]常规Infiniband?通信协议规定使用例如UDQP 114和UDQP 120之间的不可靠数据报队列对执行SM 116和网络节点元件102A、102B、102C、…、102N之间的分组事务。具体地,Infiniband?通信协议通常规定用于这种通信的UDQP1。网络控制器118被配置成分配用于与至少一个网络节点元件通信的至少一个UDQP 120。类似地,将节点102A用作示例,网络控制器110被配置成分配相应的UDQP 112以便在控制器118和控制器110之间提供不可靠数据报通信。在常规的Infiniband?通信协议中,使用UDQP 120和UDQP 112来通信从SM 116到网络节点元件102A的查询响应。因此,在常规的Infiniband?通信协议中,使用利用相应的M)QP 120和UDQP 112的不可靠数据报传输执行包括SA数据109的SA数据响应。然而,不可靠数据报分组传输通常使用用于分段、重组、确认以及(如果适用的话)如果分组传输失败则进行传输重试的软件。SA数据109可相对较大(例如,对于典型大小的网络是2-3 MB),并且,因为对于每次执行,应用107通常要求进行SA数据刷新,这种软件使用总体上并且极大地限制了网络系统的总体吞吐量并且还可极大地影响网络系统的可扩展性。
[0020]在本公开的至少一个实施例中,网络控制器118还被配置成分配可靠连接队列对(RCQP) 122,以便使网络控制器118能使用RDMA传送向至少一个网络节点元件102A、102B、102C、…、102N传送查询响应。网络控制器118可为给定的网络节点元件分配多于一个RCQP,并且可为多个网络节点元件分配多个RCQP,从而使能例如SM 116和多个网络节点元件102A、102B、102C、…、102N之间的平行RDMA传送。在图1的示例中,可分配多个RCQP,每个用于多个网络节点元件中的一个(例如,RCQP A122被分配给节点102A等等)。SM116被配置成将RCQP的分配公开给至少一个网络节点元件。将节点102A用作示例,当从SM 116接收到RCQP的公开时并且当执行应用107时,网络控制器110被配置成分配相应的RCQP A’ 114,从而使能控制器118和控制器110之间的RDMA传送。附加地,一旦被使能用于RDMA传送,节点102A可被配置成分配RDMA写目标缓冲器105,以便为从SM 116到节点102A的直接存储器写入提供存储位置。以下更详细地描述这些概念。
[0021]图2是更详细地示出图1的节点102A和SM 116之间的通信操作的框图200。在本示例中,不可靠数据报通信信道202和可靠连接通信信道204被描绘为在节点102A和SM116之间提供通信。然而,应当认识到信道202和204在本图中被描绘为逻辑连接,无需是分离的物理通信信道。在操作中,响应于应用(107)的执行,节点102A可使用利用相应的UPDQl 120和UPQPl112的不可靠数据报传输向SM 116发送SA数据查询206。SA数据查询206可符合Infiniband?通信协议中定义的查询规范,并且查询可包括“保留”数据字段(例如,在Infiniband?通信协议中被规定但未被使用的一个或多个指定位)。作为网络结构的规则和策略的管理的一部分,SM 116可在SA数据查询206的保留数据字段中指定某个位(或某些位),以便指示RDMA传送被接受(RDMA启用标志)。因此,如果节点102A被配置成并且能够从SM 116接收RDMA传送,节点102A可使用保留数据字段中的RDMA启用标志将SA数据查询206格式化。
[0022]节点102A还可以能够分配RDMA写目标缓冲器105以便从SM 116接收并存储RDMA响应。节点102A可用RDMA写目标缓冲器地址、加密密钥、和/或缓冲器长度信息更新SA数据查询206。响应于SA数据查询206,SM 116可确定可将SA数据109作为可靠连接RDMASA数据响应(RCRDMA SA响应210)或作为不可靠数据报响应(UD响应208)发送。例如,SM 116可被配置成确定RDMA写缓冲器的大小是否适合于响应或者RCQP 122是否忙碌(或者以其他方式不可用)使得RDMA传送不能继续。SM 116可使用利用相应的UPDQ1120和UPQPl112的不可靠数据报传输(UD响应208)向SM数据查询206发送响应。UD响应208可包括为RDMA写目标缓冲器重新分配特定大小、将RDMA响应重定向到另一个RCQP的指令,和/或其他指令。在接收到UD响应208后,节点102A可向SM 116重新发送SA数据查询206。如果节点102A和SM 116的能力支持RDMA传送,SM 116可发送包括SA数据109的RCRDMA SA响应210。然而,与常规方法相比,SM 116可使用利用相应的RCQP A 122和RCQPA’ 114的可靠连接传输发送包括SA数据109的SA数据响应。一旦在RCQP A’ 114中接收到响应,可使用RDMA传送将响应数据直接存储在RDMA目标写缓冲器105中,由此避免干涉数据写操作。利用RCQP A 122和RCQP A’114的可靠连接传输可利用硬件(例如,RDMA卸载引擎电路115)用于分段、重组、确认以及(如果适用的话)在分组传输失败情况下的传输重试。因此,可实现网络系统的总体吞吐量和可扩展性的显著改进。
[0023]图3示出根据本公开的一个实施例的SA数据查询206’、SA响应210’以及SA数据109’的示例性Infiniband?消息结构。每个消息的字节偏移(注意沿着每个消息的左边缘)通常表示使用Infiniband?协议的消息内的各字段的偏移信息。SA数据查询206’可包括标准MAD (管理数据报)部分、RMPP (可靠多分组处理)头部部分、SA头部、SA记录以及SA数据部分。SA头部可包括可包含RDMA启用标志的一个或多个保留字段。RMPP头部包括用于使卸载引擎能处理分组分段和重组的信息。存在各种类型的SA数据。这些类型被定义为“记录”。每个记录描述有关网络或网络上的节点的不同类型的信息。示例性记录包括例如描述有关交换机的信息、描述节点信息的记录、用于性能计数器的记录等等。这些记录是正在被请求的实际数据。这些头部用于标识查询和响应,从而使得响应可与正确的查询匹配。因此,MAD头部用于将响应与查询匹配并且标识查询何种业务。并且,SA头部标识用户正在寻找哪条记录。SA头部可展现MAD头部何时指示查询应当被定向到SA。SA数据区域包含对查询的实际输入和输出。这些部分的每个还可包括SA响应210’和SA数据109’,如图3中所描绘的。当然,图3中示出的任何消息还可包括用于确认目的的“填充”部分和/或控制MAD (控制MAD可具有与所示出的那些相同的格式但是通常不携带SA记录)和/或可由Infiniband?协议指定的其他部分/字段。
[0024]图4是根据本公开的一个实施例的操作的流程图400。具体地,流程图400示出网络节点元件使能将SA数据从子网管理器RDMA传送到网络节点元件的操作。本实施例的操作包括生成SA数据查询402。SA数据查询可由例如正在网络节点元件上执行的应用生成。该应用可使用SA数据例如来与另一个网络节点元件通信,以便促进网络节点元件之间的I/O事务(例如,数据读取、数据写入等等),并且因此,SA数据可包括例如另一个网络节点元件的地址。操作还可包括由第一网络节点元件用RDMA启用标志将SA数据查询格式化404。RDMA启用标志可包括例如在Infiniband?数据查询头部的保留数据字段中被设置的位(或多个位)。本实施例的操作还可包括确定子网管理器(SM)是否已经向网络节点元件公开了 RC队列对406,从而使能从SM到网络节点元件的RDMA传送。SM还可配置专用于传送到网络节点元件的RCQP的相应的RCQP。
[0025]如果SM已经公开了 RCQP,本实施例的操作还可包括配置RCQP以便从SM接收RDMA写数据408。通过用远程RCQP地址信息(例如,QP号码、网络地址、以及服务质量信息)、序列号、超时值等等对RCQP进行编程,完成RCQP的配置。RCQP还可通过其内部状态过渡,直到已经准备就绪向远程RCQP发送。本实施例的操作还可包括分配RDMA写目标缓冲器以便从SM接收响应410。在此,来自SM的响应可包括SA数据并且RDMA写目标缓冲器可通过RDMA传送接收响应。操作可进一步包括向SA数据查询添加RDMA缓冲器地址、加密密钥、和/或缓冲器长度信息412。由于RCQP可被使能用于从SM到网络节点元件的单向通信,本实施例的操作还可包括使用不可靠数据报队列对(UDQP)向SM发送SA数据查询414。UDQP可包括例如预定义用于给定的启用RDMA的通信协议的队列对,例如,用于Infiniband?协议的队列对I。在操作416,网络节点元件可确定SA数据查询响应是否已经从子网管理器发送以及是在RCQP还是UDQP上接收响应。如果在RCQP上接收到的响应是来自子网管理器的所请求的SA数据,网络节点元件可通过使用RDMA传送将数据从指定的RCQP传送到经配置的RDMA写目标缓冲器来做出响应,从而完成事务422。
[0026]然而,如果来自子网管理器的响应是在UDQP上接收的,这可致使网络节点元件检查响应的状态418。在一个示例中,由子网管理单元发送的响应可以是指示RDMA写目标缓冲器的大小太小而不能用于预期RDMA传送的状态响应。网络节点元件可在操作420通过经由重新分配RDMA写目标缓冲器来调整RDMA写目标缓冲器的大小以便从子网管理器接收响应来做出响应。上述操作412和414可重复并且如果SA数据查询响应是从子网管理器发送的416,事务可完成422。在另一个示例中,由子网管理单元发送的响应可以是指示经配置的RCQP不再有效以及来自子网管理器的响应将被重定向到第二 RCQP的重定向响应。无效RCQP可包括例如当前、先前公开的RCQP忙碌或者以其他方式不可用于SA数据传送。网络节点元件可在操作408通过配置第二 RCQP以便从子网管理器接收响应来做出响应。操作410 (其程度为指定RDMA写目标缓冲器的重新分配)和上述操作412和414可重复,并且如果SA数据查询响应是从子网管理器416发送的,事务可完成422。
[0027]返回参照操作406,如果RCQP尚未由子网管理器公开,这可指示子网管理器不能向SA数据查询提供RDMA响应(诸如可以是常规系统的情况等等)。在这种情况下,网络节点元件可使用不可靠数据报队列对(UDQP)向子网管理器发送SA数据查询414。网络节点元件可确定SA数据查询响应是否已经从子网管理器发送并且在UDQP上接收到(操作416)。在UDQPl上接收到的响应可包括SA数据。网络节点元件可检查响应的状态418,并且如果响应通过状态检查,事务可完成422。
[0028]图5是根据本公开的另一个实施例的操作的流程图500。具体地,流程图500示出子网管理器(SM)使能将SA数据从SM传送到网络节点元件的操作。本实施例的操作包括生成SA数据502。上述SA数据可包括Infiniband?网络结构中的至少一个网络节点元件的地址和路径信息。操作还包括为网络节点元件404生成并公开第一 RCQP。操作还包括由SM从网络节点元件接收SA数据查询506。操作还包括确定是否在SA数据查询中设置了RDMA启用标志508。如果没有,操作包括在UDQP上发送SA数据响应510。
[0029]如果设置了 RDMA启用标志(508),操作还可包括解析SA数据查询以便确定网络节点元件的RDMA能力512。操作还可包括确定RDMA写目标缓冲器是否太小而不能接收SA数据514。如果RDMA写目标缓冲器太小,操作还可包括在UDQP上向网络节点元件发送状态响应以便重新分配RDMA写目标缓冲器516。操作506可通过经重新分配的RDMA写目标缓冲器重复(在虚线框506中注明)。如果RDMA写目标缓冲器的大小适合通过RDMA传送接收SA数据,操作还可包括确定RCQP是否不可用518。如果RCQP可用,操作可包括在用于RDMA传送的RCQP上向网络节点元件发送SA数据响应520。SA数据可被直接从与网络节点元件相关联的RCQP写入RDMA写目标缓冲器。如果RCQP不可用,操作可包括生成第二 RCQP 522以及在UDQP上向网络节点元件发送重定向响应以便将SA响应重定向到第二 RCQP 524。操作506可通过第二 RCQP重复(在虚线框506中注明)524。
[0030]尽管图4和图5的流程图示出了根据各实施例的操作,将要理解的是在图4和/或图5中描绘的所有操作对于其他实施例而言不是全部必需的。附加地,在此充分考虑了在本公开的其他实施例中,在图4、图5中描绘的操作和/或在此描述的其他操作可以用未在任何附图中明确示出的方式结合,并且这种实施例可包括比图4和/或图5中示出的操作更少或更多的操作。因此,涉及未在一个附图中准确示出的特征和/或操作的权利要求被认为在本公开的范围和内容内。
[0031]前述内容被认为是示例性系统架构和方法,可对本公开进行修改。例如,节点102A可进一步包括操作系统(OS,未示出),以便管理系统资源并且控制在例如节点102A上运行的任务。例如,可使用Microsoft Windows>HP-UX>Linux或UNFX实现OS,但是可使用其他操作系统。在某些实施例中,OS可由可为在一个或多个处理单元上运行的各种操作系统提供底层硬件抽象层的虚拟机替代。操作系统和/或虚拟机可实现一个或多个协议堆栈。协议堆栈可执行一个或多个程序用于处理分组。协议堆栈的示例是包括一个或多个程序用于处理(例如,处理或生成)分组以便在网络上传输和/或接收的TCP/IP(传输控制协议/互联网协议)协议堆栈。可替代地,协议堆栈可被包括在专用子系统上,诸如例如TCP卸载弓丨擎和/或网络控制器110。
[0032]系统存储器(例如,系统存储器106和/或与网络控制器(例如,网络控制器110、118)相关联的存储器)可包括以下存储器类型中的一种或多种:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪存、磁盘存储器、和/或光盘存储器。或者附加地或者可替代地,系统存储器106和/或与网络控制器110,118相关联的存储器可包括其他和/或以后开发的计算机可读存储器类型。
[0033]可在包括一个或多个存储介质的系统中实现在此所描述的任何操作,该一个或多个存储介质在其上单独地或结合地存储当被一个或多个处理器执行时执行该方法的指令。处理器可包括例如网络控制器110、118和/或主CPU 104中的处理单元和/或可编程电路和/或其他处理单元或可编程电路。因此,旨在根据在此所描述的方法的操作可跨多个物理设备分布,诸如在若干不同物理位置的处理结构。存储介质可包括任何类型的有形存储介质,例如任何类型的盘,包括软盘、光盘、致密盘只读存储(CD-ROM)、致密盘可重写(CD-RW)、以及磁光盘,半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM),诸如动态和静态RAM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、磁或光卡、或任何其他类型的适合用于存储电子指令的介质。
[0034]图1中描绘的网络系统100可与企业网络系统(诸如企业大容量系统、企业数据中心等等)集成或形成其一部分。这种网络系统可被配置成通过例如分组交换网络(其可包括例如云计算、云存储等等)与其他网络系统通信。因此,网络控制器I1和/或118(和/或与其他网络节点元件相关联的其他网络控制器)可被配置成使用分组交换通信协议(例如,以太网通信协议)进行通信。以太网通信协议可以能够使用传输控制协议/互联网协议(TCP/IP)提供通信。以太网协议可符合或兼容电气和电子工程师学会(IEEE)在2002年3月发布的标题为“IEEE 802.3标准”的以太网标准和/或该标准的稍后版本。
[0035]InfiniBand?通信协议可符合或兼容InfiniBand贸易协会(IBTA)在2001年6月发布的标题为 “InfiniBand 架构规范(InfiniBand Architecture Specificat1nVIAInfiniBand规范和/或该规范的稍后版本。在上述示例中,启用RDMA的网络是Infiniband?网络。在其他实施例中,可使用其他启用RDMA的网络协议,例如iWARP通信协议。iWARP通信协议可符合或兼容RDMA联盟所开发的并且由互联网工程任务组(IETF)所维护并发布的于2007年发布的标题为“传送控制协议(TCP)的RDMA标准(RDMA over Transmiss1nControl Protocol (TCP) standard) ”的iWARP标准和/或该标准的稍后版本。
[0036]如在本文中的任意实施例中所使用的“电路”可单独地或在任意组合中包括例如存储由可编程电路执行的指令的硬连线电路、可编程电路、状态机电路、和/或固件。如在此所使用的“模块”可单独地或以任何组合包括电路和/或指令集(例如,软件、固件等等)。
[0037]因此,本公开提供了一种示例网络节点元件,该网络节点元件包括:网络控制器,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上与子网管理单元进行通信;处理器,被配置成执行应用,其中,该应用被配置成生成子网管理(SA)数据查询以便从该子网管理单元请求SA数据,并且其中,该SA数据包括地址和路径信息;以及存储器,用于存储该应用。当执行该应用时,该处理器进一步被配置成通过RDMA启用标志将该SA数据查询格式化。当该应用被执行时,该网络控制器进一步被配置成:配置可靠连接队列对(RCQP)以便从子网管理器接收RDMA传送;以及分配RDMA写目标缓冲器以便响应于该SA数据查询使用RDMA传送从该子网管理器接收该SA数据。
[0038]另一个示例网络节点元件包括前述内容并且进一步定义,该处理器进一步被配置成向该SA数据查询添加有关该RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
[0039]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成在该RCQP上接收SA数据响应并且将该SA数据响应存储到该RDMA写目标缓冲器中;其中,该SA数据响应包括该SA数据。
[0040]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成配置预定的可靠数据报(UD)队列对以及使用预定的可靠数据报(UD)队列对将该SA数据查询发送到该子网管理器。
[0041]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成响应于该SA数据查询从该子网管理器接收状态响应;其中,该状态响应指示该RDMA写目标缓冲器的大小太小而不能容纳该SA数据。
[0042]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成重新分配具有能够容纳该SA数据的大小的RDMA写目标缓冲器。
[0043]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成响应于该SA数据查询从该子网管理器接收重定向响应;其中,该重定向响应指示该RCQP无效以及将对该SA数据查询的该响应重定向到第二 RCQP。
[0044]另一个示例网络节点元件包括前述内容并且进一步定义,该网络控制器进一步被配置成配置该第二 RCQP以便从子网管理器接收该RDMA传送。
[0045]另一个示例网络节点元件包括前述内容并且进一步定义,该SA数据查询包括具有由启用RDMA的通信协议定义的至少一个保留数据字段的查询,并且其中,该RDMA启用标志在该保留数据字段中包括该网络节点元件能够从该子网管理器接收RDMA传送的指示符。
[0046]本公开还提供了一种子网管理器,该子网管理器包括:网络控制器,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上与至少一个网络节点元件进行通信;子网管理模块,被配置成为该至少一个网络节点元件分配地址和路径信息,并且进一步被配置成生成包括该地址和路径信息的子网管理(SA)数据。该网络控制器进一步被配置成:配置可靠连接队列对(RCQP)以便向该至少一个网络节点元件发送RDMA传送;将该RCQP公开给该至少一个网络节点元件以便致使该至少一个网络节点元件配置赠送的(complimentary) RCQP ;从该至少一个网络节点元件接收SA数据查询;以及使用该RCQP和该赠送的RCQP利用RDMA传送向该至少一个网络节点元件发送包括该SA数据的SA数据响应。
[0047]另一个示例子网管理器包括前述内容并且进一步定义,该网络控制器进一步被配置成使用该RDMA传送确定与该至少一个网络节点元件相关联的RDMA写目标缓冲器是否太小而不能容纳该SA数据。
[0048]另一个示例子网管理器包括前述内容并且进一步定义,该网络控制器进一步被配置成响应于该SA数据查询从该子网管理器生成状态响应,并将该状态响应发送到网络节点元件;其中,该状态响应指示该RDMA写目标缓冲器的大小太小而不能容纳该SA数据。
[0049]另一个示例子网管理器包括前述内容并且进一步定义,该网络控制器进一步被配置成确定该RCQP是否不可用。
[0050]另一个示例子网管理器包括前述内容并且进一步定义,该网络控制器被进一步配置成生成第二 RCQP以及将重定向响应发送到该网络节点元件;其中,该重定向响应指示该RCQP不可用以及将对该SA数据查询的该响应重定向到第二 RCQP。
[0051]本公开还提供了一种系统,该系统包括:网络节点元件,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上进行通信;子网管理器,被配置成使用该启用RDMA的通信协议在该启用RDMA的网络上与该网络节点元件进行通信,并且被配置成在该启用RDMA的网络上为至少一个网络节点元件生成包括地址和路径信息的子网管理(SA)数据。该网络节点元件进一步被配置成:通过RDMA启用标志将该SA数据查询格式化;以及分配RDMA写目标缓冲器以便响应于该SA数据查询使用RDMA传送从该子网管理器接收该SA数据。该子网管理器进一步被配置成:配置可靠连接队列对(RCQP)以便向该至少一个网络节点元件发送RDMA传送;将该RCQP公开给该至少一个网络节点元件以便致使该至少一个网络节点元件配置赠送的RCQP ;从该至少一个网络节点元件接收SA数据查询;以及使用该RCQP和该赠送的RCQP利用RDMA传送向该至少一个网络节点元件发送包括该SA数据的SA数据响应。
[0052]另一个示例系统包括前述内容并且进一步定义,该网络节点元件进一步被配置成向该SA数据查询添加有关该RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
[0053]另一个示例系统包括前述内容并且进一步定义,该网络节点元件进一步被配置成响应于该SA数据查询从该子网管理器接收状态响应;其中,该状态响应指示该RDMA写目标缓冲器的大小太小而不能容纳该SA数据。
[0054]另一个示例系统包括前述内容并且进一步定义,该网络节点元件进一步被配置成重新分配具有能够容纳该SA数据的大小的RDMA写目标缓冲器。
[0055]另一个示例系统包括前述内容并且进一步定义,该网络节点元件进一步被配置成响应于该SA数据查询从该子网管理器接收重定向响应;其中,该重定向响应指示该RCQP无效以及将对该SA数据查询的该响应重定向到第二 RCQP。
[0056]另一个示例系统包括前述内容并且进一步定义,该网络节点元件进一步被配置成配置该第二 RCQP以便从子网管理器接收该RDMA传送。
[0057]另一个示例系统包括前述内容并且进一步定义,该SA数据查询包括具有由启用RDMA的通信协议定义的至少一个保留数据字段的查询,并且其中,该RDMA启用标志在该保留数据字段中包括该网络节点元件能够从该子网管理器接收RDMA传送的指示符。
[0058]本公开还提供了一种方法,该方法包括:由网络节点元件使用RDMA启用标志将SA数据查询格式化;由该网络节点元件配置可靠连接队列对(RCQP)以便从在启用RDMA的网络上与该网络节点元件通信的子网管理器接收RDMA传送;以及由该网络节点元件分配RDMA写目标缓冲器以便响应于该SA数据查询使用RDMA传送从该子网管理器接收该SA数据。
[0059]另一示例方法包括前述操作并且进一步包括,由该网络节点元件向该SA数据查询添加有关该RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
[0060]另一示例方法包括前述操作并且进一步定义,该SA数据包括该启用RDMA的网络的至少一个网络节点元件的地址信息。
[0061]另一示例方法包括前述操作并且进一步包括,由该网络节点元件在RCQP上接收SA数据响应并且将该SA数据响应存储到该RDMA写目标缓冲器中;其中,该SA数据响应包括该SA数据。
[0062]另一示例方法包括前述操作并且进一步包括,由该网络节点元件使用预定的可靠数据报(UD)队列对向该子网管理器发送该SA数据查询。
[0063]另一示例方法包括前述操作并且进一步包括,由该网络节点元件响应于该SA数据查询从该子网管理器接收状态响应;其中,该状态响应指示该RDMA写目标缓冲器的大小太小而不能容纳该SA数据。
[0064]另一示例方法包括前述操作并且进一步包括,重新分配具有能够容纳该SA数据的大小的该RDMA写目标缓冲器。
[0065]另一示例方法包括前述操作并且进一步包括,由该网络节点元件响应于该SA数据查询从该子网管理器接收重定向响应;其中,该重定向响应指示该RCQP无效以及将对该SA数据查询的该响应重定向到第二 RCQP。
[0066]另一示例方法包括前述操作并且进一步包括,由该网络节点元件配置该第二 RCQP以便从子网管理器接收该RDMA传送。
[0067]另一示例方法包括前述操作并且进一步定义,该SA数据查询包括具有由启用RDMA的通信协议定义的至少一个保留数据字段的查询,并且其中,该RDMA启用标志在该保留数据字段中包括该网络节点元件能够从该子网管理器接收RDMA传送的指示符。
[0068]本公开还提供了一种被配置成执行示例方法的任何前述操作的系统。该系统包括其上单独地或结合地存储有指令的一种或多种存储介质,当被一个或多个处理器执行时,该指令导致包括示例方法的任何前述操作的以下操作。
[0069]已经在此使用的术语和表达被用作描述而非限制术语,并且不旨在使用这种术语和表达时排除所展示和描述的特征的任何等效方案(或其部分),并且认识到在权利要求书的范围内各种修改是可能的。因此,权利要求书旨在覆盖所有这种等效方案。
[0070]已经在此描述了各种特征、方面、和实施例。这些特征、方面、和实施例易于与彼此以及变体和修改组合,如本领域普通技术人员将理解的那样。因此,本发明应当被认为包含这种组合、变体、以及修改。
【权利要求】
1.一种网络节点元件,包括: 网络控制器,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上与子网管理单元进行通信; 处理器,被配置成执行应用,其中,所述应用被配置成生成子网管理(SA)数据查询以便从所述子网管理员请求SA数据,并且其中,所述SA数据包括地址和路径信息;以及存储器,用于存储所述应用; 其中,当所述应用执行时,所述处理器进一步被配置成: 通过RDMA启用标志将所述SA数据查询格式化; 并且其中,当所述应用执行时,所述网络控制器进一步被配置成: 配置可靠连接队列对(RCQP)以便从子网管理器接收RDMA传送;以及分配RDMA写目标缓冲器以便响应于所述SA数据查询使用RDMA传送从所述子网管理器接收所述SA数据。
2.如权利要求1所述的网络节点元件,其中,所述处理器进一步被配置成向所述SA数据查询添加有关所述RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
3.如权利要求1所述的网络节点元件,其中,所述网络控制器进一步被配置成在所述RCQP上接收SA数据响应并且将所述SA数据响应存储到所述RDMA写目标缓冲器中;其中,所述SA数据响应包括所述SA数据。
4.如权利要求1所述的网络节点元件,其中,所述网络控制器进一步被配置成配置预定的可靠数据报(UD)队列对以及使用预定的可靠数据报(UD)队列对将所述SA数据查询发送到所述子网管理器。
5.如权利要求1所述的网络节点元件,其中,所述网络控制器进一步被配置成响应于所述SA数据查询从所述子网管理器接收状态响应;其中,所述状态响应指示所述RDMA写目标缓冲器的大小太小而不能容纳所述SA数据。
6.如权利要求5所述的网络节点元件,其中,所述网络控制器进一步被配置成重新分配具有能够容纳所述SA数据的大小的所述RDMA写目标缓冲器。
7.如权利要求1所述的网络节点元件,其中,所述网络控制器进一步被配置成响应于所述SA数据查询从所述子网管理器接收重定向响应;其中,所述重定向响应指示所述RCQP无效以及将对所述SA数据查询的所述响应重定向到第二 RCQP。
8.如权利要求8所述的网络节点元件,其中,所述网络控制器进一步被配置成配置所述第二 RCQP以便从子网管理器接收所述RDMA传送。
9.如权利要求1所述的网络节点元件,其中,所述SA数据查询包括具有由RDMA通信协议定义的至少一个保留数据字段的查询,并且其中,所述RDMA启用标志在所述保留数据字段中包括所述网络节点元件能够从所述子网管理器接收RDMA传送的指示符。
10.一种子网管理器,包括: 网络控制器,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上与至少一个网络节点元件进行通信; 子网管理模块,被配置成为所述至少一个网络节点元件分配地址和路径信息,并且进一步被配置成生成包括所述地址和路径信息的子网管理(SA)数据; 其中,所述网络控制器进一步被配置成: 配置可靠连接队列对(RCQP)以便向所述至少一个网络节点元件发送RDMA传送;将所述RCQP公开给所述至少一个网络节点元件以便致使所述至少一个网络节点元件配置赠送的RCQP ; 从所述至少一个网络节点元件接收SA数据查询;以及 使用所述RCQP和所述赠送的RCQP利用RDMA传送向所述至少一个网络节点元件发送包括所述SA数据的SA数据响应。
11.如权利要求10所述的子网管理器,其中,所述网络控制器进一步被配置成使用所述RDMA传送确定与所述至少一个网络节点元件相关联的RDMA写目标缓冲器是否太小而不能容纳所述SA数据。
12.如权利要求11所述的子网管理器,其中,所述网络控制器进一步被配置成响应于所述SA数据查询从所述子网管理器接收状态响应;其中,所述状态响应指示所述RDMA写目标缓冲器的大小太小而不能容纳所述SA数据。
13.如权利要求10所述的子网管理器,其中,所述网络控制器进一步被配置成确定所述RCQP是否不可用。
14.如权利要求13所述的子网管理器,其中,所述网络控制器被进一步配置成: 生成第二 RCQP以及将重定向响应发送到所述网络节点元件;其中,所述重定向响应指示所述RCQP不可用以及将对所述SA数据查询的所述响应重定向到第二 RCQP。
15.—种系统,包括: 网络节点元件,被配置成使用启用远程直接存储器访问(RDMA)的通信协议在启用RDMA的网络上进行通信; 子网管理器,被配置成使用所述启用RDMA的通信协议在所述启用RDMA的网络上与所述网络节点元件进行通信,并且被配置成在所述启用RDMA的网络上为至少一个网络节点元件生成包括地址和路径信息的子网管理(SA)数据; 其中,所述网络节点元件进一步被配置成: 通过RDMA启用标志将所述SA数据查询格式化;以及 分配RDMA写目标缓冲器以便响应于所述SA数据查询使用RDMA传送从所述子网管理器接收所述SA数据; 并且其中,所述子网管理器进一步被配置成: 配置可靠连接队列对(RCQP)以便向所述网络节点元件发送RDMA传送; 将所述RCQP公开给所述网络节点元件以便致使所述网络节点元件配置赠送的RCQP ; 从所述至少一个网络节点元件接收SA数据查询;以及 使用所述RCQP和所述赠送的RCQP利用RDMA传送向所述网络节点元件发送包括所述SA数据的SA数据响应。
16.如权利要求15所述的系统,其中,所述网络节点元件进一步被配置成向所述SA数据查询添加有关所述RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
17.如权利要求15所述的系统,其中,所述网络节点元件进一步被配置成响应于所述SA数据查询从所述子网管理器接收状态响应;其中,所述状态响应指示所述RDMA写目标缓冲器的大小太小而不能容纳所述SA数据。
18.如权利要求17所述的系统,其中,所述网络节点元件进一步被配置成重新分配具有能够容纳所述SA数据的大小的所述RDMA写目标缓冲器。
19.如权利要求15所述的系统,其中,所述网络节点元件进一步被配置成响应于所述SA数据查询从所述子网管理器接收重定向响应;其中,所述重定向响应指示所述RCQP无效以及将对所述SA数据查询的所述响应重定向到第二 RCQP。
20.如权利要求19所述的系统,其中,所述网络节点元件进一步被配置成配置所述第二 RCQP以便从子网管理器接收所述RDMA传送。
21.如权利要求15所述的系统,其中,所述SA数据查询包括具有由启用RDMA的通信协议定义的至少一个保留数据字段的查询,并且其中,所述RDMA启用标志在所述保留数据字段中包括所述网络节点元件能够从所述子网管理器接收RDMA传送的指示符。
22.一种用于使用远程直接存储器访问(RDMA)传送接收子网管理(SA)数据的方法,所述方法包括: 由网络节点元件通过RDMA启用标志将SA数据查询格式化; 由所述网络节点元件配置可靠连接队列对(RCQP)以便从在启用RDMA的网络上与所述网络节点元件通信的子网管理器接收RDMA传送;以及 由所述网络节点元件分配RDMA写目标缓冲器以便响应于所述SA数据查询使用RDMA传送从所述子网管理器接收所述SA数据。
23.如权利要求22所述的方法,进一步包括由所述网络节点元件向所述SA数据查询添加有关所述RDMA写目标缓冲器的地址、加密密钥和缓冲器长度信息。
24.如权利要求22所述的方法,其中,所述SA数据包括所述启用RDMA的网络的至少一个网络节点元件的地址信息。
25.如权利要求22所述的方法,进一步包括由所述网络节点元件在所述RCQP上接收SA数据响应并且将所述SA数据响应存储到所述RDMA写目标缓冲器中;其中,所述SA数据响应包括所述SA数据。
26.如权利要求22所述的方法,进一步包括由所述网络节点元件使用预定的可靠数据报(UD)队列对向所述子网管理器发送所述SA数据查询。
27.如权利要求22所述的方法,进一步包括由所述网络节点元件响应于所述SA数据查询从所述子网管理器接收状态响应;其中,所述状态响应指示所述RDMA写目标缓冲器的大小太小而不能容纳所述SA数据。
28.如权利要求27所述的方法,进一步包括重新分配具有能够容纳所述SA数据的大小的所述RDMA写目标缓冲器。
29.如权利要求22所述的方法,进一步包括由所述网络节点元件响应于所述SA数据查询从所述子网管理器接收重定向响应;其中,所述重定向响应指示所述RCQP无效以及将对所述SA数据查询的所述响应重定向到第二 RCQP。
30.如权利要求29所述的方法,进一步包括: 由所述网络节点元件配置所述第二 RCQP以便从子网管理器接收所述RDMA传送。
31.如权利要求22所述的方法,其中,所述SA数据查询包括具有由RDMA通信协议定义的至少一个保留数据字段的查询,并且其中,所述RDMA启用标志在所述保留数据字段中包括所述网络节点元件能够从所述子网管理器接收RDMA传送的指示符。
32.—种包括以上单独地或结合地存储有指令的一个或多个存储介质的系统,当被一个或多个处理器执行时,所述指令导致以下操作,所述操作包括: 根据权利要求22至31任一项所述的操作。
【文档编号】G06F13/14GK104205079SQ201280072152
【公开日】2014年12月10日 申请日期:2012年3月30日 优先权日:2012年3月30日
【发明者】M·S·赫弗蒂 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1