一种远程直接数据存取方法、设备和系统的制作方法_2

文档序号:9756851阅读:来源:国知局
的用于接收RDMA写操作的存储单元的物理地址。
[0099]结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第四种可能的实现方式中,所述第二存储标识包括:
[0100]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0101]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0102]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0103]结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第五种可能的实现方式中,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0104]结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第六种可能的实现方式中,所述发送单元还用于:将所述RDMA应答消息发送给所述第二处理节点。
[0105]第九方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,包括:
[0106]发送单元,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0107]接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0108]封装单元,用于封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
[0109]所述发送单元还用于,将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
[0110]结合第九方面,在第一种可能的实现方式中,还包括生成单元,所述生成单元用于生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
[0111]所述封装单元用于封装RDMA写操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
[0112]结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第二种可能的实现方式中,所述第一节点标识包括:
[0113]保护域编号,用于标识所述第一内存节点所在的保护域;
[0114]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0115]结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
[0116]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0117]结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第四种可能的实现方式中,所述第一存储标识包括:
[0118]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0119]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0120]结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第五种可能的实现方式中,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0121]第十方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点:
[0122]所述第二处理节点,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存;
[0123]所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0124]所述第二处理节点还用于:根据接收到的所述RDMA内存分配消息,封装RDMA拷贝操作消息,并将所述RDMA拷贝操作消息发送给所述第二内存节点,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
[0125]所述第二内存节点,用于根据接收到的所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一内存节点;
[0126]所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
[0127]结合第十方面,在第一种可能的实现方式中,所述第二处理节点还用于:生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
[0128]所述第二处理节点用于封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
[0129]结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第二种可能的实现方式中,所述第一节点标识包括:
[0130]保护域编号,用于标识所述第一内存节点所在的保护域;
[0131]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0132]结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0133]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0134]结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第四种可能的实现方式中,所述第一存储标识包括:
[0135]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0136]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0137]结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第五种可能的实现方式中,所述第二存储标识包括:
[0138]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0139]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0140]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0141]结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第六种可能的实现方式中,所述第二内存节点还用于:接收所述第一内存节点的RDMA应答消息,并将所述RDMA应答消息发送给所述第二处理节点,所述RDMA应答消息用于指示所述RDMA写操作已完成。
[0142]第十一方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,所述第一计算设备包括第一处理节点和第一内存节点,包括:
[0143]所述第二计算设备,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0144]所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0145]所述第二计算设备还用于,封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点;
[0146]所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
[0147]结合第十一方面,在第一种可能的实现方式中,所述第二计算设备还用于:生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
[0148]所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
[0149]结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第二种可能的实现方式中,所述第一节点标识包括:
[0150]保护域编号,用于标识所述第一内存节点所在的保护域;
[0151]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0152]结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
[0153]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0154]结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第三种可能的实现方式中,所述第一存储标识包括:
[0155]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0156]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0157]结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第四种可能的实现方式中,所述第二计算设备还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0158]根据本发明提供的技术方案,可以实现与处理节点分离的内存节点之间,或者与处理节点分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
【附图说明】
[0159]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0160]图1为各计算设备经由RDMA共享数据的示例性联网环境框图;
[0161]图2为本发明的示例性计算设备的示意图;
[0162]图3为一种RDMA方法的应用场景示意图;
[0163]图4为一种RDMA方法的信令图;
[0164]图5为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
[0165]图6为依据本发明一实施例的RDMA拷贝方法信令图;
[0166]图7为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
[0167]图8为依据本发明一实施例的RDMA拷贝方法信令图;
[0168]图9为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
[0169]图10为依据本发明一实施例的RDMA拷贝方法信令图;
[0170]图11为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
[0171]图12为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
[0172]图13为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
[0173]图14为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
[0174]图15为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
[0175]图16为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
[0176]图17为依据本发明一实施例的计算设备硬件结构示意图。
【具体实施方式】
[0177]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0178]图1示出了 RDMA连网环境100,其中网络102连接了四个计算设备104。计算设备104使用它们的网络102连接来执行相互的RDMA传递。网络102可以是因特网,内联网,局域网(Local Area Networks,简称 LANs),广域网络(Wireless Local Area Networks,简称WLANs),存储区域网络(Storage Area Networks,简称SANs)等,或者以上网络的组合。
[0179]图1仅旨在为以下讨论目的而引入RDMA参与者以及它们的相互关系。因此,所描绘的RDMA环境100被大大地简化。由于RDMA的一些方面在本领域中是公知的,因此这些方面,诸如认证方案和安全等在此不再讨论。在设置和运行成功的RDMA环境100中所涉及的复杂性对于在本领域中工作的人来说都是公知的。
[0180]图1的计算设备104可以是任意体系结构的。图2是一般化地示出支持本发明的示例性计算机系统的框图。图2的计算机系统仅是一个例子,并不试图对本发明的使用范围或功能提出任何限定。也不应当将计算设备104解释为具有与图2中所示的组件中的任何一个或其组合有关的任何依赖性或要求。本发明可与许多其他的通用或专用计算环境或配置一起工作。适于与本发明一起使用的公知计算系统、环境和配置的示例包括但不限于,个人计算机、服务器、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、微型计算机、大型计算机、以及包括任意以上系统或设备的分布式计算环境。在其最基本的配置中,计算设备104通常包括至少一个处理器200和存储器
202。存储器202可以被计算设备104当做内存资源使用,可以是易失性的随机存取存储器(Random Access Memory,简称 RAM)、非易失性的只读存储器(Read Only Memory,简称 ROM)或闪存、或这两者的某种组合。这个最基本的配置在图2中由04例示。计算设备104可以具有外加的特征和功能。例如,它可以包括外设的存储(可移动的和不可移动的),其包括但不限于,磁盘和磁带以及光盘和光带。这样的外设存储在图2中由可移动存储206和不可移动存储208例示。计算机存储介质包括易失性和非易失性的,可移动的和不可移动的,在任何方法或技术中实现的用来存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的介质。存储器202,可移动存储206和不可移动存储208都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、R0M、电可擦出只读存储器(ElectricallyErasable Read Only Memory,简称EEPR0M)、闪存、其他的存储器技术,CD-ROM、数字通用盘、其他的光存储,磁卡带、磁带、磁盘存储、其他的磁存储设备,以及任何其他可以用来存储所需信息并可由计算设备104访问的介质。任何这样的计算机存储介质都可以是计算设备104的一部分。计算设备104还可以包含允许其与其他设备,包括在网络102上的设备,通信的通信信道210。通信信道210是通信介质的示例。通信介质通常在诸如载波等的已调制数据信号或其它传输机制中包含计算机可读指令、数据结构、程序模块、或其他数据,并包括任何信息传递介质。作为示例而非限定,通信介质包括光介质、诸如有线网络和直线连接等的有线介质、诸如声音、射频(Rad1 Frequency,简称RF)、红外线和其他无线介质等的无线介质。在此使用的术语"计算机可读介质"包括存储介质和通信介质两者。计算设备104还可以具有诸如触敏式显示屏、硬件键盘、鼠标、语音输入设备等的输入设备212。输出设备214包括设备本身,诸如触敏式显式屏、扬声器、打印机和用来驱动这些设备的呈现模块(常称之为"适配器")。所有这些设备都是本领域公知的,因此在此无需详细讨论。计算设备104具有电源216。
[0181]可选的,计算设备104的计算资源与存储资源分离,计算设备104分为处理节点和内存节点,这里的内存节点是指可以被计算设备当做内存资源使用的存储资源,也可以称作存储节点。内存节点包括存储器202和存储器控制器,存储器控制器用于控制存储器202的数据存取等操作;处理节点包括计算设备104的其他特征和功能,可选的,处理节点还包括计算设备104的除内存节点以外的其他内存资源。处理节点和内存节点之间通过网络102进行连接。
[0182]图3是远程直接数据存取RDMA方法应用场景的逻辑结构示意图,如图3所示,该系统包括第一计算设备和第二计算设备,其中第一计算设备和第二计算设备为图2所示的计算设备,图中仅示出计算设备的处理器和存储器,其他特征和功能在图3未示出。
[0183]RDMA协议允许对应用程序缓冲区进行直接访问,硬件使用所谓的工作队列与软件连接。工作队列是
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1