当前位置: 首页 > 专利查询>微软公司专利>正文

通过远程直接存储器访问的任意大小的传输操作制造技术

技术编号:9770177 阅读:150 留言:0更新日期:2014-03-16 06:21
此处所描述的各实施例一般涉及用于在RDMA传输之上实现数据操作的协议,例如,SMB的版本。在各实施例中,各系统和方法使用指定用于协商RDMA连接并用于使用经协商的通信来传送SMB2数据的新消息的协议定义。新协议消息可包括新头部信息以确定消息大小、消息数和用于通过RDMA来发送SMB2数据的其他消息。该头部信息用于适应RDMA和SMB2之间的消息大小要求方面的差异。SMB直通(SMB?Direct)协议允许SMB2数据被分段成多个单独的RDMA消息,接收方可随后将这些RDMA消息逻辑地串接成单个SMB2请求或SMB2响应。SMB直通协议还可允许SMB2经由高效的RDMA直通放置来传送应用数据并在该传送完成时用信号表示该应用数据的可用性。

【技术实现步骤摘要】
【国外来华专利技术】通过远程直接存储器访问的任意大小的传输操作背景诸如服务器消息块(SMB)或其版本(例如,SMB2)之类的文件访问协议可以用作主要用于在网络上的各节点之间提供对文件以及杂项通信的共享访问的应用层网络协议。在历史上,SMB或SMB2在传输控制协议(TCP)传输和传统的网络基础结构之上操作。尽管SMB2作为针对通用远程文件访问的协议已非常成功,但SMB2尚未广泛适用于要求高吞吐量和低等待时间文件输入/输出的远程文件访问。远程直接存储器访问(RDMA)是从一个计算机的存储器进入另一计算机的存储器而不涉及该另一计算机的操作系统的直接存储器访问。该直接传送准许通过网络的高吞吐量、低等待时间数据传输,这在性能关键的部署中尤其有用。在应用执行RDMA读或写请求时,使用有RDMA能力的网络适配器将应用数据从源存储器缓冲区直接递送到目的地存储器缓冲区,在该传输中这些有RDMA能力的网络适配器不涉及中央存储单元(CPU)(也被简称为处理器)或操作系统。这些RDMA传输会减少等待时间并允许快速消息传输。不幸地是,RDMA的这些好处尚未被使用SMB2的系统利用,因为SMB2尚未用RDMA来操作。虽然本
技术介绍
中着眼于特定的问题,但本专利技术决不旨在限于解决那些特定问题。概述各实施例一般涉及将诸如SMB2操作(或,例如SMB操作的其他版本或文件访问协议操作)之类的数据操作实现在RDMA传输之上的协议和处理。在各实施例中,该协议定义指定用于协商RDMA连接以及用于例如使用经协商的连接来传送SMB2数据的新消息。在一实施例中,用于将SMB2操作实现在RDMA传输之上的协议是SMB直通(SMB Direct)协议。然而,其他实施例提供其他SMB协议、SMB协议版本或其他数据操作协议,而不偏离本公开的精神和范围。根据一实施例,新的SMB直通消息可包括新的头部信息,该新的头部信息可包括但不限于,以下各项中的一个或多个:CreditsRequested (请求的积分)、CreditsGranted(授予的积分)、Flag (标志)、Reserved (保留的)、RemainingDataLength (剩余数据长度)、DataOffset (数据偏移)、和DataLength (数据长度)。由于RDMA传输支持接收仅由接收方固定的大小的消息,而SMB2消息的大小可以在从大约一百字节到超过兆字节的非常大消息的非常大的范围内改变,因此头部信息被使用。SMB2协议被修改以识别RDMA能力的存在,而SMB直通协议将新的层添加到联网栈,以允许多个单独的RDMA消息被逻辑地串接成单个请求或响应以适应RDMA消息的固定大小限制以及SMB2消息收发所固有的不确定大小要求两者。对SMB2协议的改变以及对SMB直通协议的添加允许数据在各对等体的存储器之间的直接传送。在各实施例中,SMB2服务器可使用RDMA来进行从客户机的存储器读取或向客户机的存储器写入,以执行对数据的直接放置。服务器执行到客户机的RDMA写以完成SMB2读,并执行RDMA读以完成SMB2写。尽管SMB直通协议允许SMB/SMB2数据在对等体的存储器之间的直接传送,但根据各实施例,SMB直通协议可适合于其他协议。根据各实施例,SMB直通协议的双向、对等特性使其本身适于多种类型的数据传送操作。RDMA传输还再次用仅由接收方固定的值来限制任何时刻可被处理的消息的数目。为了符合RDMA的这个要求,各实施例为各对等体提供在指定发送方可向接收方发送的RDMA消息的数目的协议头部中交换或分配每一相互对等体所请求的并向每一相互对等体授予的“积分”(其为数值)。积分是动态的,并由每一对等体独立地管理。用于管理积分并使足够的积分可用于执行SMB2交换的规则由在此公开的各实施例中的协议来定义。在各实施例中,提供独立、双向的积分可准许每一个对等体发送请求和响应,而无需接收对等体的显式协商或先验知识和同意。与RDMA相关联的顺序发送可准许交换出乎意料的大的消息,而不会引起RDMA处理中的错误,也不会在这种情况发生时采取较不高效的协商传送。根据各实施例,附加消息可用于协商协议版本和其他参数。协商请求消息可包括例如以下字段:CreditsRequested (请求的积分)、Reserved (保留的)、MinVersion (最小版本)、MaxVersion (最大版本)、OutboundSendSize (出站发送大小)、MaxInboundSendSize(最大入站发送大小)等。相应地,响应于该请求消息而发送的协商响应消息可包括例如Credi tsRequested (请求的积分)、Credit sGranted (授予的积分)、Vers ion (版本)、Reserved(保留的)、Status (状态)、OutboundSendSize (出站发送大小)、InboundSendSize (入站发送大小)等字段。这些参数支持对能力的协商、对资源的端到端优化、和与该协议的未来增强版本的兼容性。提供本概述是为了以简化的形式介绍将在以下具体实施例中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。附图简述可以参考附图来更容易地描述本专利技术的各实施例,附图中相同的数字指示相同的项。图1示出了根据本公开的各实施例的用于通过RDMA来交换SMB2消息的环境或系统的示例逻辑表示。图2A描绘了根据本公开的各实施例的用于通过RDMA来发送SMB2消息的客户机系统的示例逻辑表示。图2B示出了根据本公开的各实施例的用于通过RDMA来接收SMB2消息的服务器系统的逻辑表示。图3A-3E示出了根据本公开的各实施例的在通过RDMA使用SMB2消息交换数据时发送或接收的消息的逻辑表示。图4A-4C描绘了解说根据本公开的各实施例的用于通过RDMA使用SMB2协商通信的过程的操作特性的流程图。图5A-?示出了解说根据本公开的各实施例的用于通过RDMA使用SMB2交换数据的过程的操作特性的流程图。图6解说了描绘根据本公开的各实施例的用于使用RDMA直接数据传送来交换数据的过程的操作特性的流程图。图7描绘其上可以实现本公开的各实施例的示例计算系统。详细描述本专利技术现将参考其中示出了各具体实施例的附图来更完整地描述各示例实施例。然而,其它方面能以许多不同的形式来实现,并且在本专利技术中包括具体的实施例不应被解释为将这些方面限于在此所述的各实施例。相反,包括附图中描绘的各实施例是为了提供全面和完整且将预期的范围完全地传达给本领域技术人员的公开。虚线可用于示出可选组件或操作。各实施例一般涉及用于通过RDMA连接来交换SMB2数据的系统、方法和协议。RDMA提供传输数据方面的优点。例如,RDMA作出从一个存储器到另一设备或系统的存储器的传送。这些传送并不涉及处理器,并且因此减少了传输数据时所涉及的开销。此外,由于传输管理中不涉及处理器,因此RDMA用更少的时钟周期来传送数据。因此,RDMA提供低等待时间、高带宽的连接。一般来说,SMB的版本(诸如,SMB2)是用于在网络上的各节点之间提供对文件和杂项通信的共享访问的应用层网络协议。SMB和SMB2因此是文件访问操作协议的示例。SMB2本文档来自技高网...

