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

文档序号:9756851阅读:623来源:国知局
一种远程直接数据存取方法、设备和系统的制作方法
【技术领域】
[0001]本发明实施例涉及计算机领域,尤其涉及一种远程直接数据存取(Remote DirectMemory Access,简称RDMA)拷贝方法、设备和系统。
【背景技术】
[0002]随着计算机网络技术的迅猛发展,网络的性能目前已经达到每秒100千兆比特级另|J,如何充分利用高速网络的特性是我们面对的一个重要问题。RDMA是为了解决网络传输中数据处理的延迟而产生的,RDMA使一台计算设备可以直接将信息传送到另一台计算设备的内存中,消除了外部存储器复制和文本交换操作。这项技术通过减少处理器开销和减少内存的拷贝降低了时延,提高了网络利用率。
[0003]RDMA解决了现有以计算设备为单位的数据快速交互,然而随着提高资源利用率的需求越来越受到重视,计算设备的存储资源与计算资源相互分离,形成存储资源池,RDMA方式的数据交互也被从计算设备与计算设备之间模式的数据交互引申到计算设备的分离部件之间的数据交互,由此带来的变化对RDMA带来了新的需求。即当计算设备的存储资源与计算资源分离后,当出现大量远端内存数据拷贝的需求时,如何通过RDMA技术手段完成数据拷贝。

【发明内容】

[0004]有鉴于此,本发明实施例提供了一种远程直接数据存取方法、设备和系统,在计算设备的计算资源与其存储资源分离的情况下,实现了分离存储资源节点部件的RDMA操作。
[0005]第一方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
[0006]所述第二处理节点向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0007]所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0008]所述第二处理节点封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
[0009]所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
[0010]结合第一方面,在第一种可能的实现方式中,所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息之后,还包括:
[0011]所述第二处理节点生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
[0012]则所述第二处理节点封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
[0013]结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第二种可能的实现方式中,所述第一节点标识包括:
[0014]保护域编号,用于标识所述第一内存节点所在的保护域;
[0015]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0016]结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0017]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0018]结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,所述第一存储标识包括:
[0019]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0020]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0021]结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,所述第二存储标识包括:
[0022]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0023]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0024]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0025]结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第六种可能的实现方式中,所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点之后,进一步包括:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
[0026]第二方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,包括:处理器、存储器、总线和通信接口 ;
[0027]所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第一方面或第一方面任一种可能的实现方式的方法。
[0028]第三方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
[0029]所述第二内存节点接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
[0030]第二内存节点根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
[0031]第二内存节点将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
[0032]结合第三方面,在第一种可能的实现方式中,所述第一节点标识包括:
[0033]保护域编号,用于标识所述第一内存节点所在的保护域;
[0034]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0035]结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第二种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0036]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0037]结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第三种可能的实现方式中,所述第一存储标识包括:
[0038]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0039]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0040]结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第四种可能的实现方式中,所述第二存储标识包括:
[0041]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0042]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0043]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0044]结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第五种可能的实现方式中,还包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指不RDMA与操作已完成。
[0045]结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第六种可能的实现方式中,还包括,将所述RDMA应答消息发送给所述第二处理节点。
[0046]第四方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,包括:处理器、存储器、总线和通信接口 ;
[0047]所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第三方面或第三方面任一种可能的实现方式的方法。
[0048]第五方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,包括:
[0049]第二计算设备向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0050]所述第二计算设备接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0051]所述第二计算设备封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
[0052]所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单
J L ο
[0053]结合第五方面,在第一种可能的实现方式中,还包括:
[0054]所述第二计算设备生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
[0055]则所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
[0056]结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第二种可能的实现方式中,所述第一节点标识包括:
[0057]保护域编号,用于标识所述第一内存节点所在的保护域;
[0058]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0059]结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
[0060]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0061]结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第四种可能的实现方式中,所述第一存储标识包括:
[0062]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0063]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0064]结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第五种可能的实现方式中,所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点之后,进一步包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0065]第六方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,其特征在于,包括:处理器、存储器、总线和通信接口 ;
[0066]所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第五方面或第五方面任一种可能的实现方式的方法。
[0067]第七方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括所述装置与第二内存节点,包括:
[0068]发送单元,所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0069]接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0070]封装单元,用于封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
[0071]所述发送单元,还用于将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
[0072]结合第七方面,在第一种可能的实现方式中,还包括生成单元,生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
[0073]则所述封装单元用于封装RDMA拷贝操作消息,包括:所述封装单元从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
[0074]结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第二种可能的实现方式中,所述第一节点标识包括:
[0075]保护域编号,用于标识所述第一内存节点所在的保护域;
[0076]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0077]结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0078]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0079]结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第四种可能的实现方式中,所述第一存储标识包括:
[0080]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0081]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0082]结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第五种可能的实现方式中,所述第二存储标识包括:
[0083]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0084]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0085]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0086]结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第六种可能的实现方式中,所述接收单元还用于:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
[0087]第八方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和所述装置,包括:
[0088]接收单元,用于接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
[0089]封装单元,用于根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
[0090]发送单元,用于将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
[0091]结合第八方面,在第一种可能的实现方式中,所述第一节点标识包括:
[0092]保护域编号,用于标识所述第一内存节点所在的保护域;
[0093]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0094]结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第二种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0095]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0096]结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第三种可能的实现方式中,所述第一存储标识包括:
[0097]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0098]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1