【技术保护点】
一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时执行一种用于通过远程直接存储器访问(RDMA)使用数据操作来交换数据的方法,所述方法包括:建立与服务器的连接;与所述服务器协商连接,其中所述协商建立所述服务器将在该连接中接收的最大字节数;确定用于将与所述连接相关联的数据发送给所述服务器的数据包的数目;确定是否要使用对所述数据的分段;如果不要使用对所述数据的分段,则将第一协议包与所述数据一起发送给所述服务器;如果要使用对所述数据的分段,则初始化传送缓冲区内的前多个字节,以作为所述第一协议包中的数据来发送;设置所述第一协议包中的数据长度字段和剩余数据长度字段;将所述第一协议包发送给所述服务器;对于至少一个第二协议包,要重复的指令包括:初始化所述传送缓冲区内的多个字节,以作为所述至少一个第二协议包中的数据来发送;设置所述至少一个第二协议包中的剩余数据长度字段;以及将所述至少一个第二协议包发送给所述服务器。

【技术特征摘要】
【国外来华专利技术】2011.06.29 US 13/172,7571.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时执行一种用于通过远程直接存储器访问(RDMA)使用数据操作来交换数据的方法,所述方法包括:建立与服务器的连接;与所述服务器协商连接,其中所述协商建立所述服务器将在该连接中接收的最大字节数;确定用于将与所述连接相关联的数据发送给所述服务器的数据包的数目;确定是否要使用对所述数据的分段;如果不要使用对所述数据的分段,则将第一协议包与所述数据一起发送给所述服务器;如果要使用对所述数据的分段,则初始化传送缓冲区内的前多个字节,以作为所述第一协议包中的数据来发送;设置所述第一协议包中的数据长度字段和剩余数据长度字段;将所述第一协议包发送给所述服务器;对于至少一个第二协议包,要重复的指令包括:初始化所述传送缓冲区内的多个字节,以作为所述至少一个第二协议包中的数据来发送;`设置所述至少一个第二协议包中的剩余数据长度字段;以及将所述至少一个第二协议包发送给所述服务器。2.如权利要求1所述的计算机可读存储介质,其特征在于,确定是否要使用分段包括确定用于发送所述数据的数据包的数目是否大于1。3.如权利要求2所述的计算机可读存储介质,其特征在于,确定用于将与所述连接相关联的数据发送给所述服务器的数据包的数目包括确定所述服务器将在所述连接中接收的最大字节数是否小于要被发送的数据的字节数。4.如权利要求1所述的计算机可读存储介质,其特征在于,与所述服务器协商连接包括:预先发布接收区;构建协议协商请求;将所述协议协商请求发送给所述服务器;设置协商期满计时器;确定对所述协议协商请求的响应是否在所述协商期满计时器期满之前被接收;如果对所述协议协商请求的响应没有在所述协商期满计时器期满之前被接收,则重新发送所述协议协商响应;如果对所述协议协商请求的响应在所述协商期满计时器期满之前被接收,则接收协议协商响应;确认所述协议协商响应;以及处理所述协议协商响应,其中所述协议协商响应将至少一个积分提供给所述发送方来发送所述协议包。5.如权利要求4所述的计算机可读存储介质,其特征在于,还包括:如果存在足够积分来发送所述至少一个第二协议包,则发送所述至少一个第二协议包;如果不存在足够的积分来发送所述至少一个第二协议包,则向所述服务器请求至少又一个积分;确定是否接收到足够的积分;如果没有接收到足够的积分,则终止所述连接;以及如果接收到足够的积分,则发送所述至少一个第二协议包。6.一种被配置成通过远程直接存储器访问(RDMA)使用服务器消息块(SMB/SMB2)来交换数据的系统,所述系统包括:RDMA网络接口卡(RNIC),所述RDMA网络接口卡用于通过RDMA消息来传送数据;存储器,所述存储器用于存储处理器能执行的计算机程序指令;以及与所述RNIC和所述存储器通信的处理器,所述处理器用于执行...

【专利技术属性】
技术研发人员:T·M·塔尔佩伊G·R·卡拉莫D·M·克鲁斯
申请(专利权)人:微软公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1